Menu English version
Blog Infra como Código

Contêineres: como saber se sua organização está pronta para usá-los?

Entenda como planejar e avaliar o status do seu projeto de automação com contêineres

Os contêineres tem sido a cada dia mais utilizados pelas equipes para acelerar o desenvolvimento de código. No entanto, algumas organizações ainda têm receio de realizar uma mudança dos servidores e VMs para os contêineres. Dependendo de qual estado esteja o projeto de adoção, o uso de contêineres hoje, na grande maioria das empresas, pode estar entre 25 a 52%, de acordo com uma pesquisa recente divulgada pela instituição Cloud Foundry.

contêineres

Créditos dos dados da Imagem: CloudFoundry.org

Ou seja, isso significa que pelo menos 50% das organizações ainda estão trabalhando para fazer a mudança para contêineres. Sua organização pode ser uma das muitas que foram silenciosamente (e ceticamente) observando esse movimento avançar e se desenvolver antes de adotar as novas práticas.

Se este é o seu caso, você pode estar se perguntando quando é o momento certo para fazer a mudança. Aqui estão algumas maneiras para você encontrar a resposta:

contêineres

 

1) Perceba os sinais de alerta

“Se não há nenhuma falha evidente, não é preciso trabalhar nisso agora”, muitas vezes é o lema das equipes de TI em relação a muitas atividades que precisam ser realizadas. Se você ainda não fez a mudança para contêineres, provavelmente também tem essa mentalidade. Para que alguma mudança aconteça, você precisa primeiro perceber que a configuração que você tem no momento não está funcionando.

Se você executa todos os seus aplicativos em servidores físicos ou VMs hoje, é provável que as suas aplicações estejam intimamente ligadas ao hardware. Por isso, a inovação será lenta e, com o passar do tempo, este modelo não funcionará de acordo com as necessidades do seu time e da sua organização.

Para te ajudar a mensurar o tamanho da sua necessidade, nós disponibilizamos abaixo uma lista de sinais de alerta que devem ser observados ao avaliar um possível uso dos contêineres:

  • Os desenvolvedores duplicam seus esforços para obter o mesmo resultado.
  • Os testes são sempre realizados de última hora.
  • Os testes são realizados, em sua maioria, manualmente: são lentos e propensos a erros.
  • O time de operações gasta muito tempo esperando que o Dev finalize o código para realizar os testes.
  • O código circula constantemente entre o Dev e o time de operações/arquitetura para a correção de falhas.
  • As versões sempre estão atrasadas para lançamento.
  • Você libera novas versões todos os meses ou em determinados dias, mas quer lançá-las com mais frequência.
  • A maioria dos erros é descoberta após o lançamento.
  • O time de Dev culpa o Ops pela falta de inovação.
  • O time de Ops culpa o Dev por uma falta de confiabilidade.
  • A infraestrutura não suporta o tráfego em momentos de pico.
  • A sua organização decidiu ter o foco principal no desenvolvimento mobile.
  • As funcionalidades do produto são restritas devido à capacidade técnica das equipes de Ops e de engenharia.
  • Você foi vítima de uma violação de dados e o invasor teve acesso fácil ao sistema.
  • Os custos de infraestrutura são extremamente elevados.
  • Os concorrentes já utilizam os contêineres no ciclo de desenvolvimento.
  • É preciso ter uniformidade para o conjunto de ferramentas usada pelos desenvolvedores.
  • É necessário modernizar as aplicações já desenvolvidas e os bancos de dados.

 

Esta lista abrange todo o ciclo de desenvolvimento de software, e todas as equipes envolvidas na entrega do produto final. Como você pode perceber, dos 18 pontos aqui, quanto mais perto estiver dos 18, mais provável será que você precise realizar uma mudança para os contêineres.

Você pode ignorar esses sinais de alerta e continuar a atuar de acordo com a maneira tradicional, mas ao longo do tempo, estes sinais de alerta ficarão ainda mais evidentes e terão maiores consequências. Por outro lado, realizar uma mudança para contêineres é um investimento que terá um retorno de múltiplas maneiras, já que eles são utilizados para resolver os problemas de diversas equipes e profissionais.

 

2) Considere o uso eficiente da nuvem

A maioria das organizações hoje executa configurações de infraestrutura híbridas. Elas possuem um centro de dados interno e utilizam uma ou mais plataformas públicas de nuvem, como a Amazon Web Services. Se você ainda opera exclusivamente com o uso de servidores físicos, você terá mais a ganhar fazendo uma mudança para VMs baseadas em nuvem, como a AWS EC2. Uma mudança repentina dos servidores físicos para os contêineres pode ser muito drástica, mas as máquinas virtuais na nuvem podem lhe ajudar a realizar esta transição aos poucos.

Além disso, as ferramentas que trabalham com as VMs são hoje muito mais desenvolvidas e fáceis de gerenciar do que as soluções para contêineres. Algumas ferramentas como a Jenkins for CI ou a Sauce Labs são híbridas, ou seja, podem ser utilizadas tanto com as VMs ou com os contêineres. No entanto, a maioria das ferramentas de contêineres hoje está em um estado de rápida evolução e, por isso, é ideal que o seu time faça uma transição em etapas graduais para que possa acompanhar esta inovação de maneira segura.

Se você já usa a nuvem, você conhece os benefícios dela em relação aos servidores tradicionais, tais como a facilidade de uso, economia de custos, escalabilidade, menor manutenção e gerenciamento, tempos de configuração mais rápidos, etc. Mas os contêineres oferecem muito mais do que apenas as vantagens das VMs. Se você já trabalha com a nuvem e está satisfeito com os resultados, você deveria ir mais longe e adotar os contêineres. Eles são o próximo passo lógico na evolução da sua infraestrutura.

Por outro lado, se você ainda não adotou a nuvem, a melhor abordagem é identificar algumas vitórias rápidas que você pode conseguir, movendo alguns dos seus workflows para elas. Escolha um fornecedor de nuvem líder de mercado como o AWS ou o Azure e se familiarize com todas as ferramentas disponíveis na sua plataforma. Este é um passo importante na sua jornada para eventualmente executar as suas aplicações em contêineres em etapas mais avançadas.

 

3) Adote uma cultura DevOps para o trabalho das equipes

Alterar a sua infraestrutura pode fazer uma grande diferença na forma como você constrói e envia aplicativos, mas para realmente existir uma mudança, você precisa mudar a cultura de desenvolvimento que você promove em sua organização. Modelos de desenvolvimento tradicionais como o Waterfall resultam em atrasos na entrega das demandas e falhas de comunicação entre os times.

Como alternativa, as organizações descobriram que uma abordagem moderna como o DevOps resulta em ganhos enormes. O DevOps pretende reunir as equipes Dev, QA e IT em uma abordagem colaborativa para o desenvolvimento de software: ele se concentra em lançamentos mais rápidos, que são possíveis a partir da automação de tarefas em cada etapa do pipeline de desenvolvimento.

Ao invés de ter equipes grandes, o DevOps encoraja pequenas equipes multifuncionais que gerenciam uma seção, recurso ou serviço de uma aplicação maior. O DevOps é, primeiro, uma mudança de cultura, depois uma mudança nas pessoas (ou equipes) e, finalmente, uma mudança de ferramentas. Trazer essa nova abordagem cultural para a sua organização é fundamental se você quiser adotar tecnologias modernas de desenvolvimento como os contêineres.

 

Conclusão: por que e quando adotar os contêineres?

A adoção de contêineres é uma jornada: ela começa com a visualização dos sinais de alerta de que a configuração do servidor de hardware ou a configuração da VM não está funcionando. Assim, você entende que é preciso ter mais agilidade, velocidade e confiabilidade no desenvolvimento de software.

Além disso, duas etapas que preparam sua organização para a transição para os contêineres são primeiro uma transição para a nuvem e, em seguida, a adoção de um modelo DevOps de entrega de software. Se você já criou aplicativos em VMs de nuvem usando a abordagem DevOps, mesmo que a execução não esteja perfeita, este é o momento ideal para realizar uma transição para os contêineres.

 

Conheça o Twistlock Enterprise

O Twistlock Enterprise é a solução para promover a segurança de contêineres mais abrangente, automatizada e escalável disponível no mercado. Há suporte disponível para Docker, Kubernetes e outras ferramentas nativas da nuvem. O sistema atua com o controle de containers em execução, para garantir a conformidade em todo o pipeline CI / CD e os protege contra inúmeras ameaças. Para saber mais, clique aqui.

Post produzido em parceria com a Twistlock.