5 princípios para otimizar o desempenho de aplicações na nuvem
Otimize o desempenho de aplicativos na nuvem
Velocidade e agilidade continuam entre os principais motivos para a adoção da nuvem pelas empresas, já que a lentidão se tornou inaceitável neste mundo acelerado em que vivemos. Mas, como profissional de DevOps responsável por agilizar as implantações de aplicativos, melhorar o desempenho deles e garantir a segurança, o que é necessário para modernizar seus sistemas e processos e superar a lentidão na nuvem? Temos algumas sugestões.
1. Infraestrutura como código é sua aliada
Em 99% dos casos, a palavra “manual” pode muito bem ser sinônimo tanto de lentidão quanto de imprevisibilidade; a maioria concordaria que, quando se busca velocidade e confiabilidade, a automação é um bom ponto de partida. Seja para provisionar recursos adicionais na nuvem a fim de escalar um aplicativo ou para implantar e configurar serviços essenciais do aplicativo, o processo deveria ser tão simples quanto executar uma chamada de API ou dar um ou dois cliques em um console. O uso de infraestrutura como código (IaC) é a chave para o sucesso nesse caso. Trabalhar com as equipes de Infraestrutura/NetOps/SecOps para criar arquivos de definição validados, que detalhem o que está sendo implantado e como, permitirá provisionar infraestrutura e serviços de maneira rápida, repetível e confiável.
Aproveitar essa abordagem baseada em modelos para implantações de autoatendimento acabará reduzindo sua dependência de outras equipes e evitará gargalos de implantação causados por solicitações via chamados para o provisionamento manual de infraestrutura.
2. Aproveite TODO o potencial do seu pipeline de CI/CD
A infraestrutura como código é um passo na direção certa para acelerar as implantações, mas é possível obter ganhos consideravelmente maiores ao aproveitar o valor de um pipeline completo de CI/CD. Além da possibilidade de integrar novos códigos de aplicações com mais frequência e enviar essas atualizações automaticamente para produção, você sabia que também pode integrar a inclusão de serviços de aplicações ao seu pipeline? Ao definir esses serviços como código (IaC) e armazená-los em uma ferramenta de controle de código-fonte, onde podem ser monitorados, atualizados e verificados regularmente, suas ferramentas de CI/CD (como Ansible e GitLab) podem incorporar automaticamente esses serviços à implantação por meio de uma chamada de API. Dessa forma, você garante que todas as aplicações sejam lançadas com os controles adequados de segurança e conformidade sem atrasar as implantações.
3. Adote contêineres… mas faça isso com segurança
A capacidade de reunir o código, as bibliotecas e os binários necessários para uma aplicação inteira em um pacote leve, que pode ser implantado de forma rápida e consistente em diferentes plataformas, é a base do recente aumento na adoção de contêineres. Essas características são muito favoráveis à otimização da velocidade na nuvem, pois permitem iniciar e escalar aplicações sob demanda, acelerar os processos de CI/CD e criar arquiteturas de microsserviços altamente dinâmicas e fáceis de gerenciar.
Deixando todo esse entusiasmo de lado, é muito fácil se deixar levar pela busca por velocidade e esquecer que ainda existem aplicativos que exigem níveis de segurança e otimização de desempenho iguais (ou superiores) aos do restante do seu portfólio de aplicativos. Infelizmente, é provável que você tenha pouco sucesso ao tentar adaptar os serviços de aplicativos existentes para atender às necessidades específicas dos contêineres. Em vez disso, será necessário identificar um conjunto mais dinâmico de serviços que se integrem ao seu sistema de orquestração de contêineres para realmente oferecer suporte aos seus contêineres, ajudando a evitar interrupções indesejadas e problemas de segurança/conformidade.
4. Visibilidade é poder
Colocar aplicações em funcionamento rapidamente é uma coisa. Mantê-las operacionais e disponíveis para os usuários é um desafio completamente diferente. Depois que entram em produção, há inúmeras ameaças possíveis à integridade das suas aplicações — interrupções de rede, problemas de plataforma, ataques cibernéticos e bugs no código, para citar apenas algumas. Por isso, solucionar a indisponibilidade de uma única aplicação muitas vezes parece como procurar uma agulha em um palheiro. Mas considere a dimensão de várias falhas simultâneas em aplicações distribuídas por diferentes ambientes de nuvem. Por onde você começaria?
Nesse cenário, visibilidade é o primeiro passo para o conhecimento, o que a torna inestimável na busca por soluções para problemas em aplicativos. Quanto maior a visibilidade de cada camada da pilha de seus aplicativos, maior será sua capacidade de identificar anomalias operacionais e suas causas-raiz. Para isso, é fundamental implementar uma solução de visibilidade centralizada que seja independente de nuvem e de aplicativo, permitindo resolver mais rapidamente problemas em aplicativos em arquiteturas multinuvem.
5. O trabalho em equipe faz o sonho acontecer
E, por fim, a agilidade na nuvem não se resume apenas a ter as ferramentas e a tecnologia certas (sim, elas definitivamente ajudam). Ela também envolve pessoas e processos. Há certa verdade no ditado: “Uma rede é tão rápida quanto seu cabo mais lento.” E essa afirmação também se aplica às equipes responsáveis por criar, implantar e gerenciar aplicativos na nuvem. É um trabalho em equipe que geralmente envolve, no mínimo, profissionais de DevOps, SecOps, NetOps e arquitetura, o que significa que ineficiências individuais ou de colaboração provavelmente afetarão a equipe como um todo.
Baixe o relatório State of Application Services 2020: edição DevOps
Eliminar os silos e estabelecer um modelo de colaboração regular e sólido entre as equipes proporcionará uma boa base para acelerar o planejamento, a resolução de problemas e o compartilhamento de informações, garantindo que todos estejam em sintonia. Além de aproveitar melhor a experiência multidisciplinar para facilitar seu trabalho, você também poderá retribuir defendendo iniciativas como automação e otimização de processos em outras áreas, ajudando todos a avançar mais rapidamente.




