Engenharia de Plataforma
Um guia para líderes técnicos, de produtos e de pessoas
Descrição do livro
Nos últimos 25 anos, as organizações de software têm enfrentado um desafio persistente: como gerenciar código, ferramentas e infraestrutura compartilhados entre várias equipes. Equipes centralizadas em geral são insuficientes — oferecendo sistemas desajeitados, ignorando as necessidades do usuário e não conseguindo entregar estabilidade e confiabilidade. Algumas organizações tentaram o outro extremo, mas o resultado é frequentemente o caos, com pequenas equipes afogando-se em complexidade. Algumas poucas selecionadas decifraram o código ao adotar uma abordagem diferente: engenharia de plataforma. Elas criam plataformas robustas e fáceis de usar para controlar a complexidade, fornecer alavancagem e aumentar a produtividade da equipe de aplicativos.
Este livro prático orienta engenheiros, gerentes, gerentes de produto e líderes por meio das mudanças que as organizações modernas lideradas por plataforma exigem. Você aprenderá o que é engenharia de plataforma — e o que não é — e porque ela está se tornando essencial.
Com este livro, você irá:
• Cultivar uma mentalidade centrada no desenvolvedor e na plataforma como produto
• Aprender o que são e o que não são equipes de engenharia de plataforma
• Iniciar o processo de adoção da engenharia de plataforma em sua organização
• Descobrir do que se precisa para se tornar um gerente de produto para uma equipe de plataforma
• Entender os desafios que surgem à medida que você escala plataformas
• Obter insights sobre as melhores práticas para liderar equipes de engenharia de plataforma bem-sucedidas.
“Engenharia de plataforma é um esporte de equipe. Este é seu manual.” – Kelsey Hightower, ex-Distinguished Engineer do Google e coautor de Kubernetes: Up & Running (O’Reilly)
Ver menos ▲Sumário
Sumário
- Prólogo
- Apresentação
- Parte I: O que é e o porquê da engenharia de plataforma
- Capítulo 1: Por que a engenharia de plataforma está se tornando essencial
- Definindo “plataforma” e outros termos importantes
- O pântano generalizado
- Como ficamos presos no pântano generalizado
- Mudança nº 1: Explosão de escolhas
- Mudança nº 2: Maiores necessidades operacionais
- Resultado: Afogando-se no pântano
- Como a engenharia de plataforma limpa o pântano
- Limitar primitivos e ao mesmo tempo minimizar a sobrecarga
- Reduzindo a cola por aplicativo
- Centralizando o custo das migrações
- Permitindo aos desenvolvedores de aplicativos operarem o que eles desenvolvem
- Capacitando equipes para se concentrarem na construção de plataformas
- Concluindo
- Capítulo 2: Os pilares da engenharia de plataforma
- Adotando uma abordagem de produto com curadoria
- Desenvolvendo abstrações baseadas em software
- As principais abstrações: serviço de plataforma e suas APIs
- Clientes pesados
- Customizações do OSS
- Integrando registros de metadados
- Atendendo a uma ampla base de desenvolvedores de aplicativos
- Operando como fundações
- Responsabilidade pela plataforma completa
- Suporte à plataforma
- Disciplina operacional
- Concluindo
- Parte II: Práticas de engenharia de plataforma
- Capítulo 3: Como e quando começar
- Promover a cooperação de plataformas em pequena escala
- Criando as equipes de plataforma que substituem a cooperação
- Os benefícios da centralização da propriedade valem os custos?
- Perceba que a dinâmica coletiva não existe mais
- Foco na resolução de problemas, não em novas tecnologias ou arquiteturas
- Cuidado com novos engenheiros vindos de empresas muito maiores
- Seja lento ao contratar gerentes de produto (e evite gerentes de projeto)
- Problemas especiais para plataformas de integração/serviços compartilhados
- Transformando uma organização de infraestrutura tradicional
- Toda a sua cultura de engenharia precisa mudar
- Identifique as áreas mais promissoras para começar
- por encerrado
- Mude a maneira como você oferece suporte aos seus produtos
- Atualize seu processo de entrevista
- Atualize seus sistemas de reconhecimento e recompensa
- Não tenha muitos gerentes de projeto
- escrevendo código
- Faça a reestruturação necessária
- Mantenha a diversão!
- Concluindo
- Capítulo 4: Construindo ótimas equipes de plataforma
- Os riscos das equipes de plataforma com foco único
- Muito foco em sistemas
- Muito foco no desenvolvimento
- As diferentes funções dos engenheiros de plataforma
- Engenheiros de software
- Engenheiros de sistemas
- Engenheiros de confiabilidade
- Especialista de sistemas
- Contratação e reconhecimento de engenheiros em todas as funções
- Permita títulos específicos por função
- Evite criar uma nova matriz de nível de engenheiro de software
- Tenha, no máximo, uma matriz de nível para as funções dos sistemas
- Se necessário, crie um novo processo de entrevista para engenheiro de software
- Varie a entrevista apenas ligeiramente para funções de sistemas
- Entrevista que considera a empatia pelo cliente
- O que faz um ótimo gerente de engenharia de plataforma?
- Experiência em operação de plataformas
- Experiência em projetos grandes e de longa duração
- Atenção aos detalhes
- Outras funções em uma equipe de plataforma
- Gerentes de produto
- Proprietários de produtos
- Gerentes de projeto/gerentes de programa técnico
- Defensores do desenvolvedor, escritores técnicos e engenheiros de suporte
- Criando uma cultura de equipe de engenharia de plataforma
- Uma plataforma dividida entre uma equipe de desenvolvimento e uma equipe de SRE
- Pontos fortes e fracos da equipe de desenvolvimento
- Mesclando as equipes e adicionando o gerenciamento de produtos
- Incutindo uma cultura de engenharia de plataforma
- Concluindo
- Capítulo 5: Plataforma como um produto
- A cultura do produto se concentra no cliente
- Características dos clientes internos
- Colaborando com clientes internos
- Empatia pelos clientes
- Descoberta de produtos e análise de mercado
- Identificando potenciais produtos de plataforma
- Evolução das ofertas existentes: aparando as arestas ou repensando o problema
- Pesquisa de mercado: validando novos investimentos
- Métricas do produto
- Execução bem-sucedida do produto: criando um roteiro do produto
- Visão: longo prazo
- Estratégia: médio prazo
- Metas e métricas: este ano
- Marcos: trimestral
- Roteiro voltado ao cliente
- Especificação de recursos
- A prática leva à perfeição
- Modos de falha do produto
- Subestimando o custo da migração
- Superestimando o orçamento de mudança para usuários
- Superestimando o valor de novos recursos quando a estabilidade é ruim
- Ter muitos gerentes de produto para o tamanho da equipe de engenharia
- Concluindo
- Capítulo 6: Operação de plataformas
- Práticas de plantão
- Por que a cobertura de plantão 24x7 é importante
- Por que DevOps mesclado?
- Chegando a uma carga de plantão sustentável
- Práticas de suporte
- Por que os engenheiros de plataforma devem fazer trabalho de suporte
- Estágio 1: Formalize os níveis de suporte
- Estágio 2: Separe o suporte não crítico do suporte de plantão
- Estágio 3: Contrate um especialista em suporte
- Estágio 4: Em escala com uma organização de suporte de engenharia
- Práticas de feedback operacional
- SLOs e SLAs são necessários; orçamentos de erro são opcionais
- Gerenciamento de mudanças
- Monitoramento sintético
- Revisões operacionais
- Concluindo
- Capítulo 7: Planejamento e entrega
- Planejando projetos de longa duração
- Esclarecendo objetivos e requisitos em um documento de proposta
- Passando da proposta ao plano de ação
- Evitando trabalho árduo
- Planejamento de roteiro de baixo para cima
- Trabalho de “manter as luzes acesas”
- Mandatos
- Melhorias no sistema
- Reunindo tudo
- Comunicando status com vitórias e desafios quinzenais
- Noções básicas
- Por que: qual o valor?
- O quê: Estruturação de atualizações de vitórias e desafios
- Não se esqueça dos desafios!
- Fazer com que sua equipe escreva vitórias e desafios
- Concluindo
- Capítulo 8: Rearquitetando Plataformas
- Por que a rearquitetura é preferível à construção de uma v2
- Diferentes mentalidades de engenharia
- As necessidades de arquiteturas impulsionam as demandas de mentalidade
- Por que é difícil construir plataformas v2, mas é possível rearquitetar
- Abordando a segurança com arquitetura
- Proteções para rearquiteturas
- Compatibilidade
- Testes
- Ambientes inferiores
- Grupos parciais, implantações lentas e ficar uma versão atrás
- Planejamento de rearquiteturas
- Etapa 1: Pense grande nos objetivos finais da rearquitetura
- Etapa 2: Considere os custos de migração
- Etapa 3: Determine as principais vitórias dos próximos 12 meses
- Etapa 4: Obtenha a adesão da liderança e esteja preparado para esperar
- Concluindo
- Capítulo 9: Migrações e descontinuação de plataformas
- Antipadrões de migração
- Projete migrações mais fáceis
- Use abstrações de produtos que minimizem a cola e limitem a variação
- Crie arquitetura para migrações transparentes
- Rastreamento de metadados de uso
- Desenvolva automação para evitar ações manuais
- Documente rampas de entrada e saída
- Coordene migrações mais suaves
- Defina o escopo, limite-o e priorize mudanças planejadas
- Comunique-se cedo e publicamente
- Atravessar os 20% finais
- Use mandatos com moderação
- Descontinuação de plataformas
- Decidir quando descontinuar
- Coordenando a descontinuação
- Não tenha medo da descontinuação quando ela fizer sentido
- Concluindo
- Capítulo 10: Gerenciando relacionamentos com as partes interessadas
- Mapeamento das partes interessadas: a grade de poder-interesse
- Comunicando com a transparência certa
- Cuidado com o excesso de compartilhamento de detalhes
- Use reuniões individuais regulares criteriosamente
- Acompanhe as expectativas e os compromissos
- Maior escala com reuniões de alinhamento e conselhos consultivos de clientes
- Aumente a comunicação durante períodos difíceis
- Encontre concessões aceitáveis
- Seja claro sobre o impacto comercial
- Às vezes diga “Sim, com concessões”
- Dizer “Não” sem arruinar o relacionamento
- Comprometendo-se com as plataformas paralelas
- Problemas financeiros: gestão de custos e orçamento
- Etapa 1: Descubra quem se beneficiará amanhã
- Etapa 2: Agrupe o trabalho em equipes (não faça isso pessoa por pessoa)
- Etapa 3: Traga sugestões sobre o que cortar e opiniões fortes sobre o que manter
- Concluindo
- Parte III: Como é o sucesso?
- Capítulo 11: Plataformas alinhadas
- Alinhamento em termos de propósito
- Alinhe as equipes com o propósito por meio da combinação certa de pessoas
- Alinhe a cultura com o propósito por meio de práticas comuns
- Alinhe a cultura com o propósito fazendo as equipes colaborarem
- Alinhamento da estratégia do produto
- Promova a mentalidade multiplataforma com gerenciamento independente de produtos
- Promova a arquitetura multiplataforma com os principais ICs independentes
- Busque feedback de comentários em pesquisas com clientes em toda a plataforma
- Resolva criteriosamente o desalinhamento com a reestruturação
- Faça alinhamento de planos
- Alinhe apenas em projetos maiores, não em todos os detalhes
- Seja franco ao enfrentar o desalinhamento
- O alinhamento final vem da liderança baseada em princípios
- Amarrando tudo: Alinhando uma organização
- Concluindo
- Capítulo 12: Plataformas confiáveis
- Confie no modo como você opera
- Acelerar a confiança capacitando líderes experientes
- Otimizar o crescimento da confiança encomendando casos de uso
- Confie em seus grandes investimentos
- Busque a adesão das partes interessadas técnicas para a confiança nas rearquiteturas
- Busque patrocínio executivo para confiança em novos produtos
- Mantenha sistemas antigos para preservar a confiança
- Ganhar confiança requer flexibilidade sobre o que é “certo”
- Confiança para priorizar a entrega
- Crie uma cultura de velocidade
- Priorize projetos para liberar capacidade da equipe
- Desafie as suposições sobre o escopo do produto
- Amarrando tudo: o caso da plataforma excessivamente acoplada
- Concluindo
- Capítulo 13: Plataformas gerenciam complexidade
- Gerenciando a complexidade acidental da coordenação humana
- Gerenciando a complexidade das plataformas paralelas
- Gerenciando a complexidade controlando o crescimento
- Gerenciando a complexidade por meio da descoberta de produtos
- Amarrando tudo: equilibrando a complexidade interna e externa
- Esgotamento nas operações OSS
- Tentando (e falhando) em mudar o jogo
- Plataformas paralelas forçam uma reinicialização
- Executando na reinicialização
- Concluindo
- Capítulo 14: Plataformas amadas
- O amor simplesmente funciona
- O amor pode parecer um hack
- O amor pode ser óbvio
- Amarrando tudo: o amor torna seus usuários incríveis
- Concluindo: O que é o amor? Querida, não me magoe
- Observações finais
- Índice remissivo
Sobre os autores
Camille Fournier é executiva de tecnologia com experiência em liderança que vai de startups em estágio inicial a corporações listadas na Fortune 50. Ela foi membro fundadora do Comitê de Supervisão Técnica do CNCF e atualmente atua no conselho da ACM Queue. Camille é autora de The Manager’s Path (O’Reilly).… Ver perfil completo ▶
Ian Nowland é um veterano com 25 anos de experiência na indústria de software, mais recentemente como vice-presidente sênior de engenharia essencial na Datadog. Ele trabalhou na AWS de 2008 a 2016, atuando como líder do Amazon EMR e no projeto EC2 Nitro. Atualmente, ele é cofundador de uma startup de modo furtivo (que opera longe dos holofotes).… Ver perfil completo ▶






