Há alguns anos, tivemos um problema interessante. Somos uma empresa totalmente remota, com todo o nosso software na nuvem. E tínhamos um conjunto de aplicações Spring Boot rodando em contêineres com Infraestrutura como Código.
precisávamos
agilidade nos negócios.O mercado de trabalho global é dinâmico e sempre há demanda por novos produtos. Precisávamos encontrar uma maneira de manter nossa liderança no setor.
Somos uma empresa de tecnologia com uma estratégia arrojada.
Em 2022, criamos um ADR (Registro de Decisão de Arquitetura) que dizia: "prioridade a arquitetura sem servidor e contêineres conforme necessário". E gerou debates em quase 40 equipes de engenharia.
Vamos começar explicando alguns termos.
A abordagem "serverless-first" não se limita apenas a funções como serviço. Ela também engloba um conjunto de serviços gerenciados de provedores de nuvem que:
-
Reduza os custos operacionais ao não precisar gerenciar a infraestrutura.
-
Dimensionamento conforme necessário, incluindo a possibilidade de dimensionamento até zero para torná-los totalmente elásticos.
-
Tenha preços flexíveis (você paga apenas pelo que usa).
Na GP, "serverless-first" refere-se ao nosso uso de AWS Lambda, EventBridge, Step Functions, Fargate, SQS, SNS, API Gateway, S3, DynamoDB e outros.
Priorizar soluções sem servidor significa que, ao selecionar uma solução para computação, armazenamento, mensagens ou similares, preferimos que as equipes comecem com uma opção sem servidor. Uma observação importante: se o serviço sem servidor não atender às necessidades, as equipes devem recorrer a um serviço mais robusto — um que exija maior investimento operacional.
O conceito de "containers-as-needed" esclarece que "serverless-first" não significa "exclusivamente serverless". Há momentos em que precisamos de contêineres (por exemplo, para instalar um produto de software COTS) — e isso não tem problema.
Uma estratégia tecnológica que prioriza os clientes.
Agimos com agilidade para atender às necessidades de nossos clientes e usuários. Serviços como Lambda, S3 e DynamoBD são incrivelmente resilientes e rápidos. Ao desonerar os usuários das tarefas pesadas e não diferenciadas, podemos dedicar mais tempo ao desenvolvimento de funcionalidades para eles, em vez de trabalhar na configuração genérica da infraestrutura.
Um princípio fundamental da GP é: "Você constrói, você opera." Nossas equipes são proprietárias de seus próprios softwares. Portanto, não simplesmente entregamos o software para uma equipe de DevOps.
Benefícios da abordagem "serverless-first"
A arquitetura sem servidor (Serverless) é inerentemente orientada a eventos.
Nossa arquitetura é totalmente orientada a eventos. Ao utilizarmos a EDA (Arquitetura Orientada a Eventos), podemos dimensionar tanto nossa organização quanto nosso software. A arquitetura sem servidor nos obriga a manter um raio de ação reduzido e a nos comunicar de maneira totalmente nativa da nuvem por meio de eventos.
Habilitando restrições
Como plataforma global de empregos, levamos a conformidade a sério. Nossa infraestrutura em nuvem é bem arquitetada e utilizamos uma estratégia de múltiplas contas que separa as cargas de trabalho e automatiza a conformidade com a nuvem. A arquitetura sem servidor nos ajuda a impor altos padrões, controlando como provisionamos recursos na nuvem.
Delegue o trabalho
Nosso provedor de nuvem gerencia nossos serviços sem servidor. Um conjunto único de componentes básicos — integrados, protegidos, ajustados, habilitados e mantidos pela AWS — nos permite focar em aspectos mais estratégicos da cadeia de valor para os clientes.
Cargas de trabalho bem arquitetadas
Todas as cargas de trabalho que criamos são analisadas com base no AWS Well-Architected Framework. Nosso foco está na escalabilidade, segurança, confiabilidade e otimização de custos para garantir que não apenas atendamos, mas também superemos nosso SLA (Acordo de Nível de Serviço). Isso capacita nossas equipes de engenharia à medida que continuamos a evoluir com ambientes de nuvem.
Sobre nossas equipes
Nossa estratégia tecnológica é ambiciosa, e isso a torna desafiadora. Muitos engenheiros não trabalharam em uma arquitetura sem servidor (ou em uma arquitetura distribuída). A transição para a arquitetura sem servidor não é fácil, e buscamos engenheiros que se sintam à vontade para aprender, pensar grande e trabalhar em ritmo acelerado.
Alguns engenheiros não têm certeza sobre o termo "serverless" (sim, sabemos que existem servidores) porque a abordagem vai além de simplesmente escrever código em funções. Nossa estratégia exige uma abordagem holística aos princípios clássicos da computação em nuvem.
O resultado
Fizemos progressos extraordinários em dois anos. A modernização oferece muitos benefícios (veja nosso artigo sobre AWS / valor comercial conhecido da modernização da nuvem). Especificamente, observamos o seguinte:
1. Velocidade: A forma como dividimos nosso sistema permite que equipes e produtos inovem e evoluam de forma independente. Isso tem um impacto enorme na agilidade dos negócios.
2. Conformidade: Utilizamos o AWS Well-Architected Framework para revisar todas as cargas de trabalho. Como utilizamos muitos serviços gerenciados da AWS, podemos confiar em sua excelência operacional e partir de um ponto de partida de alta qualidade.
3. Pensamento sistêmico: Tivemos que padronizar muitos de nossos processos para que pudéssemos raciocinar sobre o sistema, sua confiabilidade e seu valor para o negócio. Não dedicamos tempo a componentes de baixo valor.
4. Inovação: Serverless significa que tudo é uma API. Essa restrição imposta exige uma abordagem que priorize a API. Ao nos enxergarmos como uma plataforma, podemos alcançar um novo nível de inovação conectando sistemas facilmente por meio de APIs, como integrar o GP Gia ™ a uma nova base de conhecimento.
5. Propriedade: A AWS é proprietária da nossa infraestrutura, mas nós somos proprietários do nosso domínio de negócios. A abordagem "serverless first" com design orientado a domínio nos obrigou a focar no problema de negócio. Isso mantém a propriedade da capacidade bem definida.
Priorizar arquiteturas sem servidor nem sempre é mais rápido, mas é mais vantajoso. Preferimos otimizar a velocidade do sistema em vez da velocidade de cada desenvolvedor individual. A abordagem "serverless first" não se concentra tanto no uso de funções, mas sim na ideia de que "código é um risco". O sistema é o ativo.” Quanto menos código tivermos que escrever, mais poderemos considerar e moldar o sistema de negócios que estamos construindo.
Ao compartilharmos nossa história, ficará evidente a velocidade com que estamos trabalhando, o que é resultado direto da abordagem "serverless-first". Fique atento.


