AWS, Azure de Microsoft y Google Cloud son los tres grandes representantes del cloud computing. Ofrecen una cantidad de servicios enorme y tienen una capacidad de almacenamiento jamás antes vista. De hecho, si lo pensamos, la característica principal del cloud es su tamaño. Por esta razón, los tres grandes son los que manejan el mercado del almacenamiento. En consecuencia, nacen los microservicios, la nueva arquitectura del cloud.

Son pequeñas compañías se están robando gran parte del mercado, aunque sus servidores sean minúsculos. Ofrecen microservicios de distintos proveedores de cloud, porque ofrecen beneficios que son mucho más ventajosos que las plataformas de cloud.

Los microservicios del cloud

Los microservicios nacen de la evolución del cloud, son pequeñas compañías que ofrecen diversos tipos de servicio y que, con ayuda de una gran arquitectura, pueden diseñar un sistema mucho más beneficioso para una compañía. [1] Los desarrolladores dividen su trabajo en un número de partes y trabajan en diferentes nubes para tener respuestas más rápidas. Y, a pesar de que hemos dicho varias veces que la mejor opción es desarrollar todo en una misma nube, creando una arquitectura correcta, los microservicios pueden dar un mejor resultado. [2]

Los microservicios se comunican entre ellos con una simple Interfaz de Programación de Aplicaciones (APIs). [3] Entonces, en palabras simples, el cloud miniatura no es nada más que otra solución arquitectónica para utilizar aplicaciones que proveen un set de servicios. Estos servicios están construidos alrededor de una lógica de negocios que son independientes para crecer o actualizarse. Cuando hay cambios, afectan sólo a esta área de servicios. [4]

Beneficios de la arquitectura de los microservicios

El cloud miniatura puede aportar un sinfín de beneficios, incluyendo la posibilidad de lanzar un software mucho más rápido y actualizarlo de manera frecuente. Además, promueven la habilidad del equipo de desarrolladores para innovar, desbloquear creatividad y lanzar actualizaciones constantemente. [5] Para entender más a fondo, a continuación, un pequeño análisis de los beneficios del cloud miniatura [6]:

Facilidad para construir y mantener aplicaciones en cloud

El objetivo principal de los microservicios es la simplicidad. Al construir las aplicaciones por separado, se vuelven más fáciles de mantener. Además, se pueden separar en fragmentos más pequeños. Los servicios se pueden implementar utilizando diferente lenguaje de programación, bases de datos y software.

Esto permite que cada servicio se maneje independientemente, es decir que no habrá una caída de un sistema, sino de una fracción de esta.

Organizarse en torno a las capacidades de la compañía

Los microservicios nos permiten construir productos en vez de proyectos. La arquitectura de los microservicios invita a enfocarse en la funcionalidad de cada negocio, en vez de vender un sistema ya hecho. Por ejemplo, puede que nos quieran vender el último grito de la tecnología del cloud, aunque sólo vayamos a utilizar la mitad de las aplicaciones porque no son adaptas a nuestro negocio. Mientras con un servicio, la plataforma se crea en base a las necesidades específicas de cada compañía.

Productividad y velocidad de los microservicios

La productividad y velocidad se ven afectadas cuando se deben descomponer aplicaciones en pequeños servicios manejables, como es el caso de las grandes plataformas. Si varios equipos trabajan en proyectos diferentes simultáneamente, deben esperar a que los otros terminen para entender si su aplicación funciona correctamente. Entonces con los microservicios, cada equipo puede trabajar a la velocidad que desea y necesita sin depender de los otros para funcionar.

Flexibilidad y escalabilidad de los microservicios

Si uno busca escalar una solución en el futuro, los microservicios son la solución, ya que se puede pagar por la escalación de esta fracción sin necesidad de escalar todos los servicios del cloud. Y, como las aplicaciones pueden coexistir en un mismo ambiente sin perjudicarse unas a otras, entonces nos da mucha más flexibilidad para desarrollar el negocio.

Equipos autónomos y multifuncionales

Los microservicios garantizan el desarrollo más independiente y autónomo de trabajo, permitiendo a los equipos a tomar decisiones técnicas rápidas y libres. Si la solución que están desarrollando está proyectada para crecer, deben considerar una arquitectura de microservicios, porque les dará más libertad de movimiento.

Las desventajas de los microservicios

Los microservicios pueden ser la última moda en tecnología cloud, sin embargo, tienen algunos defectos y desventajas. Usarlos incrementa el número de aplicaciones diferentes que pueden ser usadas y que potencialmente aumenta la operación del ambiente de trabajo. Sin embargo, las plataformas de cloud como Google y Microsoft Azure, tienen la ventaja de manejar mucho trabajo operativo por ti. [7] Además, hará mucho más fácil la escalabilidad de tu aplicación cuando haya demanda y arreglar cualquier problema.

Los microservicios son sistemas muy complejos. Por ser independientes, se deben manejar las cosas con mucho cuidado, y en ocasiones, los desarrolladores deben escribir códigos adicionales para evitar disrupción. [8]

Adicionalmente, utilizar bases de datos múltiples, puede ser bastante trabajoso. A pesar de que puede ayudarnos a tener un sistema más trabajado, requiere de un equipo más fuerte para sostener la cantidad de información que se maneja. [9] Los microservicios pueden resultar incómodos, ya que cada servicio tiene que confirmarse antes de probarse. [10]

Finalmente, otra desventaja es que los microservicios necesitan coordinación de lanzamiento para evitar caídas. [11] Por supuesto todas estas desventajas son manejables, pero requieren de una buena arquitectura y un equipo de trabajo fuerte. En muchas organizaciones, los microservicios están mejorando el rendimiento, pero si tu compañía es nueva en el cloud, lo mejor es adaptarse con una plataforma que nos puede preparar para grandes retos como los microservicios.

Si quieres saber más sobre el enfoque holístico que debe tomar tu compañía para tener éxito en cloud, puedes leer este artículo: Enfoque Holístico de Cloud.

Bibliografía

  1. https://www.infoworld.com/article/3435096/tiny-clouds-taking-on-aws-microsoft-azure-and-google-cloud.html?upd=1569232662751
  2. https://www.infoworld.com/article/3435096/tiny-clouds-taking-on-aws-microsoft-azure-and-google-cloud.html?upd=1569232662751
  3. https://cloudacademy.com/blog/microservices-architecture-challenge-advantage-drawback/
  4. https://www.ibm.com/blogs/cloud-computing/2016/05/04/what-are-microserverices/
  5. https://www.cloudfoundry.org/microservices/
  6. https://skelia.com/articles/5-major-benefits-microservice-architecture/
  7. https://www.cloudfoundry.org/microservices/
  8. https://cloudacademy.com/blog/microservices-architecture-challenge-advantage-drawback/