Uma introdução às ferramentas do DevOps na AWS

Uma introdução às ferramentas do DevOps na AWS
DevOps (Operações de Desenvolvimento) é um conjunto de ferramentas e práticas usadas para desenvolver e fornecer aplicativos de software mais rapidamente. O próprio DevOps não é uma ferramenta usada para tornar o desenvolvimento, liberação e entrega de software mais rápido. Existem muitas ferramentas de código aberto que são usadas para implementar o DevOps em uma organização. Em geral, a seguir, são apresentadas as etapas básicas que são executadas para implementar as melhores práticas do DevOps para desenvolver e fornecer código mais rápido.
  • Plano
  • Código
  • Construir
  • Teste
  • Liberar
  • Implantar
  • Operar
  • Monitor

Além das ferramentas de código aberto, diferentes provedores de serviços em nuvem fornecem suas ferramentas nativas em nuvem para implementar práticas de DevOps na nuvem. Este artigo descreve diferentes ferramentas e tecnologias fornecidas pela AWS para implementar o DevOps na AWS.

AWS codecomit

AWS CodeCommit é um serviço usado para controle de versão e hospedado pela AWS. Assim como outros serviços de controle de versão como Github, Bitbucket e GitLab, o código -fonte pode ser empurrado para repositórios privados no CodeComit. Não há repositórios públicos no AWS CodeComit.

O AWS CodeCommit é um serviço altamente disponível, seguro e escalável usado para hospedar repositórios de código privado. Usando a AWS codecomit, você não precisa atualizar o serviço se seus repositórios aumentarem além de um limite. Ele é dimensionado automaticamente com o aumento do número de repositórios ou tamanho do repositório.

A seguir, a lista de alguns benefícios fornecidos pelo AWS CodeCommit Service.

  • Serviço altamente disponível e totalmente gerenciado
  • Armazena o código com criptografia em repouso
  • Colaboração de trabalho
  • Serviço de controle de versão escalável
  • Integrado a alguns serviços da AWS e de terceiros
  • Migração fácil de outros repositórios
  • Suporta comandos git que você já conhece

O AWS CodeComit Console fornece uma interface gráfica de usuário amigável para visualizar solicitações de puxar, compromissos, ramificações e tags git. Os repositórios do CodeCommit podem ser clonados usando URLs SSH e HTTPS.

Nas configurações do repositório CodeComit, você pode permitir notificações e gatilhos para notificar quando um evento específico como (Crie uma filial, exclua uma filial, na solicitação de tração) ocorre.

AWS CodeBuild

O AWS CodeBuild é um serviço totalmente gerenciado usado para executar testes, criar o código e gerar os artefatos de construção a partir do código. Usando o AWS CodeBuild, você não precisa fornecer um servidor de construção extra para criar o código -fonte. Ele fornece ambientes pré-configurados para a maioria das linguagens de programação populares como Python, Java, NodeJs e construir ferramentas como MAVEN, NPM e GRADLE. Você também pode criar seus próprios ambientes personalizados para construir seu projeto usando o AWS CodeBuild.

O AWS CodeBuild é um serviço sem servidor e você só é cobrado quando uma compilação está em execução. Dessa forma, você pode economizar dinheiro para um servidor extra para criar os projetos. A seguir, alguns benefícios do uso do serviço CodeBuild da AWS.

  • O CodeBuild é um serviço totalmente gerenciado e você não precisa atualizar e gerenciar o servidor de construção.
  • É um serviço escalável e escala com o aumento do processamento. Você só paga pelo tempo em que a construção está funcionando.
  • Ele fornece ambientes de construção pré-configurados que facilitam o uso.
  • Você também pode criar seus próprios ambientes de construção personalizáveis ​​no CodeBuild.

O AWS CodeBuild pode ser integrado a diferentes serviços de provedor de código -fonte para buscar o código. Você pode buscar o código do Github, Bitbucket, Github Enterprise, CodeCommit e S3. Além disso, você pode configurar o serviço CodeBuild para enviar os logs de construção para os logs do CloudWatch que podem ajudar a diagnosticar as falhas de construção. Para se comunicar com o CloudWatch, o AWS CodeBuild precisa de uma função de IAM com permissões específicas.

AWS CodeDeploy

O AWS CodeDeploy é um serviço totalmente gerenciado fornecido pela AWS para implantar o aplicativo pré-criado para diferentes serviços de computação, como EC2, AWS Lambda, AWS ECS e servidores locais. O AWS CodeDeploy Service pode implantar automaticamente o seguinte tipo de conteúdo.

  • Função do lambda da AWS
  • Arquivos executáveis
  • Arquivos multimídia
  • Scripts
  • Código
  • Pacotes

AWS CodeDeploy é um serviço sem servidor e você só é cobrado quando uma implantação está em execução e, o resto do tempo, você não é cobrado. Assim como o AWS CodeBuild, o AWS CodeDEMploy também elimina a necessidade de provisionar um servidor extra para fins de implantação. A seguir, alguns benefícios do uso do serviço AWS CodeDeploy.

  • O CodeDeploy pode ser usado para implantar aplicativos tradicionais em servidores e aplicativos que implantam funções Lambda no AWS Lambda.
  • Pode ser usado para automatizar totalmente o processo de implantação de código em diferentes ambientes como (dev, teste, prod).
  • Pode ser usado para realizar uma implantação azul/verde que evita o tempo de inatividade do aplicativo durante a implantação.
  • A implantação pode ser revertida se ocorrer algum erro ao implantar a versão mais recente.

AWS CODEPIPELINE

AWS CodePiPeline é um serviço usado para visualizar um pipeline CICD completo usando uma interface de usuário gráfica amigável. Ele cria uma boa GUI de um pipeline combinando diferentes serviços como a AWS CodeComit, AWS CodeBuild, AWS CodeDElaplay. Facilita o processo de liberação do software, visualizando cada etapa do pipeline.

Quando um desenvolvedor empurra o código para o codecomit, a linha da linha de código, se configurada adequadamente, data do novo código e passa o código mais recente para o serviço AWS CodeBuild para executar testes e criar artefatos de código. Depois de construir os artefatos, esses artefatos são passados ​​para o serviço AWS CodeDeploy para implantar a versão mais recente do aplicativo no servidor.

Todas essas etapas podem ser visualizadas e integradas entre si no serviço de codepipela. Ao implantar o código do estadiamento para um ambiente de produção, uma etapa de aprovação manual pode ser adicionada usando a AWS CodePiplineline. Para implantar o código para o ambiente de produção, alguém com permissões específicas deve aprovar a implantação. Evita a implantação de um compromisso não autêntico com a produção, o que pode quebrar o ambiente de produção.

AWS CodeGuru

Amazon CodeGuru é um serviço fornecido pela AWS para revisar o código -fonte. O AWS CodeGuru usa o aprendizado de máquina e a análise de programas para revisar o código fonte e encontrar os possíveis defeitos no código. Depois de encontrar os defeitos no código -fonte, o AWS CodeGuru fornece sugestões para resolver esses defeitos para linguagens de programação Java e Python.

Atualmente, o AWS CodeGuru suporta apenas linguagens de programação Java e Python e pode ler o código -fonte dos seguintes provedores de origem.

  • AWS codecomit
  • AWS S3
  • Github Enterprise Cloud
  • Servidor do Github Enterprise
  • Github
  • Bitbucket

Conclusão

Existem diferentes serviços nativos de nuvem da AWS que podem ser usados ​​para construir um pipeline CICD completo. O principal benefício de usar os serviços proprietários da AWS é que esses serviços são serviços sem servidor totalmente gerenciados e interagem entre si. Existem diferentes serviços para armazenar o código -fonte (AWS CodeCommit), criar e executar testes no código (AWS CodeBuild), implantando o código para servidores (AWS CodeDearploy) no AWS. Todos esses serviços podem ser integrados entre si para criar um pipeline completo usando o serviço da AWS CodePiPeline. Este artigo fornece uma breve compreensão de todos esses serviços da AWS para implementar práticas de DevOps na AWS.