Desarrollo e implementación de aplicaciones
Examine los patrones y prácticas del desarrollo de aplicaciones, configure Azure Pipelines e implemente los procedimientos recomendados de ingeniería de confiabilidad de sitios (SRE). La Ingeniería de confiabilidad de sitios es un enfoque de ingeniería de software para el desarrollo e implementación de aplicaciones, la administración de cambios, la supervisión y la respuesta de emergencia.
Planeamiento, entrenamiento y prueba
Use la lista de comprobación y los recursos de desarrollo de aplicaciones siguientes, para planificar el desarrollo y la implementación de la aplicación. Debe ser capaz de responder a estas preguntas:
- ¿Ha preparado el entorno de desarrollo de aplicaciones y el flujo de trabajo de configuración?
- ¿Cómo estructurará la carpeta del proyecto para dar respaldo al desarrollo de aplicaciones de Kubernetes?
- ¿Ha identificado los requisitos de estado, configuración y almacenamiento de la aplicación?
Lista de comprobación de SRE
Preparación del entorno de desarrollo. Configure el entorno con las herramientas para crear contenedores y configurar el flujo de trabajo de desarrollo.
Para más información, consulte:
Inclusión de la aplicación en contenedores. Familiarícese con la experiencia global de desarrollo de Kubernetes, en la que se incluyen scaffolding de aplicaciones, flujos de trabajo de bucle interno, marcos de administración de aplicaciones, canalizaciones de CI/CD, agregación de registros, supervisión y métricas de aplicaciones.
Para obtener más información, consulte:
Revisión de escenarios habituales de Kubernetes. A menudo se considera a Kubernetes como una plataforma que proporciona microservicios, pero se está convirtiendo en una plataforma más amplia. Para obtener más información sobre escenarios de Kubernetes habituales, como el análisis y el flujo de trabajo por lotes, consulte Información general de escenarios habituales de Kubernetes (vídeo).
Preparación de la aplicación para Kubernetes. Prepare el diseño del sistema de archivos de la aplicación para Kubernetes y organice las versiones semanales o diarias. Obtenga información sobre cómo el proceso de implementación de Kubernetes permite actualizaciones confiables sin tiempo de inactividad.
Para más información, consulte:
Administración del almacenamiento de aplicaciones. Comprenda las necesidades de rendimiento y los métodos de acceso a los pods para que pueda proporcionar las opciones de almacenamiento adecuadas. Debe planear la manera de realizar copias de seguridad y de probar el proceso de restauración del almacenamiento conectado.
Para obtener más información, consulte:
Administración de secretos de aplicación. Use un almacén de claves para almacenar y recuperar claves y credenciales. No almacene las credenciales en el código de la aplicación.
Para más información, consulte:
Implementación en producción y aplicación de procedimientos recomendados
Cuando prepare la aplicación para producción, use la siguiente lista de comprobación. Debe ser capaz de responder a estas preguntas:
- ¿Puede supervisar todos los aspectos de la aplicación?
- ¿Ha definido los requisitos de los recursos para la aplicación? ¿De qué información dispone sobre los requisitos de escalado?
- ¿Puede implementar nuevas versiones de la aplicación sin que afecte a los sistemas de producción?
Lista de comprobación de procedimientos recomendados de SRE
Configuración de las comprobaciones del estado de preparación y ejecución. Kubernetes usa comprobaciones de preparación y ejecución para saber cuándo la aplicación está lista para recibir tráfico y cuándo debe reiniciarse. Cuando no se definen las comprobaciones, Kubernetes no puede determinar si la aplicación se está ejecutando. Para obtener más información, consulte Comprobaciones de disponibilidad y preparación.
Configuración del registro, la supervisión de aplicaciones y las alertas. La supervisión de los contenedores es fundamental, sobre todo cuando se ejecuta un clúster de producción, a escala, con varias aplicaciones. El método recomendado de registro para las aplicaciones contenedorizadas consiste en escribir en los flujos de salida estándar (
stdout
) y de error estándar (stderr
).Para más información, consulte:
- Registro en Kubernetes
- Introducción a la supervisión y las alertas de Kubernetes (vídeo)
- Azure Monitor para contenedores
- Habilitación y revisión de los registros del plano de control de Kubernetes en Azure Kubernetes Service (AKS)
- Visualización de registros, eventos y métricas de pods de Kubernetes en tiempo real
Definición de los requisitos de los recursos para la aplicación. La manera principal de administrar los recursos de proceso en un clúster de Kubernetes consiste en usar solicitudes y límites de pods. Estos límites y solicitudes le indican al programador de Kubernetes qué recursos de proceso deben asignarse a un pod. Para obtener más información, consulte Definición de solicitudes y límites de pod.
Configuración de los requisitos de escalado de la aplicación. Kubernetes admite el escalado automático horizontal de pods para ajustar el número de pods en una implementación en función del uso de la CPU o de otras métricas de selección. Para usar la escalabilidad automática, todos los contenedores de los pod deben tener definidos solicitudes y límites de CPU. Para obtener más información, consulte Configuración del escalado horizontal automático de pods.
Implementación de aplicaciones mediante una canalización automatizada y DevOps La automatización completa de todos los pasos entre la confirmación del código y la implementación en producción permite a los equipos concentrarse en la compilación del código y elimina la sobrecarga, y los posibles errores humanos, en los pasos manuales. La implementación de nuevo código es más rápida y menos arriesgada, y esto ayuda a los equipos a ser más ágiles, productivos y a confiar en la ejecución del código.
Para obtener más información, consulte:
- Logre que sus prácticas de DevOps evolucionen
- Configuración de una canalización de compilación de Kubernetes (vídeo)
- Centro de implementación de Azure Kubernetes Service
- Acciones de GitHub para la implementación de Azure Kubernetes Service
- Tutorial: Implementación desde GitHub en Azure Kubernetes Service con Jenkins
Optimización y escalado
Ahora que la aplicación está en producción, use la lista de comprobación de implementación de la aplicación para optimizar el flujo de trabajo y preparar la aplicación y el equipo para escalar. Debe ser capaz de responder a estas preguntas:
- ¿Se han eliminado las cuestiones transversales de la aplicación?
- ¿Puede mantener la confiabilidad del sistema y de la aplicación mientras recorre en iteración nuevas características y versiones?
Lista de comprobación de implementación de aplicaciones
Implementación de una puerta de enlace de API. Una puerta de enlace de API sirve como punto de entrada a los microservicios, desacopla a los clientes de los microservicios, agrega otra capa de seguridad y reduce la complejidad de los microservicios al eliminar la carga que supone la administración de las cuestiones transversales. Para obtener más información, consulte Uso de Azure API Management con microservicios implementados en Azure Kubernetes Service.
Implementación de una malla de servicio. Una malla de servicio proporciona a las cargas de trabajo funcionalidades como administración del tráfico, resistencia, directiva, seguridad, identidad sólida y observabilidad. La aplicación se desacopla de estas funciones operativas y la malla del servicio las retira de la capa de la aplicación, bajándolas al nivel de infraestructura.
Para más información, consulte:
- Descripción del funcionamiento de las mallas de servicio en Kubernetes (vídeo)
- Más información sobre mallas de servicio
- Uso de Open Service Mesh con Azure Kubernetes Service
- Uso de Istio con Azure Kubernetes Service
- Uso de Linkerd con Azure Kubernetes Service
- Uso de Consul con Azure Kubernetes Service
- Descripción del funcionamiento de las mallas de servicio en Kubernetes (vídeo)
Implementación de prácticas de SRE SRE es un enfoque probado que mantiene la confiabilidad crucial del sistema y de la aplicación e itera a la velocidad que demanda marketplace.
Para obtener más información, consulte: