Quando trabalhou como gerente de produto no Google de 2014 a 2017, Chris Stephenson foi uma testemunha ocular do enorme, crescente e poderoso ambiente de desenvolvimento de aplicativos do Google. Ele observou com fascínio enquanto os desenvolvedores pensavam em novas ideias de software e rapidamente avançavam para construí-las para uso por 100 milhões de usuários.
O mais incrível que ele notou foi que os desenvolvedores do Google simplesmente se concentravam em sonhar com seus softwares e nunca precisavam pensar no backend no qual eles seriam executados e distribuídos. Isso foi libertador para eles, disse Stephenson ao The New Stack.
"Isso significa que os desenvolvedores, engenheiros de software do Google, só precisam realmente se preocupar com o problema que estão tentando resolver, e não precisam resolver problemas sobre como executar software em escala", disse ele. "Então, o que acontece no Google é que você cria uma ideia de produto e constrói um produto para atingir automaticamente 100 milhões de usuários. Isso é apenas a escala do Google. É apenas como ele opera."
Embora o Google não tenha chamado formalmente essas maquinações de desenvolvimento interno de Plataformas de Desenvolvimento Interno (IDPs) na época, era basicamente isso que elas eram, ele acrescentou.
Essas foram lições poderosas para Stephenson, que em julho de 2019 se tornou o CTO da então incipiente fornecedora de engenharia de plataforma, Humanitec. Em seu novo cargo, ele levou consigo essas impressões indeléveis de suas experiências e observações no Google.
"Fundamentalmente, os engenheiros do Google apenas focam na lógica de negócios e no que eles querem", disse Stephenson. "A plataforma, por sua coleção de infraestrutura de ajuste e suporte, significa que eles podem se concentrar em resolver o problema de negócios, e então a infraestrutura meio que resolve o problema de distribuição."
Essas observações levaram a mais perguntas em sua mente sobre os processos de desenvolvimento do Google. Como você coloca o software lá fora? Como você o faz escalar? Como você o torna resiliente? Como você o torna disponível para 100 milhões de pessoas sem cair?
Outros tecnólogos, é claro, também estavam pensando sobre novos métodos de desenvolvimento de software e como sistemas tradicionais poderiam ser reformulados. Esses tecnólogos também estavam considerando como grandes empresas como o Google estavam desenvolvendo e distribuindo vastas quantidades de software e produtos, e como lições poderiam ser aprendidas desse trabalho.
Emulando os processos do Google para empresas
Quando Stephenson se juntou à Humanitec, suas observações sobre o Google também estavam sendo discutidas e imaginadas por outros inovadores no mundo da tecnologia, incluindo os luminares da engenharia de plataforma Manuel Pais, o coautor de Team Topographies, Florian Lipp, Gregor Hohpe, Ajay Chankramath, Jason Warner e outros. Essas discussões continuaram sobre novos tipos de processos de desenvolvimento eficientes e escaláveis para empresas de qualquer tamanho. Mentes brilhantes ao redor do mundo estavam falando sobre isso, pensando sobre isso e encontrando maneiras de usá-lo.
"Como podemos trazer essa ideia de ter o tipo de poder no Google — e, incidentalmente, também no Facebook, Netflix e outras grandes empresas de tecnologia?", disse Stephenson. "Eles resolveram o problema de tornar seus engenheiros de software muito mais eficazes. Foi um multiplicador de força para o engenheiro, porque eles só precisam se preocupar em resolver seus problemas."
Naqueles primeiros dias, as ideias se expandiram para descobrir como tais possibilidades de desenvolvimento poderiam ser levadas às pessoas em qualquer empresa, incluindo startups, bancos de médio porte, empresas de RH e até mesmo empresas que talvez não fossem tecnicamente avançadas. As possibilidades eram quase infinitas.
Os Facilitadores Chegam
Como essas questões eram o assunto de conferências, reuniões, artigos de pesquisa e discussões em cafeterias, duas outras tecnologias que chegariam para impulsionar a engenharia de plataforma — computação em nuvem e Kubernetes — estavam evoluindo, crescendo e se tornando mais poderosas por si mesmas. Ninguém sabia na época, mas elas se tornariam os facilitadores necessários que poderiam fazer a engenharia de plataforma decolar para qualquer negócio, disse Stephenson.
"Sempre há a pergunta: 'Por que algo acontece em um ponto específico no tempo?'", disse Stephenson. "Mas algo fez com que tudo acontecesse ao mesmo tempo. Fundamentalmente, foi o desenvolvimento de tecnologias de nuvem que deixou de ser um brinquedo sobre o qual as pessoas gostavam de falar para se tornar algo que foi amplamente adotado. E você pode alinhá-lo muito bem com o ponto de inflexão do Kubernetes."
Esse é o momento em que o Kubernetes "deixou de ser um brinquedo geek para ser algo que as empresas da Fortune 500 estavam usando para executar sua infraestrutura de produção" começando entre 2018 e 2020, ele disse. "O Kubernetes realmente decolou, e isso permitiu que você executasse aplicativos de nuvem em muitas escalas diferentes, com consistência e padronização dentro do ecossistema de nuvem pela primeira vez."
Antes dessa combinação, "você precisava de uma equipe de engenharia do tamanho do Google, Facebook ou Netflix para realmente dar suporte e desenvolver em termos de uma plataforma", disse Stephenson. "Eles inventaram toda essa tecnologia para servir ao Google e sistemas semelhantes no Netflix e no Facebook. E o que aconteceu é que com o Kubernetes e essa plataforma você poderia começar a fazer isso em outras escalas. Foi, eu acho, um ponto de inflexão importante."
No final, o que foi fundamental foi a união de todas essas tecnologias ao mesmo tempo.
"Isso reflete muito de perto a ascensão do Kubernetes como uma camada de computação dominante dentro da nuvem", disse ele, "E é por isso que todas essas pessoas estavam falando sobre as mesmas coisas ao mesmo tempo, por que todos nós nos conhecemos e começamos a ter essas ideias se refletindo uns nos outros."
A evolução da engenharia de plataformas continua
Tem sido uma jornada interessante até agora para o movimento de engenharia de plataforma, disse Kaspar von Grunberg, CEO da Humanitec, ao The New Stack.
"É importante ressaltar que estamos nas primeiras eras da engenharia de plataforma", disse von Grunberg. "Ainda não há melhores práticas. Muitas coisas ainda não têm nomes. Para algumas pessoas, isso parece que existe há muito tempo, mas a verdade é que conhecemos apenas talvez 20% da prática completa."
Ainda há muito a aprender sobre o campo, ele disse. "Vocês deveriam pular no trem do IDP", disse von Grunberg. "Os desenvolvedores deveriam se juntar às comunidades e compartilhar suas histórias de fracasso."
Stephenson concorda.
"Estamos olhando para trás e estamos cientes de todos os becos sem saída pelos quais passamos para chegar aqui", disse Stephenson. "As únicas ideias que você vê são aquelas que deram certo, certo? Bem, nós, como comunidade e como organização, vamos cair em muitos outros becos sem saída e vamos voltar atrás se descobrirmos que o beco sem saída não deu certo. Precisamos contar a todos sobre isso para que outras pessoas não caiam nos mesmos becos sem saída."