Engenharia de plataforma vs DevOps: como eles são diferentes?

Engenharia de plataforma e DevOps são duas disciplinas que otimizam os processos de desenvolvimento de software. Embora o objetivo de cada um seja simplificar o desenvolvimento do produto, cada um tem uma abordagem diferente.

As práticas de DevOps ajudam os desenvolvedores de produtos e as equipes de operação a colaborar e trabalhar juntos. Por outro lado, a engenharia de plataforma cria e mantém uma plataforma centralizada onde as equipes de DevOps podem acessar fluxos de trabalho e ferramentas reutilizáveis ​​de autoatendimento automatizados.

Neste artigo, aprenderemos sobre engenharia de plataforma e DevOps, o que cada abordagem faz e seus benefícios. Também veremos as diferenças e o futuro das duas disciplinas.

O que é Engenharia de Plataforma

A engenharia de plataforma é a prática de projetar, construir e manter a infraestrutura de desenvolvimento de software para melhorar a experiência e a produtividade dos desenvolvedores. Ele fornece ferramentas reutilizáveis ​​compartilhadas e de autoatendimento que os desenvolvedores podem acessar de um local central.

Os engenheiros de plataforma se concentram na criação e manutenção das plataformas, ferramentas e processos subjacentes que suportam o desenvolvimento de software. Ajuda a melhorar a confiabilidade e a escalabilidade da infraestrutura de desenvolvimento, melhorando assim a velocidade de entrega de produtos de software.

Na prática, os processos de desenvolvimento, tecnologias e ferramentas evoluem à medida que o produto continua a crescer e se torna mais complexo. E a engenharia de plataforma garante a evolução contínua dos processos e ferramentas de desenvolvimento à medida que o produto cresce.

Isso inclui questões como requisitos de teste, armazenamento, necessidade de conformidade com padrões regulatórios e muito mais. A abordagem garante que o que é necessário para atender aos novos requisitos esteja disponível com antecedência.

Normalmente, os engenheiros da plataforma projetam, criam e gerenciam as ferramentas e os fluxos de trabalho de que os desenvolvedores precisam para facilitar seu trabalho, trabalhar com mais eficiência e entregar aplicativos mais rapidamente. Com acesso de autoatendimento, os desenvolvedores podem utilizar todas as ferramentas e recursos livremente, sem depender de infraestrutura, operações e outras equipes.

Por exemplo, os desenvolvedores não precisam ficar solicitando aprovação para iniciar um novo ambiente de preparação ou iniciar um ambiente de desenvolvimento isolado. Na prática, o processo de aprovação pode atrasar as coisas e resultar em desenvolvimento de produto ineficiente.

O acesso de autoatendimento aborda esses e outros problemas, permitindo que os desenvolvedores acessem quase instantaneamente uma ampla gama de recursos e capacidades.

Como a engenharia de plataforma está surgindo

A engenharia de plataforma cria um conjunto de grupos organizados de serviços, processos, ferramentas e outros recursos que os desenvolvedores de software podem usar sem gerenciá-los diretamente ou precisar entendê-los. A disciplina aborda uma ampla gama de necessidades de desenvolvimento.

À medida que os aplicativos de software e a infraestrutura de desenvolvimento evoluem, eles se tornam mais complexos, com tantas partes móveis que a maioria dos desenvolvedores de software não consegue acompanhar. Na prática, os desenvolvedores são obrigados a gerenciar a infraestrutura, mas não possuem habilidades ou recursos adequados para gerenciar tecnologias emergentes.

Quando as equipes precisam lidar com coisas além de sua capacidade, a produtividade diminui e as chances de erros aumentam. E a engenharia de plataforma está surgindo como uma solução viável que pode melhorar a experiência do desenvolvedor e a velocidade de entrega de produtos. A plataforma fornece acesso a ferramentas e fluxos de trabalho personalizados, validados e reutilizáveis.

Engenharia de plataforma cria uma plataforma de desenvolvedor interno que os desenvolvedores de software podem usar para criar seus produtos. A plataforma compreende todas as tecnologias e ferramentas unidas para criar uma coleção centralizada de ferramentas e processos de autoatendimento.

  Como fazer login na conta Samsung na TV

A prática de engenharia conta com uma ampla gama de ferramentas que dá aos desenvolvedores a liberdade de escolher o que desejam.

Fonte da imagem: Platformengineering.org

Depois de criado, ele forma um caminho de ouro que as equipes de DevOps podem usar para criar seus produtos. Ele fornece uma infraestrutura de autoatendimento onde os desenvolvedores podem criar seu ambiente de desenvolvimento com as ferramentas de que precisam sem esperar pela aprovação.

Geralmente, a engenharia de plataforma é como o próximo estágio do DevOps que pode ajudar grandes empresas a desenvolver configurações e padrões reutilizáveis ​​e de autoatendimento que eles oferecem como produtos internos. Como um avanço no DevOps, a engenharia de plataforma permite que os desenvolvedores sigam facilmente as práticas de DevOps, mas podem diferir de uma organização para outra.

Benefícios das plataformas de desenvolvimento interno

A engenharia de plataforma oferece uma ampla gama de benefícios e as empresas não devem se esquivar de implementá-la. Os principais benefícios incluem:

  • Ele ajuda a acelerar a entrega de aplicativos de software, permitindo que as empresas obtenham valor comercial útil no tempo.
  • A prática fornece ferramentas reutilizáveis ​​com recursos de autoatendimento e operações de infraestrutura automatizadas que ajudam a melhorar a produtividade e a experiência do desenvolvedor, práticas padrão de DevOps e um pipeline de desenvolvimento seguro e escalável.
  • Acelerando o desenvolvimento de software. As plataformas internas de desenvolvimento resultantes oferecem processos automatizados e infraestrutura de autoatendimento, o que ajuda a reduzir o desperdício de tempo e a burocracia e, consequentemente, melhorar a produtividade.
  • Aprimora mais especialização e foco: permite que os desenvolvedores se concentrem no desenvolvimento (o que eles fazem de melhor); na prática, o pipeline de CI/CD, a infraestrutura e a implantação distribuída são sistemas complexos que exigem habilidades altamente especializadas. No entanto, com a engenharia de plataforma, os desenvolvedores não precisam entender os sistemas e podem se concentrar no desenvolvimento de software em vez de tentar entender e trabalhar na infraestrutura subjacente.

O que é DevOps

DevOps é uma abordagem que busca aumentar a frequência e eficiência de lançamento de software. Ele quebra os silos entre as equipes enquanto promove a colaboração entre elas.

O método de desenvolvimento de software usa ferramentas e práticas de automação, monitoramento contínuo, integração, entrega contínua, teste, gerenciamento de configuração e gerenciamento de incidentes para dar suporte aos vários processos ao longo do pipeline de CI/CD.

Os desenvolvedores trabalham em parceria com a equipe de operações para diminuir o tempo de construção e ajudar as empresas a lançar novos produtos e recursos com rapidez e frequência.

O objetivo final da abordagem DevOps é automatizar e reduzir o ciclo de feedback e o ciclo de desenvolvimento de software. Ele agiliza as fases de desenvolvimento de software, como planejamento, criação, construção, configuração, monitoramento e verificação.

Benefícios das práticas de DevOps

O DevOps oferece uma ampla gama de benefícios. Alguns deles incluem:

  • Desenvolvimento e implantação de software e recursos mais rápidos
  • Ambiente de trabalho melhorado e estável
  • Melhor qualidade do produto
  • Entrega contínua de produtos e recursos de software
  • Técnicas de solução de problemas melhores, confiáveis ​​e mais rápidas
  • Custos de desenvolvimento de software reduzidos

Engenharia de plataforma x DevOps

Abaixo estão algumas das principais diferenças entre engenharia de plataforma e DevOps.

Engenharia de plataformaA engenharia de DevOpsPlatform cria uma plataforma de desenvolvedor interna que minimiza a necessidade de coordenação. As práticas de DevOps visam aprimorar a coordenação e a colaboração entre os desenvolvedores e as operações.
A equipe de DevOps geralmente escolhe as ferramentas que os ajudarão a atingir seus objetivos. Cria uma plataforma de autoatendimento para ferramentas, processos e fluxos de trabalho de DevOps. Uma disciplina que fornece às equipes de DevOps uma plataforma de autoatendimento escalável e centralizada para seus fluxos de trabalho e ferramentas. Aprimora a colaboração entre as equipes de desenvolvimento e operação. Uma organização só pode implementar a engenharia de plataforma após a implantação bem-sucedida do ambiente DevOps. As empresas começam com DevOps antes de implementar a engenharia de plataforma e não vice-versaDefine as ferramentas e fluxos de trabalho validados e comprovados que as equipes DevOps devem usar com base nas necessidades dos desenvolvedores. Envolvido nas fases do ciclo de vida de desenvolvimento e operações, como planejamento, codificação, construção, teste, operações, monitoramento, implantação e lançamento do software e recursos. Trabalha e oferece suporte às equipes internas Lança produtos e recursos de software diretamente para clientes e outros usuários externosNão trabalha em projetos de negócios, mas cria e mantém a plataforma que as equipes de DevOps precisam para fazê-lo. Envolvido apenas em estágios de implantação, operações e monitoramento do ciclo de vida do DevOps.
Não trabalha em projetos de negócios, mas cria e mantém a plataforma que as equipes de DevOps precisam para isso. As equipes de DevOps podem aceitar e trabalhar em projetos de negócios à medida que desenvolvem seu software.

  A caixa de entrada do Gmail não organiza e-mails, ela lembra você de respondê-los

Normalmente, a combinação das ferramentas na plataforma interna do desenvolvedor pode variar de um ambiente para outro.

Ferramentas típicas de engenharia de plataforma

  • Kubernetes
  • Plano cruzado
  • GitLab CI
  • Nos bastidores
  • Consulta
  • ArgoCD

As ferramentas DevOps aprimoram a colaboração, a automação e outros processos que melhoram a qualidade do produto e o tempo de entrega. A disponibilidade de ferramentas e conhecimento fez com que muitas organizações adotassem o DevOps. Na prática, as equipes utilizam um conjunto de ferramentas em diversas combinações.

Algumas das ferramentas populares incluem:

  • Jenkins
  • Docker
  • Fantoche
  • GradleName
  • CírculoCi
  • Companheiro
  • git
  • GithubGenericName
  • Chefe de cozinha
  • Kubernetes
  • Ansible
  • Terraforma

A engenharia de plataforma surge à medida que o DevOps amadurece e escala

Hoje, a engenharia de plataforma surge à medida que o DevOps amadurece e escala. A disciplina parece ser o próximo estágio na evolução do DevOps. O DevOps já está quase atingindo seu estágio de maturidade à medida que continua a evoluir, e a engenharia de plataforma parece ser o próximo estágio. E à medida que cresce, surgem novos desafios e oportunidades.

A engenharia de plataforma fornece autoatendimento, processos reutilizáveis ​​e ferramentas para que os desenvolvedores não precisem continuar criando novas maneiras de fazer as coisas. Idealmente, isso significa que eles não precisam criar novas ferramentas, mas podem usar o que provou funcionar. Normalmente, as práticas de DevOps seguem um determinado caminho para a maturidade.

O modelo de maturidade do DevOps mostra toda a jornada de desenvolvimento do DevOps. O modelo de maturidade DevOps ajuda a identificar três coisas.

  • Avaliar o estado atual e as habilidades das práticas de DevOps.
  • Identifique os pontos fracos que precisam ser melhorados
  • Defina as etapas a serem seguidas para atingir as metas de DevOps de destino.

Uma organização pode avaliar suas habilidades em termos de cultura e estratégia, automação, estrutura e processos e, finalmente, colaboração e compartilhamento.

Idealmente, o modelo de maturidade DevOps compreende as cinco etapas de transformação a seguir.

  • Estágio inicial: envolve separar os silos de desenvolvimento tradicionais em desenvolvedores e equipes de operações
  • Estágio gerenciado: Mudando a mentalidade das equipes de desenvolvedores para focar em práticas de desenvolvimento ágil. Esse estágio também envolve a implantação da automação inicial para as operações, além de incentivar a colaboração entre as equipes de desenvolvimento e operações.
  • Estágio definido: a jornada de transformação começa usando os processos definidos e os procedimentos automatizados
  • Medido: avaliando e melhorando continuamente os processos e fluxos de trabalho automatizados
  • Otimizado: a organização agora pode ver os benefícios do DevOps e também abordar quaisquer lacunas para melhorar a eficiência.
  Como fazer upload de GIFs com som no Imgur

À medida que o DevOps amadurece e escala, ele atinge os estágios Medido e Otimizado, onde a organização agora começa a analisar as práticas e ferramentas. Isso inclui verificar a maneira como as equipes usam as ferramentas para resolver o mesmo problema. E oferece uma oportunidade para identificar as áreas problemáticas e ineficiências.

Para otimizar os sistemas, as organizações agora podem usar a engenharia de plataforma para criar ferramentas reutilizáveis ​​de autoatendimento que podem servir a partir de um local central, permitindo assim que as equipes acessem e usem as mesmas ferramentas e processos em vez de criar seus próprios.

A engenharia de plataforma pode dominar o DevOps?

A engenharia de plataforma é idealmente a implementação de práticas e conceitos de DevOps e não uma substituição. Geralmente, o objetivo do DevOps é usar processos, ferramentas e estruturas de colaboração para melhorar a qualidade do software e o ciclo de vida do desenvolvimento. Ele usa várias práticas e ferramentas para simplificar o desenvolvimento, o monitoramento e o gerenciamento.

O que a engenharia de plataforma faz é pegar esses processos, ferramentas e práticas recomendadas e uni-los para criar serviços e ferramentas de autoatendimento reutilizáveis ​​que podem ser usados ​​por diferentes equipes em toda a organização.

Idealmente, a engenharia de plataforma aumenta a produtividade do desenvolvedor, garantindo consistência e eficiência. A prática fornece desenvolvimento de produtos e plataforma de desenvolvimento fáceis de usar. A plataforma oferece ferramentas reutilizáveis ​​de autoatendimento com processos de infraestrutura automatizados.

E os desenvolvedores podem acessar os componentes e serviços configuráveis ​​reutilizáveis. Idealmente, a plataforma oferece benefícios como componentes de produção padronizados, ferramentas e processos automatizados.

Por exemplo, se cada equipe de produto quiser implementar um serviço de gerenciamento de segredos, haverá muitos mecanismos diferentes em toda a organização. Em vez de cada equipe construir seu mecanismo, a engenharia de plataforma pode fornecer o serviço e oferecê-lo a partir de um local central.

E isso tem benefícios como ter um produto padrão, reutilização e desperdício de tempo reduzido. Consequentemente, isso alcança repetibilidade, que é um dos elementos fundamentais do modelo DevOps Maturity.

Futuro da Engenharia de Plataforma e DevOps

O futuro da engenharia de plataforma e do DevOps parece brilhante. As implementações atuais de engenharia de plataforma já estão gerando vários benefícios, e isso aumentará à medida que a disciplina evoluir e amadurecer.

Consequentemente, continuará facilitando o trabalho das equipes de DevOps, dando-lhes a oportunidade de se concentrar mais na construção de aplicativos, em vez de tentar entender a infraestrutura e o ambiente de produção.

Embora seu foco principal seja o ambiente de tempo de execução, como infraestrutura (Kubernetes, etc.), pipeline de lançamento de software e outras fundações, ele também fornece outros recursos secundários, como gerenciamento de certificados e segredos, exercícios de engenharia de caos, recuperação automatizada de desastres e provavelmente incluirá mais à medida que evolui.

Algumas empresas podem optar por continuar com DevOps sem engenharia de plataforma. Mas, com o tempo, podem se tornar pouco competitivos, principalmente quando possuem várias equipes de DevOps utilizando diferentes mecanismos para realizar a mesma tarefa.

A engenharia de plataforma oferece suporte à padronização do ciclo de vida do desenvolvimento, e é provável que seu uso continue crescendo à medida que evolui e incorpora outras áreas além de ferramentas e processos. Ele continuará mudando à medida que os processos, práticas, tecnologias e outras partes da disciplina evoluírem.

Para melhorar a eficiência e a qualidade do produto, as organizações devem considerar a engenharia de plataforma, que oferece às equipes acesso a produtos padrão de autoatendimento a partir de um local centralizado. Isso acelerará o desenvolvimento e, ao mesmo tempo, melhorará o valor comercial e as receitas. O Gartner prevê que cerca de 80% das empresas terão estabelecido equipes de engenharia de plataforma até 2026.

Conclusão

A engenharia de plataforma é uma disciplina emergente e útil para aprimorar os processos de entrega de software sem sacrificar a segurança, a eficiência e a qualidade. A engenharia automatiza e simplifica o provisionamento e o gerenciamento de recursos, permitindo que os desenvolvedores forneçam software e recursos de qualidade mais rapidamente e agreguem valor aos seus clientes.

Geralmente, a engenharia de plataforma é uma maneira eficaz de expandir e liberar os benefícios do DevOps.

Você também pode ler Automação DevOps.