Slurm DevOps: do Git ao SRE com todas as paradas

De 4 a 6 de setembro, em São Petersburgo, na sala de conferências Selectel , será realizado um DevOps Slurm de três dias.



Criamos o programa com base na idéia de que todos podem ler trabalhos teóricos no DevOps, bem como manuais de ferramentas, independentemente. Somente a experiência e a prática são interessantes: uma explicação de como fazê-lo é necessária e não necessária, e uma história sobre como o fazemos.


Cada empresa, cada administrador ou desenvolvedor tem seu próprio nível de DevOps. Alguns usam mal o Git, outros implementam o SRE. O curso é organizado para que todos encontrem algo relevante que possa ser implementado aqui e agora.


Começamos com o Git, depois analisamos o desenvolvimento de aplicativos, a interação de código e infraestrutura, construímos o CI / CD, descrevemos a infraestrutura como código (IaC), testamos a solução resultante, configuramos o monitoramento, coletamos e estudamos logs e, finalmente, chegamos ao SRE: gere confiabilidade em uma história mensurável e gerenciável.


Git


Agora Geet não é usado apenas por quem comprou o primeiro laptop ontem. Essa é uma ferramenta trivial e onipresente, e, no entanto, frequentemente encontramos seu uso indevido: do envio forçado ao mestre e terminando com a cópia de arquivos do Gita para o servidor via Ctrl-C, Ctrl-V.


Nós lhe dizemos como fazer isso não é necessário, como fazer, como fazer em Southbridge.
Passamos a prática: o básico do Gita, trabalho em equipe.


Tópico # 1: Noções básicas do Git


  • Comandos básicos git init, commit, add, diff, log, status, pull, push
  • Fluxo Git, ramificações e tags, estratégias de mesclagem
  • Trabalhar com vários repositórios remotos

Tópico # 2: Trabalho em equipe com Git


  • Fluxo Github
  • Forquilha, remota, solicitação de tração
  • Conflitos, lançamentos, mais uma vez sobre o Gitflow e outros fluxos em relação às equipes

O material é organizado para que administradores e desenvolvedores possam implementar imediatamente todas as práticas no trabalho.


Do ponto de vista do DevOps, o trabalho adequado com o Git organiza e automatiza os processos de desenvolvimento e administração, elimina vários problemas recorrentes e melhora a produtividade do trabalho.


Desenvolvedor DevOps


Observamos o DevOps através dos olhos do desenvolvedor: lançamos o ambiente local, escrevemos um aplicativo, configuramos seu monitoramento e registro, testamos localmente, organizamos o armazenamento de variáveis ​​/ segredos e descoberta de serviços e observamos o rastreamento (opentracing).


Tema №3: Trabalhando com o aplicativo do ponto de vista do desenvolvimento


  • Configurando seu ambiente local: práticas recomendadas
  • Escrevemos um microsserviço em Python (incluindo testes)
  • Usando docker-compose no desenvolvimento

Tema 4: Interoperabilidade de código e infraestrutura


  • Prática de configuração

Como resultado, os desenvolvedores verão como o código deve enviar logs, como testá-lo e como será depurado no futuro. Os administradores entenderão as necessidades dos desenvolvedores: que erros acontecem no código, como organizar testes para desenvolvedores, como testar o projeto você mesmo.


Nesta fase, a principal tarefa do DevOps está resolvida: compreensão e colaboração mútuas entre virgens e ops são construídas. Esta é uma etapa fundamental na transição da implementação de tarefas para o envolvimento responsável.


Como resultado, a velocidade e a qualidade do trabalho estão aumentando.


CI / CD


A automação moderna envolve CI / CD. Começaremos analisando a automação manual: makefiles, githukes, scripts. Analisaremos quando essas ferramentas ainda são relevantes e quando não devem ser usadas.


Vamos examinar as melhores práticas do IC moderno usando o exemplo do Gitlab.


Tópico # 5: Introdução à automação de CI / CD


  • Introdução à automação
  • Ferramentas (bash, make, gradle)
  • Usando git-hooks para automatizar processos
  • Linhas de montagem de transportadores de fábrica e suas aplicações em TI
  • Um exemplo de construção de um pipeline "comum"
  • Software moderno de CI / CD: Drone CI, BitBucket Pipelines, Travis, etc.

Tópico # 6: CI / CD: Trabalhando com Gitlab


  • Gitlab CI - Geral
  • Gitlab Runner, seus tipos e aplicação
  • IC do Gitlab, recursos de personalização, práticas recomendadas
  • Estágios de IC do Gitlab
  • Variáveis ​​de IC do Gitlab
  • Montagem, teste, implantação
  • Restrições de controle e execução: somente quando
  • Trabalhar com Artefatos
  • Modelos dentro de .gitlab-ci.yml, reutilizando ações em diferentes partes do pipeline
  • Incluir - seções
  • Gerenciamento centralizado do gitlab-ci.yml (um arquivo e envio automático para outros repositórios)

A colaboração de administradores e desenvolvedores vai para um novo nível: o administrador grava o modelo de IC e os desenvolvedores o corrigem criando seu IC independentemente do administrador.


A dependência dos desenvolvedores em relação aos administradores é reduzida, a quantidade de trabalho manual é reduzida, o problema da "única pessoa que sabe trabalhar com o arquivo de maquiagem" é eliminado. As implementações ocorrem de maneira confiável e rápida.


IaC


O assunto Infraestrutura como código no exemplo da Terraform informará o administrador da nuvem Selectel Alexei Stepanenko. Ele mostrará como implantar e dimensionar servidores de forma rápida e automática, como compactar imagens automaticamente, como usar modelos de configuração para receber imediatamente máquinas personalizadas.


A pessoa que criou milhares de soluções de IaC lhe dirá como fazê-lo corretamente e como fazê-lo.


A solução Minimal Edit Selectel Cloud é adequada para nuvens do Google e Amazon.


Um funcionário da Southbridge Nikolay Mesropyan mostrará como implantar um aplicativo em funcionamento sem tempo de inatividade e testará sua funcionalidade.


Se você editar a infraestrutura manualmente (configurar servidores, instalar bibliotecas, pacotes, conforme necessário), ao tentar criar uma cópia do ambiente, será necessário lembrar e reproduzir todas as suas ações. Essa tarefa leva facilmente de 3 a 5 dias. Trabalhar com a infraestrutura como um código garante que você tenha uma descrição atualizada do ambiente que pode ser implantado em minutos.


Nikolay lhe dirá como escrever playbooks, quais erros acontecem, por que às vezes os playbooks funcionam devagar ou não como o esperado. Essa é a experiência de muitos anos de uso do IaC em Southbridge.


Tópico # 7: Infraestrutura como código


  • IaC: uma abordagem da infraestrutura como um código
  • Provedores de nuvem como provedores de infraestrutura
  • Ferramentas de inicialização do sistema, montagem de imagens (empacotador)
  • IaC no exemplo do Terraform
  • Armazenamento de configuração, colaboração, automação de aplicativos
  • Pratique a criação de playbooks ansíveis
  • Idempotência, declaratividade
  • IaC Ansible
  • Banco de dados como um failover de código / PostgreSQL

A infraestrutura se torna declarativa e idempotente.
O administrador aprende a gerenciar uma infraestrutura complexa: crie rapidamente novos ambientes, mantenha a unidade de todos os ambientes, veja o histórico de mudanças, o que é crítico quando várias equipes trabalham em um projeto.
O desenvolvedor pode estudar a infraestrutura, implantar independentemente seu ambiente.


Bônus de seção - criação e configuração de um cluster de banco de dados PostgreSQL tolerante a falhas. Forneceremos um manual pronto que usamos em Southbridge, você implantará um cluster no estande de treinamento e poderá usar esta solução em sua empresa.


Teste e monitoramento de infraestrutura


A automação permite lançar o erro imediatamente para mil servidores. Cada alteração requer teste. Por outro lado, o teste manual leva tanto tempo que nega os benefícios da automação.


Vamos mostrar na prática como escrever testes de função. Como resultado, você pode escrever testes para sua empresa. Você não precisa mais se lembrar das configurações feitas, descrevê-las nos testes e verificar automaticamente se todas as decisões e muletas anteriores estão em vigor.


Em seguida, aprenderemos como adicionar automaticamente todos os novos servidores ao monitoramento. Considere monitorar separadamente a infraestrutura e os aplicativos. Mostramos más e boas práticas.


Tópico 8: Testando a infraestrutura


  • Teste e integração contínua com Molecule e Gitlab CI
  • Aplicação Vagrant

Tópico 9: Monitorando a infraestrutura com o Prometheus


  • Por que o monitoramento é necessário
  • Tipos de monitoramento
  • Notificações no sistema de monitoramento
  • Como construir um sistema de monitoramento saudável
  • Avisos legíveis por humanos, para todos
  • Exame de saúde: o que procurar
  • Automação baseada em dados de monitoramento

Monitoramento inadequado é a falta de monitoramento. Não importa para as empresas que a página principal de uma loja on-line esteja disponível se a forma de pagamento apresentar um erro.


Desenvolvedores e administradores estão igualmente envolvidos na configuração do monitoramento e solução de problemas. Além disso, tradicionalmente, as tarefas de monitoramento recaem sobre os administradores. Nosso curso mostrará aos desenvolvedores qual o papel que eles desempenham na criação de um monitoramento eficaz. Os administradores receberão as melhores práticas da Southbridge. Como resultado, o número de perdas causadas por falhas e freios do site ou aplicativo diminuirá rapidamente.


Bônus de seção: automação baseada em monitoramento. Por exemplo, o monitoramento relata que uma carga chegou ao site e o dimensionamento dos servidores da Web é iniciado automaticamente.


Registo


O principal erro ao trabalhar com logs é que administradores e desenvolvedores os assistem diretamente nos servidores. Se você tiver mais de um servidor, isso é muito tempo. Isso não é secular: o desenvolvedor entra no servidor onde não deveria estar.


O DevOps requer coleta, processamento e análise centralizados de logs.


Tópico # 10: Log de aplicativo com ELK


  • As principais aplicações e recursos do elastic (pesquisa, armazenamento, recursos de dimensionamento, flexibilidade de configuração)
  • Visão geral do kibana (principais recursos, idioma da consulta, gerenciamento de painel, gráficos)
  • Visão geral dos produtos elásticos e sua aplicação
  • Coletando métricas no APM (rastreamento de aplicativo)
  • Extras: Revisão de novos produtos - SIEM

A implementação dessa abordagem tornará os logs uma ferramenta simples e compreensível para análise, configuração e ajuste de aplicativos e infraestrutura.


SRE


E chegamos ao tópico que Southbridge está apenas olhando e para o qual outros palestrantes querem permanecer no último dia de Slurm. É com satisfação que Ivan Kruglov, da Booking.com, concordou em lê-lo.


Um projeto vive no mundo real, onde a confiabilidade nunca é absoluta e todas as soluções custam dinheiro.


O que é um SLA para um projeto complexo? Digamos como avaliar se o site está disponível, mas as imagens são carregadas com um atraso. Quais são as métricas do SLA, onde fotografá-las, como fotografá-las?


Como instalar o SLA? Como resistir a eles?


Tema # 11: SRE
Definição de SLA, SLO, Erro de Orçamento e outros termos assustadores do mundo da SRE
SRE: Monitoramento Prático SLI e SLO
SRE: Prática de orçamento de erro
SRE: Gerenciamento de interrupção e carga operacional (passagem, malha de serviço, brackers de circuito)
Os negócios querem SRE. Pelo menos no nível mais simples: pegue um servidor de backup ou faça backup do backup? Um banco de dados ou cluster? A proteção contra DDoS é proativa ou somente no momento do ataque?


Os diretores não estão satisfeitos com a história de que o "site está funcionando" quando um cliente liga para ele e informa que o formulário de pedido não abre.


Portanto, é importante para um engenheiro do DevOps entender pelo menos superficialmente o SRE para conversar adequadamente com a empresa sobre suas necessidades.


Sumário


Durante o Slurm DevOps, administradores e desenvolvedores aprenderão:
- trabalhe corretamente com o Git;
- organizar o desenvolvimento local;
- configurar (administradores) e usar CI / CD (desenvolvedores);
- trabalhar com infraestrutura como um código;
- testar a infraestrutura;
- monitorar infraestrutura e aplicação;
- configurar o log;
- entenda e idealmente - use SRE.


Para leitores atentos - com o código promocional habrapost, um desconto de 15%.


Para todos os pontos, estamos preparando práticas e ferramentas. Assim, cada participante ao retornar de Slurm poderá levar sua empresa ao próximo nível de DevOps.


Para os negócios, isso significa administração e desenvolvimento mais baratos, tempo de inatividade reduzido, maior confiabilidade, entrega mais rápida de recursos e eliminação de bugs.

Source: https://habr.com/ru/post/pt462879/


All Articles