Projetando para DevOps

Na New Relic, estamos apenas começando a dar uma definição oficial para nossa equipe de operações – ou como a chamamos, Engenharia de Site. Isso não quer dizer que não tenhamos despendido esforços consideráveis ​​para estabelecer o tipo de equipe de operações que desejamos ser. Embora a coleta de 51 bilhões de métricas / dia tenha nos fornecido alguns desafios interessantes ao longo do caminho, não fomos desviados pela construção de uma infraestrutura complexa para dar suporte a um empreendimento tão grande. Na verdade, é a nossa dedicação à simplicidade nas operações que nos dá a oportunidade de focar no que realmente importa: nossos usuários.

Abaixo está um resumo de nossa história até agora e as lições que aprendemos. Você também pode ver a apresentação fornecida na OSCON 2012 .

“Dedicação à eficiência, dando-se bem com pouca energia”

As operações e as escolhas de tecnologia que fazemos não devem ser um fardo ou uma distração de nosso foco principal – entregar felicidade aos nossos usuários. Usando uma pilha de tecnologia bem estabelecida e estável, somos capazes de manter nossa infraestrutura com pouco esforço e uma pequena quantidade de recursos. Ao fazer escolhas tecnológicas monótonas e eficientes, não perdemos tempo combatendo incêndios nem estabelecendo um sistema complexo para evitá-los.

Unindo Nosso Negócio às Opções de Tecnologia

Não queremos que nossas escolhas de negócios sejam baseadas em nossas escolhas de tecnologia. Queremos poder colocar nossos aplicativos nas mãos de nossos usuários o mais rápido possível e obter seus comentários com a mesma rapidez. À medida que aprendemos o que funciona e o que não funciona para eles, precisaremos fazer mudanças. Os mesmos princípios de acoplamento que usamos no desenvolvimento de software também se aplicam às operações e à nossa pilha de tecnologia. Se você implementou uma tecnologia específica (linguagem de programação, armazenamento de dados, etc.) que requer retrabalho significativo conforme você faz as mudanças inevitáveis, então você fez um acoplamento muito forte.

Engenheiro, não administre

Queremos resolver nossos problemas de infraestrutura criando a solução, e não administrando-a. Ao contratar, procuramos indivíduos que saibam como construir as ferramentas que removem os pontos fracos, em vez de indivíduos que são especialistas em uma determinada peça de tecnologia. As empresas e os produtos mudam com o tempo, e queremos pessoas que possam aliviar o atrito dessas mudanças. Precisamos de generalistas que extraiam o melhor de várias áreas distintas. Precisamos que nossa equipe de operações pense como desenvolvedores de software. Conforme continuamos no caminho do DevOps, nossa infraestrutura começará a se parecer cada vez mais com software.

As operações devem ser interessantes, não empolgantes

O combate a incêndios pode parecer excitante nos filmes. Mas, como equipe de operações, não é por isso que queremos ser conhecidos. O mundo das operações está repleto de pessoas brilhantes e apaixonadas, muitas vezes lutando contra incêndios às 3 da manhã, em vez de trabalhar em problemas difíceis e interessantes. Queremos mudar esse paradigma, queremos chegar a um ponto em que uma falha às 3 da manhã não acorde ninguém. Se estamos gastando nosso tempo combatendo incêndios, não estamos gastando nosso tempo resolvendo nossos problemas reais. Uma equipe de operações pode estar construindo infraestruturas de auto-recuperação e auto-organização ou pode estar resolvendo problemas de replicação de banco de dados às 3 da manhã. O que parece mais interessante?

Seja Deliberado

Somos deliberados ao fazer escolhas sobre nossos processos e tecnologia em operações. Da mesma forma que ferramentas antigas encontradas em uma cidade soterrada nos dizem algo sobre essa cultura, nossas escolhas de ferramentas nos dizem algo sobre as nossas. Procuramos ferramentas maduras e com um ecossistema saudável ao seu redor. Queremos entender nossas ferramentas intimamente, provavelmente vamos levá-las ao seu limite e queremos saber como melhorá-las à medida que começam a mostrar seus pontos de estresse. Queremos ferramentas que possamos integrar facilmente em nosso mundo e trocá-las quando atingirmos seu ponto de ruptura. Temos extrema consideração por nossa cultura e selecionamos nossa tecnologia com o mesmo nível de consideração. O que suas ferramentas e processos dizem sobre você?

Otimize para descoberta

Nossas escolhas em tecnologias e processos nos alinharam para sermos otimizados para descoberta. Queremos disponibilizar nossos produtos para nossos usuários rapidamente, e as barreiras que estão no caminho são derrubadas primeiro. Implementar um pipeline de entrega contínua não foi fácil nem simples, mas agora nossos usuários podem ver melhorias e recursos rapidamente. Sinalizadores de recursos nos permitem lançar recursos de forma incremental, para testá-los A / B e iterar rapidamente nas ideias. Trabalhamos em sistemas complexos que irão inevitavelmente falhar, queremos uma infraestrutura resiliente onde nosso MTTR seja pequeno e o MTBF nem mesmo seja levado em consideração.

Todos na empresa estão por trás de nosso ciclo de construção, medição e iteração. Na verdade, as operações estão no centro desse processo. Sem o cultivo cuidadoso de nossa cultura de operações, não poderíamos ser otimizados para descoberta.