O blog da AWS
Automatizando a administração de contas através do AWS Systems Manager
Este blogpost conta a história de como a Dedalus, uma AWS Premier Consulting Partner sediada no Brasil, mantém agilidade e controle sobre os ambientes de nuvem dos seus clientes, utilizando o AWS Systems Manager Automation para simplificar tarefas administrativas rotineiras e realizar a gerência de configurações em escala em instâncias Amazon EC2.
A Dedalus, uma AWS Premier Consulting Partner sediada no Brasil, que também é uma provedora de serviços gerenciados com décadas de experiência como integradora de sistemas, tem ajudado empresas a navegarem e conduzirem com sucesso suas jornadas para a nuvem. Como provedor de serviços a Dedalus investe continuamente em mecanismos para fomentar a inovação, excelência operacional e segurança. Esse foi o caso quando a empresa (Dedalus) começou a buscar formas ainda mais eficientes de gerenciar ambientes de clientes na nuvem AWS.
Em sua estratégia de gerência de nuvem, a Dedalus definiu diversos objetivos incluindo:
- A redução de acessos privilegiados para recursos de clientes;
- Monitoramento e logs robustos com notificações automáticas em caso de problemas;
- Capacidade de automatizar a administração das contas de forma a permitir que os times de engenharia consigam maior foco na inovação como forma de beneficiar seus clientes.
Visão Geral
Para gerenciar ambientes de clientes de forma escalável, a Dedalus utiliza um processo reprodutível e consistente para gestão de configuração. No processo de configuração de uma nova conta de um cliente é importante que todos os componentes necessários para o cliente estejam instalados seguramente utilizando o AWS Systems Manager Run Command. O comando é executado utilizando um documento de automação personalizado, com monitoramento e acompanhamento da execução e com processos de recuperação (rollback) caso necessário.
Antes de automatizar as tarefas administrativas com o AWS Systems Manager, o time de operações precisava manter múltiplos scripts para administrar cada um dos ambientes dos clientes da Dedalus, com acesso de administrador em cada ambiente pois os scripts executavam em tempo de execução dos sistemas operacionais. Os scripts eram executados manualmente, o que resultava em um time de operações que necessitava de um tempo adicional para garantir o sucesso na finalização das tarefas de configuração. E se algum problema fosse encontrado, era necessário um tempo adicional para executar os procedimentos de recuperação.
Ao mover suas tarefas administrativas para o AWS Systems Manager Automation, os privilégios ficam restritos à execução do documento de automação (Document Automation), pois o documento possui a capacidade de assumir um role com as permissões adequadas para executar as tarefas administrativas. Adicionalmente, antes de fazer quaisquer mudanças, são criadas Amazon Machine Images (AMIs) das instâncias que vão sofrer as mudanças realizadas pelo documento, de forma que o processo de recuperação passe a requerer menos esforço.
Ao utilizar o AWS Systems Manager Automation, que se integra com outros serviços AWS, o log de todas as execuções podem ser armazenados e arquivados no Amazon Simple Storage Service (S3) ou pode-se fazer o stream desses logs para o Amazon CloudWatch Logs, que pode ser utilizado como parte de uma solução que gera notificações em caso de falhas de execução. Adicionalmente, as capacidades de auditoria foram aprimoradas, pois todos os acessos realizados nas APIs de serviço são rastreadas e a probabilidade de erros humanos é reduzida pois todas tarefas administrativas são automatizadas.
Solução
A Dedalus utiliza múltiplos Documentos de Automação do Systems Manager Automation. Cada um deles é focado em um sistema operacional que precisa de suporte. O principal motivo é ter uma flexibilidade adicional e criar menos dependências em relação ao cenário de se ter um documento de automação único para múltiplas plataformas de sistema operacional. Para cada sistema, são utilizadas as seguintes ferramentas:
- Windows – Scripts PowerShell
- Linux – Combinação de shell scripts Linux e playbooks Ansible
Esses documentos de automação instalam e configuram os componentes necessários para se manter software diversos de clientes e serviços necessários, como o agente Amazon CloudWatch.
Adicionalmente, o uso do Systems Manager Automation também permite:
- Gerenciar a distribuição e execução dos scripts de forma eficiente, gerenciando o código de forma centralizada e com mecanismos seguros e escaláveis de implantação com monitoramento e logs;
- Executar comandos em mais de mil ambientes de clientes sem a necessidade de entregar privilégios de acesso para os times de operação lidarem com as diversas infraestruturas;
- Manter logs de execução para auditorias futuras e acompanhamento em painéis de acompanhamento (dashboards);
- Ter flexibilidade para atuar em ambientes de diferentes formas, por exemplo aplicar scripts baseado em tags de recurso ou tags de grupos de recurso;
- Enviar notificações em caso execuções falhas para diagnóstico rápido;
- Focar o time de engenharia em problemas complexos de engenharia, ao invés de focar o time em tarefas administrativas repetitivas.
Arquitetura utilizada para gerenciar as diversas contas de clientes.
Resumo
A solução apresentada é somente uma das formas nas quais a Dedalus inova em soluções para os seus clientes, mantendo um nível elevado de governança, processos de melhores práticas automatizáveis e padronização em mais de mil ambientes diferentes de diversos clientes. Como um parceiro de longa data da Amazon Web Services, a Dedalus se beneficia ao utilizar o Systems Manager Automation para evoluir práticas de DevOps e aprimorar o nível de serviço oferecido para seus clientes.
Para aprender mais sobre como executar workflows automatizados em múltiplas regiões e contas, por favor visite a documentação AWS ou leia este Blog Post para um exemplo prático.
Autor
Hugo Carvalho é Arquiteto de Soluções Senior focado no segmento de Startups, e atua auxiliando startups a terem produtos sustentáveis e altamente escaláveis em nuvem. Com mais de 7 anos de experiência na área de desenvolvimento e gestão de times ágeis, Hugo já atuou em diversas empresas na definição, implementação, implantação e evolução de diversas soluções de tecnologia para diferentes segmentos de mercado.