O que é engenharia de plataforma?

A engenharia de plataforma é uma prática criada a partir dos princípios de DevOps que busca melhorar a segurança, a conformidade, os custos e o valor do tempo de negócios de cada equipe de desenvolvimento por meio de experiências aprimoradas do desenvolvedor e autoatendimento em uma estrutura segura e governada. É uma mudança de mentalidade baseada no produto e um conjunto de ferramentas e sistemas para apoiá-la.

Ultimamente, há muita empolgação da indústria em torno do termo engenharia de plataforma. O Gartner espera que cerca de 80% das organizações de engenharia tenham uma equipe dedicada à engenharia de plataforma até 2026. Essas equipes se concentram na construção do que é chamado de plataforma interna do desenvolvedor. Independentemente do domínio – vendas (Microsoft Dynamics, Salesforce), atendimento de serviços (ServiceNow), comunicações (Twilio) – as plataformas, por sua natureza inerente, são projetadas para alcançar escala e reduzir o tempo necessário para entregar valor comercial.

As plataformas que os desenvolvedores usam ou estendem têm o poder de eliminar o trabalho árduo durante todo o processo de desenvolvimento com experiências de desenvolvedor altamente otimizadas e operações simplificadas. Essas plataformas incluem ferramentas que:

  • Ajudar os desenvolvedores a serem autossuficientes (por exemplo, kits iniciais, plug-ins IDE)
  • Auxiliar em tarefas comuns
  • Encapsule padrões e práticas comuns em blocos de construção reutilizáveis
  • Fornecer conselhos e feedback antecipados sobre problemas ou riscos de segurança
  • Simplifique as operações gerenciando a infraestrutura e as ferramentas subjacentes

O que é uma plataforma interna de desenvolvedor?

Uma plataforma de desenvolvedor interno se concentra nas práticas de desenvolvimento interno de uma empresa. Você define um conjunto de caminhos de desenvolvimento recomendados e com suporte para produção e incrementalmente "pavimenta" um caminho através deles com uma plataforma interna.

Para usar uma analogia do mundo real, novos caminhos geralmente começam como trilhas de terra, mas à medida que mais pessoas os usam, eles são pavimentados para melhorar a segurança, mantendo a velocidade e o rendimento. Caminhos pavimentados dentro de uma plataforma de desenvolvedor interna têm objetivos semelhantes. Eles são projetados para orientar os desenvolvedores por meio de requisitos e padrões críticos sem sacrificar a velocidade de entrega do desenvolvedor. Isso é obtido fornecendo às equipes de desenvolvimento recursos de autoatendimento padronizados, seguros e escalonáveis. Ao mesmo tempo, você ainda facilita para as operações e sua organização de TI garantir que a infraestrutura e as ferramentas subjacentes sejam eficientes, compatíveis e econômicas. Embora alguns caminhos possam ser parcialmente pavimentados, um caminho dourado totalmente pavimentado reduz a carga cognitiva para todos os envolvidos.

Os desenvolvedores são os principais consumidores ou clientes de uma plataforma interna de desenvolvedor. A automação e a centralização permitem operações eficientes, garantindo que os requisitos das partes interessadas, como conformidade, sejam atendidos.

Com a engenharia de plataforma, você cria essa plataforma interna combinando uma mentalidade de produto com aprendizados de DevOps e DevSecOps para fornecer um conjunto de ferramentas. Essas ferramentas fornecem automação, rastreamento, governança e observabilidade suficientes que orientam as equipes de desenvolvimento naturalmente "no poço do sucesso". Como disse um líder de engenharia de plataforma para uma empresa multinacional de mídia de massa:

A engenharia de plataforma foi adotada para aumentar a velocidade ou velocidade na entrega de produtos. Equipes centralizadas eliminam a necessidade de cada equipe se preocupar com a infraestrutura, aumentando assim a eficiência... Eles também aumentam a segurança, pois tudo é predefinido, reduzindo erros. - Daniel, engenheiro de nuvem, empresa de mídia da Fortune 500

Uma plataforma interna para desenvolvedores ajuda você a centralizar e dimensionar o conhecimento especializado em todo o ciclo de vida de desenvolvimento e operações, reduzindo ou eliminando a carga cognitiva e as etapas manuais.

Gráfico de conceitos de engenharia de plataforma.

Crie plataformas de desenvolvedor de forma incremental, com foco em autoatendimento e automação

Implementar uma estratégia de engenharia de plataforma bem-sucedida dá trabalho, mas a recompensa vale a pena. Não é incomum que equipes com menos de 20 pessoas consigam oferecer suporte a milhares de desenvolvedores e centenas de projetos.

No entanto, criar uma plataforma interna para desenvolvedores é uma jornada. Não recomendamos uma abordagem "big bang" ou um esforço de cima para baixo. Um aspecto crítico da engenharia de plataforma é aplicar uma mentalidade de produto em que você trata desenvolvedores, profissionais de aprendizado de máquina ou cientistas de dados como seu cliente. Como disse um engenheiro de plataforma de uma empresa de tecnologia:

[Existem] dois problemas principais que [nossas] ferramentas de engenharia de plataforma foram projetadas para resolver. A primeira foi facilitar o fornecimento de serviços usando um modelo de autoatendimento. … A segunda era fornecer sistemas de suporte automático, como métricas de desempenho e disponibilidade de aplicativos. O objetivo era permitir que os desenvolvedores trabalhassem com mais rapidez e eficiência, ao mesmo tempo em que tinham todas as informações necessárias para solucionar problemas e otimizar seus aplicativos. - Alex, arquiteto líder de nuvem, grande empresa de tecnologia

Não há duas empresas iguais, portanto, considere as necessidades específicas de seus clientes internos para traçar um curso incremental nessa jornada. Ao estabelecer um conjunto de blocos de construção principais que você montará ao longo do tempo, você pode garantir que sua plataforma interna de desenvolvedor tenha valor suficiente para que as equipes de desenvolvimento se tornem defensores e queiram usá-la ao longo do caminho. Use essas informações para criar uma plataforma viável mais fina, um produto mínimo viável para sua plataforma) e cresça a partir daí.

Gráfico de conceitos de engenharia de plataforma com opções de implementação.

O ponto importante é que você deseja pensar em quaisquer investimentos que fizer nessas áreas como blocos de construção essenciais para sua jornada de engenharia de plataforma. Em seguida, você pode se concentrar na criação de cola coesa com seus investimentos personalizados para agregar valor exclusivo ao seu negócio, em vez de construir tudo do zero.