Recursos do AWS CodeDeploy

Por que optar pelo CodeDeploy?

O AWS CodeDeploy é um serviço que automatiza implantações de aplicações em uma variedade de serviços de computação, incluindo o Amazon Elastic Compute Cloud (Amazon EC2), o AWS Fargate, o AWS Lambda e as instâncias on-premises. O CodeDeploy realiza a automação total das implantações de aplicações, removendo a necessidade de operações manuais. O CodeDeploy protege seu aplicativo contra tempo de inatividades durante implementações através de atualizações constantes e monitoramento da saúde da implementação. O CodeDeploy fornece um controle centralizado das implantações por meio do Console de Gerenciamento da AWS, da AWS Command Line Interface (AWS CLI), de SDKs ou de APIs, permitindo que você inicie, controle e monitore as implantações. Você pode ver o progresso da implantação até o nível de eventos de configuração individuais. O CodeDeploy monitora e armazena o histórico recente de suas implementações, para que você possa investigar o cronograma e o histórico de alterações das implementações passadas.

O CodeDeploy não é restrito a plataformas ou linguagens específicas e funciona com qualquer aplicação. Isso permite a reutilização do código de configuração existente. Você também pode integrar facilmente as implantações de aplicativos com o processo de entrega de software ou com uma cadeia de ferramentas de entrega contínua usando as APIs do CodeDeploy.

Implantações automatizadas

Você pode repetir uma implantação de aplicação em diferentes grupos de instâncias com facilidade ao usar o CodeDeploy. O CodeDeploy usa um modelo de instalação baseado em arquivos e em comandos, possibilitando a implantação de qualquer aplicação e a reutilização do código de configuração existente. O mesmo código de configuração pode ser usado para implantar e testar atualizações de forma consistente nas fases de implantação, teste e produção de instâncias do Amazon EC2. A remoção das etapas manuais das implantações aumenta a velocidade e a confiabilidade do processo de entrega de software.

O CodeDeploy permite a integração de atividades de implantação e de escalabilidade de software, garantindo que a aplicação permaneça atualizada em um ambiente de produção dinâmico. No caso das instâncias do Amazon EC2, o CodeDeploy é integrado ao Auto Scaling. O Auto Scaling permite escalar a capacidade do Amazon EC2 de acordo com as condições que você estabelece, como aumento no tráfego. O CodeDeploy recebe notificações sempre que uma nova instância é iniciada em um grupo do Auto Scaling e realizará automaticamente a implantação da aplicação nessa nova instância antes que ela seja incorporada a um balanceador de carga do Elastic Load Balancing (ELB).

É possível usar o CodeDeploy para automatizar as implantações de software em ambientes de desenvolvimento, de teste e de produção que são executados em qualquer instância, incluindo as instâncias em seus próprios data centers (entretanto, será necessário que suas instâncias possam efetuar a conexão com os endpoints públicos da AWS). Isso permite que você use um único serviço para implantar aplicações de maneira consistente em arquiteturas híbridas.

Diminua o tempo de inatividade

As aplicações não necessitam de tempo de inatividade ao serem atualizadas para uma nova revisão com o CodeDeploy. O AWS CodeDeploy pode executar implantações azul/verde em instâncias do Amazon EC2, em um serviço do Amazon Elastic Container Service (Amazon ECS) (abrangendo os tipos de inicialização do Amazon EC2 e do Fargate) ou em uma função do Lambda. Com uma implantação azul/verde, a nova versão do aplicativo é executada ao lado da versão anterior. Assim que a nova revisão é testada e considerada pronta, o CodeDeploy pode mudar o tráfego da versão anterior para a nova versão de acordo com as especificações.

O CodeDeploy também pode realizar uma atualização contínua em um grupo de instâncias do Amazon EC2 em que apenas uma fração das instâncias é colocada offline por vez. O CodeDeploy trabalha progressivamente nas instâncias, garantindo que as aplicações permaneçam disponíveis e continuem a atender as solicitações de tráfego. No caso de funções do Lambda, o tráfego de entrada é progressivamente redirecionado da versão antiga para a versão nova.

O monitoramento da integridade da implantação funciona em conjunto com as atualizações cumulativas para manter as aplicações altamente disponíveis durante as implantações. Tempo de inatividade inesperado poderá ocorrer se atualizações com falha forem implementadas. O CodeDeploy monitora a implantação e a interromperá caso ocorram muitas falhas nas atualizações.

É possível interromper a implantação de uma aplicação que está em andamento a qualquer momento, usando o console, a AWS CLI ou qualquer um dos AWS SDKs. Você pode simplesmente implantar novamente essa revisão se desejar continuar a implantação interrompida em um momento posterior. Além disso, é possível realizar a reversão imediata ao implantar novamente a revisão anterior.

Controle centralizado

É possível iniciar, controlar e monitorar as implantações do software diretamente do console ou ao usar a AWS CLI, os SDKs ou as APIs. Em caso de falha, você pode identificar o script em que ela ocorre. Além disso, você pode definir notificações por push que permitem monitorar o status das implantações por meio de mensagens SMS ou de e-mails utilizando o Amazon Simple Notification Service (Amazon SNS).

Um aplicativo pode ser implantado em vários grupos de implantação. Os grupos de implantação são usados para associar configurações a ambientes específicos, como um ambiente de preparação ou produção. Você pode testar uma revisão na preparação e implantar esse mesmo código com as mesmas instruções de implantação em produção quando estiver satisfeito.

O CodeDeploy acompanha e armazena o histórico recente das implantações realizadas. Você pode ver quais versões do aplicativo estão implantadas no momento em cada um dos grupos de implantação de destino. Você pode inspecionar o histórico de alterações e as taxas de sucesso das implantações passadas em grupos de implantação específicos. Você também pode investigar um cronograma das implantações passadas para ter uma visão detalhada dos êxitos e falhas de implantação.

Fácil de adotar

O CodeDeploy usa um modelo de instalação baseado em arquivos e em comandos, possibilitando a implantação de qualquer aplicação e a reutilização do código de configuração existente. O CodeDeploy faz uso de um único arquivo de configuração AppSpec que você pode usar para executar ações, testes ou verificações em cada evento do ciclo de vida na fase de implantação. Os comandos podem ser qualquer código, como um script de shell, um programa personalizado ou mesmo uma ferramenta de gerenciamento de configuração.

Ao usar as APIs do CodeDeploy, é simples integrar as implantações de aplicações à cadeia de ferramentas de entrega de software existente. O AWS CodePipeline e alguns parceiros da AWS fornecem integrações desenvolvidas previamente do CodeDeploy para serviços de integração contínua e entrega contínua (CI/CD), simplificando a implantação automática da aplicação atualizada.

Receba notificações

É possível criar notificações para eventos que afetem suas implantações. As notificações serão enviadas na forma de notificações do Amazon SNS. Todas as notificações incluem uma mensagem de status e um link para os recursos que foram impactados pelo evento que gerou a notificação.