maciek905 - Fotolia
Qué son las aplicaciones e infraestructura definidas por software
La mecánica interna de las aplicaciones y la infraestructura definidas por software revelan una red interconectada de componentes aislados y recursos escalables, supervisados por gestión automatizada.
Las aplicaciones e infraestructura definidas por software prometen a los centros de datos más flexibilidad, eficiencia y resistencia que la virtualización y los diseños de aplicaciones monolíticas.
Yendo más allá de la virtualización, que incluye un proceso de aprovisionamiento en gran medida manual, que puede llevar mucho tiempo y estar plagado de errores, los contenedores ofrecen un enfoque más modular para el desarrollo de aplicaciones. Los desarrolladores ensamblan una aplicación definida por software desde una serie de módulos independientes, o componentes, llamados microservicios. Cada microservicio se ejecuta en un contenedor y se comunica a través de interfaces de programación de aplicaciones. Las API hacen funcionar a los microservicios, dando a los componentes en contenedores una ruta para pasar datos y comandos entre los distintos módulos funcionales que crean la aplicación que funciona. Los equipos de TI automatizan el despliegue, monitorean el rendimiento y escalan componentes al acelerar contenedores adicionales y balancear la carga del tráfico de API entre aplicaciones. Los recipientes sin usar se pueden apagar, ahorrando recursos informáticos.
Si bien hay varias ventajas, una aplicación definida por software no puede funcionar sin un cierto grado de control sobre el centro de datos o la infraestructura basada en la nube.
Los recursos detrás de las aplicaciones
El monitoreo de la infraestructura y el software de automatización definen y gestionan máquinas virtuales (VM), contenedores, instancias de almacenamiento, segmentos de red y otros elementos necesarios para implementar y escalar componentes de aplicaciones en concordancia con los estándares y políticas establecidos. Por ejemplo, si el rendimiento del sistema de colas de una aplicación cae por debajo de velocidades aceptables, la infraestructura definida por software automáticamente acelerará componentes de cola adicionales temporales, en cualquier servidor disponible. Mientras que cualquier aplicación puede agrandarse o reducirse con el tiempo, este nivel de escala orquestada de autoservicio es importante para las cargas de trabajo irregulares o impredecibles.
De esta manera, las API no son solo un elemento básico de las aplicaciones definidas por software; sino que además forman una base para las infraestructuras definidas por software. Sin comportamientos de API para determinar cuándo se necesita rendimiento adicional y luego iniciar medidas para remediar la situación, los profesionales de TI tendrían que vigilar constantemente y ajustar los recursos asignados a una aplicación.
Las aplicaciones e infraestructura definidas por software cada vez más adoptan la noción de escalado horizontal frente a vertical. Las aplicaciones tradicionales se basan en la escala vertical, lo que aumenta los recursos asignados a una instancia principal de software. la escala horizontal, por el contrario, duplica instancias de componentes de aplicación –por lo general diseñados como microservicios– conforme aumenta la demanda por esa funcionalidad.
La escala horizontal es el enfoque más atractivo porque permite un mejor monitoreo y automatización. Por ejemplo, cuando el monitoreo revela que las llamadas de la API de tiempo al servicio de un componente son inaceptablemente bajas, una infraestructura definida por software duplica automáticamente uno o más componentes –y equilibra la carga del tráfico de la API–para que esos componentes adicionales trabajen juntos para manejar el aumento de trabajo de la aplicación.
Por el contrario, si el monitoreo revela que las llamadas de la API son fácilmente manejadas con recursos de sobra, la infraestructura definida por software puede eliminar automáticamente, o escalar hacia abajo, los componentes adicionales para liberar recursos para otros trabajos.
APIs explicadas
Las aplicaciones tradicionales luchan con la integración –lograr que las aplicaciones hablen entre sí de una manera significativa y organizada puede ser difícil. Las APIs pueden resolver este problema.
Una API establece las rutinas y protocolos que forman los bloques de construcción de las aplicaciones, estipulando cosas como operaciones, entradas, salidas y otros atributos funcionales. Las API pueden ayudar a los desarrolladores con funciones como el acceso a base de datos, funciones gráficas, comportamientos web y acceso a dispositivos de hardware.
Las API prefabricadas incluyen API de Microsoft Windows, la biblioteca de plantillas estándar en C ++ y APIs de Java. Las aplicaciones también pueden proporcionar ganchos comunes que utilizan otras aplicaciones a través del protocolo de acceso a objetos simples o servicios de transferencia de estado representacional.
La verdad sobre la arquitectura definida por software
El término "definido por software" está unido a una serie de tecnologías: almacenamiento, redes, aplicaciones, energía, infraestructuras e incluso centros de datos enteros. El concepto de usar software para suministrar y optimizar elementos del entorno de TI tiene una promesa emocionante, pero añadir la etiqueta definida por software a cualquier cosa crea confusión y puede ser engañoso para los profesionales de TI que navegan los reinos de las aplicaciones y la infraestructura definidas por software.
Tome la arquitectura definida por software (SDA), por ejemplo. El término, que Gartner acuñó en el sentido de una extensión de las redes definidas por software y la arquitectura orientada al software, se confunde fácilmente con la infraestructura definida por software. Sin embargo, la arquitectura definida por software intenta encapsular el hardware y los servicios internos del centro de datos, y aislar esos recursos de las aplicaciones, servicios y dispositivos que puedan estar expuestos a los usuarios, segregando de manera efectiva a los productores o proveedores de los consumidores. La creación de este límite esconde o abstrae el funcionamiento interno de la empresa –los servidores, sistemas de almacenamiento y esquema de redes– permitiendo a los equipos de TI cambiarlo, actualizarlo o reemplazarlo sin afectar las aplicaciones, servicios o dispositivos que enfrentan al usuario final.
Para crear una frontera tan lógica, normalmente llamada un gateway de software, entre los recursos del centro de datos y los usuarios externos, SDA se basa en dos conjuntos de APIs. Las API "interiores" organizan y conducen los sistemas internos, optimizados para el rendimiento del lado del centro de datos. Las API "externas", que están optimizadas para la operación de las redes a larga distancia, pueden acceder de forma segura a las API internas.
Un gateway de software se construye a partir de una combinación de componentes de software, incluidos corredores de integración, administradores de API, gateways de API y una interfaz SOA. Cuando se implementa correctamente, el gateway de software puede traducir API y manejar la seguridad, la orquestación y el enrutamiento.
Este enfoque abstrae aplicaciones, servicios y dispositivos del centro de datos subyacente que los proporciona. Esta abstracción ayuda a proteger el centro de datos y los datos de la empresa; cuando se combina con las API, la abstracción también desacopla a los usuarios finales de los proveedores, lo que significa que los cambios en uno no afectarán al otro.
La visión de Gartner de la arquitectura definida por software se encuentra todavía en su infancia, y queda por ver cómo esa visión y la terminología evolucionarán en los próximos años.