Automação de liberação de aplicativo e automação de infraestrutura
Noções Básicas sobre a proposta de valor de ambas
por Julian Fish, Diretor de Gerenciamento de Produtos, Serena Software (agora parte da Micro Focus)
White Paper
O que é a automação de infraestrutura? . . . 4
O que é a automação de liberação de aplicativos? . . . . 5
Qualidades em comum . . . . 7
Deployment Automation vs . Puppet para automação de infraestrutura . . . . 8
Deployment Automation vs . Puppet para automação de liberação de aplicativos . . . . 10
O valor dos pipelines . . . . 10
Implantações orientadas por modelo . . . . 12
Uma pequena questão de extensibilidade . . . . 13
O melhor possível . . . . 13
Resumo executivo
As organizações que iniciam a sua jornada de transformação de DevOps ou aquelas que estão simplesmente olhando para automatizar e configurar, olhando a configuração de seus ambientes, são, muitas vezes, confundidas quanto ao valor da automação de liberação de aplicativos em oposição às ferramentas de automação de infraestrutura . Há uma
infinidade de ferramentas disponíveis, com muitas desempenhando funções aparentemente sobrepostas . Este documento trata de duas ferramentas líderes de mercado: o Micro Focus Deployment Automation
1para automação de liberação de aplicativos e o Puppet
2para automação de infraestrutura. As propostas de valor de cada ferramenta, a área de foco principal de cada uma delas e os benefícios que cada uma pode oferecer como parte de uma cadeia de ferramentas de DevOps integrada também são discutidos .
Por que automatizar
Muitas organizações estão procurando simplificar e reduzir a complexidade das implantações de aplicativos, mantendo a estabilidade operacional, aderindo a SLAs e garantindo que a receptividade do aplicativo seja atendida . Uma maior capacidade de resposta dos negócios e “mover-se rápido sem quebrar as coisas” é fundamental para a sobrevivência da empresa . Para apoiar essas metas concorrentes, a necessidade de automatizar a “pilha inteira do aplicativo” tem se tornado cada vez mais importante. Infelizmente, a definição de “pilha inteira” tende a variar dependendo da área da organização que a descreve .
Operações geralmente considera a “pilha inteira” como a infraestrutura necessária para hospedar os aplicativos e os sistemas de suporte, com o aplicativo visto como um pequeno componente da pilha; enquanto as organizações de Desenvolvimento tendem a ver a “pilha inteira” como todas as camadas do aplicativo funcionando de maneira bem-sucedida e em conjunto, uma com a outra, mostrando muito menos interesse na infraestrutura subjacente. A realidade, principalmente a partir de uma perspectiva de DevOps, é que todas as áreas precisam trabalhar em plena colaboração para garantir que aquilo que se tornou rapidamente os bens mais essenciais de uma organização sejam suportados . Ao longo da última década, a função da TI não é mais vista como um diferencial comercial importante;
simplesmente manter os sistemas corporativos em execução não é mais visto como um valor agregado. É considerado como um requisito obrigatório. Para as empresas, o aplicativo é o rei, e é a mudança do aplicativo que impulsiona a diferenciação corporativa e o valor da Este documento trata de
duas ferramentas líderes de mercado: o Micro Focus Deployment Automation para automação de liberação de aplicativos e o Puppet para automação de infraestrutura. As propostas de valor de cada ferramenta, a área de foco principal de cada uma delas e os benefícios que cada uma pode oferecer como parte de uma cadeia de ferramentas de DevOps integrada também são discutidos.
__________
1 O Deployment Automation (SDA) é uma ferramenta líder de mercado usada para a automação de aplicativos que pode integrar e iniciar ferramentas de aprovisionamento de infraestrutura. www.serena.
com/sda
2 O Puppet é uma ferramenta
Uma breve história sobre a automação
Observa-se nos últimos 15 anos um aumento da taxa de mudanças na indústria de software, que, como Glenn O’Donnell da Forrester comentou, está levando à “industrialização da TI”
3. Inicialmente impulsionado por uma redução de gastos em TI após o bug do milênio e a falência de empresas pontocom, depois, estendido pela adoção em massa da Internet e por uma abordagem “sempre ligada” para as empresas, essas mudanças tiveram um impacto enorme sobre o mundo da TI corporativa e empresarial. As empresas que há 15 anos não tinham nenhuma chamada para um site corporativo, muito menos a noção de uma acessibilidade do cliente “sempre ligada”, 24 horas por dia, tiveram de se adaptar a uma maneira completamente nova de trabalhar. A redução de gastos com TI levou as organizações a fazerem mais com menos — reduzindo pessoal e aumentando as demandas de TI corporativa. A adoção da “Internet em todos os lugares” exige um nível de eficiência operacional, um tempo de atividade do sistema e uma capacidade de resposta nunca antes exigidos. O nível de complexidade inerente a muitos aplicativos corporativos significa que a entrega eficiente e repetível de mudanças de negócios não é mais uma tarefa simples.
Os riscos de expor aplicativos a terceiros que podem estar em busca de pontos fracos ou de acesso pela porta dos fundos a sistemas empresariais críticos de back-office significa que simplesmente aumentar a taxa de entrega não é suficiente — os aplicativos devem ser implantados rapidamente, mantendo um alto nível de qualidade e segurança e com o próximo grande recurso incluído . Basear-se em processos manuais para garantir
confiabilidade, rastreabilidade e repetibilidade não é mais viável. Ao continuar entregando aplicativos de forma manual, corre-se o risco de deixar uma organização muitos passos atrás da concorrência .
O progresso nem sempre é difícil
As equipes de desenvolvimento têm tradicionalmente aceitado mudanças, por exemplo, a transição de linguagens de programação “legadas” como COBOL e C para novas linguagens como Java e .Net. As equipes de desenvolvimento têm modificado seus aplicativos e processos para suportar mudanças, mesmo quando os benefícios iniciais podem ser compensados pelos custos de transição . A transição das disciplinas de gerenciamento de projetos Waterfall para as disciplinas Agile, a adoção de práticas LEAN e a prevalência da adoção de software de código-fonte aberto são excelentes exemplos da disposição das equipes de desenvolvimento em apoiar mudanças . A capacidade dessas organizações de desenvolvimento de se tornarem mais eficientes e de oferecerem recursos de negócios de forma mais eficiente e rápida tem aumentado a pressão sobre as equipes de Operações para entregarem de maneira efetiva e rápida esses novos recursos .
As empresas que há 15 anos não tinham nenhuma chamada para um site corporativo, muito menos a noção de uma acessibilidade do cliente “sempre ligada”, 24 horas por dia, tiveram de se adaptar a uma maneira completamente nova de trabalhar.
__________
3 O’Donnell, Glenn. 2010, TI é industrialização — O que isso significa para mim?, Blog do Glenn O’Donnell, visto em 24 de fevereiro de 2015, http://blogs.forrester.com/
glenn_odonnell/10-04-21-it_
industrializing_%E2%80%93_
what_does_mean_me
Historicamente, as equipes operacionais têm adotado uma abordagem de “risco zero”
para o gerenciamento de ambientes de produção ou de operação, como geralmente tem sido imposto por suas empresas . As empresas exigem estabilidade do sistema e tempo de atividade, o que torna esta abordagem completamente compreensível. A responsabilidade de manter um sistema comercial funcionando com êxito, um sistema de pedidos funcionando corretamente ou um sistema bancário que forneça informações precisas aos consumidores não é uma responsabilidade a ser assumida superficialmente. O investimento e a adoção de práticas, processos e procedimentos baseados em ITIL por muitas organizações mostram como os sistemas operacionais são mantidos de maneira séria. Garantir que todos concordem é fundamental para permitir que práticas e procedimentos comuns sejam seguidos .
À medida que as empresas se esforçam para oferecer a melhor experiência possível ao cliente, atraindo novas funcionalidades ou obtendo vantagem competitiva, a entrega de mais e mais aplicativos muda tão rapidamente e eficientemente quanto possível. A pergunta passa a ser como possibilitar esses dois requisitos aparentemente conflitantes? É possível fornecer a taxa de entrega de aplicativos exigida pelo Desenvolvimento e os níveis de estabilidade, rastreabilidade, controle e rigor exigidos pelas Operações, mantendo ao mesmo tempo quaisquer requisitos de conformidade regulatória, industrial ou corporativa?
_______________________________________________________________
À medida que as empresas se esforçam para oferecer a melhor experiência possível ao cliente, atraindo novas funcionalidades ou obtendo vantagem competitiva, a entrega de mais e mais aplicativos muda tão rapidamente e eficientemente quanto possível.
Fig. 1
Desenvolvimento vs. Desafios operacionais
_______________________________________________________________
A automação de
implantações de aplicativos, de instalação de aplicativos e de configurações de sistemas assegura que uma consistência seja alcançada em todo o ambiente;
que as implantações podem ser repetidas, conforme necessário;
e auditorias completas podem ser implementadas e monitoradas para ver exatamente qual versão de quais artefatos foram implantados, em que ambiente e em que dado momento.
Os avanços tecnológicos significam que agora é muito mais fácil automatizar a entrega de aplicativos e toda a infraestrutura de suporte . O movimento de DevOps que se esforça para abordar as pessoas, os processos e os desafios de comunicação prevalentes em duas unidades organizacionais distintas (Desenvolvimento e Operações) pode certamente se beneficiar do uso da Automação . Da mesma forma que as organizações descobriram que a recompilação de código em ambientes diferentes leva a saídas de build diferentes e a vários problemas em ambientes subsequentes, há uma percepção crescente de que a falta de consistência de implantação em diferentes ambientes também levará a grandes problemas e desafios. A automação de implantações de aplicativos, de instalação de aplicativos e de configurações de sistemas assegura que uma consistência seja alcançada em todo o ambiente; que as implantações podem ser repetidas, conforme necessário; e auditorias completas podem ser implementadas e monitoradas para ver exatamente qual versão de quais artefatos foram implantados, em que ambiente e em que dado momento. A automação geralmente também leva a uma redução no tempo gasto executando as implantações, a uma maior confiança na qualidade da entrega (as máquinas não cometem erros nem se esquecem de executar comandos) e à capacidade de provar exatamente que o que realmente estava planejado ocorreu
— garantindo que resultados importantes de conformidade de auditoria sejam atingidos .
A implantação de um aplicativo geralmente não é tão simples como apenas mover arquivos de um local para outro . Pode envolver a criação ou a extensão de infraestrutura para suportar novos recursos, maior capacidade de armazenamento ou implementar novos recursos do aplicativo, exigindo rotinas de instalação complexas. A automação de infraestruturas e de aplicativos são capacidades sutilmente diferentes que exigem uma definição adicional.
O que é a automação de infraestrutura?
A automação de infraestrutura é a criação e o gerenciamento de ambientes, incluindo a instalação de sistemas operacionais, a instalação e a configuração de servidores em instâncias físicas, virtuais ou de nuvem, e a configuração como as instâncias e o software se comunicam entre si. Também é comumente referido como aprovisionamento, infraestrutura com scripts, infraestrutura como código ou, de maneira confusa, gerenciamento de
configurações (um termo que tem muitos significados diferentes dependendo da parte do
ciclo de vida que está sendo discutida). O princípio é simples: definir uma configuração
de sistema via script ou via um conjunto de scripts para permitir aos usuários criarem ou
recriarem ambientes da maneira mais simples e rápida possível, garantindo menos erros e
rápidos tempos de retorno .
O que é a automação de liberação de aplicativos?
A automação de liberação de aplicativos é o gerenciamento com scripts de aplicativos dentro de ambientes, incluindo instalação, configuração de aplicativos e implantação de aplicativos em ambientes físicos, virtuais ou de nuvem. Esses ambientes de destino podem, de fato, ter sido criados através do uso da automação de infraestrutura. A automação de liberação de aplicativos abrange a configuração de como os aplicativos são instalados, implantados e como diferentes camadas de um aplicativo interagem com uma outra em tempo de execução. Também é comumente referida como automação de aplicativos (AA), automação de implantação, implantação ágil ou até mesmo gerenciamento de lançamentos.
O termo “script” é comumente utilizado para cobrir ferramentas centradas em pacotes, A automação de liberação
de aplicativos abrange a configuração de como os aplicativos são instalados, implantados e como diferentes camadas de um aplicativo interagem com uma outra em tempo de execução.
Fig. 2
Automação de infraestrutura
_______________________________________________________________
declarativas, personalizadas e de processo, com ou sem recursos de definição de UI. O princípio é simples: definir um modelo via script ou via um conjunto de scripts para permitir aos usuários criarem ou recriarem aplicativos de implantação da maneira mais simples e rápida possível, garantindo menos erros e rápidos tempos de retorno.
_______________________________________________________________
A automação de liberação de aplicativos é também comumente referida como automação de aplicativos (AA), automação de implantação, implantação ágil ou até mesmo gerenciamento de lançamentos.
Fig. 3
Automação de liberação de aplicativos
_______________________________________________________________
A automação de
aplicativos e a automação de infraestrutura
podem ser vistas como complementares no mundo mais amplo de DevOps e no mundo de Entrega Contínua ou Implantação Contínua.
__________
4 A Entrega Contínua (CD) diz respeito a manter o seu aplicativo em um estado em que ele pode sempre ser implantado na produção. Martin Fowler, visto em 24 de fevereiro de 2015, http://martinfowler.
com/delivery.html 5 A implantação contínua está
implantando cada mudança na produção, todos os dias ou com mais frequência. Martin Fowler, visto em 24 de fevereiro de 2015, http://martinfowler.
com/delivery.html
Qualidades em comum
Tanto a automação de aplicativos quanto a automação de infraestrutura podem ser vistas como complementares no mundo mais amplo de DevOps (os processos e as práticas de alinhamento das equipes de Desenvolvimento e Operações) e no mundo de Entrega Contínua
4ou Implantação Contínua
5. A semelhança dos objetivos entre estes dois tipos de ferramentas, ou seja, maior capacidade de resposta, redução de erros, auditoria melhorada, responsabilidade e monitoramento, e a intenção de “escrever scripts” para tudo, leva a dois conjuntos de ferramentas normalmente vistos como concorrentes diretos ou como potenciais substitutos um do outro . A realidade é que os dois conjuntos de ferramentas têm um objetivo bem definido e um “ponto ideal”. Embora seja certamente possível usar um para executar certas funções do outro, é preferível escolher a ferramenta certa para o trabalho.
_______________________________________________________________
Automação de liberação de
aplicativos Automação de infraestrutura
Implantações centradas em processo
● ●
Implantação de aplicativos
● ●
Instalação de aplicativos
● ●
Suporte de pipeline
● ●
Gerenciamento do ambiente
● ●
Aprovisionamento de infraestrutura
● ●
Modificação de infraestrutura
● ●
Aprovisionamento bare-metal
● ●
Automação de pilha inteira (baseada na
cadeia de ferramentas)