Información General
El libro tiene 304 páginas, consta de 12 capítulos sin subdivisiones por secciones. La dificultad de lectura es moderada (aunque no por complejidad técnica, sino por el texto continuo). Hay pocas inserciones de código, casi no hay imágenes, pero aparecen periódicamente varios diagramas y esquemas. Al final de cada capítulo hay un breve resumen.
Contenido del Libro
El primer capítulo trata sobre el concepto de microservicios. Sus ventajas y desventajas. Características (por ejemplo, cada microservicio puede tener su propia base de datos o despliegue).
El segundo capítulo está dedicado a cuándo y cómo dividir un monolito en microservicios y cómo definir los límites.
El siguiente capítulo es aún más teórico: trata sobre el modelado de servicios, o más bien sobre los criterios que deben cumplir (bajo acoplamiento y alta cohesión).
El cuarto capítulo trata sobre cómo "conectar" microservicios dentro de un sistema. Aquí se discuten las reglas y mecanismos de comunicación. También se cubre el trabajo con API, RPC, REST, la interacción con bases de datos, JSON y todo lo demás con lo que probablemente trabajas a diario.
El siguiente capítulo trata sobre la división de un monolito en partes. Es más práctico, ya que utiliza un ejemplo ficticio, aunque generalmente no va más allá de los diagramas de flujo.
El capítulo siguiente vuelve a tratar sobre el despliegue. Sin detalles específicos, simplemente enumera algunas herramientas, como Puppet, Chef y Ansible. Unas palabras sobre CI/CD, configuración, diferentes entornos de ejecución, contenerización y mucho más. Como siempre, muchos bloques y diagramas, pero sin código, ni siquiera archivos de configuración.
A continuación, nos acercamos gradualmente al tema de las pruebas de microservicios. Aquí probablemente no hace falta detenerse, ya que los enfoques y principios son bastante similares a las pruebas habituales.
El siguiente capítulo trata sobre monitoreo. Lo inusual aquí es quizás los detalles del monitoreo cuando un servicio está ubicado en varios lugares, así como las peculiaridades generales del monitoreo para microservicios. Por lo demás, todo es bastante estándar.
El siguiente capítulo también está dedicado a uno de los requisitos de cualquier software: la seguridad. Se hace un gran énfasis en la autorización y autenticación, la construcción de firewalls y similares.
A medida que el libro se acerca a su conclusión, el autor aborda la Ley de Conway (la ley que establece que la estructura del software es directamente proporcional a la estructura de la organización y a las comunicaciones establecidas). La discusión gira en torno a qué tan adecuados son los microservicios para esto.
El penúltimo capítulo es otro requisito moderno para el software: la escalabilidad. Aquí se cubren las peculiaridades de la escalabilidad de los microservicios, el almacenamiento en caché, el teorema CAP y mucho más.
El último capítulo es una especie de resumen de todo lo discutido anteriormente y cubre preguntas que aún no se han abordado y que son difíciles de atribuir a algún capítulo específico (por ejemplo, fallos y recuperación).
Opinión
Después de leer el libro, me quedaron sentimientos encontrados: por un lado, el libro es seco y puramente teórico; por otro lado, es muy bueno para ampliar horizontes y llenar vacíos de conocimiento. El libro cubre temas como: las ventajas de los microservicios sobre los monolíticos, CI/CD para microservicios, seguridad, pruebas y monitoreo, escalabilidad, la división adecuada de un monolito en microservicios y tecnologías prácticas que pueden resolver diversos problemas al trabajar con microservicios. En el lado positivo, la navegación es definitivamente buena y clara. En el lado negativo, como ya se mencionó: se lee de manera moderada y a veces tediosa, con pocos ejemplos de código, y es mayormente teórico. A pesar de los inconvenientes, aún lo recomendaría para familiarizarse o al menos darle una oportunidad, ya que el material hace un buen trabajo cerrando algunas lagunas de conocimiento y cubriendo exhaustivamente el tema de los microservicios.