Making the Evolution to Cloud Native Thinking

Qual é segredo para o nativo da nuvem ter êxito? Pessoas e processo.

Migrar para o desenvolvimento de aplicativos nativos da nuvem tem mais a ver com mentalidade e processos do que com tecnologia.

Evoluir a nativo da nuvem é apenas em parte uma jornada tecnológica.

É verdade que os provedores de nuvem têm criado conjuntos poderosos de tecnologias, fazendo com que as organizações possam jogar as tarefas genéricas de infraestrutura "na plataforma" e se concentrar mais em sua competência principal.

Mas embora tais conjuntos tornem possível o nativo da nuvem – e com ele todos os benefícios de fornecer aplicativos e serviços melhores com mais celeridade –, as forças que impulsionam seu êxito são os processos e as pessoas ágeis.

As pessoas sempre tornam a jornada mais complexa, em contraste a algo puramente tecnológico, mas a boa notícia é que o nativo da nuvem não é uma situação oito ou oitenta. Embora as startups de hoje tendam a "nascer na nuvem", as empresas consolidadas não se tornam nativas da nuvem num estalar de dedos. Em vez disso, por meio da reestruturação de pessoas, processos e tecnologia, elas conseguem desmantelar ou eliminar progressivamente aplicativos monolíticos (e as estruturas de equipe que dão suporte a eles) em favor de arquiteturas e padrões de desenvolvimento que adotem a inovação rápida.

Essa jornada requer que os líderes de TI entendam qual é o aspecto das capacidades nativas da nuvem já amadurecidas, a fim de avaliar seu estado atual e fazer a transição a partir dele. E o primeiro passo disso é compreender a interação entre pessoas e processos — um requisito para entender a capacidade da organização de liberar o poder da mentalidade nativa da nuvem.

Libertando-se da infraestrutura

A influência da tecnologia nessa jornada decorre da maneira como a tecnologia nativa da nuvem difere de outros tipos de tecnologia de nuvem.

A maturidade completa na nuvem abrange serviços totalmente gerenciados — o que cada vez mais significa tecnologia sem servidor —, visto que todas as preocupações com a infraestrutura são transferidas para a plataforma. Isso permite que as práticas modernas de desenvolvimento, como arquiteturas de microsserviços e CI/CD (integração contínua/entrega contínua), estejam no cerne da acepção de nativo da nuvem.

Os benefícios incluem precificação baseada no uso, incorporação de escalabilidade e tolerância a falhas, durabilidade dos dados e menor tempo para colocar novos recursos e serviços no mercado. Também é a melhor maneira de permitir que a sua empresa se concentre nas competências essenciais. (No entanto, exige um nível mais profundo de comprometimento com uma plataforma específica.)

Isso difere muito dos serviços de nuvem de nível básico, como instâncias de infraestrutura, VMs, armazenamento e rede, nos quais você ainda é responsável pela elucubração operacional acerca de backup e dimensionamento. Também difere sobremaneira dos serviços ou aplicativos de infraestrutura gerenciados, nos quais, apesar de um nível um pouco mais alto de abstração quanto às preocupações com infraestrutura, você ainda é responsável pelo gerenciamento de serviços e aplicativos.

Livres das preocupações de infraestrutura, as equipes de desenvolvimento, os proprietários de produtos e a liderança precisam reajustar a mentalidade para entender onde se encaixam.

Transformando pessoas em nativos da nuvem

Em nível elevado, os nativos da nuvem têm uma mentalidade ágil e se sentem confortáveis com metodologias ágeis. Nas equipes, eles têm alta velocidade, ou seja, passam rapidamente da ideia para a entrega, o que requer eficiência na identificação e fornecimento dos produtos mínimos viáveis. Com a ajuda dos processos abordados mais abaixo, eles podem trabalhar com ciclos de feedback rápidos, necessários para criar ciclos de vida mais curtos para os produtos —, e conseguem fazê-lo mantendo ou excedendo os níveis de qualidade.

Para os desenvolvedores, isso implica se aprofundar — iterativamente — em novos conjuntos de ferramentas, tecnologias e metodologias para poder criar aplicativos nativos da nuvem. A tecnologia sem servidor, por exemplo, é totalmente nova e avança rápido. O que era relevante há alguns anos já não é mais, e os pilares do desenvolvimento de aplicativos, como o Java, têm menos espaço. Adaptar-se significa liberar o tecnólogo dentro de cada desenvolvedor, dando-lhes a liberdade de experimentar novas tecnologias e novos padrões de desenvolvimento. Isso também torna o nativo da nuvem uma oportunidade para aumentar o recrutamento e a retenção de talentos de grande valor.

Enquanto isso, os proprietários de produtos precisam se acostumar a entregar recursos e serviços novos no prazo de dias ou semanas, não de meses ou anos, e responder a ciclos de feedback mais rígidos nos ciclos de vida dos produtos. Ser ágil, nesse grupo, significa trazer usuários e clientes para o processo mais cedo, a fim de tornar os erros menos onerosos e menos prováveis, enquanto se familiarizam em trabalhar com produtos mínimos viáveis.

E, finalmente, para executivos, gerentes e grupos de apoio como a TI, adotar uma mentalidade nativa da nuvem significa adotar uma mentalidade facilitadora — e não restritiva. O profissional de desenvolvimento precisa de acesso rápido e fácil a ferramentas e tecnologia para fazer experimentações, o que demanda eliminar obstáculos à aquisição de tecnologia.

Também é necessário ter novos tipos de equipes para desenvolver e manter os aplicativos criados com arquiteturas de microsserviço. Para acomodar isso, a liderança deve focar a criação de equipes multifuncionais, divididas pela responsabilidade por serviços individuais, e não por função (isto é, desenvolvimento ou operações). E, embora tais equipes devam ter o poder de se auto-organizar, a liderança também precisa propiciar comunicação cruzada e viabilizar reuniões conjuntas para buscar um objetivo comum, na medida do necessário.

Processo, processo, processo

A ativação das mentalidades nativas da nuvem descritas acima remete à parte final do quebra-cabeça: processos.

Embora o acesso à tecnologia com base em aprovações fizesse sentido no mundo dos centros de dados, onde os custos e a complexidade são maiores, não faz tanto sentido no mundo nativo da nuvem. Em vez disso, uma abordagem baseada em anteparos, com limites de orçamento e permissões de ferramentas automatizados, é uma maneira mais eficaz de dar aos desenvolvedores a liberdade de que precisam para experimentar e aumentar seu conhecimento. De forma análoga, os grupos tradicionais de arquitetura corporativa terão dificuldade para acompanhar o ritmo da inovação nativa da nuvem — portanto, não sobrecarregue as funções deles.

Como a CI/CD é de extrema importância para ser nativo da nuvem, torna-se essencial ter as ferramentas corretas para acelerar a entrega de aplicativos e manter a qualidade. A automação é o segredo para tornar esse processo eficiente, particularmente o "teste de fumaça" automatizado em ambientes de produção e a identificação de problemas através do monitoramento de aplicativos. Capturar e agir com base no feedback de desempenho e funcionalidade também é fundamental, especialmente quando se trata de reduzir o desperdício natural associado ao retrabalho do aplicativo.

Esse aumento acentuado na captura e medição de informações se estende ao monitoramento da capacidade das equipes ágeis de trabalharem juntas para definir os aplicativos de maneira coesa, com atenção especial à viabilização de velocidades compatíveis entre as equipes. Enquanto isso, é possível ampliar ainda mais as medições de qualidade geral da entrega pelos índices de satisfação do cliente (como o NPS).

Finalmente, você precisa de processos para poder "treinar seus instrutores", expandindo os aprendizados de uma equipe ou serviço para provavelmente dezenas de outros.  

Esse não é um trabalho leve e poderia muito bem render outro artigo por si só. Mas, pelo menos, é simples saber quem é responsável por ele: todos. As equipes de desenvolvimento são responsáveis por criar código de qualidade — como sempre foram — e contribuir para pipelines de CI/CD eficazes e eficientes. As equipes de produto são essenciais para obter feedback dos clientes e repassá-lo à equipe de desenvolvimento de maneira acionável. Enquanto isso, a gerência estabelece processos no nível da liderança e supervisiona o desempenho dos processos e das pessoas.

Nunca é cedo demais para começar

Vemos interesse no nativo da nuvem em todo o espectro. Como mencionado anteriormente, as organizações consolidadas — ao contrário das startups — não se tornam nativas da nuvem num estalar de dedos.

Então, por onde a maioria das organizações deve começar? Normalmente, recomendo começar a jornada para o pensamento nativo da nuvem quando se criam produtos e serviços novos em rede ou durante a modernização de aplicativos (que é uma oportunidade para interromper aplicativos monolíticos e reconstruí-los em parte ou no todo usando uma arquitetura de microsserviços).

Em termos de construção de conhecimento, a tecnologia sem servidor é uma área-chave na qual desenvolver recursos e acompanhar de perto as tendências. A natureza desses serviços — pequenos blocos acopláveis para funções ou problemas específicos — faz com que o ecossistema cresça o tempo todo, com muita sobreposição em alguns casos. À medida que essa caixa de ferramentas cresce, entender como todas elas se encaixam torna-se uma forte vantagem competitiva.

Os sistemas nativos da nuvem são projetados para contemplar mudanças aceleradas, dimensionamento rápido e resiliência. Mas as pessoas raramente se movem tão rápido quanto a tecnologia. Suas equipes precisarão de tempo para desenvolver o conhecimento e se adaptar aos processos necessários para maximizá-lo.

Portanto, nunca é cedo demais para criar oportunidades de desenvolver e compartilhar o conhecimento nativo da nuvem.

 

Join the Conversation: Find Solve on Twitter and LinkedIn, or follow along via RSS.

Stay on top of what's next in technology

Learn about tech trends, innovations and how technologists are working today.

Subscribe
Introducing Cloud Talk

Cloud Talk Podcast: Desbloqueando a agilidade com contêineres e sem servidor

About the Authors

Amir Kashani

VP, AWS Cloud Native Development

Amir Kashani

As VP of AWS Cloud Native Development, Amir Kashani leads a team focused on building cloud-first software solutions for customers across a wide variety of industries. With over 20 years of technical experience and having led product and engineering teams for over ten years, Amir oversees delivery of solutions that reshape how companies embrace the cloud. As a trailblazer of cloud native development, Amir has helped break barriers to cloud native adoption, including in areas of serverless computing and IoT. Amir previously served a similar role at Onica, which was recently acquired by Rackspace. Prior to that, he was co-founder of Sturdy Networks, overseeing technical delivery through to the acquisition by Onica. Amir holds a B.S. in Information & Computer Science from University of California, Irvine.

Read more about Amir Kashani