Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Hace unos años, algunos de nosotros hablábamos de que los microservicios eran una idea interesante. Lo siguiente que sabes es que se ha convertido en la arquitectura por defecto de cientos de empresas de todo el mundo (muchas probablemente lanzadas como startups con el objetivo de resolver los problemas que causan los microservicios), y tiene a todo el mundo corriendo para subirse a un tren que les preocupa que esté a punto de desaparecer en el horizonte.

Debo admitir que yo tengo parte de culpa. Desde que escribí mi propio libro sobre este tema, Building Microservices, allá por 2015, me he ganado la vida trabajando con gente para ayudarles a entender este tipo de arquitectura. Lo que siempre he intentado hacer es cortar por lo sano y ayudar a las empresas a decidir si los microservicios son adecuados para ellas. Para muchos de mis clientes con sistemas existentes (no orientados a microservicios), el reto ha sido cómo adoptar arquitecturas de microservicios. ¿Cómo se coge un sistema existente y se rearquitecta sin tener que detener el resto del trabajo? Ahí es donde entra este libro. Y lo que es más importante, mi objetivo es ofrecerte una valoración honesta de los retos asociados a la arquitectura de microservicios, y ayudarte a comprender si iniciar este viaje es incluso adecuado para ti.

Lo que aprenderás

Este libro está diseñado como una inmersión profunda en cómo pensar y ejecutar la descomposición de los sistemas existentes en una arquitectura de microservicios. Tocaremos muchos temas relacionados con la arquitectura de microservicios, pero nos centraremos en el aspecto de la descomposición. Para una guía más general sobre arquitecturas de microservicios, mi libro anterior Construir Microservicios sería un buen punto de partida. De hecho, te recomiendo encarecidamente que consideres ese libro como un compañero de éste.

El capítulo 1 contiene una visión general de lo que son los microservicios, y profundiza en las ideas que nos llevaron a este tipo de arquitecturas. Debería funcionar bien para las personas que se inician en los microservicios, pero también insto encarecidamente a quienes tengáis más experiencia a que no os saltéis este capítulo. Creo que en el ajetreo de la tecnología, a menudo se pasan por alto algunas de las ideas centrales importantes de los microservicios: son conceptos sobre los que el libro volverá una y otra vez.

Saber más sobre microservicios está bien, pero saber si son adecuados para ti es otra cosa. En el Capítulo 2, te explico cómo evaluar si los microservicios son o no adecuados para ti, y también te doy algunas directrices realmente importantes sobre cómo gestionar la transición de una arquitectura monolítica a una de microservicios. Aquí trataremos todo, desde el diseño basado en dominios hasta los modelos de cambio organizativo, fundamentos vitales que te ayudarán incluso si decides no adoptar una arquitectura de microservicios.

En los Capítulos 3 y 4 profundizamos en los aspectos técnicos asociados a la descomposición de un monolito, explorando ejemplos del mundo real y extrayendo patrones de migración. El Capítulo 3 se centra en los aspectos de la descomposición de la aplicación, mientras que el Capítulo 4 es una inmersión profunda en las cuestiones relacionadas con los datos. Si realmente quieres pasar de un sistema monolítico a una arquitectura de microservicios, ¡tendremos que descomponer algunas bases de datos!

Por último, el Capítulo 5 examina los tipos de retos a los que te enfrentarás a medida que crezca tu arquitectura de microservicios. Estos sistemas pueden ofrecer enormes ventajas, pero conllevan mucha complejidad y problemas a los que no habrás tenido que enfrentarte antes. Este capítulo es mi intento de ayudarte a detectar estos problemas cuando empiecen a surgir, y de ofrecerte formas de afrontar los dolores de crecimiento asociados a los microservicios.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Advertencia

Este elemento indica una advertencia o precaución.

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/monolith-to-microservices.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.

Encuéntranos en Facebook: http://facebook.com/oreilly

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://www.youtube.com/oreillymedia

Agradecimientos

Sin la ayuda y la comprensión de mi maravillosa esposa, Lindy Stephens, este libro no habría sido posible. Este libro es para ella. Lindy, perdona por haber estado tan gruñón cuando se cumplieron varios plazos. También me gustaría dar las gracias al encantador clan Gillman Staynes por todo su apoyo; tengo suerte de tener una familia tan estupenda.

Este libro se ha beneficiado enormemente de las personas que amablemente ofrecieron su tiempo y energía para leer varios borradores y aportar valiosas ideas. Quiero destacar especialmente a Chris O'Dell, Daniel Bryant, Pete Hodgson, Martin Fowler, Stefan Schrass y Derek Hammer por sus esfuerzos en este ámbito. También hubo personas que contribuyeron directamente de numerosas maneras, por lo que también me gustaría dar las gracias a Graham Tackley, Erik Doernenberg, Marcin Zasepa, Michael Feathers, Randy Shoup, Kief Morris, Peter Gillard-Moss, Matt Heath, Steve Freeman, Rene Lengwinat, Sarah Wells, Rhys Evans y Berke Sokhan. Si encuentras errores en este libro, los errores son míos, no suyos.

El equipo de O'Reilly también ha sido un apoyo increíble, y me gustaría destacar a mis editoras Eleanor Bru y Alicia Young, además de Christopher Guzikowski, Mary Treseler y Rachel Roumeliotis. También quiero dar las gracias a Helen Codling y a sus colegas de otras partes del mundo por seguir arrastrando mis libros a diversas conferencias, a Susan Conant por mantenerme cuerda mientras navegaba por el cambiante mundo de la edición, y a Mike Loukides por involucrarme inicialmente con O'Reilly. Sé que hay mucha más gente entre bastidores que me ha ayudado, así que gracias también a todos vosotros.

Más allá de quienes contribuyeron directamente a este libro, también quiero llamar la atención de otros que, se dieran cuenta o no, ayudaron a que este libro viera la luz. Así que me gustaría dar las gracias (sin ningún orden en particular) a Martin Kelppmann, Ben Stopford, Charity Majors, Alistair Cockburn, Gregor Hohpe, Bobby Woolf, Eric Evans, Larry Constantine, Leslie Lamport, Edward Yourdon, David Parnas, Mike Bland, David Woods, John Allspaw, Alberto Brandolini, Frederick Brooks, Cindy Sridharan, Dave Farley, Jez Humble, Gene Kim, James Lewis, Nicole Forsgren, Héctor García-Molina, Sheep & Cheese, Kenneth Salem, Adrian Colyer, Pat Helland, Kresten Thorup, Henrik Kniberg, Anders Ivarsson, Manuel Pais, Steve Smith, Bernd Rucker, Matthew Skelton, Alexis Richardson, James Governor y Kane Stephens.

Como siempre ocurre con estas cosas, es muy probable que me haya olvidado de alguien que ha contribuido materialmente a este libro. A esas personas sólo puedo decirles que siento mucho haberme olvidado de darles las gracias por su nombre, y que espero que puedan perdonarme.

Por último, algunas personas me preguntan de vez en cuando sobre las herramientas que utilicé para escribir este libro. Escribí en AsciiDoc utilizando Visual Studio Code junto con el complemento AsciiDoc de João Pinto. El libro fue controlado en código fuente en Git, utilizando el sistema Atlas de O'Reilly. Escribí principalmente en mi portátil, utilizando un teclado mecánico Razer externo, pero hacia el final también hice un uso intensivo de un iPad Pro con Working Copy para terminar las últimas cosas. Esto me permitió escribir mientras viajaba, permitiéndome en una ocasión memorable escribir sobre refactorización de bases de datos en un ferry a las Orcadas. El mareo resultante mereció totalmente la pena.

Get De monolito a microservicio now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.