La adopción de NoOps se hace impensable sin contar con una infraestructura Cloud que nos proporcione las herramientas de automatización y autogestión necesarias para poder realizar esta transformación.

NoOps hace referencia a un sistema de producción, gestión y mantenimiento de aplicaciones informáticas en el que no interviene un equipo de operaciones. En su lugar, las acciones de aprovisionamiento y mantenimiento de la infraestructura serán automatizadas y absorbidas por herramientas o servicios que trabajarán directamente para el equipo de desarrollo.

Al mismo tiempo, en un ambiente tradicional de desarrollo como DevOps, contaremos con miembros de operaciones que acompañarán al ciclo de vida del producto participando en su despliegue, mantenimiento y monitorización. También aquí NoOps nos plantea un escenario en el que estás acciones serán automatizadas y no será necesario el acompañamiento de operaciones.

Estos conceptos, aunque ya tienen más de una década, siguen sonando bastante disruptivos y llevan a plantearse dudas tanto técnicas:¿Cómo se lleva a cabo? ¿Cuáles son las herramientas necesarias?, etc.; como a nivel de negocio:¿Esto quiere decir que se puede prescindir de un equipo de operaciones? ¿Cómo implantar este marco de trabajo?, etc.

Sigamos analizando NoOps para intentar aclarar estas dudas.

15.png

DevOps es una metodología de desarrollo de software que apuesta por la creación de equipos multifuncionales, contando con miembros tanto de desarrollo como de operaciones, que trabajando de manera conjunta aportarán más calidad al producto así como mayor rapidez y menor coste para cada uno de sus releases.

De esta metodología surgen varias de las prácticas y herramientas más utilizadas actualmente en la gestión de vida de un producto o aplicación: integración y entrega continua, herramientas sofisticadas para la monitorización y alerta de incidencias al equipo, cambio cultural y jerárquico dentro de los equipos de desarrollo, etc.

NoOps, sin querer perder las buenas prácticas y cambio cultural de los equipos de desarrollo adquiridas con DevOps, lleva este concepto un paso más allá, automatizando y asistiendo con nuevas herramientas y servicios los procesos específicos del área de operaciones. El contrato de colaboración de DevOps da paso a uno de automatización en NoOps.

Si pensamos en un escenario clásico, donde las aplicaciones se encuentren desplegadas en servidores físicos gestionados por nosotros mismos en nuestros Data Centers, estaremos muy lejos del concepto NoOps, incluso muy limitados para beneficiarnos de las prácticas DevOps.

Es cuando ponemos la vista en las aplicaciones Cloud nativas y su concepto serverless cuando rompemos la barrera y las limitaciones que nos impedían llevar un paso más allá nuestra transformación digital. Esta es la clave.

Serverless es un servicio que nos ofrece la nube para alojar nuestras aplicaciones sin tener que preocuparse de la infraestructura subyacente. Es un servicio que se adquiere bajo demanda en un modelo de plataforma como servicio o PaaS.

Bajo este modelo, gran parte de las responsabilidades de mantenimiento, escalado  y supervisión quedan delegadas en el servicio Cloud que las gestiona automáticamente, no siendo necesarias acciones de operaciones por nuestra parte, pudiendo de este modo centrarnos exclusivamente en construir y mejorar el código de la aplicación.

Al mismo tiempo, los desarrolladores podrán especificar de manera declarativa dentro de su propio código, ciertas condiciones del entorno de ejecución o pipelines en el despliegue de sus aplicaciones, todo esto se ejecutará  en servicios gestionados que no requerirán un aprovisionamiento previo ni mantenimiento.

Como expertos en la nube de Google, aquí te dejamos algunos ejemplos de servicios Serverless o PaaS que nos ofrece Google Cloud Platform:

  • Cloud Run: Crea y despliega aplicaciones en contenedores escalables con el lenguaje que prefieras (Go, Python, Java, Node.js o .NET) en una plataforma sin servidor totalmente gestionada.

  • App Engine: Desarrolla sitios web monolíticos que se renderizan en servidores. App Engine es compatible con lenguajes de desarrollo conocidos y ofrece una gran variedad de herramientas para desarrolladores.

  • Cloud Functions: Ejecuta tu código en la nube sin servidores ni contenedores que gestionar con funciones escalables de pago por uso como servicio.

  • Cloud Build: Compila, prueba y despliega en una plataforma de integración y entrega continuas (CI/CD) sin servidor.

Rotundamente no. Aunque este concepto genera algo de controversia, creemos firmemente que NoOps no elimina al equipo de operaciones, sino que lo reubica para sacarles de acciones rutinarias de mantenimiento y supervisión.

Esto permite poder enfocar los esfuerzos de los profesionales de operaciones en acciones que aporten mucho más valor a negocio: Estrategias de transformación a largo plazo, análisis de la información, refinamiento y mejora de los procesos, seguridad, asesoramiento del producto Cloud, etc.

Tras este breve análisis, queda claro que NoOps puede ser un concepto que ayude a las empresas en su transformación digital y también hemos visto cómo es clave contar con un socio Cloud para poder conseguirlo.

NoOps genera controversia y muchas empresas presentan resistencia al cambio. Aquí algunas causas que lo explican:

  • Evolución de la nube:  Aunque NoOps no es un concepto nuevo, es ahora cuando las plataformas Cloud están apostando fuerte por sus servicios gestionados, por lo que esto ayudará a cambiar la tendencia.

  • Resistencia al cambio del equipo de Operaciones: Esto se puede dar si los miembros del equipo creen que su puesto está amenazado. NoOps no debería ser una amenaza para el equipo de operaciones, sino un cambio de enfoque hacia labores estratégicas a largo plazo que aporten mucho más valor.

  • Desconocimiento de la nube: El desconocimiento de los productos que ofrecen las plataformas Cloud puede ser un gran Stopper. Ante esto, la formación y las alianzas con partners especializados en Cloud son las claves.

16.png