preloader

Conheça os 6 pilares para construir aplicativos cloud native

A Transformação Cloud Native é um conjunto de abordagens digitais que tem como objetivo auxiliar organizações a conquistar mais velocidade e serem mais competitivas no mundo moderno. Essencialmente “cloud native” versa sobre como projetar, construir e operar aplicações sobre uma infraestrutura dinâmica que potencialize todas as vantagens da computação em nuvem. Arquiteturas cloud native em geral focam em automação de tarefas e de provisionamento, Microsserviços, Contêineres e sua Orquestração, além de diversos modelos de gerenciamento dinâmico de infraestrutura.

Uma TI Corporativa cloud native não necessariamente opera em nuvem – uma organização pode trazer para um datacenter privado as práticas típicas de nuvem. As aplicações cloud native exploram as qualidades deste modelo (estando em nuvem ou não) e impulsionam novas ferramentas de código aberto e de conceitos arquitetônicos – posto que a facilidade para a experimentação é um fator típico e até mesmo inegociável.

Transicionar a sua TI tradicional para uma TI Cloud Native responsiva, observável e resiliente traz alguns benefícios, como:

– Cultura de responsabilidade compartilhada pelas entregas;
– Alta observabilidade do comportamento dos sistemas;
– Modelos de melhoria contínua;
– Busca incessante por automação de tarefas repetitivas;
– Equipes autônomas e multidisciplinares;
– Simplificação radical da gerência de configuração (“morte” do CMDB);
– Gestão de risco sem impacto negativo na produtividade.

A operação de infraestrutura cloud native se posiciona como provedora de uma plataforma
self-service para os times de produtos (desenvolvedores de aplicativos). Este modelo oferece diminuição de riscos de mudanças porque torna possível – e até mesmo preferível – que os times de produto possam experimentar cenários com mais agilidade ao mesmo tempo que constroem soluções com o grau de abstração mais adequado. Organizações que operam em modo cloud native absorveram prática e cultura DevOps e entregam software confiável continuamente, portanto as decisões de mudanças têm menor impacto e não precisam ser feitas com tanta burocracia.

Entretanto, para ser bem-sucedido na transformação de uma TI Corporativa é importante elaborar e implementar a estratégia certa. Pensando nisso, abordaremos seis pilares que precisam fazer parte da Transformação Cloud Native. Confira:

1- Transição planejada

Para que qualquer transformação seja eficiente, é preciso, em primeiro lugar, ter um plano de ação. Afinal, apesar de novas tecnologias serem empolgantes, elas também podem ser assustadoras. Se não forem bem planejadas, até mesmo tecnologias benéficas podem ser mal utilizadas, causando frustração e desistência. 
É preciso resistir à tentação de entrar de cabeça antes de alinhar sua missão, visão e equipes com relação às suas aspirações com a Cloud Native. Para isso:

– É fundamental envolver liderança, parceiros e clientes;
– Apresente os seus planos e descobertas;
– Monte a equipe certa e trabalhe em conjunto para dividir sua jornada de mudança para nuvem em fases;
– Divida essas fases em projetos de desenvolvimento, sprints e ações;
– Defina expectativas claras e colete feedback com frequência;
– Não subestime a importância de trabalhar a cultura organizacional – não há absolutamente a menor chance de sucesso sem dar a este fator a sua devida importância;
– Planeje tempo para experimentação – embora o futuro desejável deva estar claro, como atingi-lo é um leme que se ajusta a cada sprint. Transformação Cloud Native não é futurologia e este processo explicitamente demanda um bocado de experimentação, pois os grandes desafios são sempre contextuais;

2- De Silos para DevOps

Normalmente, os silos da TI tradicional têm diferentes estruturas de gerenciamento, ferramentas, métodos de comunicação, vocabulário e via de regra muitos incentivos ruins, o que impede o surgimento de iniciativas de melhoria à missão e implementação do desenvolvimento de aplicativos.

Apesar da preferência por uma metodologia mais ágil, o desenvolvimento de aplicativos em uma TI tradicional ainda é comumente organizado nos seguintes silos: 

  • Desenvolvimento de software;
  • Garantia de qualidade e testes;
  • Administração de banco de dados;
  • Operações de TI;
  • Gerenciamento de projetos;
  • Administração do sistema;
  • Gerenciamento de deploy.

Para piorar a Operação de TI é subdividida em times e silos que também não se entendem bem: segurança, sistemas operacionais, storage, rede e monitoração.

Já não é novidade que DevOps é uma metodologia e organização estrutural que tem como objetivo implantar cultura, processos e ferramentas que permitam modelos de entrega e melhoria contínuos. A existência destes silos se torna irrelevante, pois times de produto passam a lidar com plataformas self-service e esteiras de automação de construção, teste e entrega de software.

A entrega de valor passa a ser a missão da TI Corporativa e os constantes atritos viram coisa do passado. Dessa forma se amplia a concentração em lançamentos frequentes de produtos de alta qualidade e a substituição de procedimentos pesados ​​e burocracia desnecessária.


3- Migrar do Water Scrum Fall para Continuous Delivery

Muitos times de desenvolvimento ainda se encontram imersos no que é chamado de Water Scrum Fall: abordagem híbrida do ciclo de gestão de processos, que combina os conceitos de Waterfall e Scrum. O que é curioso porque ambas as metodologias são contrastantes, podendo trazer problemas para um projeto. O resultado de cada renovação não se torna uma entrega ao nível de produção, pois a organização, como um todo, não está integrada.

Para desenvolver a aplicação Cloud Native e obter os seus benefícios estruturais é necessário realizar uma mudança completa para Continuous Delivery. Nesta metodologia as aplicações são lançadas automaticamente diversas vezes ao dia, o que facilita as esteiras de construção, testes e entrega de releases de software encorajando experimentação e melhoria contínua – essência da Cultura DevOps. 

Ao construir pipelines de desenvolvimento de produto que automatizam a integração e o teste de código, a única preocupação das equipes é saber se implantar o aplicativo com as novas mudanças faz sentido ou não para os negócios da organização em questão.

4- Deixar o Sistema Monolítico para trás

Sistemas Monolíticos raramente funcionam apropriadamente quando são transferidos para a nuvem. Afinal, o deploy de um monolítico está intimamente ligado a uma infraestrutura estática e contínua, o que é incompatível com a estrutura instantânea e elástica de uma aplicação em nuvem.

Já que o sistema monolítico não é adequado para receber um bom suporte em Cloud Native, é necessário se organizar para transformá-lo em microsserviços que, então, serão bem recebidos e armazenados com segurança e funcionalidade.

5- Projetar uma arquitetura de serviços

A arquitetura Cloud Native é comumente vista como baseada em serviços e geralmente estes são implementados como uma coleção de serviços em nuvem ou APIs. No entanto, embora estes conceitos sejam facilmente compreendidos, muitos desenvolvedores ainda têm uma grande tendência de criar aplicativos fortemente acoplados com ligação total à interface do usuário. Para aproveitar os benefícios da nuvem de maneira eficaz, um aplicativo Cloud Native deve ter funções de suporte que possam ser acessadas de forma independente.

Quando há o desenvolvimento de uma aplicação em nuvem, ela deve ser construída para interagir com sistemas complexos, díspares e amplamente distribuídos que conseguem suportar vários aplicativos de baixo acoplamento não fixados em Data. Estes serviços podem ser combinados em aplicativos compostos que permanecem flexíveis e escalonáveis.

6- Desacoplar e decompor os dados

Não é suficiente somente decompor o seu sistema monolítico em microsserviços, também é essencial desacoplar o seu modelo de dados. Se uma equipe de desenvolvimento tem a liberdade de ser autônoma, mas ainda precisa lidar com um único banco de dados, existe uma barreira à inovação. Afinal, se os dados estiverem fortemente vinculados a um aplicativo, ele não terá boa habilitação na nuvem.

É necessário desacoplar os dados pelos mesmos motivos que sabemos que é melhor decompor funções de aplicativo em serviços: o esforço para separar os dados será amplamente recompensado com a capacidade de armazená-los e processá-los em qualquer instância de nuvem.

Conclusão

Transformação Cloud Native requer investimento em uma nova maneira de pensar tecnologia com novos paradigmas de desenvolvimento. No entanto, muitos conceitos convencionais permanecem necessários, como um bom design e testes automatizados.

Uma lição importante é que microsserviços devem ter prioridade, ainda que inicialmente resultem em um desenvolvimento mais extenso de aplicativo. Os ganhos de eficiência a longo prazo tornam este investimento o mais inteligente que sua equipe pode realizar, mesmo que haja um aumento temporário no orçamento. Para entender melhor como começar a Transformação Cloud Native em seu negócio, fale com os nossos especialistas.

Descubra o quanto sua empresa é Cloud Native com este questionário e receba um relatório com propostas de aceleração

Preencha o formulário para conversar com os nossos especialistas e saber como esses métodos podem ajudar a sua empresa chegar ao sucesso.

Se você ama tecnologia e gosta de se manter atualizado, inscreva-se no nosso blog!
Você também pode se interessar por...
contato

Vamos bater um papo?
Estamos aqui para te ajudar_