top aws devops tools
As melhores ferramentas de DevOps da Amazon AWS: um pipeline , repositório de código-fonte, construção e implantação com Amazon Web Services
Quando comecei minha carreira em software, cerca de 20+ anos atrás, a infraestrutura (Software e Hardware) para qualquer tipo de desenvolvimento e implantação tinha que ser adquirida.
Isso incluía fazer o pedido de servidores ao fornecedor, aguardar um certo tempo para obter o mesmo, uma vez que o espaço do servidor entregue tinha que ser reservado, instalação do servidor, sistema operacional, configuração de armazenamento, etc. Também tínhamos que nos preocupar com desempenho, disponibilidade (24 * 7), manutenção, rede etc.
Isso era muito esforço envolvido em trazer um servidor para atividades de desenvolvimento e implantação de aplicativos.
O que você aprenderá:
- Evolução da computação em nuvem
- Construir e implantar usando ferramentas AWS
- Integração Jenkins com serviços AWS
- Leitura recomendada
Evolução da computação em nuvem
As coisas tiveram que mudar com a evolução do Cloud Computing, o que significa que você acessa todos os seus aplicativos e bancos de dados pela internet. Portanto, os provedores de computação em nuvem mantêm todo o hardware necessário para executar seu aplicativo da web.
Todos os recursos com uma configuração apropriada de que você precisa para hospedar seu aplicativo estão disponíveis com um clique. O tempo é reduzido drasticamente para disponibilizar os recursos para desenvolvedores. Mais importante ainda, você paga apenas pelo que precisa usar.
O foco para desenvolvedores que usam serviços baseados em nuvem é apenas o que eles precisam para trabalhar em nossos projetos e não se preocupar com a disponibilidade da infraestrutura. Não estou entrando nos tipos de computação em nuvem (IaaS, PaaS, SaaS), há toneladas de informações disponíveis na Internet para descrever o que são.
Existem muitos provedores de nuvem. Mas os 3 mais populares com os quais trabalhei são:
- Amazon Web Services
- Microsoft Azure
- Nuvem do Google
Nesta seção, colocarei meu foco em ferramentas para um pipeline , repositório de código-fonte, construção e implantação com Amazon Web Services . Sem esquecer que as equipes ainda usam ferramentas DevOps como Jenkins, Git, Maven e outras.
Portanto, é imperativo que, embora as equipes possam querer mover seus ativos e artefatos para a infraestrutura em nuvem, também precisemos maximizar seus investimentos existentes em ferramentas e dados com integrações / migrações, tanto quanto possível.
Clique aqui para aprender sobre a AWS e os vários serviços para arquitetos, desenvolvedores e SysOPS. Usaremos a conta gratuita para as ferramentas mencionadas, mas é claro, em um ambiente de produção, você precisará adquirir os serviços para uso.
Construir e implantar usando ferramentas AWS
Do ponto de vista de construção e implantação, veremos os seguintes serviços da AWS
melhor software de extração de dvd para mac
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
O AWS CodePipeline é semelhante ao Jenkins Pipeline, que ajuda a ter uma visão visual do processo de entrega de ponta a ponta.
Portanto, em um CodePipeline, você normalmente irá configurar o seguinte
- Repositório de código fonte - Portanto, seu código-fonte precisa estar no AWS CodeCommit ou no repositório GitHub.
- Serviço de construção - Os detalhes do AWS CodeBuild serão configurados como parte do pipeline.
- Implantar - O AWS CodeDeploy será configurado no pipeline.
- Durante o processo de implantação em diferentes ambientes, se alguma aprovação for necessária, ela também poderá ser configurada
Portanto, se houver uma mudança no código pelo desenvolvedor, a representação visual de Build and Deploy pode ser vista como automatizada.
Configuração do repositório de código-fonte no AWS CodePipeline
Configuração de compilação no AWS CodePipeline que usa compilação Maven
Configuração de implantação no AWS CodePipeline
Execução completa é vista no AWS CodePipeline
2. AWS CodeCommit
AWS CodeCommit é um serviço de controle de versão online seguro que hospeda repositórios Git privados. Uma equipe não precisa manter seu próprio repositório de controle de versão, em vez de usar o AWS CodeCommit para armazenar seu código-fonte ou até mesmo binários como os arquivos WAR / JAR / EAR gerados fora da construção.
Com AWS CodeCommit, você cria um repositório e cada desenvolvedor irá cloná-lo em sua máquina local, adicionar arquivos a ele e enviá-lo de volta ao repositório AWS CodeCommit. Um usa os comandos GIT padrão com o repositório AWS CodeCommit.
Para Por exemplo. uma vez que o repositório AWS CodeCommit é clonado para a máquina local, você deve usar comandos como ‘git pull’, ‘git add’, ‘git commit’, ‘git push’ etc.
Repositório vazio ilustrativo do AWS CodeCommit criado
Clone o repositório para a máquina local
Arquivos adicionados ao repositório AWS CodeCommit
3. AWS CodeBuild
Como vimos, o código-fonte e outros artefatos do projeto são armazenados no repositório AWS CodeCommit.
Para implementar a integração contínua, o AWS CodeBuild como o Jenkins busca as alterações mais recentes do código-fonte do AWS CodeCommit ou do repositório GitHub conforme configurado e com base na especificação de construção Arquivo YAML (criado como buildspec.yml), os comandos são executados com base nas quatro fases, como instalação, pré-construção, construção e pós-construção.
Depois que a construção é concluída, os artefatos (WAR / ZIP / JAR / EAR) são armazenados no AWS Storage, que é um bucket do S3.
Arquivo buildspec.yml de amostra
version: 0.2 phases: install: commands: - echo Nothing in the install phase... pre_build: commands: - echo Nothing in the pre_build phase... build: commands: - echo Build started on `date` - mvn clean install post_build: commands: - echo Build completed on `date` artifacts: files: - target/HelloWorld-Maven.war
Projeto de amostra do AWS Codebuild
Construir sucesso
Artefato (arquivo WAR) copiado para o intervalo S3
4. AWS CodeDeploy
Como o nome sugere, AWS Codedeploy é o serviço de implantação que automatiza a implantação do aplicativo (neste caso, arquivo WAR) para as instâncias do Amazon EC2 Linux ou Windows.
Como agora temos os artefatos armazenados no intervalo S3, que foi concluído com o AWS CodeBuild, os artefatos são coletados do intervalo S3 e implantados de forma adequada no servidor de aplicativos Tomcat ou JBoss etc. no provisionamento de instância AWS EC2.
O AWS CodeDeploy depende de um arquivo YAML chamado appspec.yml, que contém instruções sobre a implantação nas instâncias EC2.
Exemplo de arquivo appspec.yml em que o arquivo index.html é copiado e implantado no servidor Apache
version:10.0 os:linux files: -source: /opt/deploy/index.html destination:/var/www/html/ hooks: BeforeInstall: -location:scripts/before_install runas:niranjan AfterInstall: -location:scripts/restart_server runas:niranjan
before_install roteiro
restart_server roteiro
Repo do GitHub de todos os arquivos necessários para executar o AWS CodeDeploy
Execução de implantação no AWS CodeDeploy
Integração Jenkins com serviços AWS
Como mencionado anteriormente, hoje em dia as equipes estão usando o Jenkins tanto como a ferramenta de IC padrão e, na maioria dos casos, eles não gostariam de sair dela, mas sim de se integrar aos serviços da AWS que discutimos. Embora existam certos procedimentos envolvidos e eu mostrei screenshots da integração.
1. Integração do Jenkins com AWS CodeCommit
2. Integração do Jenkins com AWS CodeBuild
3. Integração do Jenkins com AWS CodeDeploy
Juntando tudo para AWS DevOps Stack:
A pilha olha abaixo para os serviços da AWS que são discutidos acima.
Espero que este tutorial em, ferramentas para um pipeline , repositório de código-fonte, construção e implantação com Amazon Web Services, foi útil para você.
Leitura recomendada
- Tutorial do AWS CodeCommit para implementação de DevOps na nuvem
- Trabalhando na ferramenta DevOps AWS CodeDeploy para implantação automatizada
- Implantação contínua em DevOps
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Tutorial do AWS CodeBuild: Extraindo código do Maven Build
- Entrega contínua em DevOps
- 10 MELHORES ferramentas de monitoramento de nuvem para gerenciamento de nuvem perfeito
- Teste Contínuo em DevOps