Creación de Microservicios con Micronaut
El término «Microservicio» apareció por primera vez en 2011, en una reunión de arquitectos software. Un año más tarde Jame Lewis, Fred George y Adrian Cockcroft hablaron de los microservicios ya como una arquitectura que pretendía, como decía Jame Leis, «Escribir programas que hagan una sola cosa y la haga bien. Escribir programas para trabajar juntos». La filosofía de esta arquitectura se apoya en un diseño donde se puedan desplegar servicios independientes y que se comuniquen entre sí. De esta manera se descentraliza la aplicación monolito (otro término importante en el diseño de microservicios) en pequeños servicios que pueden estar escritos en diferentes lenguajes, con diferentes tecnologías, pero que trabajen juntos para un mismo fin.
Desde entonces, muchos frameworks han aparecido para adaptarse a esta nueva arquitectura. Micronaut es uno de ellos, un framework full-stack moderno para el desarrollo de aplicaciones modulares basadas en microservicios y aplicaciones serverless.
Los pilares en los que se basa Micronaut son los siguientes:
- Similar a Spring.
- Bajo consumo de memoria y arranque rápido.
- Reactivo nativamente.
- Proyecto Open Source bajo la licencia «Apache License v2«.
- Lenguajes de programación en los que se puede desarrollar.
- Groovy
- Java
- Kotlin
- Acceso de datos a través de las principales soluciones, tales como:
- Redis
- SQL
- Hibernate
- Neo4j
- Cassandra
- Mongo
- Soporte cloud nativo, incluyendo soporte para los servicios más comunes de descubrimiento, herramientas de seguimiento distribuido y ejecución en cloud, tales como:
- Consul
- Jaeger
- AWS
- Netflix Eureka
- Zipkin
- Google Cloud Platform
Todo lo visto anteriormente proporciona una serie de ventajas para poder plantearnos la pregunta ¿por qué usar Micronaut?, y las respuestas a esta pregunta pueden ser tales como:
- Integración con cualquier librería Java.
- Curva de aprendizaje muy rápida.
- Fácilmente comprobable.
- Construido con las últimas tecnologías, como Netty.
- Rendimiento gracias a la inyección de dependencias en tiempo de compilación.
Además de todo lo comentado anteriormente, cabe destacar que este framework ha sido diseñado por un equipo liderado por Graeme Rocher, creador de otro framework para el desarrollo de aplicaciones web llamado Grails, y este equipo ha aportado toda su experiencia en el mundo Java/Groovy para mejorar y aprender de experiencias pasadas para crear este framework como una evolución.
Todo este equipo detrás del proyecto ha creado también una serie de guías muy útiles para crear desde tu primera aplicación Micronaut hasta ejemplos más complicados como despliegue en Google Cloud, despliegue en AWS Lambda como un función serverless hasta ejemplos de cómo enviar correos, autenticación con distintos métodos, etc. Una colección de ejemplos paso a paso que se irá incrementando con el tiempo para proporcionar toda la información necesaria a cualquier desarrollador que quiera acercarse al mundo Micronaut.