Uma abordagem de engenharia de plataforma economiza tempo dos desenvolvedores e as equipes podem eliminar categorias inteiras de solicitações de rotina dos desenvolvedores.
Traduzido de Platform Engineering: What Does 'Bom' Look Like?, autor Dormain Drewitz.
Para melhorar a experiência do desenvolvedor, cada vez mais organizações estão buscando a engenharia de plataforma para reduzir o trabalho tedioso e se concentrar em recursos e inovação geradores de receita.
A engenharia de plataforma traz dois benefícios principais. A primeira é a introdução de capacidades de autoatendimento que permitem que as pessoas na organização experimentem novos softwares. A segunda é a incorporação de operações automatizadas de infraestrutura para garantir que os experimentos sejam conduzidos em um ambiente bem gerenciado.
Os benefícios são tão significativos que o Gartner estima que, até 2026, 80% das grandes organizações de engenharia de software terão equipes de engenharia de plataforma . Mas o que está por trás do hype?
O que é engenharia de plataforma?
Uma abordagem de engenharia de plataforma complementa o DevOps . A "plataforma" é um ambiente interno criado para que os desenvolvedores criem e executem software (como aplicativos, ferramentas e fluxos de trabalho) em um ambiente seguro e compatível.
O objetivo principal da engenharia de plataforma é dimensionar com eficiência o trabalho dos desenvolvedores e, ao mesmo tempo, mitigar os riscos de segurança e disponibilidade. As plataformas de desenvolvimento abordam os enormes custos e complexidades que podem surgir com o desenvolvimento em larga escala. O motivo mais comum para esses custos é que os desenvolvedores criam ambientes separados para cada projeto (ou até mesmo casos de teste individuais dentro de um projeto). Outro benefício é a maior probabilidade de poder trabalhar em escala devido à capacidade de automatizar processos operacionais que funcionam dentro de uma plataforma unificada.
Para que esta abordagem seja bem-sucedida, o software deve ser implantado na mesma plataforma. Superficialmente, isso pode fazer com que uma abordagem de engenharia de plataforma pareça uma restrição de produtividade, mas na verdade pode liberar a criatividade do desenvolvedor e reduzir significativamente o trabalho tedioso do dia a dia.
Construir versus comprar: como as organizações o implementam?
Para que um projeto de plataforma seja bem-sucedido, a plataforma deve ser implementada corretamente. Como as organizações exigem customização para suas plataformas, não é possível simplesmente comprar produtos prontos para uso. Ao mesmo tempo, há uma infinidade de produtos pontuais e projetos de código aberto disponíveis para abordar a infinidade de infraestrutura, CI/CD, segurança e outras “tarefas a serem realizadas” que surgem durante a implantação e execução de software em produção.
Isso significa que as organizações precisarão, em vez disso, fazer algum trabalho de engenharia nos produtos que adquirirem ou no software de código aberto que adotaram. Mas a questão é: quanto do seu próprio design é apropriado? A engenharia de plataforma pode desviar a atenção dos objetivos de negócios, em vez de orientar o que diferencia essas organizações.
A solução para este problema é que as organizações construam a plataforma mais enxuta possível. As equipes de engenharia de plataforma não deveriam construir do zero; as plataformas deveriam ser construídas sobre outras plataformas. As organizações não esperam que suas equipes de software façam tudo, desde conectar servidores até entregar produtos, e certamente não deveriam esperar que equipes de engenharia de plataforma implementem totalmente uma plataforma do zero.
Em vez disso, essas equipes precisam se apoiar em ombros de gigantes. Para impulsionar essa abordagem, as organizações devem adquirir o maior número possível de ferramentas de plataforma como serviço (PaaS) e software como serviço (SaaS) e agrupá-las para construir uma plataforma acabada e viável. Há trabalho suficiente para manter, integrar e atualizar a experiência mais básica da plataforma. Isso inclui a construção de interfaces e APIs que os engenheiros internos usarão, o que pode mitigar a dependência do fornecedor.
Neste modelo, a plataforma de cada organização é construída de forma personalizada, mas baseia-se em ferramentas existentes, suportadas e que podem ser adquiridas. Com essa abordagem, as organizações podem escapar do dilema construir versus comprar e se concentrar no ajuste fino de sua plataforma para atender às necessidades de sua organização.
O que precisa acontecer para que isso se torne a norma?
Muitas organizações têm dificuldades ao adotar o DevOps porque as funções e responsabilidades podem parecer esmagadoras. Se os desenvolvedores forem responsáveis por tudo em sua pilha, na produção todos os dias, eles poderão ficar atolados em um trabalho tedioso que não agrega valor ao negócio. Mas as equipes tradicionais de arquitetura e operações muitas vezes não medem a eficácia do desenvolvedor, então os desenvolvedores só podem enviar tickets e esperar.
Para que a engenharia de plataforma seja bem-sucedida, é necessário o apoio total da organização. Para construir uma experiência melhor para os usuários internos, os silos precisam ser eliminados. A engenharia de plataforma requer a sua própria equipa para ter sucesso; não pode ser vista simplesmente como uma extensão da TI.
Além das mudanças operacionais, a engenharia da plataforma exige uma mudança cultural nas equipes de desenvolvimento para priorizar requisitos não funcionais, como usabilidade e segurança, além de recursos individuais. A plataforma deve ajudar a facilitar a tarefa certa, mas a responsabilidade deve ser compartilhada entre a equipe da plataforma enxuta e seus usuários (a equipe de desenvolvimento de software).
Como sempre acontece quando uma organização reformula seus processos de trabalho, fazer as coisas pela metade não é suficiente. As empresas não podem implementar com sucesso a engenharia de plataforma sem o apoio total de todos os desenvolvedores da organização, bem como a adesão dos membros seniores da equipe.
Por que os desenvolvedores deveriam se importar?
É fácil para grandes organizações de engenharia de software terem pilhas de tecnologia grandes e complexas. Isso pode tornar a manutenção um pesadelo e levar a ciclos de liberação longos e lentos e interrupções estressantes. A adoção da engenharia de plataforma troca complexidade por uma pilha muito mais enxuta, removendo peças sem importância ou pesadas. Os tomadores de decisão não devem ter medo de desativar ferramentas ou encerrar ambientes de que não precisam – até mesmo automatizando esse processo quando os desenvolvedores confiam na plataforma que estão usando. Na verdade, a automação pode tornar o descomissionamento parte do ciclo de vida da plataforma, integrando-o aos processos existentes para economizar tempo e dinheiro.
Uma abordagem de engenharia de plataforma também pode economizar um tempo significativo para os desenvolvedores, bem como para as equipes de infraestrutura e operações. Essas equipes podem eliminar categorias inteiras de solicitações rotineiras dos desenvolvedores. As equipes de plataforma automatizam tarefas rotineiras e repetitivas, como lançamento de novos ambientes, gerenciamento de infraestrutura, criação e configuração de repositórios e gerenciamento de pipelines de CI/CD para facilitar os ciclos de desenvolvimento e reduzir o trabalho tedioso.
Os desenvolvedores podem economizar tempo e esforço transferindo o trabalho para a plataforma, o que pode fornecer um grande incentivo para migrar os aplicativos existentes para a plataforma. Esses benefícios também podem levar a economias significativas de custos para as empresas à medida que os desenvolvedores se tornam mais produtivos, eliminando a necessidade de prestadores de serviços e funcionários adicionais para aumentar os serviços.
Engenharia de plataforma para o futuro
Em última análise, o objetivo da engenharia de plataforma é encorajar os desenvolvedores, independentemente da sua equipe ou função, a usar a plataforma em vez de experimentar fora dela. Ao trabalhar na estrutura desta configuração com conjuntos de ferramentas e fluxos de trabalho totalmente implementados, os desenvolvedores podem se concentrar na codificação sem se preocupar com a infraestrutura. Isto reduz enormemente a sua carga de trabalho diária, permitindo-lhes prosperar em vez de apenas sobreviver.
Um programador nascido na década de 1990 desenvolveu um software de portabilidade de vídeo e faturou mais de 7 milhões em menos de um ano. O final foi muito punitivo! Alunos do ensino médio criam sua própria linguagem de programação de código aberto como uma cerimônia de maioridade - comentários contundentes de internautas: Contando com RustDesk devido a fraude desenfreada, serviço doméstico Taobao (taobao.com) suspendeu serviços domésticos e reiniciou o trabalho de otimização de versão web Java 17 é a versão Java LTS mais comumente usada no mercado do Windows 10 Atingindo 70%, o Windows 11 continua a diminuir Open Source Daily | Google apoia Hongmeng para assumir o controle de telefones Android de código aberto apoiados pela ansiedade e ambição da Microsoft; Electric desliga a plataforma aberta Apple lança chip M4 Google exclui kernel universal do Android (ACK) Suporte para arquitetura RISC-V Yunfeng renunciou ao Alibaba e planeja produzir jogos independentes para plataformas Windows no futuroEste artigo foi publicado pela primeira vez em Yunyunzhongsheng ( https://yylives.cc/ ), todos são bem-vindos para visitar.