![Sucesso DevEx: Como a Pfizer cresceu para 1.000 engenheiros](https://optimuscloud.com.br/wp-content/uploads/2024/04/1714463046_Sucesso-DevEx-Como-a-Pfizer-cresceu-para-1000-engenheiros-150x150.png)
Sucesso DevEx: Como a Pfizer cresceu para 1.000 engenheiros
30 de abril de 2024![Etapas de configuração do disco de passagem Proxmox](https://optimuscloud.com.br/wp-content/uploads/2024/04/1714512125_Etapas-de-configuracao-do-disco-de-passagem-Proxmox-150x150.png)
Etapas de configuração do disco de passagem Proxmox
30 de abril de 2024Para melhorar a experiência do desenvolvedor, as organizações estão cada vez mais buscando a engenharia de plataforma para reduzir o trabalho e focar em recursos e inovação geradores de receita.
A engenharia de plataforma traz dois benefícios principais. A primeira é a introdução de recursos de autoatendimento, permitindo que pessoas de uma organização experimentem novos softwares. A segunda é a inclusão de operações automatizadas de infraestrutura, garantindo que os experimentos sejam realizados em ambientes bem gerenciados.
Esses benefícios são tão significativos que o Gartner estima que 80% das grandes organizações de engenharia de software terão estabelecido equipes de engenharia de plataforma até 2026. Mas o que está por trás desse entusiasmo?
O que é engenharia de plataforma?
Uma abordagem de engenharia de plataforma complementa o DevOps. A “plataforma” é um ambiente interno criado como um espaço para os desenvolvedores criarem e executarem 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 os esforços dos desenvolvedores e, ao mesmo tempo, mitigar os riscos de segurança e disponibilidade. As plataformas de desenvolvimento combatem os custos e a complexidade significativos que podem resultar do desenvolvimento em escala. Esses custos geralmente resultam de desenvolvedores criando ambientes individuais para cada projeto — e até mesmo para casos de teste individuais dentro dos projetos. Outro benefício é uma maior capacidade de trabalhar em escala, graças à capacidade de automatizar processos operacionais decorrentes do trabalho em 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 à produtividade, mas na verdade pode liberar a criatividade do desenvolvedor e reduzir significativamente o trabalho diário.
Construir vs. Comprar: como as organizações podem implementá-lo?
Para que a engenharia de plataforma seja um sucesso, a plataforma deve ser implementada da maneira certa. Com o nível de customização que as organizações precisam de suas plataformas, é impossível simplesmente comprar um produto pronto para uso. Enquanto isso, existem dezenas de produtos pontuais e projetos de código aberto disponíveis para abordar a miríade de infraestrutura, CI/CD, segurança e outras “tarefas a serem realizadas” ao implantar e executar software em produção.
Isso significa que as organizações são obrigadas a fazer algum trabalho de engenharia em torno dos produtos que adquiriram ou do software de código aberto que adotaram. Mas a questão é: quanto é a quantia certa para você mesmo projetar? Em vez de orientar o que torna essas organizações especiais, a engenharia de plataforma pode se tornar uma distração dos objetivos de negócios.
A solução para isso é que as organizações construam a plataforma mais enxuta possível. As equipes de engenharia de plataforma não deveriam ter que construir do zero; plataformas devem ser construídas sobre outras plataformas. As organizações não querem que suas equipes de software façam todo o trabalho, desde a conexão dos servidores até a entrega do produto, e certamente não deveriam esperar que as equipes de engenharia de plataforma implementem totalmente uma plataforma desde o início.
Em vez disso, essas equipes precisam se apoiar em ombros de gigantes. Para impulsionar essa abordagem, as organizações devem comprar o máximo possível de ferramentas de Plataforma como Serviço (PaaS) e Software como Serviço (SaaS) e uni-las para construir uma plataforma acabada e viável. Há trabalho mais do que suficiente para manter, integrar e atualizar as experiências mais básicas 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 esta abordagem, as organizações podem afastar-se da dicotomia construção vs. compre e concentre-se em ajustar 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 lutado para adotar o DevOps porque as funções e responsabilidades podem parecer esmagadoras. Se os desenvolvedores forem responsáveis por tudo em sua pilha, todos os dias na produção, eles poderão ficar atolados em um trabalho árduo que não agrega valor ao negócio. Mas as equipes tradicionais de infraestrutura e operações muitas vezes não são avaliadas quanto à eficiência dos desenvolvedores, então os desenvolvedores ficam preenchendo tíquetes e esperando.
Para que a engenharia de plataforma seja bem-sucedida, é necessária total adesão organizacional. Os silos precisam ser eliminados para construir melhores experiências para os usuários internos. A engenharia de plataforma exige que sua própria equipe seja bem-sucedida; não pode ser visto simplesmente como uma extensão da TI.
Juntamente com as mudanças operacionais, a engenharia de plataforma também exige uma mudança cultural nas equipes de desenvolvimento para priorizar requisitos não funcionais, como disponibilidade e segurança, além de recursos individuais. As plataformas devem ajudar a tornar o que é certo em algo mais fácil, mas a responsabilidade é partilhada entre uma equipa de plataforma enxuta e os seus utilizadores: as equipas de desenvolvimento de software.
Como sempre acontece quando as organizações reformulam seus fluxos de trabalho, meias medidas não são suficientes. Sem a adesão total de todos os desenvolvedores de uma organização, bem como o apoio dos membros seniores da equipe, as empresas não conseguirão implementar com sucesso a engenharia de plataforma.
Por que os desenvolvedores deveriam se importar?
É fácil para grandes organizações de engenharia de software terem uma pilha de tecnologia extensa e complicada. 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 trabalhosas. Os tomadores de decisão não devem ter medo de desativar ferramentas ou fechar ambientes de que não precisam — e até mesmo automatizar esse processo quando os desenvolvedores confiarem na plataforma em que estão trabalhando. Na verdade, a automação pode tornar o descomissionamento parte do ciclo de vida de uma plataforma, integrando-o aos processos existentes para economizar tempo e dinheiro.
Uma abordagem de engenharia de plataforma também pode trazer economias significativas de tempo para desenvolvedores, bem como para 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 criar novos ambientes, gerenciar infraestrutura, criar e configurar repositórios e lidar com pipelines de CI/CD para suavizar os ciclos de desenvolvimento e reduzir o trabalho árduo.
A economia de tempo e carga de trabalho que os desenvolvedores podem criar ao transferir o trabalho para uma plataforma pode fornecer um grande incentivo para migrar os aplicativos existentes para a plataforma. Esses benefícios também podem trazer economias significativas de custos para as empresas, à medida que os desenvolvedores são mais produtivos, eliminando a necessidade de prestadores de serviços adicionais e serviços de aumento de equipe.
Engenharia de plataforma para o futuro
Em última análise, o objetivo da engenharia de plataforma é encorajar os desenvolvedores – independentemente de sua equipe ou função – a usar a plataforma e não fazer experiências fora dela. Ao trabalhar dentro dessa estrutura definida, com conjuntos de ferramentas e fluxos de trabalho totalmente implementados, os desenvolvedores podem se concentrar na codificação em vez de se preocupar com a infraestrutura. Isto reduz significativamente a carga de trabalho diária, permitindo-lhes prosperar em vez de simplesmente sobreviver.
O post Engenharia de plataforma: como é ‘bom’? apareceu primeiro em The New Stack.