Baixe o app para aproveitar ainda mais
Prévia do material em texto
Infraestrutura Ágil Infraestrutura Ágil com DevOps Ma. Patrícia Valério Martinez • Unidade de Ensino: 01. • Competência da Unidade: Cultura DevOps, Processos DevOps, Mentalidade Digital, Pilares da Infraestrutura Ágil, Provisionamento Automatizado de Vms e Métricas. • Resumo: O conceito de Infraestrutura Ágil com DevOps. • Palavras-chave: DevOps, Digital, Infraestrutura Ágil e Vms. • Título da Teleaula: Infraestrutura Ágil. • Teleaula nº: 01. Contextualizando • Cultura DevOps; • Processos DevOps; • Mentalidade Digital; • Pilares da Infraestrutura Ágil; • Provisionamento Automatizado de Vms; • Métricas. Cultura DevOps • A cultura digital moldou nossas práticas, costumes e formas de interações sociais. Era esperado que o mundo dos negócios sofreria também um grande impacto com as transformações oriundas do digital. Para atender toda essa demanda de interação homem-máquina houve um crescimento exponencial no desenvolvimento de sistemas computacionais e sobretudo em aplicativos simples que atendam a demandas pontuais do cotidiano. Cultura DevOps • Esse crescimento exigiu maior agilidade e qualidade, já que a concorrência também aumentou e a exigência por melhores experiências. O que se percebia era uma estrutura apartada, onde os profissionais responsáveis pela operação desconheciam os processos da engenharia de software e os desenvolvedores, não tinham real noção das implementação de uma solução. Cultura DevOps • O mercado de desenvolvimento de software passou a ter uma mentalidade diferenciada. Focada no usuário e em práticas ágeis que satisfizesse a vontade imediata do cliente sem perder a qualidade. Para que essa carência fosse suprida, movimentos oriundos da infraestrutura ágil, desenvolveram uma organização de trabalho que de tão complexa passou a ser chamada de cultura DevOps. Cultura DevOps • Atividades rotineiras como: planejar uma viagem, fazer uma compra, ler um livro, pensar um lazer com a família, dirigir até um determinado destino, já são facilitadas pelo uso de programas e sistemas computacionais. Cultura DevOps • Com uma cultura cada vez mais voltada para o digital, as empresas tiveram que se adequar as novas realidades e passaram a produzir softwares para tratar de problemas diversos. Existem softwares para analisar desempenho de setor, faturamento, fluxo de caixa, funcionários e investimentos. • A entrega de softwares tornou-se um problema em diversas empresas e grande parte desses problemas ocorrem por conta da má distribuição de funções entre as equipes. Cultura DevOps • DevOps surge para automatizar os processos de desenvolvimento e de infraestrutura criando uma nova cultura de trabalho que facilita a capacidade de uma empresa em desenvolver e distribuir aplicativos ou serviços de qualidade e em alta velocidade. Focando em automação, pode-se criar uma política de trabalho colaborativo, de compartilhamento de ferramentas e conhecimentos que facilita o trabalho em equipe e cria uma cultura de cooperação mútua. Cultura DevOps • Através da cultura DevOps, busca-se integrar todo o ciclo de produção que vai desde a análise de requisitos até a sua produção. A ideia é que essa integração seja feita por processos sistematizados, com testes constantes para garantir que o software satisfaça os requisitos de qualidade. Assim, qualquer erro encontrado é facilmente corrigido pela equipe de desenvolvimento e uma nova versão do software passa a ser desenvolvida Cultura DevOps • Com a DevOps, qualquer alteração pode ser feita em qualquer fase do desenvolvimento de acordo com a avaliação feita pelo cliente. Esses testes acontecem seguindo a operacionalidade do controle de qualidade, métricas criadas para validar os requisitos do software. • O termo surge da junção das palavras Dev (Development) e Ops (Operations), ou seja, desenvolvimento e operações. Cultura DevOps • Algumas empresas de TI tem equipes distintas, que embora trabalhem sempre juntas, organizam-se para criar novos produtos e aplicações (desenvolvimento) e para cuidar desses produtos e aplicações em produção (operação). Um preza pela inovação e o outro pela estabilidade. Cultura DevOps • A grande vantagem da metodologia de desenvolvimento ágil está na velocidade das entregas. • Os produtos desenvolvidos são facilmente adaptados, essa característica em um mercado dinâmico como o de softwares é essencial. A velocidade de entrega e atualização representa uma grande vantagem competitiva. A outra grande vantagem é que com o sistema de entregas contínuas é possível oferecer mais produtos por preços mais competitivos. Cultura DevOps • A entrega contínua é uma premissa do manifesto ágil que possibilita pequenos ciclos de entrega de softwares, ao invés de entregar uma aplicação complexa de funções são disponibilizadas versões do produto ou serviço em tempos curtos. Cultura DevOps Processos DevOps • DevOps é um termo criado para descrever um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações (infraestrutura) e de apoio envolvidas (como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços. Processos DevOps • Para melhor sintetizar os processos de DevOps, Jez Humble, criou o acrônimo CALMS, o acrônimo significa Culture (Cultura), Automation (Automação), LeanIT (Metodologia Lean), Measurement (Mensuração) e Sharing (Compartilhamento). • Entender o significado dos conceitos apresentados, ajuda a definir melhor a organização dos processos DevOps. Essa estrutura define as entregas e como a equipe implanta e se integra coletivamente, dando sentido aos negócios. Processos DevOps • Cultura (culture) : DevOps não é um processo ou uma ferramenta, mas uma mudança de pensamento que se concentra na colaboração entre equipes separadas em uma organização. O foco principal do desenvolvimento não é mais na produção de uma tecnologia por si só e sim no atendimento de uma demanda do mercado. Cultura, portanto, visa tratar o relacionamento interpessoal das equipes. Os agentes envolvidos no processo precisam ter disposição para aprender, experimentar e confiar na organização e na capacitação do seu pessoal. Processos DevOps – Cultura • Automação (automation): os processos exigem a criatividade e intuição humana, outros podem ser feitos mais facilmente por computadores. A ideia da automação é que esses processos rotineiros, possíveis de serem programados computacionalmente, sejam feitos de forma automatizada. A automatização, evita erros humanos, traz economia financeira e agiliza etapas do fluxo de criação, documentando e padronizando etapas do processo. É comum nessa etapa o uso da técnica de pipeline. O DevOps usa implantações automatizadas para enviar código totalmente testado para ambientes provisionados de forma idêntica. Processos DevOps – Automação • Pensamento Enxuto (Lean it): ajuda a melhorar as etapas de entrega, mapeando os processos é possível entender e apontar os pontos que estão levando mais tempo para serem concluídos e aqueles que estão exigindo que se faça novamente o mesmo trabalho. Com esses entendimentos é possível eliminar desperdícios, melhorar o aprendizado, facilita a tomada de decisão e a entrega rápida com qualidade. Um processo enxuto faz pouca diferença na experiência do cliente final, já na produção tem um grande valor. Processos DevOps – Lean • Medição (Measurement): As medições devem permitir que os erros sejam identificados rapidamente durante o estágio de pós-implantação para correção do código, se necessário, com mais agilidade. A mensuração do ambiente gera feedbacks importantes para saber o que acontece no software. É possível que esse conhecimento auxilie na previsão de incidentes ou desastres, analisando falhas e gerando melhoria. O ideal é que se meça tudo o que for possível: desempenho, processo, negócios,etc. Processos DevOps – Medição • A medição é o melhor suporte para a avaliação. Dentre o que pode ser medido temos: usuários afetados por bugs, tempo médio de resposta do sistema, com que frequência estão acontecendo bugs recorrentes e classificar quais bugs são resolvidos e quais são novos. Processos DevOps – Medição • Compartilhamento (Sharing): Um dos objetivos principais do DevOps é o trabalho compartilhado com equipes distintas e esse é um dos maiores desafios, já que todo o trabalho deve ser pensado como um todo. Essa etapa é onde se avalia se as equipes estão trabalhando juntas e se comunicando de forma eficiente. O trabalho compartilhado ajuda para que os processos sejam autossustentáveis, dessa forma a ausência de um colaborador não atrapalha o fluxo do processo. Processos DevOps – Compartilhamento • Esse pensamento sugere a nivelação do conhecimento em detrimento a descentralização. Os membros de uma equipe aprendem com as experiências de outros membros, isso faz com que todos trabalhem com o pensamento voltado à uma única direção. Processos DevOps – Compartilhamento • Todos esses pontos se comunicam e são tratados de forma única. É isso que faz com que a DevOps se sustente e traga essa característica transformadora. Portanto, embora muitos a identifiquem como sendo uma metodologia de desenvolvimento de software ou método para a gestão de projetos, percebe-se claramente que se trata de uma mudança de cultura e como toda mudança exige paciência, conhecimento e comprovações para a aceitação Processos DevOps • Existem várias práticas quando levamos em conta a cultura DevOps, tais como: Continuous Integration (CI), Continuous Delivery e Continuous Deployment (CD). Práticas DevOps • Integração Contínua(CI) integra o trabalho de forma que toda a equipe tenha um feedback constante do desenvolvimento. Toda a equipe tem acesso a um repositório de códigos, logo quando é identificada alguma alteração em um determinado ciclo é gerado um código compilado que pode ou não passar por uma etapa de teste. Práticas DevOps • Entrega Contínua quando o código compilado está em um estágio de disponibilidade para outros ambientes, essa prática só acontece depois de se verificar o sucesso nos ambientes anteriores. Podemos decidir como fará os lançamentos de acordo com os requisitos de negócios. Práticas DevOps • Implantação Contínua é mais ampla que a entrega contínua, pois com essa prática, todas as mudanças que passam por todos os estágios de seu pipeline de produção já são liberadas para o cliente. Não há mais intervenção humana, testes de falha impedirão que uma nova mudança seja implantada na produção. Práticas DevOps • O CI e CD lançam novas versões de softwares com mais agilidade e frequência, assim sendo os obstáculos que existem entre o desenvolvimento e a produção são superados. Práticas DevOps Mentalidade Digital • Pessoas, organizações e empresas encaram atualmente um desafio digital que permeará praticamente todos os aspectos da vida moderna. • A mentalidade digital representa a integração das tecnologias digitais com os modelos de negócios, gestão, perfil profissional, consumo dos produtos e serviços, relacionamentos e liderança de talentos na Era Digital. Trata- se de uma prioridade e uma urgência, um imperativo diante de mercados cada vez mais globalizados. Mentalidade Digital • Existem 5 chaves para uma mentalidade digital, que são: o Fornecer visão e capacitação: é importante que o líder defina a visão de como a empresa espera evoluir na transformação digital, promovendo um ambiente organizacional em que os funcionários se sintam seguros para experimentar suas ideias e onde os aprendizados de suas experimentações são sistematicamente capturados, analisados e postos em prática. Mentalidade Digital o Descentralizar o poder hierárquico tornando-se arquiteto de escolha: descentralizar o poder na tomada de decisões não significa deixar de estar no comando, mas ao invés de se ater a regras rígidas, os líderes devem procurar influenciar mais os resultados por meio da maneira como elaboram e apresentam as escolhas aos mais adequados para tomar as decisões e realizar as tarefas, ou seja, as escolhas são tomadas a partir da interação com a equipe. Mentalidade Digital o Sustentar mas interromper: mesmo com uma abordagem nova, o líder deve sustentar algumas práticas antigas que trazem a sensação de estabilidade e ajudam os funcionários a lidar com a incerteza a medida que começam a desenvolver novas habilidades e capacidades. As novas práticas devem ser protegidas e valorizadas e adicionadas aos poucos até que se tenha o cenário ideal. Mentalidade Digital o Confiar nos dados e na intuição: para ajudar na tomada de decisão os dados são importantes, porém uma mentalidade digital não exclui o julgamento e a intuição. Muitas vezes é preciso confiar na intuição, ajudando os líderes a formular hipóteses e definir novas premissas. Mentalidade Digital o Seja cético mas tenha a mente aberta: o líder deve incentivar a experimentação. Mesmo quando não desconfiar de uma prática ou de uma nova tendência digital que pode não funcionar para a sua organização, permita-se as experiências e engaje um exercício de criação ativa de sentidos. Mentalidade Digital • Analisando a mudança de mindset, as características da liderança com pensamento digital e entendendo o que propõe a cultura DevOps, podemos traçar o perfil do profissional de DevOps no mercado de trabalho. • Na área de desenvolvimento é exigido do profissional proatividade, para trabalhar as práticas DevOps precisa ser generalista, sabendo atuar tanto no time de desenvolvimento como no de operações e infraestrutura. Mentalidade Digital • Uma outra característica recomendável é que tenha conhecimento de negócios, sabendo dialogar com o cliente, conhecer as melhores práticas e metodologias e conhecer a gestão de projetos. Mentalidade Digital • Um profissional DevOps deve ter a mentalidade plural, colaborativa e cooperativa, presar continuamente pelo crescimento, ter a compreensão da abordagem ágil, entender que os consumidores são também produtores, possuir a natureza exploratória, abraçar a diversidade e ir além do óbvio, envolvendo-se em diálogos e ideias, mesmo que radicalmente diferentes de seus valores e padrões. Mentalidade Digital • Um movimento que começou e se sustenta na transformação digital e na mudança de pensamento, provocando uma reformulação em toda a indústria de software e exigindo uma adequação no perfil dos profissionais da área de TI. Mentalidade Digital Infográfico – DevOps • Seu chefe quer que você monte uma equipe de profissionais de desenvolvimento e faça a mudança gradativa das práticas DevOps. Mas sabendo que é uma tarefa complicada, foi sugerido que você escolha um profissional dentre os colaboradores da organização e junto com ele prepare uma capacitação para os demais, mostrando as boas práticas DevOps. Descrição da Situação Problema • Qual o perfil do profissional que você escolherá para ser seu braço direito nessa missão? • Quais são as boas práticas DevOps essenciais para já irem estruturando o conceito DevOps? Descrição da Situação Problema • O perfil do profissional escolhido deve ser responsável por otimizar a produtividade dos desenvolvedores e a confiabilidade das operações, desde a etapa de idealização, passando pelo desenvolvimento, até o feedback para garantia de que o produto atenda as necessidades dos clientes. • Com base na comunicação e colaboração, o DevOps permite a integração das equipes, padronizando e implementando mais velocidade nos processos. Solução da Situação Problema • As primeiras práticas que devem ser trabalhadas são: o A cultura dos microsserviços que é uma técnica de desenvolvimento que consiste em separar uma aplicação em pequenos serviços. O que faz com que a aplicação passe ater o caráter de uma suíte de serviços onde é possível fazer atualizações periódicas e deploy individual. Solução da Situação Problema o Integração Contínua (IC): o código passa a ser atualizado frequentemente pela equipe utilizando um sistema de versionamento são realizados testes para procurar por bugs de forma rápida, esses processos podem ser automatizados por serviços como o AWS. o Infraestrutura em Cloud: a computação em nuvens, com os serviços de compartilhamento e a facilidade de escalabilidade e a virtualização, possibilita ganhos em performance e custos. Solução da Situação Problema o Logs: automatizar o sistema de logs ajuda a solucionar problemas e identificar erros. Para essa automatização é possível usar ferramenta como: Amazon CloudWatch. o Automação: escolha uma linguagem de programação que facilite os processos de logs, alertas e monitoramentos, o Python é uma das mais usadas. Solução da Situação Problema Pilares da Infraestrutura Ágil • Em 2001 um grupo de especialistas em desenvolvimento de software se reuniu com o objetivo que criar um manifesto que introduzisse na indústria de software uma proposta de desenvolvimento mais efetiva e leve. Dessa reunião surgiu o Manifesto Ágil um dos movimentos mais duradouros e influentes no campo de software. Pilares da Infraestrutura Ágil • A infraestrutura de TI, com seus componentes indispensáveis para execução e gerenciamento, que incluem armazenamento de dados, sistemas operacionais, rede, software, hardware e todos os seus serviços, viu na abordagem ágil, conceitos e ferramentas que evoluíram para uma consolidação do que chamamos de infraestrutura ágil. Pilares da Infraestrutura Ágil • Um dos pilares dessa mudança é a automação. É preciso automatizar processos que exijam o mínimo possível de mão de obra humana. • Geralmente tarefas como provisionamento, configuração, implantação e desativação podem ser automatizadas. Pilares da Infraestrutura Ágil • A automatização consiste em utilizar ferramentas que tornam processos manuais em processos automáticos, que vão desde a instalação de um sistema operacional até a configuração e instalação de serviços. • Com a prática, segue-se a premissa da infraestrutura versionada, ou seja, a criação de versões do código da infraestrutura, com o intuito de se obter a redução nos erros de execução e garantia de padronização. Pilares da Infraestrutura Ágil • Duas ferramentas que podem ser usadas para automatização: • Puppet é uma ferramenta de gerenciamento de configurações, que mantém os servidores padronizados, executa instalações (deploy) de forma automatizada, executa tarefas em larga escala e mantém a infraestrutura atualizada e segura. Trabalha com o modelo master/cliente, onde o Puppet master é o servidor central e os nodes são os clientes conectados ao master. Pilares da Infraestrutura Ágil o Ansible foi projetada em Python, inclui centenas de módulos para oferecer suporte a uma ampla gama de integrações, incluindo Amazon Web Services (AWS) e recentemente começou a oferecer suporte ao Windows. Pilares da Infraestrutura Ágil • Um outro pilar da infraestrutura ágil é a Infraestrutura de testes. A qualidade de um software é determinada pelo seu desempenho, manufatura, confiabilidade, manutenibilidade, ergonomia, segurança, custo, tempo de lançamento, apoio linguístico, entre outros. Para que se constate essa qualidade é imprescindível que se estabeleça testes adequados em um plano integrado de testes que passe por todas as fases do ciclo de vida do software, desde o projeto até o descarte do produto. Pilares da Infraestrutura Ágil • Existe a possibilidade de automatizar testes que serão feitos após cada versão e os problemas podem ser identificados antes mesmo de entrar na fase da produção. Pilares da Infraestrutura Ágil • A infraestrutura versionada garante que tenhamos sempre o código atual, mas é preciso que se tenha um ambiente automatizado para controle dessas versões. • O controle de versão é responsável por registrar as mudanças feitas nos códigos de modo que você possa recuperar versões específicas quando precisar. Pilares da Infraestrutura Ágil • Um Sistema de controle de versão distribuído, como exemplo, o Git, registra as mudanças que ocorrem no código fonte de um projeto permitindo que os arquivos possam ser alterados de forma simultânea por inúmeras pessoas sem que se tenha a preocupação dessas alterações serem sobrescritas umas pelas outras. E se houver algum problema, pode-se restaurar a versão anterior. Pilares da Infraestrutura Ágil • O GIT permite que se faça commit (envio de código alterado) em um módulo a qualquer momento. Os conflitos entre esses commits são resolvidos pelos programadores. Os minúsculos módulos desacoplados e a frequência de consolidação rápida resultam em ciclos de tempo pequenos. • A capacidade de criar um conjunto de testes abrangente e de execução rápida que testa quase tudo e tem os ingredientes da Entrega Contínua. Pilares da Infraestrutura Ágil • Uma das características da infraestrutura ágil é que com o auxílio da virtualização e da computação em nuvens é possível configurar ambientes temporários, ou seja, ambientes que não sejam de produção. • Esses ambientes servirão apenas para a execução de um conjunto de testes automatizados antes de uma nova implementação e serão descartados assim que os testes forem validados e definidos o deploy da produção. Pilares da Infraestrutura Ágil • A Entrega Contínua tem a característica de possibilitar a execução e entrega de tipos diversos de tarefas em fluxo. O Pipeline de Entrega é o nome desse processo e pode ser feito com um servidor de automação como o Jenkins. • O Jenkins é uma ferramenta poderosa que automatiza as etapas de produção, teste, implementa e serve de suporte a integração das equipes e os processos de Entrega Contínua. Pilares da Infraestrutura Ágil • Outro item importante na infraestrutura ágil é definir uma ferramenta de monitoramento que acompanhe o crescimento do ambiente garantindo que tudo esteja sendo monitorado. • Os sistemas de monitoramento auditam constantemente ativos de TI com o objetivo de verificar o seu status e checar sua performance. O monitoramento também auxilia na experiência do usuário, pois faz simulações de acessos. Pilares da Infraestrutura Ágil Provisionamento Automatizado de Vms • Uma das características primordiais das infraestruturas de TI é a obrigatoriedade de estarem sempre estáveis e disponíveis. A primeira importante função das estratégias de virtualização é garantir o desempenho e a segurança dessas infraestruturas. A virtualização não é mais apenas um instrumento para criação de máquinas virtuais (Vms), passou a ser uma ferramenta dentro da gestão ágil que potencializa soluções com migração de fluxo de trabalhos ativos, monitoramento, distribuição de carga de trabalho, garantia de disponibilidade e aprimoramento do uso do hardware. Provisionamento Automatizado de Vms • A infraestrutura de TI abrange servidores físicos e virtuais que trabalham concomitantemente executando serviços. • As aplicações virtuais minimizam a complexidade dos processos de provisionamento de serviços e garantem mais agilidade na produção, pois com a chegada de tecnologia de virtualização com custo acessível e ferramentas como Puppet, o provisionamento com máquinas virtuais pode ser automatizado. Provisionamento Automatizado de Vms • Puppet é um utilitário para gerenciamento de configuração de código livre. Ele roda em muitos sistemas como Windows e inclui sua própria linguagem declarativa para descrever a configuração do sistema. • O Puppet é utilizada para configurar, gerenciar e implantar servidores. Provisionamento Automatizado de Vms • O provisionamento abrange a criação e configuração de máquinas virtuais que simulam o hardware, seleciona-se as configurações de hardware virtualou como a máquina virtual usará o hardware real e as configurações do sistema operacional. Para agilizar essa tarefa, pode-se usar templates que já apresentam essas configurações (hardware e sistema operacional) da nova máquina virtual. Quando o sistema precisar de uma máquina semelhante a alguma que já exista, o sistema entregará uma nova máquina virtual mais rapidamente e pronta para ser usada. Provisionamento Automatizado de Vms • Exemplo de uso da virtualização: suponha que você use três servidores em sua infraestrutura de TI, o primeiro para gerenciamento de e-mails, um segundo para os serviços web e um terceiro para guardar processos de aplicações antigos (aplicações legadas). Todos os servidores são importantes, mas isso está lhe custando muito. A ideia da virtualização é que você possa virtualizar, por exemplo, o servidor de aplicações antigas, pois embora trate de aplicações antigas em linguagens de programação obsoletas, ainda é preciso que se guarde. Provisionamento Automatizado de Vms • A solução que a virtualização apresenta é que se possa trocar esses servidores físicos por processos virtualizados para se tenha economia com a infraestrutura física. Ou seja, você poderia dividir o servidor de gerenciamento de e-mail para que ele opere com 30% da capacidade, 30% para web e 30% para as aplicações legadas. Então teria dois servidores desocupados para serem usados em outras aplicações ou até serem desativados. Provisionamento Automatizado de Vms • Além do suporte a gerência de configuração para desenvolvimento de softwares, a virtualização pode ser usada, para simular sistemas computacionais históricos em hardware moderno, como mecanismo de garantia de recuperação de desastres, para teste de programas, incompatibilidade de sistemas operacionais. Provisionamento Automatizado de Vms • Segue quatro benefícios do uso de virtualização: o Padronização: muitos componentes e subsistemas usam configurações diferentes de hardware, com a virtualização é possível criar um padrão de hardware para ambientes físicos que rodarão ambientes distintos e plataformas virtuais heterogêneas. Facilidade de manutenção de baselines, sistemas operacionais e plataformas de aplicação, podem ser implantados combinando vários computadores facilmente. Provisionamento Automatizado de Vms o Resposta Rápida para mudanças de requisitos: se após a análise de requisitos você constatou que precisará de um novo ambiente de testes, em minutos poderá configurar uma nova máquina, sem custo, em um servidor que já exista. É claro que não poderá configurar infinitas máquinas virtuais (VMs) mas qualquer economia na compra de hardware é válida. Provisionamento Automatizado de Vms o Consolidação: em empresas imaturas geralmente os itens de configuração (IC) e de testes em máquinas físicas são separados. Com a virtualização pode-se oferecer um serviço para os times de desenvolvimento trabalharem juntos em uma infraestrutura consolidada. o Facilidade de manutenção de baselines: mantendo uma biblioteca de imagens de baselines, sistemas operacionais e plataformas de aplicação, podem ser implantados combinando vários computadores facilmente. Provisionamento Automatizado de Vms • Um outro benefício é permitir o controle programático de características do sistema como conectividade de rede. • Por exemplo, testar o comportamento de um cluster desconectando um ou mais nodos (nós de rede) e observar o efeito no sistema. Melhora também a capacidade de rodar testes longos, já que é possível ao invés de rodar em uma única máquina fazer de forma paralela. Provisionamento Automatizado de Vms • O provisionamento de ambiente de maneira incremental é feito através de um processo automatizado, em vez de começar do zero, você pode usar uma baseline conhecida, instalar um agente de automação de datacenters, de modo que as máquinas virtuais tenham características próprias para que possam ser implementadas em sistemas distintos. Provisionamento Automatizado de Vms • O conceito de baselines, refere-se a criar ambientes virtuais (servidores virtuais), salvá-los como imagens e configuração, e fazer quantas cópias quiser. Quando for necessário, você pode reverter qualquer ambiente ao seu estado anterior, já que eles serão cópias fiéis do original. Provisionamento Automatizado de Vms • Todos esses processos inteligentes, automatizados e estruturados precisam ser bem geridos para que os pilares da infraestrutura ágil sejam respeitados. Provisionamento Automatizado de Vms Métricas • O conceito DevOps, propõe um trabalho colaborativo por parte das equipes de desenvolvimento e operações de TI, na entrega de softwares melhores com custo menor, em menos tempo e com riscos menores. • Como uma solução para uma demanda específica de negócios é preciso que os projetos iniciais demonstrem resultados positivos para justificar o apoio da diretoria. As métricas de DevOps se prova fundamental para o sucesso da implementação. Métricas • Com métricas de desempenho que possam ser compartilhadas e entendidas globalmente, fica mais fácil de demonstrar o impacto das mudanças no desempenho da organização como um todo, além de identificar com precisão em quais aspectos ele pode ser otimizado ou modificado. Métricas • As métricas de monitoramento variam de acordo com a necessidade particular de cada organização e mede-se: o A Latência: tempo de execução, espera e resposta de atendimento de uma solicitação. o O Tráfego: medida da carga de trabalho, da demanda que se exige do sistema. Métricas o Os Erros: mensura as taxas de solicitações com falhas, sejam parciais ou completas. o A Saturação: controle dos recursos que precisam ser mais restritos (controle de memória ou restrição de E/S), medição de carga de trabalho em níveis mais altos ou identificar a capacidade de armazenamento de um disco. Métricas o Disponibilidade de servidores: quantificar quantos servidores estão ativos ou inativos em uma rede. o Métricas de segurança: definição dos computadores que estão com softwares antivírus instalados, patches de segurança ativos, checar as intrusões, autenticações e autorizações. Métricas • Geralmente quando se constrói um sistema de monitoramento do zero, atribui a média de latência, o uso médio da CPU, da memória e da capacidade do banco de dados. • São fatores que devem ser prioridades no planejamento das métricas. Com o emprego das métricas será possível uma otimização que possibilitará que se faça um monitoramento contínuo em vários aspectos é preciso que seja feito configurações para que o monitoramento seja eficiente. Métricas • As configurações para que o monitoramento seja eficiente, são: o Fazer alterações no monitoramento da configuração (quantas solicitações de pull request ou alterações por semana são feitas no repositório que contém a configuração de monitoramento). Métricas o Ter Controle dos Falsos positivos (alertas que foram dados, mas que não ajudaram a prever falhas e precisam ser excluídos) e dos Falsos negativos (falhas que aconteceram, mas que não foram alertadas). o Criar, Confirmar e Silenciar alertas. o Configurar a usabilidade dos alertas, runbooks e painéis para que seja compreensível por todos da equipe. Métricas • As métricas para DevOps lidam com as questões de desenvolvimento, operações e suporte, como velocidade do desenvolvimento de aplicações, resposta do consumidor, porcentagens de erros e falhas, volume de pedidos e tempo de reparo. • A maioria dessas métricas se divide em três categorias: Métricas • Processos: são as métricas voltadas para a análise da velocidade, eficiência, produtividade e segurança dos processos de desenvolvimento de software. • Alguns exemplos de Key Performance Indicators (KPIs) utilizados são a frequência e velocidade de deployment, velocidade de verificação do software (QA), Tempo Médio Para Restaurar o Serviço(TMPRS - Tempo Médio Para Restaurar o Serviço). Métricas • Pessoas: a influência das pessoas envolvidas no processo de produção costuma ser um dos aspectos mais difíceis de medir em uma empresa. Métricas voltadas para as pessoas geralmente incluem tempo de resposta, turnover ( rotatividade de pessoal) e capacidade. Outra possibilidade são os indicadores mais subjetivos e culturais, como grau de autonomia, fluidez no trabalho e compartilhamento de conhecimento das equipes. Métricas • Tecnologia: as métricas de tecnologia avaliam o uptime (tempo em atividade) dos sistemas, redes e aplicações e também as taxas de erros, como por exemplo, o número de incidentes por release de produto ou serviço. Métricas • Alguns exemplos de KPIs que pode determinar o grau de sucesso do DevOps na empresa: o Frequência de deployment: essa métrica indica a frequência com que uma empresa lança uma nova versão de um produto ou serviço, medida com base no número de deploys por determinado período de tempo (horas, dias, semanas ou meses). KPIs o Duração do ciclo de vida do desenvolvimento: abrange todo o processo de elaboração de um produto ou serviço, desde a sua concepção até a entrega para o cliente. o Números de falhas e incidentes: para que as entregas tenham algum valor é necessário diminuir ao máximo o número de falhas e incidentes nos deploys. Também é esperado que esses números caiam com o tempo, a medida que as equipes desenvolverem suas habilidades e ganharem mais experiência. KPIs • Quando um produto ou serviço apresenta uma falha, quanto tempo a empresa leva para desenvolver uma solução e enviar para a produção e restaurar as funções? • A métrica que avalia esse tempo é Tempo Médio Para Restaurar o Serviço (TMPRS) e é um dos KPIs mais importantes para determinar o sucesso do DevOps em uma organização. KPIs – TMPRS • Vamos supor que você entregue uma aplicação que preenche todos os requisitos, mas eventualmente identifica falhas nas suas funções e a restauração dos serviços acaba demorando demais. Nesse caso, o valor da sua entrega terá sido prejudicado pelo alto TMPRS, acarretando na perda de clientes, investimentos e credibilidade da sua marca. • Por isso, o ideal é que as equipes DevOps produzam entregas frequentes, com índices reduzidos de falhas e um TMPRS curto. KPIs – TMPRS Infográfico – Métricas DevOps • Com a garantia de uma infraestrutura monitorizada espera- se que as equipes de desenvolvimento e operações consigam gerir seus processos com eficiência. Para isso é necessário quantificar esse desempenho usando práticas de monitoramento. • Faça uma pesquisa sobre as métricas DevOps. O que precisará ser checado nas práticas de sua empresa para certificar que além da infraestrutura, as equipes estão trabalhando de forma correta e os resultados alcançados? Descrição da Situação Problema • As métricas para DevOps lidam com as questões de desenvolvimento, operações e suporte, como velocidade do desenvolvimento de aplicações, resposta do consumidor, porcentagens de erros e falhas, volume de pedidos e tempo de reparo. Solução da Situação Problema • As métricas vão desde a avaliação de Entrega Contínua e Implantação Contínua. • Deve-se ter o controle sobre: o O controle de qualidade dos produtos e serviços; Solução da Situação Problema o A Eficiência Operacional, pode ser medida pelo issue (feedback dos usuários finais), pelo Frequência de implantação, os indicadores de interrupção (taxa de falha de mudança); o Agilidade, a velocidade onde se calcula todo o tempo de desenvolvimento do produto (Lead time - tempo de espera); o Deve-se avaliar o impacto do produto, se possível quantificar o crescimento do mercado, novos clientes, potenciais clientes, enfim, é possível incorporar o conceito de monitoramento para toda infraestrutura física e organizacional de uma empresa. Solução da Situação Problema • As métricas se divide em três categorias: o Processos: encaixam as métricas voltadas para a análise da velocidade, eficiência, produtividade e segurança dos processos de desenvolvimento de software. o Tecnologia: as métricas de tecnologia avaliam o uptime (tempo em atividade) dos sistemas, redes e aplicações e as taxas de erros. Solução da Situação Problema o Pessoas: a influência das pessoas envolvidas no processo de produção costuma ser um dos aspectos mais difíceis de medir em uma empresa. Métricas voltadas para as pessoas geralmente incluem tempo de resposta, turnover (ou rotatividade de pessoal) e capacidade. Solução da Situação Problema Recapitulando Recapitulando • Cultura DevOps; • Processos DevOps; • Mentalidade Digital; • Pilares da Infraestrutura Ágil; • Provisionamento Automatizado de Vms; • Métricas. Siga em frente e bons estudos! Obrigada!
Compartilhar