Confira a primeira parte do artigo sobre Processo de Integração e Deploy Contínuo na AWS. Escrito por Gabriel Azevedo

Antes de introduzir o assunto de CI/CD, precisamos entender um conceito que vem ganhando grande força no mundo da tecnologia: o DevOps. Esse termo é bem sugestivo pois se deriva da junção das palavras “desenvolvimento” (em inglês, development) e “operações” (em inglês, operations). Essa palavra descreve um conjunto de práticas para integração entre as duas equipes. Entretanto, há a possibilidade de incorporação de outros setores. Como por exemplo, o de controle de qualidade, permitindo adotar processos automatizados para um desenvolvimento rápido e seguro de aplicações e serviços.
Também não podemos deixar de falar de Pipeline, uma vez que esses assuntos estão diretamente ligados. Na tradução literal, pipeline, traz o conceito aplicado a gasodutos e encanamentos. Na área de TI, esse termo vem se mostrando cada vez mais atual e utilizado. Seu objetivo, é automatizar o processo de entrega de um software. Usando publicações e correções em uma aplicação de forma contínua. E assim, garantindo a qualidade na entrega final deste processo.

Vantagens de se utilizar pipeline:

  • Automatização benéfica, agilizando o processo e evitando erros humanos; (Quanto menos erros, a entrega será mais rápida)
  • Fácil integração de pequenas atualizações;
  • Como os desenvolvedores não se preocupam em entregar o código até produção, eles conseguem ficar mais focados na configuração de novas features;
  • Possibilidade de realizar atualizações de código pequenas, frequentes e reversíveis.
  • Concentração de logs de teste, atualizações e deploys ficam acessíveis para verificação a qualquer momento;
  • Bugs são identificamos de forma mais rápida, agilizando as correções.
  • CI – Continuous Integration

    Bom, a definição básica de integração contínua (CI) é a prática de automatizar a integração de alterações individuais de código, chamadas de branches, de vários colaboradores em um único projeto de software através do merge de diversos branches em um código consolidado. O processo de CI é composto por ferramentas automáticas que apontam, a correção do novo código antes da integração.
    Temos exemplos de ferramentas de repositórios de cógido com esse recurso, o GitHub, BitBucket, GitLab entre outros. Vale lembrar que na AWS temos o serviço do CodeCommit, que é extremamente funcional e de uso parecido dessas ferramentas mais famosas, visto que ele hospeda repositórios baseados em Git. Caso queira ter mais informações sobre este serviço, clique aqui.

    CD – Continuous Deployment/ Continuous Delivery

    Há dois conceitos ligados a sigla CD. Mas seu principal objetivo é a prática de desenvolvimento de software em que as alterações de código são criadas, testadas e preparadas automaticamente para a liberação em um ambiente de produção. Ele expande a integração contínua. Implementando todas as alterações de código. Seja em um ambiente de teste, ambiente de produção ou em ambos. Após a conclusão do estágio de construção. Quando a liberação deste deploy é feita de forma de aprovação. Ou seja, é necessária uma intervenção humana para a esteira ser finalizada, temos o conceito de Continuous Delivery. Já quando este processo é totalmente automatizado, com todos os testes funcionando, sem a autorização explícita humana, temos o conceito de Continuous Deployment. Algumas das ferramentas mais famosas para este processo temos o Jenkins. Ele utilizado em todo o mundo, devido a sua grande comunidade e infinidade de plugins, garantindo inúmeras integrações.
    Na AWS, temos o AWS CodePipeline. Ele nos ajuda nessa integração. Na plataforma, temos serviços como o CodeBuild, para você compilar sua aplicação. E o CodeDeploy para realizar os deployments em seus recursos necessários para seu software. Para entender melhor sobre o AWS CodePipeline, clique aqui.

    Em uma estrutura padrão de CI/CD, temos a seguinte estrutura de funcionamento:

    AWS Code Pipeline

  • Source: O local onde está o código da aplicação;
  • Build: Momento em que é efetuado um merge do código já existente com o código de atualização. Aqui também pode ser efetuado a compilação da sua aplicação. Gerando toda estrutura;
  • Test: Este passo é um dos essenciais para garantir uma entrega rápida e segura. Aqui são efetuados testes automatizados para garantir o pleno funcionamento da aplicação.
  • Staging: Após os passos acima ocorrerem perfeitamente, a aplicação é enviada para um ambiente de staging, mais próximo a realidade em que sua aplicação irá funcionar. Nele são realizados testes adicionais de funcionamento da aplicação e infraestrutura antes de ir definitivamente para o ambiente de produção.
  • Production: Finalizando a pipeline, temos o ambiente de produção, após ter sido devidamente testado e atualizado com os processos anteriores, além de depender do nível de maturidade dos seus testes, essa nova versão lançada está funcionando perfeitamente e foi atualizada de forma automática. Finalizando o CI/CD.
  • Deploy Automatizado

    Vamos agora criar na prática um exemplo de deploy automatizado simples na AWS juntamente com seu GitHub, uma das plataformas de versionamento de código mais utilizadas no mundo , para que você veja as várias maneiras de possíveis integrações na AWS. Para isso, foi realizado a seguinte arquitetura:

    Na ilustração acima, os desenvolvedores fazem o “push” da aplicação para o Github. Neste momento, juntamente configurado com o AWS CodePipeline, o Git dispara um webhook toda vez que ocorre uma alteração de código. Assim o CodePipeline gera um Artefato da aplicação, manda para um bucket S3 e aciona o CodeDeploy para finalizar o deploy automático em uma Instância EC2. Lembrando que, como fizemos um método simples de deploy, não temos um passo de build ou test, esta ilustração serve apenas para que você veja a configuração de um continuous deployment de maneira fácil.
    Na parte 2 traremos um tutorial de como realizar esta arquitetura na sua rede AWS.

    OUTRAS PUBLICAÇÕES

    Arquitetura Docker

    Por Thiago Marques O pai ta on!! Até agora entendemos o que é um container, como o Docker funciona sob esse modelo e como utilizar o Docker Compose para auxiliar a criação de várias máquinas. Mas conforme vamos nos aprofundando surgem novas dúvidas, como: • Beleza, mas como tudo isso funciona? • Como o Docker controla e gerencia os containers? • Existe licenciamento para utilizar? Nesse post iremos detalhar um pouco mais sobre o conceito da plataforma para entender tudo isso. A Arquitetura Docker Fonte Docker Client / Remote API Quando estamos logados em um terminal e executamos comandos como docker ps, docker images e etc, utilizamos o command line interface (CLI) do docker, de forma que, nessas condições, podemos dizer que nosso terminal é um docker client. Assim conseguimos interagir com o daemon que está no host para nos trazer informações dos containers, das imagens e etc. Além do cliente, é possível interagir também via remote API. Quanto utilizamos o docker em uma máquina diferente do Jenkins, por exemplo, precisamos efetuar a configuração de um remote API para o deploy de um build funcionar. Note que para instalação do cliente/server em uma instância Amazon Linux 2, é necessário instalar via amazon-linux-extras. A AWS já possui uma excelente documentação de como fazer isso basta acessar o link: How-to-install-docker-Amazon-Linux Docker daemon / runtimes Depois da versão 1.11 do Docker (que até então era um grande monolítico), ele passou a segmentar em daemons as operações, sendo: • dockerd ficou responsável por receber e interpretar os comandos e APIs do cliente; • containerd ficou com o trabalho mais ‘pesado’ de controlar as imagens e containers, e executar os processos do runC; • runC que é quem de fato lida com o gerenciamento dos containers. Note que com a segmentação e a disponibilização dos códigos, podem existir outros runtimes para essas funções, como é o caso do CRI-O, que é uma alternativa ao containerd, ou o CRUN e o RAILCAR que são alternativas ao runC. NaAWS os runtimes utilizados pelo Fargate são o containerd e o runC. Fonte: Docker Docker Registry Finalizando a parte de arquitetura temos os Registries, que são os repositórios de onde é possível realizar o download/upload dos docker images. Veja na imagem inicial desse post que quando fazemos o primeiro pull (docker pull ) o processo seguido é: Nesse caso (apenas o pull) o containerd se registra no repositório, procura a imagem, e faz seu download para o repositório local. O runC não entra no processo ainda, pois não estamos de fato criando um container, apenas baixando a imagem. A vantagem de ter um repositório central, além de te poupar espaço, é que ele pode garantir outras características como: • Ter um repositório privado; • Possibilidade de utilizar SSO e colaboração; • Acesso a imagens oficiais; • Scan de vulnerabilidades para as imagens; • Integração com CI/CDs. Atualmente o Docker Hub, é o repositório mais utilizado, no qual você pode realizar o push (enviar) ou o pull (receber) as imagens, e possui a versão paga e gratuita. Obviamente na versão gratuita você tem alguns limites, como o bloqueio de 100 pulls por 6horas (veja os limites aqui) A AWS possui a sua própria solução de registry chamada ECR, o que se mostra ser eficiente para integração de serviços como o ECS e o Fargate. Contudo soluções como o Harbor, para IaaS também pode ser uma saída interessante caso você utiliza pull de forma constante. That’s all folks! Be Happy!!! Veja os outros artigos sobre Docker! Entendendo Docker Docker Compose

    Darede – AWS Consulting Partner of the Year 2021 (English Version)

    The APN Awards is Amazon Web Services’ recognition of the top partners in different regions around the world who in 2020 helped their customers build technology solutions for their organizations, driving digital transformation and innovation using AWS cloud services. The winners of this award have demonstrated practically how it is possible to provide the best experience in the world of cloud computing and turn it into a positive impact on businesses worldwide. And in this year’s edition, Darede was awarded as the AWS Consulting Partner of the year. This is a proof of the quality of the service provided by the company, which has been working every day since 2013 to transform companies through technological solutions, always appreciating the good service and high level of its professionals. About the award, the CTO, and co-founder of Darede, Flávio Rescia said: “We are thrilled and very happy with this award, because we work hard every day to provide the best for our customer. We would like to thank our whole team for all their effort and dedication, because without them none of this would be possible. We also thank the people at AWS who provided all the support and gave us all the freedom to do what we love most, provide the best service to our customers”. CEO and co-founder Muriel Arneiro also thanked everyone about this recognition, “It’s a pride to receive this recognition, so we thank a lot all our team that works night and day, sparing no efforts, to bring the best to our customer. It is also important to thank our customers who believe every day in our project and without them, we would be absolutely nothing. And of course, to AWS that gives us all the conditions to bring the best to our clients, we are very happy with this partnership, and we want you to know that we are just at the beginning of this journey that will be very successful”. The CMO and one of Darede’s partners, Marcelo Carazato emphasized the total support from AWS for winning this award: “We received this news with a lot of emotion, and this is the result of constant work from our entire team, since the first contact we provide a totally differentiated and personalized service to our customers. Here we look for all the alternatives to provide the best service for them, and for this I am very proud of our team. And I would like to give a special thanks to the people at AWS, because they give us all the conditions to offer the best service, it’s no wonder that the company is the main platform in the world, they really are trusted partners for all times”. Read the story on the AWS website: https://aws.amazon.com/pt/blogs/apn/announcing-the-aws-partner-network-regional-2021-partners-of-the-year/

    Novidades AWS re:Invent 2021

    Todos os anos a AWS promove o AWS re:Invent,o maior evento de cloud do mundo. E a Darede selecionou as melhores novidades! Confere aí!

    Novidades da Semana 14 a 18 de junho

    Por Anderson Santos Todos os dias a AWS lança uma série novidades e atualizações em seus produtos que visam melhorar a vida de seus usuários. Reunimos algumas delas que fazem mais sentido para nosso mercado e que certamente aplicaremos em nosso dia a dia. Confira as novidades das últimas semanas. Security AWS Certificate Manager Private – ACM Private Certificate Authority está mais flexível ao compartilhamento de CAs entre contas O AWS Certificate Manager Private estendeu o suporte para compartilhamento de Certificate Authorities através do Resource Access Manager. Os clientes agora podem compartilhar CAs entre contas para emitir certificados de qualquer tipo. Antes era possível emitir apenas certificados do tipo TLS Client-Only ou TLS Server-Only. AWS Key Management Service (KMS) – Novo recurso de replicação de chaves em multi região O AWS KMS introduziu um recurso que permite replicar chaves client-side do KMS de uma região para outra. Assim você pode mover dados entre diferentes regiões sem precisar descriptografar e criptografar novamente com a chave da região de destino. Essas chaves são compatíveis com SDK, AWS S3 Encryptio e AWS DynamoDB Encryption. Desenvolvimento AWS Copilot – Nova versão 1.8 com melhorias em suporte a VPC e DNS O AWS Copilot é uma CLI de comandos declarativos para iniciar e gerenciar de maneira prática aplicativos em contêineres na AWS. Ele automatiza as etapas de implantação, incluindo envio da imagem para um ECR, criação da task definition e do cluster. O serviço anunciou o lançamento da versão 1.8 com algumas melhorias no suporte a VPC e DNS. AWS Amplify – Suporte para limites de permissões em IAM roles gerados pelo Amplify O AWS Amplify agora tem suporte para limites de permissões em papéis IAM gerados pelo serviço. O Amplify CLI é um conjunto de ferramentas de linha de comando que ajuda os desenvolvedores de front-end a criar back-ends de aplicativos na nuvem que incluem IAM roles e controlam o acesso aos recursos da AWS. Com esta novidade, é possível definir que os IAM roles gerados pelo Amplify respeitem os limites definidos pelas políticas e limites de permissões destas roles. Amazon Translate – Integração com CloudWatch Events e EventBridge O Amazon Translate é um serviço gerenciado de tradução automática neural acessível e personalizável em 71 idiomas. A novidade é que agora ele está integrado com o Amazon CloudWatch Events e Amazon EventBridge. Com essa atualização é possível usar eventos do CloudWatch para monitorar o progresso e a conclusão de seus trabalhos de tradução em lote. Amazon Lex – Suporte a slots multi-valor Amazon Lex é um serviço para construir interfaces de conversação em qualquer aplicativo usando voz e texto. O famoso chatbot. O serviço agora conta com a função de slot de vários valores. O slot é usado para capturar respostas do usuário e a partir disso programar a réplica. Compute & Container AWS App Mesh Controller for Kubernetes – Nova versão 1.4.0 O AWS App Mesh Controller for Kubernetes permite configurar o AWS App Mesh diretamente pelo Kubernetes. Com este lançamento, é possível configurar o Gateway e o Roteador virtual para habilitar ou desabilitar regravação de solicitações, adicionar ou remover prefixos e editar o componente do caminho da solicitação à medida que ele entra na sua malha, assim facilitando construção de aplicações de microsserviços com arquiteturas complexas. Amazon EC2 – Criação de AMIs crash-consistent a partir de instâncias com vários volumes EBS sem reiniciá-las O Amazon EC2 agora permite criar AMIs crash-consistent da sua instância com vários volumes EBS sem a necessidade de reinicialização. A AMI criada manterá os dados de todas as operações de I/O concluídas de cada volume anexado à instância. Isso garante que você possa iniciar uma instância da AMI e retornar ao estado exato anterior à criação da imagem. AWS Backup – Suporte a backups crash-consistent EBS associados a um EC2 O AWS Backup anunciou o recurso de criar por padrão backups crash-consistent de volumes do Amazon EBS associados a uma instância do Amazon EC2. Os clientes não precisarão mais interromper sua instância ou organizar múltiplos volumes do Amazon EBS associados à mesma instância do Amazon EC2, a fim de garantir a consistência do estado da aplicação em caso de falha. Amazon EC3 – Novos valores de cobrança Desde 11 de junho de 2021, a AWS estendeu a cobrança por segundo para instâncias do Windows Server e do SQL Server em execução no Amazon EC2. Válido para os modelos OnDemand, Reservado e Spot em execução no Amazon EC2 em incrementos com um mínimo de um minuto. Antes estas instâncias eram faturadas por hora. Amazon EC2 – Novas propriedade de AMI O Amazon EC2 agora possibilita especificar uma nova propriedade chamada “DepreciationTime” nas suas imagens de máquina da Amazon (AMIs) para indicar quando a AMI ficará desatualizada. Database Amazon RDS Aurora PostgreSQL – Suporte a novas extensões O Amazon RDS Aurora PostgreSQL anunciou o suporte de 4 novas extensões, são elas: pg_cron – Permite uso da sintaxe de cron para agendar comandos PostgreSQL diretamente no banco de dados pg_bigm – Fornece capacidade de pesquisa de texto usando index 2-gram para pesquisas mais rápidas pg_partman – Auxilia no gerenciamento de séries temporais e conjuntos de partição de tabela baseada em série pg_proctab – Uma coleção de funções armazenadas que podem acessar a tabela de processos do sistema operacional para que as estatísticas do sistema possam ser consultadas através do banco de dados Amazon RDS for PostgreSQL – Suporte a lista de permissões para extensões O Amazon RDS PostgreSQL adicionou suporte a lista de extensões permitidas para fornecer aos administradores de banco de dados mais controle sobre seu uso. O RDS suporta mais de 70 extensões do PostgreSQL, com a novidade, é possível especificar quais extensões podem ser instaladas em uma instância do RDS PostgreSQL Machine Learning Amazon SageMaker – Feature Store com suporte a nova API BatchGetRecord O Amazon SageMaker Feature Store é um repositório totalmente gerenciado e desenvolvido para armazenar, atualizar, recuperar e compartilhar recursos de machine learning (ML), a API BatchGetRecord oferece maior flexibilidade e maior taxa de

    Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações