La complejidad de la automatización de la implementación de aplicaciones ha aumentado con la necesidad de ejecutarse en múltiples plataformas de infraestructura y herramientas relacionadas. La creación de un modelo de operaciones de aplicaciones comunes (AppOps) que estandarice la implementación y la administración de aplicaciones creará las eficiencias de desarrollador que buscan las organizaciones.
Las últimas dos décadas de avances en herramientas de infraestructura han permitido a los desarrolladores entregar aplicaciones cada vez más rápido. Pero tiene un costo: la complejidad actual absorbe mucho tiempo y atención de los desarrolladores. Algunas empresas incipientes aprovechan las herramientas nativas de la nube desde el principio, pero la mayoría de las organizaciones todavía ejecutan aplicaciones en las instalaciones o en máquinas virtuales basadas en la nube.
Las implementaciones completas de Kubernetes y GitOps son objetivos de hoja de ruta a largo plazo para estas organizaciones. Mientras tanto, la implementación de aplicaciones en múltiples tecnologías significa que los desarrolladores deben lidiar con múltiples canalizaciones de CI/CD y la misma cantidad de manifiestos de Kubernetes y configuraciones de infraestructura como código (IaC). El soporte de aplicaciones posterior a la implementación no es menos desafiante.
Figura 1. Un ejemplo de la complejidad a la que se enfrentan muchos desarrolladores en la gestión de múltiples canalizaciones de implementación de aplicaciones. Fuente: Shipa
Para los desarrolladores, el impacto de toda esta complejidad y el control limitado de las aplicaciones afecta múltiples frentes. La velocidad de desarrollo se ralentiza. Las características de soporte de aplicaciones sufren. Los equipos de desarrolladores y operaciones sienten una mayor fricción. Estos desafíos y complejidades solo se vuelven más severos a medida que los equipos de desarrollo, las aplicaciones y los entornos escalan.
La adición interminable de herramientas y la inversión de recursos se vuelve insostenible
Las organizaciones a menudo intentan mantenerse al día con la creciente complejidad de sus entornos de aplicaciones agregando nuevas herramientas de automatización costosas y personal aún más costoso.
A medida que las empresas automatizan aún más el aprovisionamiento de infraestructura y servicios con tecnologías como Kubernetes y GitOps, los equipos de DevOps están introduciendo nuevas canalizaciones y controles de seguridad para respaldar estas plataformas. Sin embargo, multiplicar las canalizaciones de desarrollo de esta manera solo brinda a los desarrolladores herramientas y controles de aplicaciones más inconexos con los que lidiar, y más resentimiento por las plataformas DevOps, lo que agrega sobrecarga al proceso de desarrollo.
Los intentos costosos e infructuosos de las organizaciones para administrar la complejidad de múltiples canalizaciones se ejemplifican mejor con las plataformas de desarrollo interno (IDP). En teoría, los IDP abstraen la gestión de la infraestructura y aceleran la entrega y el soporte de aplicaciones. Pero, como las organizaciones están descubriendo, los IDP no pueden reducir fundamentalmente la creciente complejidad que enfrentan los desarrolladores. La principal deficiencia de los IDP es que en su mayoría son soluciones a medida que son rígidas y difíciles de ajustar a las convenciones estándar de la industria, como las implementaciones canary.
El IDP típico también se centra en los objetivos de nivel de gestión, como la necesidad de completar el ticket interno, que en realidad aumentan los gastos generales del desarrollador, en lugar de simplificar realmente la experiencia del desarrollador. Al mismo tiempo, los IDP también se esfuerzan por ayudar a las organizaciones a ofrecer cualquier valor comercial directo y demostrable a sus clientes.
Por estas razones, los IDP pueden convertirse en proyectos abandonados, a menudo después de años de inactividad periódica, infracciones de seguridad, grandes gastos y frustración de los desarrolladores.
AppOps: un camino diferente
Inscribir un modelo de AppOps que estandarice la implementación y la administración de aplicaciones, independientemente del plano de control, ayuda a brindar la eficiencia de los desarrolladores que buscan las organizaciones. Con AppOps, DevOps puede usar cualquier plano de control, desde máquinas virtuales hasta Kubernetes y más, y los desarrolladores pueden continuar con sus actividades sin interrupción o incluso sin previo aviso.
Al desvincular por completo los matices de una infraestructura dada de las aplicaciones, AppOps proporciona una abstracción a nivel de aplicación que ningún IDP puede lograr. Por ejemplo, los desarrolladores respaldados por AppOps pueden hacer una transición sin problemas de una aplicación de máquinas virtuales a Kubernetes sin tener que enfrentarse a la compleja lista de manifiestos y objetos de Kubernetes con los que tendrían que lidiar los desarrolladores que utilizan un IDP.
Si se implementa correctamente, una organización debería poder usar AppOps junto con cualquier plataforma en su pila. Desde la capa de control centralizada de AppOps, DevOps puede definir controles de seguridad para aplicarlos automáticamente en todas las aplicaciones implementadas, liberando a los desarrolladores de estas preocupaciones. AppOps también puede cumplir con todos los requisitos de automatización de la infraestructura mediante la creación de todas las funciones de aplicación necesarias utilizando la infraestructura disponible.
Es importante destacar que AppOps representa una nueva categoría de soluciones en lugar de una sola herramienta, equivalente a categorías adyacentes como la integración continua, la gestión del rendimiento de las aplicaciones y la seguridad de las aplicaciones.
La llegada de AppOps debería invitar a una ola de nuevos productos, al igual que las innovaciones que llegaron antes con las máquinas virtuales, la computación en la nube y los microservicios. Aprovechar estas nuevas herramientas permitirá a las organizaciones lograr un desarrollo de aplicaciones definido por una nueva simplicidad cuando se trata de brindar seguridad, controles de aplicaciones y velocidad de proyectos.
Ejemplos de canalizaciones de aplicaciones simplificadas por AppOps
Figura 2. Ejemplos de canalizaciones de aplicaciones optimizadas para AppOps. Fuente: Shipa
Potencial de operaciones de aplicaciones
La promesa con AppOps es hacer que la infraestructura específica, la canalización de CI y el plano de control que está creando aplicaciones no sean importantes, al menos desde la perspectiva de un desarrollador.
De esta manera, AppOps hace que la visibilidad de Kubernetes disminuya, como se anticipa en algunos sectores y respaldado por Últimas investigaciones de Cloud Native Computing Foundation (CNCF), totalmente plausible. Ahora, Kubernetes no va a desaparecer, pero los contenedores en general y Kubernetes en particular parecen volverse menos evidentes a medida que la tecnología evoluciona. Chris Aniszczyk, CTO, CNCF dice: «Es similar a la ubicuidad de Linux, que ahora reside dentro de tantas otras plataformas y dispositivos: televisores, teléfonos, refrigeradores e incluso vehículos exploradores de Marte. La gente tiende a no darse cuenta de toda la tecnología que se encuentra debajo». El ecosistema de AppOps se centra en no exponer lo que hay debajo del capó a los clientes internos.
Espere que AppOps maduros aumenten el ritmo de desarrollo y, en última instancia, cumplan la promesa de automatización de mover la infraestructura completamente fuera de la vista y la mente de los desarrolladores.