O blog da AWS

Aprimorando a gerencia de configuração na Verizon através do AWS Systems Manager

Um dos grandes desafios das grandes empresas é manter padrões e padronizações entre múltiplos ambientes. Esta afirmativa é especialmente crítica quando esses ambientes são provisionados de uma maneira “self-service” e ainda mais quando novos usuários passam a ter acesso aos serviços que realizam o provisionamento.

Neste post, descrevemos como a Verizon encontrou um equilíbrio entre agilidade, governança e padronização para seus recursos AWS. Vamos apresentar uma das soluções utilizadas pela Verizon para permitir que novos usuários façam a provisão de recursos AWS e configurem aplicações. A solução utiliza o ServiceNow e os seguintes serviços AWS:

Visão Geral

A Verizon precisava fornecer um serviço padronizado de provisionamento de recursos AWS para seus novos usuários. Eles precisavam de uma solução que incorporasse as melhores práticas de auditoria e gestão de configurações após as implantações para quaisquer novos ambientes implantados. As melhores práticas devem estar de acordo com um modelo totalmente auditável de “self-service” e tinham como requerimentos:

  • Todas requisições de provisionamento de recursos precisam ser apropriadas e adequadas ao ciclo de vida;
  • A gerência de configuração deve ser definida e automaticamente aplicada conforme a necessidade.

Solução

A Verizon teve como objetivo prover uma melhor experiência para seus novos usuários e auxiliá-los no provisionamento de recursos de forma aderente com as práticas de segurança e governança da empresa.

Experiência de carrinho de compras utilizando o AWS Service Catalog e o ServiceNow

Para atingir os requerimentos acima mencionados, a Verizon utiliza o AWS Service Catalog para gerenciar todos seus templates de AWS CloudFormation (após estes serem verificados através do CFN-Nag). Depois disso, os templates são publicados como produtos no ServiceNow utilizando o  AWS Service Catalog Connector for ServiceNow (por exemplo, EC2 CloudFormation como produto).

Os usuários finais têm uma experiência de carrinho de compras sempre que provisionam recursos em suas contas. O processo mencionado ajuda a Verizon a manter a consistência entre recursos provisionados em todas as contas AWS e a atender aos seus requisitos de compliance.

Os produtos, que são templates do AWS CloudFormation, são publicados no AWS Service Catalog utilizando um pipeline automatizado do Jenkins. Este pipeline é ativado através de um repositório Git, conforme apresentado no diagrama abaixo:

 

 

Todos os templates AWS CloudFormation são trazidos do AWS Service Catalog utilizando o AWS Service Catalog Connector para o ServiceNow e são apresentados como produtos. Os usuários podem visualizar a seguinte lista de produtos (que possuem compliance com os requisitos da empresa) da interface do portal de serviços do ServiceNow:

 

 

Quando o usuário seleciona um produto e provisiona o recurso em sua conta, o ServiceNow realiza chamadas de backend para aplicações da Verizon para realizar verificações de compliance. Após isso, o ServiceNow faz chamadas para o AWS Service Catalog para provisionar o produto. Após o provisionamento, o usuário pode visualizar a lista de produtos provisionados. O usuário também pode usar a API para provisionar o produto.

 

 

Gerência de configuração utilizando o Systems Manager

Depois que o produto é provisionado, os usuários precisam ter a possibilidade de configurar suas instâncias de uma forma segura utilizando serviços AWS nativos. Conforme apresentado anteriormente, um usuário utiliza o produto EC2 e provisiona ele utilizando o AWS Service Cataflog. O usuário possui uma instância EC2 para configurar a sua aplicação.

Na Verizon o Ansible é utilizado na etapa de pós-provisionamento da gerência de configuração das instâncias EC2. Depois de avaliar diversas possibilidades, a Verizon decidiu que o Systems Manager era a solução ideal para se ter uma solução nativa AWS para gerência de configuração. Para isso, foram utilizados os agentes System Manager que estão presentes nas AMIs. Por exemplo, a Verizon utiliza o comando Run Command (executar comando) do Systems Manager com um documento run ansible para executar playbooks Ansible e executar um documento shell-script para executar comandos bash. Para mais informações, veja Executando Playbooks Ansible utilizando o Run Command e o State Manager do EC2 Systems Manager.

O fluxo

Na seção anterior, referente ao provisionamento, pode-se ver como os usuários provisionam recursos utilizando o AWS CloudFormation. O ServiceNow mantém informações relativas a que tipos de recursos os usuários tentaram provisionar. Por exemplo, se existe um produto com um recurso EC2, você pode habilitar o Systems Manager Run Command para fazer a implantação do produto EC2 direto da interface do ServiceNow, conforme apresentado na seguinte captura de tela.

 

 

Quando um usuário seleciona a chamada de executar comando do Systems Manager Run Command, ele pode incluir scripts shell ou playbooks Ansible. O usuário pode então submeter o script como parte da gerência de configuração, conforme mostrado neste exemplo de script:

---
- hosts: local
  tasks:
   - name: Install Nginx
     apt: pkg=nginx state=installed update_cache=true
     notify:
      - Start Nginx
  handlers:
   - name: Start Nginx
     service: name=nginx state=started

O ServiceNow armazena a informação em seu banco de dados para auditoria antes de fazer a chamada de API do Systems Manager para executar o comando na instância EC2 selecionada. O ServiceNow consegue capturar a saída do comando utilizando o command id do comando anterior e apresenta o resultado na interface, conforme apresentado na seguinte captura de tela.

 

 

Chamamos isso de um fluxo de trabalho de pós-provisionamento no ServiceNow, pois ele permite que os usuários realizem ações de configuração após o provisionamento ocorrer com sucesso.

Configurações Adicionais

O Connector para ServiceNow versão 2.0.2 inclui ações operacionais adicionais, capacidade de administrador e funcionalidades no portal de serviços do ServiceNow. O Connector para ServiceNow contém documentações adicionais. Por exemplo, a documentação inclui de talhes de como adicionar a habilidade de deletar um produto do AWS Service Catalog no ServiceNow que não possui uma ação de self-service associada. A parte de configurações do portal de serviços também detalha como pedir produtos do AWS Service Catalog através do portal de serviços do ServiceNow utilizando o Service Catalog e as visões de Pedir Algo (Order Something).

Resumo

Esta solução é só uma das muitas formas com as quais a Verizon ajuda os seus usuários a provisionarem recursos seguindo requisitos de compliance para implantar aplicações na nuvem AWS. A Verizon deseja dar poder aos seus usuários na nuvem para provisionar recursos de forma mais ágil, com menos cliques, mas também de forma segura seguindo requisitos de auditoria e compliance.

Sobre os Autores

 Krishna Gadiraju (GK) é um arquiteto do time de produtos para governança em nuvem e experiência de usuários em nuvem da Verizon. Ele ativamente auxilia os times de desenvolvimento com a migração de aplicações on-premises para a nuvem enquanto garante que as contas AWS da Verizon atendem todos requisitos de segurança e compliance. GK possui certificações AWS de DevOps Professional. Ele é um palestrante ativo em conferências de nuvem e pode ser encontrado em https://www.linkedin.com/in/chaitanya-gk/.

 

 

 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.