O que é uma IDP?
Uma plataforma interna de desenvolvedor (IDP) é formada por um conjunto padronizado de tecnologias e ferramentas de self-service que os desenvolvedores precisam para criar e implantar código. Como a IDP consolida e simplifica os elementos do processo de desenvolvimento, seu objetivo básico é fazer com que o trabalho diário das equipes seja mais gerenciável, eficiente e colaborativo.
Observação: no stack de tecnologia de uma organização, pode existir outro tipo de IDP, um portal interno do desenvolvedor. Nesse caso, esse portal dá acesso completo à plataforma de aplicações, incluindo uma plataforma interna de desenvolvedor e um sistema de containers. No ecossistema da Red Hat, o Red Hat® Developer Hub é esse portal de nível empresarial. Já a plataforma mais ampla poderia incluir o Red Hat® OpenShift® Platform Plus e o Red Hat® Ansible® Automation Platform.
Quem configura e usa uma plataforma interna de desenvolvedor?
Os principais usuários das IDPs são os desenvolvedores de aplicações, e os engenheiros de plataforma ficam encarregados da configuração inicial e da manutenção. Para engenheiros de plataforma, uma IDP pode ser vista como uma solução integrada que oferece aos desenvolvedores as ferramentas necessárias para operacionalizar uma aplicação durante todo o seu ciclo de vida.
Quais são os principais componentes e a arquitetura de uma IDP?
A arquitetura das IDPs pode ser categorizada em camadas funcionais específicas (planes):
- Plano de controle do desenvolvedor: o principal ponto de interação para os usuários. Ele inclui o portal do desenvolvedor, catálogos de componentes de software, interfaces de usuário (IUs) e interfaces de linha de comando (CLIs).
- Plano de integração e entrega: o mecanismo de configuração. Muitas vezes, ele se concentra em um orquestrador de plataforma. Ele recebe a intenção do desenvolvedor a partir do plano de controle e a traduz em fluxos de trabalho automatizados para criar, armazenar, configurar e implantar aplicações.
- Plano de recursos: a infraestrutura de base padronizada e os runtimes necessários para hospedar as aplicações, incluindo orquestração de containers, computação, armazenamento e recursos de rede.
- Planos de segurança e observabilidade: abrange toda a plataforma para proteger informações confidenciais, gerenciar segredos, aplicar o controle de acesso baseado em função (RBAC) e fornecer monitoramento em tempo real e métricas de registro para aplicações e infraestrutura.
A infraestrutura de cada organização é única, mas uma plataforma interna de desenvolvedor depende de um conjunto de componentes principais que funcionem juntos para criar um caminho simplificado, seguro e eficiente do desenvolvimento à produção. Esses elementos essenciais formam uma arquitetura que separa as interfaces de usuário da plataforma dos sistemas de backend automatizados.
Princípios da arquitetura de IDP
Além de suas camadas funcionais, uma arquitetura de IDP eficaz depende de princípios básicos de design que visam apoiar a produtividade do desenvolvedor, reduzir a carga cognitiva e permitir a escala organizacional:
- Extensibilidade e integração: uma IDP de nível empresarial integra uma cadeia de ferramentas que, muitas vezes, é desconectada. Um princípio arquitetônico essencial de uma IDP é capacidade de ser facilmente estendida e integrada aos pipelines de CI/CD, às ferramentas de DevSecOps e de gerenciamento de vulnerabilidades, rastreamento de problemas, além de recursos de nuvem da organização.
- Templates e golden paths: os templates oferecem aos desenvolvedores modelos pré-configurados conforme as práticas recomendadas, chamados golden paths (caminhos dourados). Os golden paths podem provisionar automaticamente boilerplate code, arquivos de Infrastructure as Code e salvaguardas de segurança integradas, ajudando a eliminar obstáculos e aplicando a padronização organizacional de forma fluida.
Por que uma plataforma interna de desenvolvedor é importante para as organizações?
As IDPs são importantes para as organizações porque ajudam a solucionar vários desafios, incluindo padronizações de desenvolvimento, produtividade do desenvolvedor, colaborações, onboarding e self-service, escalabilidade e governança.
As organizações que têm muitas equipes de desenvolvimento costumam ter dificuldade para lidar com prioridades conflitantes e gerenciar um conjunto diverso de ferramentas e tecnologias. Além disso, elas enfrentam desafios na hora de estabelecer práticas recomendadas, atendendo aos requisitos de segurança e conformidade.
- Padronização: oferece um conjunto padronizado de ferramentas e serviços para todas as equipes, diminuindo o risco de inconsistências e erros.
- Produtividade: ajuda a automatizar a configuração e o gerenciamento dos ambientes de desenvolvimento, a definição dos pipelines de build e a implantação das aplicações. Assim, os desenvolvedores se concentram na escrita de código e aceleram a entrega de novas funcionalidades.
- Colaboração: oferece uma plataforma em comum para viabilizar a colaboração entre as equipes de desenvolvimento e outras áreas da organização, como os profissionais de operações e segurança. Assim, todas essas partes trabalham juntas, melhorando a comunicação e a colaboração.
- Onboarding e self-service: diminui o tempo que novos desenvolvedores levam para se tornarem produtivos com as ferramentas apropriadas. Além disso, os profissionais têm uma experiência aprimorada, além de acelerar o início dos trabalhos e a agregação de valor.
- Escalabilidade: oferece uma plataforma escalável que pode ser expandida conforme a organização. Isso acelera a integração de novas equipes e assegura que todas elas tenham acesso às mesmas ferramentas e serviços.
- Governança: estabelece um framework para as organizações terem flexibilidade e seguirem práticas recomendadas que atendam aos requisitos de segurança e conformidade. Assim, é possível monitorar e gerenciar os ambientes de desenvolvimento com eficiência.
O que são ferramentas de engenharia de plataforma?
Qual a relação entre as IDPs e o DevOps?
Oferecer uma IDP às suas equipes é essencial para fomentar e preservar uma cultura de DevOps. O DevOps é uma abordagem a cultura, automação e design da plataforma que tem a intenção de promover uma relação de trabalho mais eficiente entre as equipes de desenvolvimento e de operações, oferecendo uma entrega mais rápida e frequente de aplicações de software e funcionalidades associadas.
A Red Hat oferece os frameworks para o desenvolvimento de IDPs
Quando combinado com o Red Hat Developer Hub, o Red Hat® OpenShift® oferece às equipes de engenharia de plataforma as ferramentas de que elas precisam para criar e gerenciar plataformas de desenvolvedor internas (IDP). Além disso, as equipes podem criar os templates de projetos, documentações e fluxos de trabalho necessários para desenvolver "golden paths" (caminhos dourados).
Fazemos isso de algumas formas:
Soluções seguras e em conformidade: o Red Hat Developer Hub inclui um conjunto completo de ferramentas e componentes verificados e selecionados. Eles são necessários para as equipes de operações darem suporte aos desenvolvedores: tudo em um ambiente centralizado e consistente. Como resultado, é possível aumentar a produtividade, eliminar obstáculos e simplificar a governança com o self-service e salvaguardas.
Experiência de desenvolvimento líder do setor: a Red Hat compartilha sua experiência e expertise com os clientes por meio do ecossistema de parceiros e de projetos open source.
Self-service e manutenção: a Red Hat concede acesso a um conjunto comum de ferramentas do desenvolvedor que as equipes podem usar para criar aplicações e serviços nativos em nuvem com mais facilidade e de maneira mais produtiva.
Suporte para novas funcionalidades e correção de bugs relevantes: o Red Hat Developer Hub oferece às equipes um local centralizado para acessar as versões mais recentes das funcionalidades, arquitetura de sistema e documentação de aplicações quando e onde necessários.
Integração simplificada: as novas ferramentas e serviços são pré-integrados por meio do Red Hat Plug-ins for Backstage. Isso incorpora extensibilidade e escalabilidade em uma única experiência consistente, que une ferramentas de infraestruturas, recursos, padrões, proprietários, colaboradores e administradores em um só lugar.
Bastidores da engenharia de plataforma. Duração do vídeo: 2:31
Estado da engenharia de plataforma na era da IA
Nesta página, você encontra uma análise detalhada da pesquisa "Estado da engenharia de plataforma na era da IA" realizada pela Illuminas. Confira os detalhes.