paint-brush
Um guia detalhado para plataformas internas de desenvolvedores (IDPs)por@guhans
2,729 leituras
2,729 leituras

Um guia detalhado para plataformas internas de desenvolvedores (IDPs)

por Guhan Sundar8m2023/04/28
Read on Terminal Reader

Muito longo; Para ler

As plataformas de desenvolvedor interno (IDPs) são plataformas que os desenvolvedores podem aproveitar para criar e implantar seus aplicativos em um dos ambientes. A plataforma pode ser construída internamente, geralmente, uma adaptação de uma oferta de código aberto ou comprada, como plataforma como serviço (PaaS). fizeram isso nos últimos três anos.
featured image - Um guia detalhado para plataformas internas de desenvolvedores (IDPs)
Guhan Sundar HackerNoon profile picture
0-item

O que são plataformas de desenvolvedores internos (IDPs)?

As plataformas de desenvolvedor interno (IDPs) são plataformas que os desenvolvedores podem aproveitar para criar e implantar seus aplicativos em um dos ambientes. Seu principal objetivo é aumentar o ritmo de desenvolvimento e reduzir a dependência do desenvolvedor de DevOps e engenheiros de plataforma por meio da automação e do autoatendimento do desenvolvedor. A plataforma pode ser construída internamente, geralmente, uma adaptação de uma oferta de código aberto ou comprada, como plataforma como serviço (PaaS).


A adoção foi recente e rápida. A pesquisa de estado da engenharia de plataforma da Puppet revela que mais de 51% das empresas que adotaram plataformas de desenvolvedor interno o fizeram nos últimos três anos. E uma esmagadora maioria dos entrevistados (93%) declarou que a adoção de IDP é um passo na direção certa.


As plataformas de desenvolvedores internos são boas para ajudar a equipe a gerenciar aplicativos e infraestrutura de um só lugar, fornecendo integração estreita com as ferramentas e serviços existentes e dando aos desenvolvedores recursos de autoatendimento e colaboração.

Benefícios dos IDPs

Os IDPs oferecem vários benefícios para as organizações que os utilizam. A primeira diz respeito a melhorias na infraestrutura e na gestão de TI, como o aumento da produtividade decorrente da redução dos tempos de comunicação entre os devs e as equipes de infra. Em segundo lugar, eles reduzem a complexidade da nuvem e tornam mais fácil para as pessoas em sua organização aprenderem as práticas recomendadas apresentadas por sua equipe. Em organizações maiores, eles também podem ser uma maneira fácil de gerenciar RBAC para implantações, criação e gerenciamento de infra e muito mais.


As respostas do relatório State of Platform Engineering 2023 da Puppet também mostram como o IDP melhorou os KPIs de DevOps :


  • Um aumento na velocidade de desenvolvimento (68%)
  • 42% dizem que a velocidade de desenvolvimento melhorou “muito” desde que começaram a fazer engenharia de plataforma
  • Produtividade melhorada (59%)
  • Maior confiabilidade do sistema (60%)
  • Segurança aprimorada (55%)

Componentes dos IDPs

Vamos nos aprofundar nos componentes dos IDPs e discutir quais partes do processo de gerenciamento de aplicativos e infraestrutura eles melhoram.


  1. Integração com ferramentas e serviços existentes Os IDPs são construídos por meio da integração com o conjunto existente de ferramentas e serviços que a empresa usa atualmente. Estes podem ser seus sistemas de controle de origem (por exemplo, GitHub, GitLab), pipelines de Integração Contínua e Implantação Contínua (CI/CD) e ferramentas de observabilidade, como sistemas de monitoramento e registro.

    Além disso, eles também podem incluir alguma forma de controle de acesso, painéis de observação e um conjunto de melhores práticas para os desenvolvedores usarem.


  2. Gerenciamento de aplicativos e infraestrutura

    Os IDPs podem ser usados para automatizar muitos dos problemas de implantação. Ao configurar os IDPs com as melhores práticas do GitOps, os usuários podem implantar automaticamente alterações de aplicativo e infra a cada confirmação no código Git. O gerenciamento de vários ambientes é outro caso de uso popular de IDPs. Eles podem ser eficazes na criação, no fornecimento de acesso seletivo e no gerenciamento do uso de vários ambientes diferentes, como desenvolvimento, teste, pré-produção e produção. Várias ferramentas configuram ambientes de visualização em tempo real. Sua capacidade de monitorar e visualizar implantações em ambientes ajuda as organizações a escalar dinamicamente para cargas de trabalho em constante mudança e manter um desempenho consistente em toda a infraestrutura.


  3. Recursos de autoatendimento do desenvolvedor Os IDPs capacitam os desenvolvedores com recursos de autoatendimento, oferecendo uma interface centralizada e amigável para acessar ferramentas, recursos e serviços sob demanda. Esses recursos facilitam ciclos de desenvolvimento mais rápidos, reduzem a dependência das equipes de operações e permitem maior autonomia na criação, teste e implantação de aplicativos.

    O fluxo de trabalho simplificado também torna consideravelmente mais fácil para os novos funcionários começarem a usar sua pilha sem mergulhar no funcionamento interno. Algumas ferramentas também adicionam uma camada de colaboração na parte superior que permite que diferentes membros de uma equipe trabalhem juntos facilmente e revisem as alterações antes de implantar o código.


  4. Recursos de colaboração e governança Os IDPs podem obter maior segurança e conformidade fornecendo controles de acesso baseados em função (RBAC), garantindo que cada membro da equipe tenha as permissões apropriadas para acessar recursos específicos e executar determinadas ações. No geral, isso minimizou o risco de acesso não autorizado ou alterações acidentais, além de promover a colaboração e fluxos de trabalho eficientes entre equipes multifuncionais.

    Os IDPs ajudam as equipes de desenvolvedores a manter a transparência, a responsabilidade e a rastreabilidade em todo o processo de desenvolvimento, fornecendo logs de auditoria e rastreamento de histórico. Isso facilita a identificação e resolução de problemas, bem como garante a conformidade com os requisitos regulatórios e organizacionais para manipulação de dados e gerenciamento de mudanças.

Engenharia de plataforma

As empresas que decidem construir sua própria plataforma costumam contratar engenheiros de plataforma, profissionais especializados responsáveis pela criação e melhoria contínua do IDP. Eles trabalham para implementar e manter ferramentas, serviços e práticas recomendadas que simplificam os processos de desenvolvimento, garantindo um fluxo de trabalho tranquilo e eficiente para os desenvolvedores da organização.


A engenharia de plataforma é o processo de projetar, construir e manter um IDP que fornece uma infraestrutura centralizada, escalável e eficiente para desenvolvedores dentro de uma organização. Um IDP simplifica e padroniza o desenvolvimento, implantação e gerenciamento de aplicativos, permitindo uma entrega de software mais rápida e confiável.

Tendências de desenvolvimento de software que são catalisadores para a adoção de IDP

  1. Transformação digital: à medida que as empresas em todo o mundo adotam cada vez mais a transformação digital, há uma necessidade crescente de processos de desenvolvimento de software eficientes e robustos. Os IDPs desempenham um papel crucial ao permitir que as empresas permaneçam ágeis e se adaptem rapidamente ao cenário digital dinâmico.


  2. Necessidade de entrega de software mais rápida: No atual ambiente de negócios acelerado, as organizações devem fornecer novos recursos e aplicativos em uma velocidade sem precedentes. Os IDPs fornecem uma plataforma padronizada, automatizada e centralizada que acelera os ciclos de desenvolvimento, permitindo que as empresas permaneçam competitivas e responsivas às mudanças do mercado.


  3. A crescente complexidade das arquiteturas de software: com o surgimento de microsserviços, contêineres e tecnologias nativas da nuvem, o gerenciamento e a implantação de software tornaram-se cada vez mais complexos. Os IDPs ajudam a simplificar essa complexidade fornecendo uma plataforma unificada onde os desenvolvedores podem criar, testar e implantar aplicativos com facilidade, independentemente da arquitetura subjacente.


  4. Demanda por práticas de DevOps e CI/CD: a necessidade de IDPs cresce à medida que mais organizações adotam práticas de DevOps e integração contínua/implantação contínua (CI/CD). Os IDPs permitem uma colaboração perfeita entre as equipes de desenvolvimento e operações, automatizando muitas tarefas manuais e garantindo transições suaves ao longo do ciclo de vida do desenvolvimento de software.


  5. Escalabilidade e flexibilidade: os IDPs oferecem uma solução escalável que pode acomodar as crescentes necessidades das organizações, independentemente de seu tamanho. Eles fornecem uma plataforma flexível que pode ser facilmente personalizada e adaptada para atender aos requisitos exclusivos de diferentes equipes e projetos.


  6. Colaboração entre regiões: com empresas operando em várias regiões geográficas, a necessidade de uma plataforma que ofereça suporte à colaboração entre regiões é essencial. Os IDPs capacitam as equipes de desenvolvimento espalhadas pelo mundo a trabalharem juntas de forma integrada, permitindo o compartilhamento eficiente de conhecimento e promovendo uma cultura de inovação.


Em resumo, a crescente popularidade dos IDPs em empresas de todos os tamanhos e regiões em todo o mundo pode ser atribuída à sua capacidade de otimizar processos de desenvolvimento de software, simplificar arquiteturas complexas, dar suporte a práticas de DevOps e CI/CD e facilitar a colaboração entre regiões. À medida que a demanda por digitalização e agilidade continua a crescer, os IDPs estão preparados para desempenhar um papel crítico na definição do futuro do desenvolvimento de software.

Plataformas internas de desenvolvedores disponíveis comercialmente

  1. Argonaut é uma plataforma de automação DevOps que ajuda a engenharia a gerenciar o aplicativo e o lado infra das coisas e enviar mais rápido! Construído com as melhores práticas do GitOps em mente, o Argonaut reduz as complexidades de criar e manter configurações de nuvem. Seja a implantação do aplicativo Kubernetes para AWS ou GCP, há vários tempos de execução, ambientes, regiões, integrações e tipos de aplicativos para escolher.


  2. A Mia Platform oferece uma maneira simples de desenvolver e operar aplicativos de nuvem modernos no Kubernetes. Ele pode ser adotado como uma opção auto-hospedada ou PaaS. Há também um mercado com plug-ins, modelos e aplicativos essenciais que facilitam o início. Seus recursos beneficiam não apenas os desenvolvedores, mas também os engenheiros de plataforma e CIOs.


  3. A Humanitec é uma plataforma interna de desenvolvimento que oferece simplicidade, automação, reutilização e autoatendimento. Ele atua como um orquestrador de plataforma que permite que as equipes de engenharia removam gargalos, permitindo que criem caminhos de ouro baseados em código (arquivos de configuração executáveis e modelos) para desenvolvedores. Ele pode ser usado por meio da CLI ou da interface do usuário.


  4. O Opslevel fornece às equipes de engenharia acesso de autoatendimento a ferramentas e informações. Ele ajuda os desenvolvedores a garantir a excelência operacional em todos os serviços com suas integrações que podem ser configuradas de maneira segura e compatível.


  5. Shipa é uma plataforma de gerenciamento de aplicativos Kubernetes que permite processos de implantação eficientes. Os desenvolvedores podem aproveitar suas definições padronizadas de aplicativos e políticas independentes de plataforma. Ele também possui um portal baseado em GUI para gerenciar aplicativos após a implantação e obter visibilidade dos pipelines para operações mais suaves.


  6. O Port fornece um catálogo de software rico em contexto com cartões de pontuação de maturidade e qualidade. Ele também oferece suporte a ações abrangentes de autoatendimento do desenvolvedor, ao mesmo tempo em que fornece controles de acesso baseados em função (RBAC) adicionais. Seu free-forever fornece muitos recursos importantes e o torna um candidato digno.


  7. O Upbound , desenvolvido pela Crossplane, oferece uma solução de plano de controle de nível empresarial para ambientes multinuvem e híbridos, permitindo o gerenciamento eficiente da infraestrutura em nuvem. A linha de comando Up e o mercado Upbound tornam mais eficaz e fácil começar.


  8. O DevOpsBox é uma plataforma DevOps completa que simplifica o processo de implantação de aplicativos. Ele fornece um conjunto abrangente de recursos de maneira modular que permite que as equipes se concentrem totalmente na funcionalidade do negócio.

Avaliação de plataformas de desenvolvedores internos

Apesar de sua infinidade de benefícios, as Plataformas de Desenvolvedor Interno não fazem sentido para todas as equipes. Eles podem acabar sendo um exagero para certos tipos de equipes de engenharia e um fardo para construir e manter para empresas com equipes menores.

Quando eles não fazem sentido

  1. Você tem processos existentes que são eficientes. Não complique as coisas cedo demais. As empresas que atualmente usam PaaS ou outras ofertas gerenciadas devem continuar fazendo isso o máximo possível.


  2. Recursos e tamanho da equipe limitados. Isso também pode significar que sua equipe é pequena e a maior parte de sua equipe é sênior e se sente confortável escrevendo scripts e gerenciando a infraestrutura.


  3. Há baixa complexidade de desenvolvimento. Se você tiver apenas um aplicativo com uma configuração simples de nuvem única. E, se seu aplicativo for monolítico e não fizer uso da arquitetura de microsserviço, há poucos benefícios em criar um IDP.


  4. Cultura organizacional incompatível. Se a cultura de uma organização for resistente a mudanças ou não promover a colaboração e a comunicação, a implementação de um IDP pode não ser bem-sucedida e pode até levar à diminuição da eficiência e da produtividade.

quando eles fizerem sentido

  1. Você planeja começar a usar microsserviços. Isso geralmente também significa um tamanho crescente da equipe de desenvolvimento ou a complexidade dos projetos que você gerencia.


  2. Você tem uma equipe pequena e nem todos se sentem à vontade com implantações, scripts e infraestrutura, e você ainda não contratou um DevOps dedicado.


  3. As dependências de outros colegas estão bloqueando seus desenvolvedores.


  4. O custo de sua configuração existente (como PaaS) é muito alto. O que é inevitável quando você começa a escalar para atender a novos requisitos.


  5. Você tem planos de usar várias nuvens, adotar serviços de nuvem mais modernos e escalar geograficamente.


  6. Você deseja aumentar a padronização e a consistência entre suas equipes. Um IDP pode ajudar a reduzir erros, melhorar a qualidade do código e garantir que todos os desenvolvedores trabalhem com o mesmo conjunto de ferramentas e sigam as mesmas práticas recomendadas.


Também publicado aqui.