Microservicios
¿Qué son los microservicios?
Los microservicios son los miles de estándares web, lenguajes de programación, plataformas de bases de datos y componentes de servidores web independientes que los desarrolladores utilizan como herramientas en el ciclo de vida del desarrollo de software contemporáneo. Usando una perspectiva tradicional, las grandes empresas solían centrarse en la arquitectura orientada a los servicios (SOA), que representaba una tecnología de hardware y software integrada por una sola empresa de TI. Gracias a los microservicios, existen miles de componentes distintos, creados por empresas de desarrollo independientes o comunidades de código abierto, que son compatibles con los servidores web y las aplicaciones de software de cloud. Los departamentos de TI necesitan una nueva filosofía para gestionar los microservicios en entornos de producción multicliente aislados en centros de datos de cloud pública hiperescalables y, para solucionarlo, han adoptado de forma generalizada soluciones de virtualización con estándares de centro de datos definido por software (SDDC) basados en tecnologías de red de servicios. Los microservicios constituyen los componentes fundamentales, es decir, los elementos, las plataformas y los marcos de trabajo esenciales, en los que se crea y se utiliza el código de los servidores web de un centro de datos de cloud.
La arquitectura monolítica frente a la arquitectura de microservicios
- Arquitectura monolítica: proviene de la era de los ordenadores centrales de IBM y el monopolio de los sistemas operativos Microsoft Windows que eran tradicionales en los entornos de TI de las empresas.
- Microservicios: evolucionaron originalmente a partir de comunidades de código abierto, desarrolladores externos y empresas emergentes cuyos programadores independientes aportaban código para ampliar las funciones básicas de las plataformas de servidores web más utilizadas. Hoy día, la mayoría de las principales empresas de TI publican sus propios microservicios y aportaciones a los proyectos de código abierto en los que se adoptan estándares para distintos sectores y equipos procedentes de un mercado más amplio de soluciones basadas en fundamentos únicos. Los microservicios se basan en el mismo principio de innovación que aplican los desarrolladores a las soluciones de código abierto para las aplicaciones de cloud, aunque hoy día también es fácil encontrar microservicios que se licencian como propiedad reservada.
Ventajas de los microservicios
- Innovación rápida: cuando es necesario crear funciones nuevas para las aplicaciones de software, las empresas tanto tradicionales como emergentes pueden presentar innovaciones en el mercado con mayor rapidez que si utilizan la arquitectura monolítica. Los clientes que utilizan aplicaciones web y móviles exigen características nuevas. Las tecnologías innovadoras reciben financiación a través de la adopción por parte de los usuarios y las empresas. Tanto las empresas emergentes como las grandes empresas de TI encuentran ventajas al mantenerse a la vanguardia de la programación y el desarrollo mediante la integración de nuevos microservicios.
- Mayores niveles de automatización de los centros de datos: los desarrolladores prefieren utilizar ciertas plataformas o estándares en su trabajo y esto incluye el uso de lenguajes de programación y bases de datos en las aplicaciones web o móviles con microservicios. Los microservicios se conectan a través de procesos controlados mediante scripts, como las API, que pueden ofrecer mayores niveles de automatización de los centros de datos.
¿Cómo funcionan los microservicios?
La principal misión de los microservicios consiste en aumentar la funcionalidad disponible en un servidor web con respecto a la que ofrece de forma predeterminada la plataforma de gestión del sistema operativo, la red o el centro de datos. Algunos microservicios son extensiones de la pila del servidor web, como las plataformas de lenguajes de programación y los marcos de bases de datos. Para poder desarrollar aplicaciones PHP y MySQL, el entorno del servidor web debe estar configurado para ser compatible con la plataforma LAMP. Las soluciones basadas en microservicios compiten principalmente con la arquitectura orientada a los servicios proporcionada por Microsoft, Oracle, IBM y otras grandes empresas de TI en distribuciones de código cerrado. Las grandes empresas ahora deben admitir múltiples aplicaciones escritas en PHP, Python, Ruby-on-Rails, Java, C++, ASP.net, etc. conjunta o simultáneamente en los entornos de producción. En otras situaciones, un centro de datos puede tener múltiples marcos de bases de datos en funcionamiento a través de máquinas virtuales en hardware multicliente. Un servidor web debe estar configurado de forma compatible con extensiones personalizadas para transmitir contenido multimedia, integraciones de API o la adición de utilidades de propiedad reservada para técnicas de análisis. La combinación de todos estos servicios de terceros y de código abierto supone miles de microservicios en un servidor web habitual en un entorno de producción, que deben multiplicarse por los millones de máquinas virtuales hiperescalables de un entorno de servicios de cloud pública.
Historia de los microservicios
El uso del término microservicios se desarrolló principalmente después de la era de la Web 2.0 debido a la necesidad que tenían los departamentos de TI de las empresas de una nueva forma de conceptualizar el entorno de desarrollo de software para reflejar el ecosistema y las prácticas recomendadas actuales. El uso de microservicios para el desarrollo de aplicaciones web y móviles ha aumentado la complejidad del soporte de las operaciones de las empresas por parte de los administradores de centros de datos. En lugar de contar simplemente con Oracle, IBM o Microsoft para obtener todas las soluciones necesarias de software y para el centro de datos, las empresas ahora se encuentran ante un panorama con millones de proyectos de código abierto que ofrecen soluciones empresariales para su negocio. Numerosos estándares web tienen versiones distintas creadas por diferentes empresas. Muchos lenguajes de programación y bases de datos tienen funciones similares. Cada equipo de desarrollo tiene sus propias preferencias en cuanto a herramientas y métodos de programación. Gestionar toda esta complejidad en la era de la cloud dentro de un departamento de TI corporativo unificado ha generado la necesidad de utilizar los microservicios en el desarrollo de software profesional de muchas organizaciones complejas de todo el mundo.
Descripción de la arquitectura de microservicios
La mejor manera de entender la arquitectura de microservicios es imaginarse las capas de software de la pila del servidor web. El sistema operativo del servidor web puede ser Windows, Linux o BSD. Hay herramientas para la gestión del centro de datos y el equilibrio de carga de la red. Es posible elegir Apache, IIS, NGINX, Caddy, Tomcat, etc. para el servidor web. A continuación, se encuentra la capa para el lenguaje de programación instalado, como PHP, ASP.net, Python, Ruby, Perl, Java y Go. Después está la capa de los marcos de bases de datos, como MySQL, MSSQL, PostgreSQL y MongoDB. Otra capa para las utilidades de almacenamiento en caché, como Varnish, Redis, redes de distribución de contenido (CDN) y las utilidades de optimización. Otras capas pueden incluir servidores perimetrales, plataformas sin servidor y la integración de la inteligencia artificial o el aprendizaje automático. Dentro de un ecosistema de cloud pública existen miles de microservicios que funcionan simultáneamente y que es necesario gestionar en la red de servicios para facilitar la interoperabilidad, el enrutamiento y las comunicaciones.
Arquitectura orientada a los servicios (SOA) frente a microservicios
La arquitectura orientada a los servicios (SOA) suele proporcionarla un único proveedor o puede incluir un paquete de soluciones de hardware y software que se pueden implementar para abordar una necesidad muy definida de un sector. La arquitectura orientada a los servicios se aplica al centro de datos, al servidor web y a las capas de la pila mediante distintos modelos de productos o distribuciones. Existen soluciones de SOA de propiedad reservada y de código abierto de distintos proveedores. Los equipos de red y las conexiones de fibra se gestionan de manera distinta en los centros de datos de cloud que en los centros de datos privados internos. Los microservicios son necesarios para la innovación debido al estado actual del panorama de desarrollo de software. Incluso las empresas más grandes necesitan adoptar los microservicios para permitir a los equipos de programación ágil el lanzamiento de nuevas aplicaciones web o móviles en las que el soporte de productos puede incluir miles de marcas o dominios. Los microservicios a menudo son necesarios para la modernización y contenedorización del software empresarial heredado.
Productos, soluciones y recursos de VMware relacionados con los microservicios
¿Qué es el almacenamiento definido por software?
El almacenamiento definido por software de VMware ofrece una arquitectura de centro de datos de almacenamiento sencilla pero inteligente, que se adapta a los requisitos de las aplicaciones y de la empresa. Obtenga más información hoy mismo.
Definición de los servicios de cloud
Siente las bases de un modelo operativo orientado a los servicios e impulsado por el negocio utilizando las prácticas recomendadas de definición de los servicios de cloud.
¿En qué consiste la virtualización?
La virtualización es la forma más eficaz de reducir los gastos de TI y, a la vez, aumentar la eficiencia y la agilidad para empresas de cualquier tamaño.
¿Cuál es la diferencia entre estar orientado a los proyectos y estar orientado a los servicios?
Las organizaciones de TI actuales utilizan los «proyectos» como estructura para gestionar el trabajo. Utilizar un modelo orientado a los servicios puede garantizar un aprovisionamiento más rápido y reducir los costes.
Suite de cloud empresarial
Una suite de cloud empresarial es una recopilación integrada de productos que permiten gestionar las clouds híbridas y ofrecen un aprovisionamiento de autoservicio.
Creación de la definición de servicio y el punto de acceso virtual correspondiente
Debe utilizar las API de NSX Manager para crear una definición del servicio y un punto de acceso virtual para el dispositivo del servicio en la cloud pública.