(https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253)
Desde el punto de vista del desarrollo, terminaré de escribir el código. El resto se puede ejecutar automáticamente.
Combinación de herramientas y procesos conceptuales
Es principalmente una solución para la comunicación y cooperación entre desarrolladores y probadores.
Monitoreo de construcción, prueba, lanzamiento, implementación, operación y mantenimiento.
Diagrama de herramienta
El flujo de trabajo de DevOps de otros no es necesariamente adecuado para usted
Propósito de devops
Tiempo y calidad
Caso de error de Devops
Caso correcto
devops: entrega de aplicaciones tradicionales
devops: entrega de contenedores estándar
proceso de entrega de contenedores clásico
Resumen del concepto de devops
¿Por qué se presta cada vez más atención a devops recientemente?
Principalmente por microservicios y contenedores.
Hablemos primero de las características del microservicio
Ventajas de los microservicios
Los microservicios encajan perfectamente con Devops conceptualmente
Desventajas de los microservicios
La diferencia entre Docker y la virtualización tradicional radica en la pérdida de virtualización.
Entender Docker en tres minutos
Cómo Docker resuelve las deficiencias de los microservicios
Dificultades y problemas de la entrega de contenedores
Cómo solucionar las deficiencias de los contenedores.
La relación entre microservicios, contenedores y devops se
complementan
Reducir la participación del personal y mejorar la garantía de calidad de la entrega
Cómo formar una entrega rápida y de alta calidad
Cómo realizar rápidamente la migración de contenedores de aplicaciones de calidad
División del proceso de entrega de contenedores
Primero comprenda el dockerfile en el contenedor
El origen de dockerfile, base teórica
Mire la sintaxis de dockerfile nuevamente
Cómo generar una imagen desde dockerfile
De la estructura en capas anterior, se deriva el proceso de optimización del archivo docker
Optimizado
La primera optimización fusiona varios comandos RUN en un solo comando RUN La
segunda optimización La
tercera optimización La
cuarta optimización
Otro método de optimización: construcción de múltiples etapas
Resumen de optimización de Dockerfile
Plantilla de orquestación kubernetes
Mira kubernetes a partir de ideas de diseño
La abstracción más importante de k8s, abstrayendo algunos elementos esenciales de entrega
¿Qué hace cada abstracción definida aquí?
ejemplo de archivo k8s yaml
resumen de k8s
Entre ellos, kompose se usa para resolver la migración de swarm a k8s
Otras herramientas de migración de k8s
Herramienta de migración de Alibaba Cloud Derrick
3. ¿Qué es CI \ CD Build CI \ CD desde cero?
Arquitectura jenkins de uso común, maestro esclavo
Compilar jenkins system-install docker -ce
Segundo paso
resumen de Jenkins
Comparación del software CodePipeline de Alibaba Cloud y jenkins
Cuarto, prácticas de entrega de aplicaciones de contenedores nativas de la nube
1. Cómo comenzar a usar kubernetes,
use: minikube
https://minikube.sigs.k8s.io/docs/start/
o visite los kubernetes en la nube de Alibaba Cloud
Cinco, modo de liberación
Primero, comprenda el modelo de red,
modelo de red de contenedores uno
Servicio de enrutamiento simple en Swarm
Implementación del modelo de red en kubernetes (2) L3 Flat
Implementación del modelo de red en kubernetes (tres) -LoadBalancer y NodePort
Modelo de red (cuatro) -ClusterIP
Modelo de red (5) Ingress
malla de servicio
Una vez finalizado el modelo de red, veamos las estrategias de publicación habituales.
Estrategias de publicación comunes
Lanzamiento azul-verde, ventaja: actualización sin tiempo de inactividad, desventaja: alto consumo de recursos durante el lanzamiento
La diferencia entre las versiones azul y verde de diferentes nodos.
Lanzamiento de Canary, ventajas: para lograr la verificación funcional con un costo mínimo, desventajas: escenario relativamente orientado a un solo, altos requisitos para los desarrolladores
La diferencia con la versión gris es la versión canary si no hay distinción entre el tráfico de la capa de acceso. Si el tráfico del nodo A debe dirigirse a la instancia recién lanzada y el nodo B no debe poder acceder a la nueva instancia, es una versión gris.
Ejemplo de lanzamiento de Canary
Lanzamiento en escala de grises, cambio gradual y suave de una versión a otra
La prueba A / B es muy similar a la versión en escala de grises, pero la prueba A / B utiliza comentarios en línea de [diferentes versiones] para decidir qué versión preferir.
Haz estos lanzamientos a través de k8s
Lanzamiento en lotes, a diferencia del lanzamiento gris, no hay problema de consumo de recursos del lanzamiento gris. (La liberación por lotes es una estrategia)
Para liberar en lotes, los nodos se dividen en lotes pequeños y luego se libera el primer lote para una verificación rápida. Si la verificación es correcta, continúe liberando el segundo lote y el tercer lote. Puede ahorrar recursos.
Si lo anterior se implementa usando k8s, será más complicado. Necesito juzgar si aplicar o revertir. Los K8 no pueden realizar un proceso.
CRD puede ser otra respuesta.
CRD
https://www.kubernetes.org.cn/tags/crd
Diagrama de relación topológica CRD
Direcciones de información relevante (... Las capturas de pantalla se publicaron al final de un largo tiempo)
Seis, marcos de código abierto y servicios en la nube de contenedores
Cadena de herramientas
Derrick 生成 dockerfile, archivo jenkins
https://github.com/alibaba/derrick
kompose genera archivos de kubernetes
Kubernetes + Redactar
https://github.com/kubernetes/kompose
helm [administrador de paquetes de kubernetes 的]
La arquitectura básica de Helm
Introducción a los microservicios
Sin restricciones de idioma.
Combine servicios como aplicaciones Unix, con alta cohesión y bajo acoplamiento.
malla de servicio
lst
Modo sidecar (en realidad no entiendo qué es esto)
7. Prueba y puesta a punto de aplicaciones en contenedores
Es difícil tener algunos modelos estandarizados para afinar. El ajuste consiste básicamente en analizar el problema en busca del problema.
A continuación, se muestran algunos escenarios representativos y problemas de ajuste.
problema c10k
Método de prueba de rendimiento
Después de usar el contenedor, el rendimiento será muy diferente al anterior. En circunstancias normales, habrá una pérdida del 5%.
Sorprendente comparación del rendimiento de la tecnología de virtualización
La virtualización en el modo hiperactivo dará como resultado una pérdida del rendimiento del 20%, mientras que la pérdida de tecnología de contenedores estará dentro del 5%.
Entendiendo el kernel contenedor
Diez herramientas de ajuste de rendimiento
Herramienta de medición de presión
.
Universidad de Alibaba Cloud [https://www.bilibili.com/video/BV1A7411M76m?from=search&seid=14855796811647434253]