¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Day-2 Ops en la Multicloud Híbrida: Principios y Arquitectura

Resumen

A lo largo de los años, la entrega de las aplicaciones se ha agilizado con varias prácticas y toolstacks, pero la forma en la que éstos operan para maximizar la experiencia de cliente depende en buena medida de los procesos que ocurren después de que se despliega la aplicación a producción (Day-2 Ops). En una realidad creciente de adopción de nube híbrida, las Day-2 Ops se están volviendo más híbridas también. En esta primera parte de dos artículos, ponemos un punto de vista arquitectónico sobre cómo diseñar una plataforma de operaciones multicloud híbrida. En la segunda parte nos enfocaremos en una perspectiva práctica con un ejemplo.

Introducción

Por décadas el desarrollo de aplicaciones, la infraestructura donde éstan corren y los procesos que gobiernan la tecnología han estado separados o integradas bajo muchas fricciones. Poco a poco, los procesos de integración y despliegue continuo ayudaron a hacer realidad los principios del desarrollo ágil con entregas más rápidas hasta producción, pero en su mayoría estaban centrados en la aplicación y no en lo que ocurre después de que se entrega la aplicación a los usuarios.

Estas fricciones se exacerban en entornos de TI empresariales con entornos monolíticos, y aunque mucha infraestructura hoy es altamente programable (ej. Infrastructure as code) los aspectos culturales de desarrollo y operaciones legadas limitan su adopción.

Los imperativos del enfoque al cliente y la transformación digital se han detonado bajo el contexto pandémico actual: las organizaciones no tienen otra opción más que acelerar la adopción de prácticas de TI y paradigmas cloud native. Sin embargo, hoy el hecho de que sólo el 20% de las cargas de trabajo empresariales se han movido a la nube (1) refleja la dificultad mencionada y está reabriendo un capítulo para simplificar esta transformación: la nube híbrida.

La nube híbrida, contenedores y multicloud

En entornos empresariales, las rutas de adopción de nube pública inician en espacios aplicativos con menos riesgos. En la medida en que se expande esta adopción, al usar una sola nube para todo, surgen preguntas que impactan el ecosistema de TI: Si hay una opción más barata para cierto caso de uso ¿qué tan fácil es cambiar de proveedor? Si un proveedor ofrece un diferenciador como ubicación, disponibilidad o especialización ¿qué estrategia debo seguir? ¿Puedo dejar parte de mi operación y datos en mis data center y luego decidir qué proveedor usar para facilitar el cumplimiento y gobierno de PII(2)? ¿Puedo aprovechar los conocimientos técnicos de mis empleados si sólo me enfoco en una nube? Las respuestas a estas dudas giran en torno a la estandarización. Contar con un plano de control común entre nubes para desplegar, ejecutar, operar y hacer realidad la portabilidad multicloud se llama hoy Kubernetes, en particular Red Hat® Open Shift® se perfila como la formula más sólida para definir una estrategia multicloud y alcanzar y maximizar los beneficios de ésta.

¿Más nubes son más problemas? Al contrario.

Multicloud ¿es un concepto buscando un problema? No. El paradigma multicloud se puede confundir con más complejidad, pero en realidad, este paradigma se vuelve ventajoso para el negocio:

  • Las organizaciones amplían sus posibilidades de cambiar al proveedor que más le conviene, ya sea por aspectos financieros, mejores condiciones contractuales, o por conveniencia técnica, operativa o legal para la carga de trabajo en particular.
  • Mejorar la Continuidad de negocio con opciones más resilientes o mediante la capacidad de alternar una carga de trabajo a otra nube ante algún desastre.
  • Reduce el “lock-in del proveedor de nube, además posibilita alternar entre un entorno on-premises y otro off-premises.
  • Facilita el cumplimiento regulatorio porque permite ubicar las cargas de trabajo en la modalidad que menos fricciones tenga.
  • Puede homologar la operación entre nubes y reutilizar los mismos skills y plataformas. Esto cobra más relevancia en entornos empresariales que heredan prácticas de gestión y desarrollo tradicionales.

¿Qué es Day-2 Ops? Definición y principios.

Si bien no hay una definición universal y dado que existen zonas grises entre lo que es Day 1 y Day-2 Ops, en general podemos decir Day-2 Ops se como los procesos, personas y prácticas que participan u ocurren después de que la aplicación o el servicio es instalado y está listo para dar servicio al negocio.

En un esquema híbrido multicloud, existen diferentes prácticas de desarrollo y operaciones modernas presentes en Day 1 (Despliegue y liberación) que suman a las nociones de Day-2 Ops. Cuando se diseña una estrategia técnica o una visión de operaciones multicloud, se deben considerar los siguientes principios, capacidades o ámbitos:

  • Sistemas Inmutables. Dada la naturaleza efímera de los servicios de nube y en particular de los contenedores, para mejorar la replicabilidad y estabilidad de un servicio se prefiere que, en lugar de reutilizar una infraestructura cambiándola, se destruya y se vuelva a generar. (3) Para la infraestructura virtualizada o tradicional, este concepto se sirve también del principio de infraestructura como código.
  • GitOps. Cuando contamos con infraestructura programable, código aplicativo, código operativo (ej. los Operadores en Red Hat® Open Shift®) el código fuente es la única versión de la verdad para la estabilidad operativa. Controlarlo en Git (o en cualquier otro controlador de versiones similar) y establecer acciones y procesos al rededor de éste, sobre todo cuando el código cambia, son la base para alcanzar una operación repetible y replicable entre nubes.
  • DevSecOps. Los principios de desarrollo ágil, delivery pipelines con promoción de ambientes desatendida, pruebas automatizadas, inspección de seguridad automatizada y en general, el alto grado de automatización, forman parte también de las condiciones esperadas cuando se recibe una aplicación saludable para una visión de Day-2 Ops.
  • Roles Operativos SRE e Ingeniero DevOps. La adopción hacia Multicloud nativa no sólo involucra herramientas, sino que la estructura de la organización de se debe de orientar también a estructuras de soporte como SRE (Site Reliability Engineer) y propiamente el Ingeniero DevOps. Las prácticas existentes como ITIL como Incident Management, Problem Management, Change Management no desaparecen, pero son gobernadas e integradas en Squads y Tribus enfocadas a la experiencia del cliente y bajo finos balances de cuotas de niveles de servicio y nuevas liberaciones a producción.
  • Respaldo y recuperación. Por definición, los contenedores son de naturaleza efímera, entonces ¿Qué debemos tomar en cuenta en su estrategia de respaldos? Para el escenario de contenedores, como regla general, se deben considerar respaldar el registro de imágenes o catálogos internos, certificados, volúmenes persistentes, usuarios, así como la base de datos etcd. En un escenario multicloud, se debe plantear un plan de recuperación para reproducir el entorno de infraestructura y aplicativo. Afortunadamente en un escenario basado en Kubernetes, estos mecanismos se simplifican mediante archivos descriptores y automatización.
  • Monitoreo y Observabilidad. La información de la salud del clúster y de las aplicaciones se estandariza también bajo el paradigma de Kubernetes. En un contexto híbrido, los mecanismos de monitoreo se integran con los de gestión de eventos y alertas. El monitoreo debe incluir también el monitoreo de costos entre nubes.
  • ChatOps. Contar con una comunicación y colaboración eficiente entre equipos multidisciplinarios es clave para acelerar la atención de incidentes. Hoy los equipos operativos usan espacios de trabajo basados en chat que son ampliados con entradas provenientes de sistemas, robots, así como mecanismos de disparo de acciones a sistemas mediante comandos o aplicaciones dentro del mismo chat.
  • Automatización y Operadores. Una estrategia de Day-2 Ops será exitosa en la medida de su adopción de la reducción de las intervenciones manuales. Por eso, es deseable contar con una plataforma flexible para reusar, definir y ejecutar tareas automáticas para ambientes virtuales o de contenedores es clave. Con la evolución que ha tenido Kubernetes, la comunidad ha generado múltiples recursos u objetos custom que utilizan el API de Kubernetes, muchos de estos recursos son mucho más fácilmente implementados, configurados y administrados utilizando Operadores (Operators mediante Red Hat® Operator Framework). En un contexto de Multicloud Day-2 Ops los Operadores son importantes para:

    • Las aplicaciones y/o recursos que requieren una constante instalación o actualización, los operadores facilitan y automatizan estas tareas.
    • La recuperación del estado de la aplicación o del recurso en forma automática.
    • El monitoreo y observación de los recursos que fueron desplegados.
    • Aterrizar y estandarizar el conocimiento de expertos usando código para automatizar la operación.
    • Agilizar y simplificar la gestión de recursos unificada entre múltiples nubes.

Bajo un esquema híbrido se espera integrar operativamente también a esquemas de TI tradicional o virtualizada. También es importante considerar homologar y gobernar mecanismos de automatización para estos entornos.

  • Gestión de Imágenes y de Virtualización. En un escenario empresarial con un esquema de contenedores, ¿qué repositorio debo usar para mis imágenes? ¿Quién debe acceder a él? Así sea un repositorio interno o externo, los operadores pueden no sólo instalar una aplicación completa, sino que pueden gestionarla y operarla en un entorno multicloud. Lo mismo aplica para los sistemas virtualizados (OpenStack, VMWare, Power, Z) que dominan el panorama de TI empresarial. Unificar ambos mundos administrativos en un solo esquema es deseable.
  • AIOps. Por su potencial escala, la modernización y el Multicloud puede acelerar la complejidad de los sistemas, por eso, agregando capacidades de inteligencia artificial, es posible entender mejor y mas rápido la información inherente a los sistemas (logs, métricas o eventos) y poder actuar de forma proactiva con automatización y colaboración mediante ChatOps. También permite conocer y comprometer los niveles de servicio de mejor manera.
  • Gestión de Políticas. Mantener una única versión de la verdad en la postura de gobierno, es clave en la gestión multicloud. Por ejemplo, asegurar el uso de certificados autorizados, establecer controles de vulnerabilidad de contenedores o asegurar el uso de VMs autorizadas, son políticas que se pueden definir para controlar unificadamente recursos entre nubes.

Visión arquitectónica

¿Cómo traducir estos principios en una visión tecnológica para Hybrid Multicloud Day-2 Ops? Aquí presentamos una visión que los unifica en seis grupos funcionales (Day-2 Operations With AIOps) y que se abstraen mediante tres capas de gestíon híbrida (Hybrid Service Library, Hybrid Lifecycle Management, Hybrid Security):

Visión de arquitectura de administración Hybrid Multicloud Day-2 Ops

Figura 1 – Visión de arquitectura de administración Multicloud Híbrida Day-2 Ops

Por ahora enfoquemos nuestra atención en el grupo de Day2 Ops y en los principios que habilita:

Grupo funcional Habilita o apalanca
Operation Automation se refiere a los procesos y herramientas necesarias para el despliegue de infraestructura o de aplicaciones, que facilitan la publicación y actualización de dichos recursos. • GitOps
• DevSecOps
• Gestión de Imágenes
• Operadores y automatización
Event & Remediation para detectar posibles anomalias y obtener rápidamente un diagnostico de los problemas y actuar ante estas situaciones. • Monitoreo y Observabilidad
• Respaldo y Recuperación
• Operadores
• Los roles y personas de SRE
• DevSecOps
Application Monitoring se enfoca en la continua observación de la aplicación, a fin de poder garantizar la continuidad de negocio en entornos híbridos multicloud. • Monitoreo y Observabilidad
• Operadores
• GitOps• DevSecOps
• Sistemas Inmutables
Topology & Fault. Este aspecto refiere a la flexibilidad y reacción que deben tener las plataformas seleccionadas de nube, como en este caso, los clusters de Kubernetes. • GitOps
• DevSecOps
• Roles y personas de SRE
• Respaldo y Recuperación
Chargeback & Metering refiere a las capacidades de tener control de los recursos que se despliegan, sobre todo cuando las aplicaciones y los recursos utilizados se encuentran en nubes públicas, así también el software que se utiliza para poner en funcionamiento la aplicación requiere de ser constantemente medido, sobre todo cuando este se encuentra en esquemas de despliegue auto escalables como el de contenedores y kubernetes. • Monitoreo y Observabilidad
• DevSecOps
• Gestión de Imágenes
• Sistemas Inmutables
Chatops & Collaboration para estar en constante comunicación con los equipos de operación y desarrollo de las aplicaciones, a fin de notificar los eventos que se susciten durante la operación de las aplicaciones que se encuentran en funcionamiento en la nube. • Monitoreo y Observabilidad
• Roles y Personas de SRE
• DevSecOps
• GitOps
• Chatops

Para comodidad de los equipos de arquitectura y de operaciones, esta visión arquitectónica está disponible en el IBM Cloud Pack for Multicloud Management. En la segunda parte de este artículo pondremos en práctica esta visión con un ejemplo de administración Multicloud híbrida.

Conclusión

Los beneficios de cloud computing parecen distantes en entornos empresariales tradicionales sin un plano de control estandarizado que permita desencadenar y acelerar su adopción. Una visión global de gestión de virtualización y orquestación de contenedores híbrida alivia múltiples preocupaciones en una ruta adopción multicloud y el ámbito operativo es una de ellas. Day-2 Ops es una serie de prácticas y roles que inician en el momento en que se libera el servicio a los usuarios. Existen múltiples ámbitos que se deben cubrir como GitOps, Operadores DevSecOps, Gestión de Imágenes, Respaldo y Recuperación, Monitoreo y Observabilidad entre otros. Mostramos una visión de arquitectura con el que el o la lectora puede basar una estrategia de Day-2 Ops híbrida.

Notas y Referencias

  1. Ver https://www.ibm.com/blogs/cloud-computing/2019/03/05/20-percent-cloud-transformation/
  2. PII: Personal Identification Information
  3. Ver https://thenewstack.io/a-brief-look-at-immutable-infrastructure-and-why-it-is-such-a-quest/.