Jump to section

O que é engenharia de plataforma?

Copiar URL

A engenharia de plataforma é uma disciplina dentro do desenvolvimento de software que se concentra em otimizar a produtividade, a duração de ciclo de aplicação e o time to market.

A engenharia de plataforma deve ser encarada como uma estratégia abrangente e interdisciplinar que visa otimizar a cultura de trabalho e a produtividade de forma a influenciar positivamente os resultados obtidos. No contexto empresarial, a engenharia de plataforma agiliza o lançamento de soluções e incrementa a eficiência operacional, melhorando o desenvolvimento, a implantação e a manutenção de aplicações. Culturalmente, a engenharia de plataforma visa otimizar a colaboração entre equipes e reduzir a carga cognitiva dos desenvolvedores, fornecendo a eles as ferramentas e suporte necessários para se concentrarem no que é essencial para o trabalho.

O objetivo principal da engenharia de plataforma é identificar os pontos críticos que afetam as equipes de desenvolvimento e mitigá-los utilizando ferramentas e recursos comuns e reutilizáveis  por meio de uma plataforma interna de desenvolvedor (IDP).

A engenharia de plataforma pode ser tanto um cargo específico quanto uma disciplina ou metodologia assumida por um grupo de profissionais como iniciativa de equipe.

O trabalho da engenharia de plataforma beneficia as organizações ao incentivar a consistência e a eficiência. Ele aprimora a colaboração entre as equipes e diminui a curva de aprendizado dos novos membros, fazendo com que a cooperação entre todos seja mais eficiente.

Em essência, a engenharia de plataforma tem como objetivo reduzir o tempo empregado em tarefas administrativas que podem afetar a produtividade dos desenvolvedores e criar gargalos no ciclo de vida da aplicação. Para isso, engenheiros e equipes de engenharia de plataforma são responsáveis por gerenciar a infraestrutura e criar um conjunto de ferramentas que orientem os desenvolvedores por um fluxo de trabalho estabelecido para atender às necessidades deles conhecido como golden path (caminho dourado).

Ainda que na mesma empresa, diferentes equipes de desenvolvimento podem ter diferentes necessidades. Isso significa que nenhuma plataforma do desenvolvedor será igual à outra. Os engenheiros de plataforma entendem isso. Eles selecionam conjuntos de ferramentas e processos personalizados de acordo com as necessidades específicas da organização, criando recursos self-service e infraestruturas automatizadas que tragam autonomia para os desenvolvedores de software. Essa capacidade de adaptação evita que os desenvolvedores fiquem restritos a soluções padronizadas, permitindo que eles utilizem as ferramentas que considerarem mais adequadas aos requisitos do projeto. Ao mesmo tempo, isso reduz a necessidade de aprender novas habilidades e elimina o trabalho supérfluo. Assim, os desenvolvedores podem se concentrar em sua especialidade: o código.

As equipes de engenharia de plataforma também garantem que estruturas de governança robustas estejam em vigor para manter o controle sobre recursos, segurança e conformidade em todos os ambientes. Isso traz a vantagem adicional de oferecer às organizações uma maneira mais prática de monitorar o desempenho, controlar os custos e identificar possíveis riscos e vulnerabilidades. 

De onde vem a engenharia de plataforma?

A engenharia de plataforma surgiu como uma resposta a um novo argumento na área de tecnologia: a infraestrutura não deveria ser uma preocupação dos desenvolvedores, principalmente no caso de ambientes de nuvem híbrida e multicloud. 

Tradicionalmente, o trabalho do desenvolvedor era criar ou encontrar ferramentas que suprissem suas necessidades. Antes, iterações de tecnologia básicas atendiam a essa expectativa. Porém, à medida que as empresas crescem, fica cada vez mais complexo e fragmentado para os desenvolvedores oferecerem suporte aos usuários e escalarem com eficiência em organizações de maior porte.

Novas ferramentas são lançadas diariamente, funcionalidades surgem a todo momento, e isso torna avaliar e selecionar as ferramentas ideais para as tarefas um processo demorado. Aprender a operar novas ferramentas, pesquisar tecnologias emergentes, investigar as ameaças de segurança mais recentes e solicitar serviços de infraestrutura e aplicações pode consumir um volume considerável de tempo, energia mental e recursos. Esse esforço poderia ser investido na otimização das soluções comercializadas e na conquista de metas de negócios. 

No mundo da engenharia de plataforma, os desenvolvedores são os clientes e as plataformas internas do desenvolvedor (IDPs) são a solução.

Uma IDP é configurada pelas equipes de engenharia de plataforma e consiste em um conjunto padronizado de ferramentas e tecnologias self-service internas essenciais para os desenvolvedores criarem, implantarem e fazerem a manutenção do código em todo o ciclo de vida de uma aplicação. As cadeias de ferramentas integradas a uma IDP permitem um fluxo de trabalho mais produtivo para que os desenvolvedores possam se concentrar em coisas como segurança e escalabilidade. Em última análise, elas ajudam as empresas a gerar mais valor para o cliente.

Criar uma IDP eficiente significa procurar por pontos de fricção na experiência do desenvolvedor e selecionar ferramentas e tecnologias capazes de remover ou reduzir esses atritos. Inicie com uma abordagem simples, incluindo apenas ferramentas que você sabe que serão úteis para sua equipe de desenvolvimento A partir daí, expanda os recursos para que evoluam em conjunto com as necessidades da sua equipe, sempre buscando feedback durante o processo. 

Como o DevOps, a engenharia de plataforma compartilha o objetivo comum de alinhar melhor os desenvolvedores com as operações, aprimorando a automação e a colaboração. Quando pensamos na relação entre as duas práticas, a engenharia de plataforma pode ser considerada um ingrediente essencial e complementar para lidar com o desafio de escalar o DevOps em uma empresa.

As práticas de DevOps costumam incentivar os desenvolvedores a pesquisar, aprender, implementar e gerenciar o software por conta própria, proporcionando mais conhecimento e controle sobre a aplicação em produção No entanto, essa abordagem nem sempre beneficia o resultado final, podendo, em vez disso, gerar custos administrativos indiretos e aumentar a carga cognitiva sobre os desenvolvedores.

Uma equipe pode ter interesse em entregar uma função, mas não o conjunto de habilidades necessário para fazê-lo. Por outro lado, ela pode ter as habilidades, mas não o interesse de criar a função. A equipe pode, ainda, ter as habilidades e o interesse, mas não ser seguro ou viável economicamente colocar a ideia em prática. Tudo isso se torna ainda mais complicado à medida que as organizações escalam e crescem.

A adoção do DevOps e da entrega contínua resultou em pipelines e cadeias de ferramentas mais longas. E com a pressão adicional da abordagem "shift left" (que implica em um entendimento completo de como proteger cada etapa do fluxo de trabalho ao criar e manter uma aplicação), os desenvolvedores passaram a ser responsáveis por compreender cada vez mais as complexidades envolvidas nas aplicações que estão construindo.

Essa autonomia oferece um senso de liberdade. No entanto, também pode levar à sensação de responsabilidade e carga cognitiva debilitantes, algo que não beneficia nem o indivíduo nem a organização.

Ao priorizar a empatia e a jornada do usuário, a engenharia de plataforma, como estratégia, expande o DevOps encontrando maneiras mais eficazes de automatizar a entrega de aplicações, melhorar a colaboração e a comunicação, reduzir erros, aumentar a segurança e a conformidade, incrementar a eficiência e, o mais importante, redirecionar as principais habilidades dos desenvolvedores para onde elas são mais necessárias. 

Tanto a engenharia de plataforma quanto a engenharia de confiabilidade de sites envolvem criar e fazer a manutenção de sistemas. A diferença entre as duas práticas está no foco. A SRE se concentra nas equipes de operações de TI, ajudando-as a utilizar os software como ferramentas para gerenciar sistemas, solucionar problemas e automatizar tarefas operacionais.

Os engenheiros de plataforma se concentram nas equipes de desenvolvimento, auxiliando na criação de plataformas para gerenciar sistemas, solucionar problemas e automatizar tarefas. 

Red Hat® OpenShift®se destaca ao oferecer às equipes de engenharia de plataforma um conjunto abrangente de recursos e funcionalidades, como versõesipelinesGitOps, modelo serverless e  service mesh.

Quando combinado com o Red Hat Developer Hub, o OpenShift oferece às equipes de engenharia os templates, documentação e fluxos de trabalho do projeto de que elas precisam para criar e gerenciar uma plataforma de desenvolvedor interna personalizada para as necessidades e objetivos da organização.

Com o Red Hat Developer Hub, os desenvolvedores têm acesso a um dashboard unificado em que podem acessar ferramentas, templates, documentações e outros recursos para criar software de alta qualidade, com eficiência. Além disso, o Developer Hub consolida as informações e os recursos de que os desenvolvedores precisam para ingressarem em um projeto em curso, minimizando o tempo de integração.

O foco da plataforma na inovação open source oferece flexibilidade e evita a dependência de fornecedor, enquanto a reputação da Red Hat no que diz respeito à estabilidade, suporte e confiabilidade, proporciona tranquilidade. E mais: o Developer Hub é uma solução preparada para o futuro e para as mudanças nas necessidades de desenvolvimento, com escalabilidade e capacidade de integrar facilmente novas ferramentas e serviços por meio de plug-ins.

Usando o OpenShift Red Hat Developer Hub,o  Trusted Software Supply Chain, o Advanced Cluster Security (ACS)o Advanced Cluster Management (ACM)e o Ansible como elementos centrais, os engenheiros de plataforma podem projetar e criar fluxos de trabalho e conjuntos de ferramentas integrados que oferecem uma experiência mais fluida e eficiente aos desenvolvedores. 

Leitura recomendada

ARTIGO

O que é DevSecOps?

Se você quiser aproveitar ao máximo a agilidade e a capacidade de resposta do DevOps, a equipe de segurança da TI precisará participar de todo o ciclo de vida das suas aplicações.

ARTIGO

O que é CI/CD?

A prática de CI/CD aplica monitoramento e automação contínuos a todo o ciclo de vida das aplicações, desde as etapas de teste e integração até a entrega e a implantação.

ARTIGO

O que faz o engenheiro de DevOps?

O engenheiro de DevOps é um profissional que reúne uma combinação única de habilidades e tem o conhecimento especializado para promover mudanças em termos de colaboração, inovação e cultura dentro da empresa.  

Leia mais sobre DevOps

Soluções Red Hat

Um programa de residência imersiva com especialistas da Red Hat, no qual você aprende a usar uma metodologia ágil e ferramentas open source para solucionar problemas empresariais.

Os consultores estratégicos da Red Hat fornecem uma visão geral da sua organização, analisam os desafios e ajudam a superá-los com soluções abrangentes e econômicas.

Conteúdo adicional

Checklist

Automação empresarial com uma metodologia DevOps

Whitepaper

Otimize pipelines de CI/CD com o Red Hat Ansible Automation Platform