You are on page 1of 10
E-Book Apostila 7 - DevOps PTT) ae saat) 3 arquivo é uma tica, Para melhor experiéncia, a ontedido pela midia interativa E-Book -Apostila DevOps DevOps é a sigla dada 3 combinagio de Desenvolvimento e Operagdes. Refere-se a uma abordagem colaborativa, para fazer com que a equipe de desenvolvimento de aplicativos e a equipe de operagdes de TI de uma organizagdo trabalhem perfeitamente com uma melhor comunicacao. Essa é uma filosofia que incentiva a adocdo de desenvolvimento de software iterativo, autoracao e implantacdo e manutengdo de infraestrutura programavel. 0 Devops enfatiza a construgo de confianga e uma melhor ligagao entre desenvolvedores e administradores de sistema. Isso ajuda a organizago a alinhar os projetos tecnoldgicos aos requisitos do negécio. As mudancas implementadas, geralmente, sdo pequenas e reversiveis, que toda a equipe comega a compreender. © Devops é visualizado como um loop infinito que compreende as etapas: planejar, codificar, iberar, implantar, operar, monitorar, voltar ao plano e assim por diante. EOI cry Se voc8 trabalha na érea de TI, seja infraestrutura ou desenvolvimento, ou caso pretenda ingressar nesta érea, certamente jé se deparou ou se depararé com uma histéria como esta que vou contar. ‘Antes de chegar aos usuérios, um produto de software passa por varios estagios, ou seja, o desenvolvedor escreve 0 cédigo, o controle de qualidade testa e, em seguida, 0 administrador do sistema carrega o aplicativo no servidor de produgio (servidor principal, a partir do qual todos irdo acessar o sistema). 0 desenvolvedor instala em sua méquina tudo o que é necessério: a linguagem de programagio na qual seré feito o desenvolvimento, por exemplo, PHP 7.0, um banco de dados MySQL 5.7 um servidor web, Apache. Nao se sabe qual sistema operacional e quais versées de bibliotecas e dependéncias serdo instaladas no servidor. Apés a implementacao da funcionalidade necessdria do aplicativo, é preciso testé-la, Entdo, 0 programador gera um executével ou implanta seu cédigo, prepara uma cépia do banco de dados, gera as informagées sobre o software e instrugdes sobre como instalar. Ele pega todo este conjunto de arquivos e transfere para o testador. O especialista em teste instala tudo que precisa no computador dele, afinal, vocé o orientou a como fazer e, 20 iniciar 0 aplicativo para fazer o teste: erro! 0 software ndo encontra 0 banco de dados. E-Book Apostila Nem vocé ¢ 0 restante da equipe sabem, mas a versdo do MySQL 5.7 € 0 PHP 7.0 séo incompativeis com 0 sistema operacional do especialista de teste. Aqui o desenvolvedor diz “Mas na minha maquina funciona”, Esta era (e € um pouco ainda) a frase de ouro nas empresas. Vocés, entio, resolvem colocar o software direto no servidor de produgdo. Porém, no servidor web no tem o sistema Apache instalado, mas sim o Glass Fish, que é outro sistema de servidor web. Como resultado, ao usar um servidor da web diferente na producao, vocé deve configurar 0 seu sistema e todo o ambiente, logo, é um tempo extra que vai embora. Durante o estudo desta unidade, vocé compreenderé como DevOps pode resolver este problema apresentado. Ao final deste contetido, vocé sera capaz d * Compreender o ciclo de vida DevOps. * Aplicar integracdo e entrega continua envolvendo praticas de DevO} E-Book -Apostila Definindo DevOps Durante muitos anos, a equipe de desenvolvimento e a equipe de operagio trabalhavam isoladamente. De um lado, estavam os desenvolvedores, que eram responsdveis por escrever os cédigos; de outro lado, estavam os administradores do sistema, que eram responsdveis pela implantacdo e integraco. Como havia comunicacéo limitada entre desenvolvimento e operacéo, ‘eles acabavam trabalhando separadamente em um projeto. Com a chegada da metodologia dgil de desenvolvimento de software, esse modelo comecou a mudar. Isso ocorreu porque a metodologia dgil impée um desenvolvimento colaborativo entre ‘equipes multifuncionais. Além disso, com os Sprints (ciclos de desenvolvimento) curtos € langamentos frequentes, que ocorrem a cada duas semanas ou mesmo todos os dias, exigem uma nova abordagem e maior comunicacao entre equipes de desenvolvimento e de operagao. Nesse sentido, foi criada a palavra DevOps, uma juncdo das palavras desenvolvimento e operacdes. Trata-se de uma prética que visa combinar desenvolvimento, garantia de qualidade e operacdes (implantagao e integracdo) em um dinico conjunto continuo de processos. Para que compreender melhor o conceito de DevOps e como essa filosofia se relaciona com 2 metodologia dgil de desenvolvimento de software, é importante ler 0 capitulo indicado a seguir, que serviré como base para o estudo desta aula. Estudo Guiado Leia as paginas 38 a 42 Clique no link e lela 0 tivro Pressman, Roger, S. ¢ Bruce R. Maxim, Engenharia de software. Disponivel em: Minha Biblioteca, (8th edigio}. Grupo A, 2021, Book -Apostila ‘Ao adotar 0 DevOps, as empresas ganham trés vantagens principais que abrangem os aspectos técnicos, comerciais e culturais do desenvolvimento: maior velocidade e qualidade nos langamentos dos produtos, resposta mais répida 3s necessidades do cliente e methor ambiente de trabalho Esses beneficios vém apenas com a compreensio de que DevOps no é apenas um conjunto de ages, mas sim uma filosofia que promove a comunicacao da equipe multifuncional Ciclo de vida DevOps DevOps requer um ciclo composto de varias fases que, ao serem aplicadas coletivamente, se tornam o ciclo de vida DevOps. Essas fases compreendem o planejamento, desenvolvimento, teste, implantagdo, langamento e monitoramento com cooperacao ativa entre diferentes membros de uma equipe. A figura a seguir apresenta um exemplo do ciclo de vida Devops. Ciclo de vida DevOps Embora a visualizac3o pela figura ajude a entender como o DevOps funciona, é fundamental tentar se aprofundar um pouco para descobrir quais sio as diferentes ferramentas de DevOps e como elas E-Book Apostila Leia as paginas 50 a 52 Clique no link e lela otivro Pressman, Roger, S. ¢ Bruce R. Maxim. Engenharia de software. Dispontvel em: Minha Biblioteca, (9th edigo}. Grupo A, 2021, Desenvolvimento continuo A primeira fase do ciclo de vida DevOps é marcada pelo planejamento e pela codificacao do software. 0 planejamento envolve a compreensio do projeto (requisites, funcionalidades, dependéncias entre outros), ea concepcdo de um software com base nessas percepgies. Durante o processo de planejamento nao é utilizado nenhuma ferramenta, entretanto, durante a manutengdo do cédigo existem diversas ferramentas. 0 processo de desenvolvimento do programa (cédigo fonte) comega com a escolha das diferentes linguagens de programagao, como Python, JavaScript, C, C# ete. 0 processo de manutencao do cédigo é denominado Source Code Management (SCM), em que sio utilizadas ferramentas de controle de verso como GIT, TFS, GitLab, Subversion e Mercurial etc, No processo de SCM, o GIT é a ferramenta preferencial que permite um controle de versio distribuido. Para grandes projetos, em que muitos colaboradores esto envolvidos na atividade de desenvolvimento, o GIT estabelece uma comunicacdo confidvel entre as equipes por meio de mensagens de Commit. Com a ajuda de uma ferramenta de controle de versio, uma versao estavel do cédigo do aplicativo é construida na fase de desenvolvimento continuo. Os desenvolvedores também podem empacotar 0 cédigo em arquivos com extensio .exe (executdveis). Teste continuo Esta fase pode ser executada antes ou apés a fase de integracdo continua. Nessa fase, 0 cédigo desenvolvido é continuamente testado quanto a bugs. Um ambiente de teste é simulado com 0 uso de contéineres Docker. Por meio de testes automatizados, os desenvolvedores economizam esforco e tempo, geralmente perdidos em testes manuais. Os relatérios gerados por testes automatizados methoram 0 proceso de avaliagao do teste. Uma equipe de garantia de qualidade define testes de cédigo usando ferramentas de automacio como Selenium, Ranorex entre outras. Se bugs e vulnerabilidades forem revelados, eles sero enviados de volta para a equipe de engenharia. E-Book Apostila Esse estagio também envolve controle de versao para detectar problemas de integra¢o com antecedéncia, Integra¢ao continua (Cl) e entrega continua (CD) 0 cédigo-fonte é modificado varias vezes e essas mudangas frequentes acontecem semanalmente ou diariamente. A integraco do cédigo é 0 nticleo de todo o ciclo de vida do DevOps. Na integracdo continua, novos cédigos que suportam funcionalidades adicionais so construidos e integrados 20 cédigo existente, Desse modo, o cédigo que passa nos testes automatizados é integrado em um {nico repositério compartithado em um servidor. 0 envio frequente de cédigo evita os contflitos de integracdo, ou seja, quando existe muita diferenca entre os ramos individuais de cédigo (0 que cada desenvolvedor esté produzindo) e 0 cédigo do ramo principal (cédigo fonte real) Aentrega continua é uma abordagem que mescla as operacdes de desenvolvimento, teste ¢ implantacdo em um processo simplificado, pois depende fortemente da automacao. Esse estigio permite a entrege automética de atualizagdes de cédigo em um ambiente de produgao. Feedback continuo [As fases de teste continuo e integracio continua slo cruciais, pois garantem melhorias consistentes no cédigo do aplicativo. Sendo assim, a fase de feedback continuo visa analisar essas melhorias e, como o nome indica, reportar as equipes o resultado desta andlise (dar o feedback). Nessa fase, os desenvolvedores sdo responsdveis por avaliar 0 resultado das modificagées no produto final, realizadas nas fases anteriores. Porém, existe aqui um outro personagem importante: o cliente, ele é responsével por testar o programa gerado (lembra do pacote com extenso .exe?) e, apés o teste, ele compartilha suas experiéncias ainda nessa fase. Essa fase do ciclo de vida do DevOps é marcada como um ponto chave, pois pode ocorrer um feedback positive ou negativo. Se negativo, o feedback é avaliado imediatamente os desenvolvedores comegam a trabalhar nas novas mudangas propostas pelo cliente. Por outro lado, em caso de uma resposta positiva do cliente, haverd o lancamento de novas versdes do software. Monitoramento continuo Nesta fase, os desenvolvedores registram dados sobre o uso do software e monitoram continuamente cada uma de suas funcionalidades, em busca de mensagens de erros relatando pouca meméria, sem conectividade com a rede, dificuldade de se conectar com o servidor remoto entre outras. 0 objetivo do monitoramento continuo, entlo, é de garantir a disponibilidade do software, além de determinar as ameagas e causas dos erros recorrentes do sistema, Quando detectados, 05 erros e demais problemas sao corrigidos automaticamente. Nessa fase, hé um comprometimento maior das equipes de operac3o, cujo principal objetivo é de supervisionar a atividade do usudrio e verificar comportamento anormal do sistema. ‘Aqui cabe uma atengo especial: apesar de ser um ciclo continuo, quando algum problema é detectado nessa fase, 0 aplicativo é rapidamente executado novamente em todas as fases anteriores do ciclo DevOps. Implantag¢ao continua E-Book Apostila {A fase de implantago continua pode ocorrer antes do monitoramento continuo. Porém, como & uma fase que est sempre ativa no ciclo de vida DevOps, ela pode ser também executada apés 0 monitoramento continuo. Nessa fase, 0 cédigo do software que foi finalizado anteriormente é implantado nos servidores de producdo, ou seja, servidor de acesso principal do sistema. 0 Gerenciamento da Configuracdo é um processo chave nessa fase, e realiza a implantac3o precisa do cédigo do software em todos os servidores. A consisténcia no desempenho do aplicativo e nas condicées funcionais é estabelecida e selecionada, 0 cédigo € liberado para os servidores, as atualizacdes s8o agendadas para todos os servidores ¢ essas configuracées so mantidas consistentes em todo 0 proceso de produco. Ansible, Puppet ¢ Chef sio algumas das ferramentas DevOps eficazes usadas para Gerenciamento de Configuracao, em que, frequentemente, executam a implantagdo répida e continua de novo cédigo. Nessa fase so usadas algumas ferramentas de conteinerizagdo como o Vagrant para obter uma implantagdo continua por meio do processo de gerenciamento de configuracao. 0 Vagrant, uma ferramenta de conteinerizagao, desenvolve coeréncia em diferentes ambientes - do desenvolvimento e teste 8 preparagio e produgio. Aescalabilidade da implantacdo continua é garantida por ferramentas como o Docker. Ferramentas como 0 Vagrant e Docker colaboram para anular todos os tipos de falhas de produgio ¢ erros de sistema, replicando e empacotando os acoplamentos de software das fases de teste e desenvolvimento. Em sltima andlise, 0 aplicativo é executado sem problemas em computadores diferentes. Operagées continuas Essa é considerada a tltima fase do ciclo de vida DevOps, e consiste em automatizar o processo de liberago do aplicativo e as atualizagdes subsequentes. Trata-se de um ciclo mais curto, permitindo que os desenvolvedores acelerem continuamente o tempo de publicagio do software. Metodologias, principios e estratégias Uma vez que a pessoa comega a seguir as metodologias de DevOps, ele encontra uma forma ou outra de fazer o software agir de forma semethante desde o desenvolvimento até a producao, por meio de testes. Ele implanta as alteragdes individualmente, tornando os bugs facilmente visiveis. Esses, uma vez descobertos, levam a melhorias de cédigo por meio de investigacdes e canais de feedback constantes. Enquanto os desenvolvedores executam software ao vivo e as operacBes de TI esto envolvidas em reunides de design ~ ambos, juntamente com outros especialistas, podem contribuir para investigacdes e canais de feedback, que ajudam a promover uma cultura DevOps. Com o tempo de ciclo, desde a concepeao até a entrada em operacao do software reduzido, sua organizagio pode capitalizar as oportunidades de mercado, proporcionando, assim, uma vantagem competitiva para 0 seu negécio. ook - Apostila EOE ees ie cee cence On eeu cue Er eae en Oe hapa eer Cee ie eee ror) Pee tees Organizagées que utilizam métodos tradicionais (cascata), caracterizados por etapas sequenciais de desenvolvimento de software e longos intervalos entre langamentos de software, podem utilizar os principios de DevOps para melhor alinhamento entre funcdes como Dev, QA € Operacées, com maior transparéncia em todas as funcées. {As organizacdes que adotaram uma ou mais metodologias Sgeis podem, facilmente, fazer com que seu pessoal de desenvolvimento e operacdes colabore durante todo o processo de desenvolvimento. DevOps traz muitos beneficios e também desafios. No entanto, nos movimentos gémeos acelerados de Transformacdo Digital e Transformagio Agil, DevOps e suas extensées relacionadas so um componente crucial, especialmente se a pessoa estiver implantando software na nuvem, Embora seja a Gnica maneira de colocar sua organizacao em uma cultura colaborativa e em um modo de entrega continua, ela traz desafios significativos, incluindo habilidades de pessoas, Infraestrutura de tecnologia e 0 esforso de juntar tudo para que funcione - 0 que, no entanto, deve ser superado. Claramente, isso nao pode ser feito da noite para o dia - é preciso comprometimento, adesdo € financiamento da lideranga e investimento em pessoas, treinamento e infraestrutura de tecnologia Por fim, retomando aquele problema apresentado no inicio deste estudo, todo aquele problema de configuragao pode ser resolvido com DevOps. Com 0 uso das ferramentas DevOps corretas, & possivel realizar a implantacdo do sistema no servidor de teste de forma automstica e, posteriormente, quando for enviar para produc3o, também configurars automaticamente este servidor. Se alguma das etapas falhar, o desenvolvedor receberé uma notificacdo e consegue se recuperar. Logo, a aplicagio da filosofia DevOps pode ajudar a simplificar os processos de negécios da empresa E-Book -Apostila Externo Cone arene) Referéncias Bibliograficas PRESSMAN, Roger, S.; MAXIM, Bruce R, Engenharia de software. 9 ed. Porto Alegre: Grupo A, 2021. 20-10

You might also like