O que é a engenharia de plataformas?
A engenharia de plataformas é uma prática criada a partir dos princípios do DevOps que procura melhorar a segurança, conformidade, custos e valor de tempo para negócio de cada equipa de desenvolvimento através de experiências melhoradas de programador e self-service numa arquitetura segura e governada. É uma mudança de mentalidade baseada no produto e um conjunto de ferramentas e sistemas para a suportar.
Ultimamente, há muita excitação da indústria em torno do termo engenharia de plataformas. Na verdade, a Gartner espera que cerca de 80% das organizações de engenharia tenham uma equipa dedicada à engenharia de plataformas até 2026. Estas equipas focam-se na criação do que se chama uma plataforma de programador interna. Independentemente do domínio – as vendas (por exemplo, Microsoft Dynamics, Salesforce), a realização de serviços (por exemplo: ServiceNow), comunicações (por exemplo: Twilio) – as plataformas, pela respetiva natureza inerente, foram concebidas para alcançar dimensionamento e reduzir o tempo necessário para fornecer valor comercial.
As plataformas que os programadores utilizam ou expandem podem eliminar tarefas em todo o processo de desenvolvimento com experiências de programador altamente otimizadas e operações simplificadas. Estas plataformas incluem ferramentas que:
- Ajudar os programadores a serem auto-suficientes (por exemplo, kits de arranque, plug-ins IDE)
- Ajudar com tarefas comuns
- Encapsular padrões e práticas comuns em blocos modulares reutilizáveis
- Fornecer aconselhamento e feedback antecipados sobre problemas ou riscos de segurança
- Simplificar as operações ao gerir a infraestrutura e as ferramentas subjacentes
O que é uma plataforma de programador interna?
Uma plataforma de programador interna está focada nas práticas de desenvolvimento interno de uma empresa. Define um conjunto de caminhos de desenvolvimento recomendados e suportados para a produção e "preparar" incrementalmente um caminho através deles com uma plataforma interna. Para usar uma analogia real, os novos caminhos começam muitas vezes como rastos de terra, mas à medida que mais pessoas os usam, são pavimentados para melhorar a segurança, mantendo a velocidade e o débito. Os caminhos pavimentados numa plataforma de programador interna têm objetivos semelhantes. Foram concebidos para orientar os programadores através de requisitos e padrões críticos sem sacrificar a velocidade de entrega do programador. Isto é conseguido ao fornecer às equipas de programador capacidades personalizadas padronizadas, seguras e dimensionáveis. Ao mesmo tempo, continua a facilitar as operações e a sua organização de TI para garantir que a infraestrutura e as ferramentas subjacentes são eficientes, compatíveis e económicas. Embora alguns caminhos possam ser parcialmente pavimentados, um caminho totalmente pavimentado e dourado reduz a carga cognitiva para todos os envolvidos. Os programadores são os principais consumidores ou clientes de uma plataforma de programador interna. A automatização e a centralização permitem operações eficientes, garantindo simultaneamente que os requisitos dos intervenientes, como a conformidade, são cumpridos.
Com a engenharia de plataformas, vai criar esta plataforma interna ao combinar uma mentalidade de produto com aprendizagens do DevOps e do DevSecOps para fornecer um conjunto de ferramentas. Estas ferramentas fornecem automatização, controlo, governação e observabilidade suficientes que orientam as equipas de desenvolvimento naturalmente "para o poço do sucesso". Como um líder de engenharia de plataforma para uma empresa multinacional de multimédia de massas disse:
A engenharia de plataformas foi adotada para aumentar a velocidade ou velocidade na entrega de produtos. As equipas centralizadas eliminam a necessidade de cada equipa se preocupar com a infraestrutura, aumentando assim a eficiência... Também aumentam a segurança e a segurança, uma vez que tudo está predefinido, reduzindo os erros. - Daniel, Engenheiro da Cloud, Fortune 500 Media Company
Por outras palavras, uma plataforma de programador interna ajuda-o a centralizar e dimensionar conhecimentos especializados na totalidade do seu ciclo de vida de desenvolvimento e operações ao reduzir ou eliminar a carga cognitiva e os passos manuais.
A implementação de uma estratégia de engenharia de plataformas bem-sucedida requer trabalho, mas a recompensa vale a pena. Não é incomum que equipas com menos de 20 indivíduos possam apoiar milhares de programadores e centenas de projetos.
No entanto, criar uma plataforma de programador interna é um percurso. Não recomendamos uma abordagem "big bang" ou um esforço de cima para baixo. Um aspeto crítico da engenharia de plataformas é aplicar uma mentalidade de produto onde trata programadores, profissionais de machine learning ou cientistas de dados como o seu cliente. Como disse um engenheiro de plataforma numa empresa tecnológica:
[Há] dois problemas principais que [as nossas] ferramentas de engenharia de plataforma foram concebidas para resolver. A primeira foi facilitar o aprovisionamento de serviços com um modelo self-service. … A segunda foi fornecer sistemas de suporte automáticos, como métricas de desempenho e disponibilidade de aplicações. O objetivo era permitir que os programadores trabalhassem de forma mais rápida e eficiente, ao mesmo tempo que tinha todas as informações necessárias para resolver problemas e otimizar as respetivas aplicações. - Alex, Arquiteto Principal da Cloud, Empresa de Grandes Tecnologias
Esta pode ser uma ordem alta a implementar, mas não existem duas empresas iguais, pelo que considere as necessidades específicas dos seus clientes internos para desenhar um curso incremental ao longo deste percurso. Ao estabelecer um conjunto de blocos modulares principais que irá montar ao longo do tempo, pode garantir que a sua plataforma de programador interna tem valor suficiente para que as equipas de desenvolvimento se tornem consultoras e pretendam utilizá-la ao longo do caminho. Utilize estas informações para criar uma plataforma viável mais fina (TVP, um produto viável mínimo para a sua plataforma) e crescer a partir daí.
O importante é que quer pensar nos investimentos que fizer nestas áreas como principais blocos modulares para o seu percurso de engenharia de plataformas.
Em seguida, pode concentrar-se em criar cola coesa com os seus investimentos personalizados para adicionar valor exclusivo para a sua empresa, em vez de construir tudo do zero.