O que são ferramentas de engenharia de plataforma?

Copiar URL

As ferramentas de engenharia de plataforma ajudam as equipes de desenvolvimento (internas e externas) a melhorar a produtividade, fornecendo acesso ao que elas precisam quando necessário com uma abordagem self-service. As ferramentas de engenharia de plataforma viabilizam recursos como integração e entrega ou implantação contínuas (CI/CD), Infrastructure as Code (IaC), conteinerização, observabilidade, segurança, self-service para desenvolvedores e muito mais.

Uma equipe de engenharia de plataforma (também chamada de equipe de plataforma) é responsável por oferecer suporte a um portal do desenvolvedor. Esse portal oferece acesso self-service a recursos, documentação e ferramentas que os desenvolvedores precisam para interagir com vários serviços e APIs. Além disso, as equipes de plataforma podem manter uma plataforma interna de desenvolvedor (IDP), que funciona como a infraestrutura subjacente para criar, implantar e gerenciar aplicações.

Engenharia de plataforma e ferramentas do desenvolvedor têm relação entre si, mas não pertencem à mesma categoria. As tecnologias de engenharia de plataforma e a própria plataforma (IDP) ajudam a estabelecer processos consistentes para os desenvolvedores trabalharem com eficiência. Com base nessa estrutura, as ferramentas do desenvolvedor ajudam a otimizar a experiência com IDP e a realizar projetos específicos.

Abaixo, analisaremos em detalhes os objetivos da engenharia de plataforma e as tecnologias e serviços disponíveis para viabilizá-los.

A engenharia de plataforma busca entender a variedade de tecnologias existentes na era nativa em nuvem. Os engenheiros de plataforma projetam e criam cadeias de ferramentas e fluxos de trabalho que oferecem recursos de self-service para organizações de engenharia de software. As equipes de desenvolvimento conseguem acessar os recursos em poucos minutos, com a garantia de que as soluções fornecidas têm suporte interno, são observáveis e seguem as práticas de segurança da organização.

A engenharia de plataforma é uma abordagem multidisciplinar que une cultura de trabalho, operações de negócios, colaborações em equipe e muito mais para ter um desenvolvimento de software mais eficiente. Ela reconhece a carga cognitiva imposta aos desenvolvedores de software e busca identificar e mitigar os pontos problemáticos que os desenvolvedores apontam.

Como isso funciona na prática? Os engenheiros de plataforma montam uma coleção de conteúdo, ferramentas, documentação, templates e fluxos de trabalho que oferecem flexibilidade e mantêm a consistência organizacional. Os engenheiros de plataforma oferecem ferramentas e recursos comuns e reutilizáveis para ajudar os desenvolvedores a trabalhar com eficiência e promover a produtividade.

Estado da engenharia de plataforma na era da IA

Uma plataforma interna de desenvolvedor (IDP) é formada por um conjunto padronizado de tecnologias e ferramentas self-service que os desenvolvedores podem usar para criar e implantar código. Como as IDPs consolidam e simplificam os elementos do processo de desenvolvimento, elas fazem com que o trabalho das equipes seja mais gerenciável, eficiente e colaborativo.

As IDPs são o resultado das escolhas feitas na engenharia de plataforma. Uma IDP é uma base de APIs self-service, ferramentas, serviços, conhecimento e suporte, organizados como um produto interno atrativo. Os principais usuários de uma IDP são as equipes de desenvolvimento, mas são os engenheiros de plataforma que lidam com a configuração inicial, a manutenção e o suporte. Isso garante que toda a organização use um conjunto unificado de tecnologias e recursos, independentemente de quem o criou. Fornecer uma IDP pode ser uma maneira de promover e manter as práticas recomendadas de DevOps, fortalecendo a colaboração entre as equipes de operações e desenvolvimento.

Às vezes, os termos "portal interno do desenvolvedor" e "plataforma interna do desenvolvedor" são confundidos. Na verdade, o portal atua como front-end da plataforma interna, que oferece mais recursos e escalabilidade.

Um dos projetos open source mais conhecidos para plataformas de desenvolvedor é o Backstage, que foi criado por engenheiros do Spotify e posteriormente doado à Cloud Native Computing Foundation (CNCF). O Backstage é a base do Red Hat® Developer Hub. O Red Hat Developer Hub oferece um framework opinativo e com suporte para a criação de plataformas de desenvolvedor, com integrações e suporte para clientes empresariais.

Mais informações sobre plataformas internas de desenvolvedor

As ferramentas de CI/CD ajudam a equipe a automatizar o desenvolvimento, a implantação e os testes. Algumas ferramentas tratam especificamente da integração (CI), algumas gerenciam o desenvolvimento e a implantação (CD) e outras são especializadas em testes contínuos ou funções relacionadas. Muitas dessas ferramentas podem ser integradas a uma IDP como parte de uma abordagem de engenharia de plataforma.

Há uma variedade de ferramentas de CI/CD open source bem conhecidas. A lista abaixo traz alguns exemplos.

  • O Argo CD é uma ferramenta declarativa de entrega contínua para Kubernetes que se alinha às práticas do GitOps. Ele pode ser usado como uma ferramenta independente ou como parte de um fluxo de trabalho de CI/CD para entregar os recursos de que os clusters precisam.
  • O Red Hat OpenShift® GitOps foi criado com base no Argo CD.
  • O Tekton é um framework de CI/CD para plataformas Kubernetes que oferece uma experiência de CI/CD nativa em nuvem padrão com containers.
  • O Red Hat OpenShift Pipelines foi desenvolvido com base no framework do Tekton.
  • O Jenkins é uma ferramenta de automação capaz de lidar com processos de CI e CD em escalas grandes e pequenas.
  • O Spinnaker é uma plataforma de CD feita para ambientes multicloud.
  • O GoCD é um servidor de CI/CD voltado para modelagem e visualização.
  • O Concourse é uma ferramenta de automação ideal para processos contínuos.
  • O Screwdriver é uma plataforma de compilação criada para CD.

Convém às equipes considerar as ferramentas de CI/CD gerenciadas, disponíveis em uma variedade de fornecedores. A escolha certa de ferramentas de CI/CD pode ajudar as equipes a automatizar a criação, os testes e a implantação de aplicações nas plataformas. 

Mais informações sobre CI/CD

A IaC é uma abordagem de gerenciamento de infraestrutura. Com ela, os administradores automatizam o gerenciamento e o provisionamento da infraestrutura, incluindo servidores e máquinas virtuais. Esse suporte a uma infraestrutura automatizada e de self-service se alinha aos objetivos da engenharia de plataforma.

Trabalhar com IaC significa usar arquivos de configuração para definir as especificações da sua infraestrutura. Isso facilita o provisionamento consistente de ambientes. A IaC possibilita a edição e a distribuição de configurações em uma organização, além de desencorajar alterações ad-hoc não documentadas.

A IaC depende da automação do servidor e de ferramentas de gerenciamento de configuração. Algumas ferramentas comuns de automação de TI que se alinham à abordagem de IaC são: Red Hat Ansible® Automation Platform, Terraform, Chef, Puppete Salt.

Mais informações sobre a IaC

As ferramentas de container são uma parte importante do currículo de um engenheiro de plataforma.

Os containers empacotam e isolam aplicações com todo o seu runtime, ou seja, todos os arquivos necessários para executá-las. Como resultado, as aplicações em containers serão executadas de maneira consistente onde quer que sejam implantadas, em diferentes ambientes e infraestruturas. Os containers são fundamentais para o desenvolvimento nativo em nuvem, um método que divide grandes aplicações em coleções de microsserviços independentes e com baixo acoplamento.

Há uma variedade de ferramentas open source que facilitam o trabalho com containers. Para criar e implantar containers, os desenvolvedores podem usar ferramentas como o Docker e o Podman, ambos compatíveis com os padrões da Open Container Initiative (OCI).

Para gerenciar containers em grande escala, as equipes de operações contam com plataformas de orquestração de containers, como o projeto open source Kubernetes. A orquestração automatiza a implantação, o gerenciamento, a escala e a rede de containers ao longo do ciclo de vida.

As plataformas Kubernetes estão disponíveis por meio de vários provedores diferentes. O Red Hat OpenShift é uma plataforma de aplicações empresarial baseada no Kubernetes. Os engenheiros de plataforma podem integrar o Red Hat OpenShift a uma IDP, como o Red Hat OpenShift Developer Hub, para oferecer uma plataforma de desenvolvedor.

O monitoramento e a observabilidade são importantes para a engenharia de plataforma, pois permitem que as equipes examinem saídas, logs e métricas de desempenho para entender melhor o estado de um sistema ou aplicação. Essa visibilidade ajuda desenvolvedores e administradores a melhorar a confiabilidade, o desempenho e a segurança de aplicações e infraestruturas complexas.

A observabilidade amplia o conceito de monitoramento para incluir a identificação da fonte dos problemas, além das previsões. Existem muitas opções de ferramentas e tecnologias de observabilidade, e as equipes podem configurar os próprios sistemas de observabilidade da maneira que funcionar melhor para elas.

Algumas ferramentas open source normalmente usadas para observabilidade incluem o Grafana, o Jaeger, o OpenTelemetry e o Prometheus. O Red Hat OpenShift Observability é um conjunto de ferramentas de observabilidade criadas para funcionar com o Red Hat OpenShift usando os padrões do OpenTelemetry.

Mais informações sobre observabilidade

Com o aumento das preocupações com a segurança, o desenvolvimento de software moderno adotou uma estratégia de "shift left" para abordar a segurança em cada fase do ciclo de vida de desenvolvimento de software (SDLC). Em vez de uma última verificação antes da implantação, a segurança agora começa no início de um projeto.

Os engenheiros de plataforma ajudam os desenvolvedores a seguir as medidas de segurança em todo o SDLC. Essas etapas podem incluir verificações e testes automatizados no pipeline de CI/CD, que protegem o código, evitam vazamentos de dados, reforçam a conformidade com as políticas e garantem a qualidade.

Outras ferramentas de segurança da engenharia de plataforma ajudam com o gerenciamento de segredos (senhas, arquivos de configuração do cliente, credenciais do repositório e assim por diante) e a segurança de API, incluindo o gerenciamento de chaves de API.

A Red Hat oferece uma série de ferramentas e serviços que oferecem suporte à segurança de software.

O Red Hat Trusted Software Supply Chain reúne um conjunto de soluções que podem ajudar a reduzir vulnerabilidades e reforçar políticas de segurança, incluindo o Red Hat Trusted Profile Analyzer, o Red Hat Advanced Developer Suite e o Red Hat Trusted Artifact Signer.

Para implantações Kubernetes, o Red Hat Advanced Cluster Security for Kubernetes protege as cargas de trabalho em containers nas plataformas, ajudando as equipes a identificar e solucionar vulnerabilidades e reforçar as políticas de segurança.

Mais informações sobre segurança de CI/CD

Os engenheiros de plataforma podem encontrar uma variedade de soluções da Red Hat alinhadas aos seus objetivos. As soluções e serviços da Red Hat trabalham juntos para melhorar a produtividade da equipe, aumentar o self-service, acelerar o onboarding e reduzir tarefas repetitivas.

O Red Hat OpenShift é uma plataforma de aplicações empresarial. Com ele, os desenvolvedores usam as ferramentas em que confiam em uma variedade de aplicações, onde quer que estejam implantadas: on-premise, na nuvem ou na edge.

O Red Hat Developer Hub promove a eficiência e a colaboração em todo o processo de desenvolvimento de software. Ele oferece uma plataforma unificada e aberta, reduzindo a carga mental e a frustração da equipe de desenvolvimento. Com o Red Hat Developer Hub, as organizações podem usar IDPs para consolidar elementos do processo de desenvolvimento, simplificar fluxos de trabalho e promover a colaboração interna.

O Red Hat Trusted Software Supply Chain ajuda as equipes a incorporar segurança em componentes, processos e práticas desde o início da fabricação do software.

Hub

Soluções empresariais do Red Hat Developer Hub

Uma plataforma empresarial aberta baseada no Backstage usada para a criação de portais de desenvolvedores, que consolida visualmente diversos elementos do processo de desenvolvimento.

Red Hat OpenShift para engenheiros de plataforma

Red Hat OpenShift fornece aos engenheiros de plataforma as ferramentas necessárias para desenvolver e gerenciar plataformas de desenvolvimento interno com eficiência.

Leia mais

O que é golden path no desenvolvimento de software?

O golden path (caminho dourado) é uma maneira direcionada, documentada e com suporte de criar e implantar software na organização.

Engenharia de plataforma e DevOps

Entenda as diferenças entre engenharia de plataforma e o DevOps para escolher a abordagem que melhor atende aos seus objetivos.

Red Hat OpenShift para engenheiros de plataforma

Red Hat OpenShift fornece aos engenheiros de plataforma as ferramentas necessárias para desenvolver e gerenciar plataformas de desenvolvimento interno com eficiência.

Platform engineering: conteúdo adicional

Produto em destaque

  • Red Hat Developer Hub

    Uma plataforma empresarial aberta baseada no Backstage para a construção de portais de desenvolvedores que consolidam visualmente elementos do processo de desenvolvimento.