En el 99 % de los casos, la palabra «manual» puede ser sinónimo de letargo e imprevisibilidad; la mayoría estaría de acuerdo en que cuando se busca velocidad y fiabilidad, la automatización es un buen punto de partida. Ya sea que se estén utilizando recursos adicionales de la nube para ampliar una aplicación o implementando y configurando servicios esenciales de aplicaciones, debería ser en realidad tan sencillo como hacer una llamada de API o uno o dos clics en una consola. La utilización de la infraestructura como código (IaC) es la clave del éxito en este caso. Trabajar con sus compañeros de Infraestructura/NetOps/SecOps para establecer archivos de definición validados que detallen qué y cómo se están implementando las cosas le permitirá aprovisionar la infraestructura y los servicios de una manera rápida, repetible y fiable.
Aprovechar este enfoque de plantillas para las implementaciones de autoservicio le hará, en última instancia, menos dependiente de otros equipos y evitará los cuellos de botella de las implementaciones causados por las solicitudes de aprovisionamiento de infraestructura manual basadas en tickets.
La infraestructura como código aporta un paso en la dirección correcta cuando se trata de acelerar las implementaciones, pero se pueden obtener beneficios considerablemente mayores explotando el valor de una distribución completa de CI/CD. Más allá de la capacidad de integrar nuevo código de aplicaciones de forma más frecuente y de hacer que esas actualizaciones se pongan en producción de forma automática, ¿sabía que también puede integrar la inserción de servicios de aplicaciones en su distribución? Al definir estos servicios como código (IaC) y almacenarlos en una herramienta de control de código fuente donde se pueden supervisar, actualizar y verificar regularmente, sus herramientas de CI/CD (como Ansible y GitLab) pueden llevar automáticamente estos servicios a la fase de implementación mediante una llamada de API. De esta manera, se asegurará de que cada aplicación salga con los controles de seguridad y cumplimiento adecuados sin retrasar las implementaciones.
La capacidad de agrupar el código, las bibliotecas y los binarios necesarios para una aplicación completa en un paquete ligero que puede implementarse rápida y consistentemente en todas las plataformas, es la clave para el reciente aumento de adopción de contenedores. Estas características son buena señal para la optimización de la velocidad en la nube, ya que permiten aumentar y escalar las aplicaciones sobre la marcha, acelerar los procesos de CI/CD y construir arquitecturas de microservicios altamente dinámicas y manejables.
Dejando a un lado ese bombo y platillo, es más que fácil quedarse atrapado en la búsqueda de la velocidad y olvidarse de que todavía hay aplicaciones que requieren los mismos (o mayores) niveles de optimización de seguridad y rendimiento que el resto de su cartera de aplicaciones. Y, desafortunadamente, es probable que solo tenga un éxito limitado cuando trate de adaptar los servicios de aplicaciones existentes para satisfacer las distintas necesidades de los contenedores. En cambio, tendrá que identificar un conjunto más dinámico de servicios que se integren con su sistema de orquestación de contenedores para proporcionar un verdadero soporte a sus contenedores, ayudando a evitar interrupciones no deseadas y problemas de seguridad/cumplimiento.
Poner en marcha aplicaciones rápidamente es una cosa. Mantenerlas y conseguir que estén disponible para los usuarios es un reto totalmente diferente. Hay un sinfín de posibles amenazas para el estado de las aplicaciones una vez que pasan a producción: interrupciones de la red, problemas de plataforma, ciberataques y errores de código, por nombrar solo algunas de ellas. Con frecuencia, esto hace que la tarea de solucionar una sola interrupción de aplicación resulte tan difícil como buscar una aguja en un pajar. Pero si nos paramos a pensar en la magnitud de los múltiples fallos de aplicaciones simultáneos de diferentes entornos de nube. ¿Por dónde empezaría?
En este supuesto, la visibilidad es el precursor del conocimiento, lo que hace que tenga un valor incalculable a la hora de solucionar problemas de aplicaciones. Cuanto mayor sea el grado de visibilidad de cada capa de la pila de aplicaciones, mayor será su capacidad para identificar las anomalías operativas y las causas raíz. Para ello, es fundamental implementar una solución de visibilidad centralizada que sea agnóstica de la nube y las aplicaciones para resolver más rápidamente los problemas de las aplicaciones en arquitecturas multinube.
Para finalizar, la agilidad de la nube no se trata solo de tener las herramientas y la tecnología adecuadas (sí, definitivamente son de utilidad). También cuentan las personas y los procesos. Hay algo de verdad en aquello que dicen de que «Una red es tan rápida como su cable más lento». Y esa cita es cierta cuando se aplica a los equipos responsables de la creación, implementación y gestión de aplicaciones en la nube. Es un esfuerzo de equipo que normalmente abarca al menos a los equipos de DevOps, SecOps y NetOps, y arquitectos, lo que significa que las ineficiencias individuales o de colaboración probablemente impactarán en el equipo en su conjunto.
Derribar los silos y aplicar un modelo de compromiso regular y sólido entre los equipos proporcionará una buena base para ayudar a acelerar la planificación, la resolución de problemas y el intercambio de información, asegurando que todos marchen al mismo ritmo. No sólo podrá aprovechar mejor la experiencia multifuncional que hará su vida más fácil, sino que podrá corresponder abogando por cosas como la automatización y la optimización de los procesos en otras ocupaciones, ayudando a todo el mundo a moverse más rápidamente.
Descubra cómo obtener la seguridad, el rendimiento y la visibilidad que su empresa exige sin ralentizar el desarrollo.
La responsabilidad del desarrollo de aplicaciones se ha ido desplazando hacia los desarrolladores y se ha alejado de los equipos de red y seguridad en aras de la velocidad.