Lista de verificación de preparación para a produción

A tradución do artigo foi elaborada expresamente para o alumnado do curso "Prácticas e ferramentas de DevOps", que comeza hoxe!

Lista de verificación de preparación para a produción

Xa lanzou un novo servizo en produción? Ou quizais estivo implicado en apoiar estes servizos? Se si, que o motivou? Que é bo para a produción e que é malo? Como adestras aos novos membros do equipo sobre lanzamentos ou mantemento dos servizos existentes.

A maioría das empresas acaban adoptando enfoques do "salvaxe oeste" cando se trata de prácticas de operación industrial. Cada equipo decide as súas propias ferramentas e as mellores prácticas mediante proba e erro. Pero isto moitas veces afecta non só ao éxito dos proxectos, senón tamén aos enxeñeiros.

O ensaio e erro crea un ambiente no que son comúns apuntar co dedo e cambiar de culpa. Con este comportamento, faise cada vez máis difícil aprender dos erros e non repetilos de novo.

Organizacións exitosas:

  • entender a necesidade de pautas para a produción,
  • estudar as mellores prácticas,
  • iniciar discusións sobre cuestións de preparación para a produción ao desenvolver novos sistemas ou compoñentes,
  • garantir o cumprimento das normas de preparación para a produción.

A preparación para a produción inclúe un proceso de "revisión". A revisión pode ser en forma de lista de verificación ou conxunto de preguntas. As revisións pódense facer manualmente, automaticamente ou ambas. En lugar de listas estáticas de requisitos, pode crear modelos de listas de verificación que se poidan adaptar ás necesidades específicas. Deste xeito, pódese dar aos enxeñeiros un xeito de herdar coñecementos e flexibilidade suficiente cando sexa necesario.

Cando comprobar a preparación dun servizo para a produción?

É útil realizar unha comprobación de preparación da produción non só inmediatamente antes do lanzamento, senón tamén ao transferila a outro equipo de operacións ou a un novo empregado.

Comproba cando:

  • Estás lanzando un novo servizo en produción.
  • Transfire o funcionamento do servizo de produción a outro equipo, como SRE.
  • Transfire a operación do servizo de produción a novos empregados.
  • Organizar soporte técnico.

Lista de verificación de preparación para a produción

Hai tempo, a modo de exemplo, eu publicado Lista de verificación para probar a preparación para a produción. Aínda que esta lista se orixinou cos clientes de Google Cloud, será útil e aplicable fóra de Google Cloud.

Deseño e desenvolvemento

  • Desenvolve un proceso de compilación repetible que non requira acceso a servizos externos e non dependa da falla dos sistemas externos.
  • Durante o período de deseño e desenvolvemento, define e establece os SLO para os teus servizos.
  • Documentar as expectativas sobre a dispoñibilidade de servizos externos dos que depende.
  • Evite un único punto de falla eliminando as dependencias dun único recurso global. Replica o recurso ou utiliza unha alternativa cando o recurso non estea dispoñible (por exemplo, un valor codificado).

Xestión da configuración

  • A configuración estática, pequena e non secreta pódese pasar a través de parámetros da liña de comandos. Para todo o demais, usa os servizos de almacenamento de configuración.
  • Unha configuración dinámica debe ter unha configuración alternativa no caso de que o servizo de configuración non estea dispoñible.
  • A configuración do contorno de desenvolvemento non debe estar relacionada coa configuración de produción. En caso contrario, isto pode provocar o acceso desde o contorno de desenvolvemento aos servizos de produción, o que pode provocar problemas de privacidade e fuga de datos.
  • Documenta o que se pode configurar de forma dinámica e describe o comportamento alternativo se o sistema de entrega de configuración non está dispoñible.

Xestión de lanzamentos

  • Documentar o proceso de liberación en detalle. Describe como afectan os lanzamentos aos SLO (por exemplo, aumentos temporais da latencia debido a erros na memoria caché).
  • Documentar lanzamentos canarios.
  • Desenvolver un plan de revisión de versións canarias e, se é posible, mecanismos de retroceso automático.
  • Asegúrate de que as reversións poidan usar os mesmos procesos que as implementacións.

Observabilidade

  • Asegúrese de que se recolle o conxunto de métricas necesarias para o SLO.
  • Asegúrate de poder diferenciar os datos do cliente e do servidor. Isto é importante para atopar as causas dos mal funcionamento.
  • Configura alertas para reducir os custos laborais. Por exemplo, elimine as alertas causadas por operacións rutineiras.
  • Se usas Stackdriver, inclúe as métricas da plataforma GCP nos teus paneis. Configura alertas para as dependencias de GCP.
  • Propaga sempre as trazas entrantes. Aínda que non estea implicado no rastrexo, isto permitirá que os servizos de nivel inferior depuren problemas na produción.

Protección e seguridade

  • Asegúrate de que todas as conexións externas estean cifradas.
  • Asegúrate de que os teus proxectos de produción teñan a configuración IAM correcta.
  • Use redes para illar grupos de instancias de máquinas virtuais.
  • Use unha VPN para conectarse de forma segura a redes remotas.
  • Documentar e supervisar o acceso dos usuarios aos datos. Asegúrese de que todo o acceso dos usuarios aos datos estea auditado e rexistrado.
  • Asegúrese de que os puntos finais de depuración estean restrinxidos polas ACL.
  • Sanitizar a entrada do usuario. Configure os límites de tamaño de carga útil para a entrada do usuario.
  • Asegúrate de que o teu servizo pode bloquear selectivamente o tráfico entrante para usuarios individuais. Isto bloqueará as infraccións sen afectar a outros usuarios.
  • Evite os extremos externos que inicien moitas operacións internas.

Planificación da capacidade

  • Documenta como escala o teu servizo. Por exemplo: número de usuarios, tamaño da carga útil entrante, número de mensaxes entrantes.
  • Documenta os requisitos de recursos para o teu servizo. Por exemplo: número de instancias de máquina virtual dedicada, número de instancias de Spanner, hardware especializado como GPU ou TPU.
  • Limitacións dos recursos do documento: tipo de recurso, rexión, etc.
  • Documentar restricións de cota para crear novos recursos. Por exemplo, limitar o número de solicitudes da API de GCE se usa a API para crear novas instancias.
  • Considere realizar probas de carga para analizar a degradación do rendemento.

Iso é todo. Vémonos na clase!

Fonte: www.habr.com

Engadir un comentario