Micro servicios VS monolitos

Cuando desarrollamos una aplicación, tenemos diferentes arquitecturas. En este caso, vamos a hablar sobre las diferencias entre un monolito y un micro servicio. ¡Comenzamos!

Toda aplicación nace con la finalidad de resolver un problema, es decir, para satisfacer una necesidad que tiene un cliente. Al principio, este problema suele ser sencillo y paulatinamente, empieza a aumentar en complejidad transformando nuestro problema inicial (la necesidad inicial) en la mayoría de casos a un conjunto de problemas.

Por ello, vamos a hablar de la manera en la que gestionamos este conjunto de problemas y que nos dará como resultante múltiples tipos de arquitecturas. Aunque nosotros hablaremos nos centraremos en dos. Que son:

  • Monolito: hace referencia al software que combina en una misma plataforma la capa IU (User Interface), la capa de Bussines (capa de negocio) y la capa de datos (BBDD, JSON…). Por tanto, podríamos imaginar un monolito como un contenedor que alberga toda la información de la aplicación. Este contendor puede ser grande o pequeño dependiendo de lo grande que sea el problema a resolver. Pero eso sí, será un único bloque (o cubo).
  • Microservicios: consiste en subdividir un monolito en múltiples partes, estas partes, son más conocidas microservicios y se comunican entre si para tener el mismo resultante que el monolito. Por tanto, podríamos imaginar estos contenedores (bloques o cubos), como unos contenedores de dimensiones más reducidas pero que se acoplan entre si y eso provoca que se convierta lo mismo que el monolito pero de una forma más organizada.

De una forma más gráfica, lo podríamos ver como:

¿Cuándo usar micro servicios? ¿Y cuándo usar monolitos?

Normalmente, en los inicios de un desarrollo de software comenzamos escogiendo un único lenguaje de programación y de BBDD. Pero a medida de que la aplicación va creciendo o coge un gran nivel de usuarios esto puede suponer un problema. En muchos de casos, hasta nos vemos en la obligación heredar funcionalidades ya desarrolladas. Ahora, a parte de mantener la aplicación, debemos de mantener también la funcionalidad que acabamos de heredar.

Hasta ahora, la mayoría de aplicaciones se creaban bajo el concepto que bautizo Martin Fowler como “MonolitFirst”. Para una vez la aplicación aumentada en lo referente a la complejidad, partirla (desacoplarla) en micro servicios. Usualmente lo que se hacía es crear un monolito para dar valor a un cliente en un plazo corto y poco a poco ir desengranandolo que al pasarla a micro servicios. Esto nos supone que tendremos una experiencia previa del proyecto pero a su vez tiene la contra de que estamos retrabajando dos veces. Yo soy partidaria de escoger micro servicios de inicio. Bajo ese lema salió el famoso dicho que ya se ha vuelvo una filosofía en lo referente micro servicios, el: “Haz una cosa y hazla bien”

Uno de los principales motivos por los que decanto la lanza hacía el desarrollo de aplicaciones con arquitectura de microservicios y no hacía la de monolitos es el que al dividir la aplicación en múltiples partes, es mucho más fácil realizar desarrollos sobre partes más pequeñas. Esto facilita que varios desarrollados trabajen independientemente sobre partes del código de una manera más sencilla. Como decían los romanos, divide y vencerás. Estás partes (las subdivisiones del monolito) a partir de ahora para nosotros recibirán el nombre de servicios, que realmente proviene de la subdivisión del monolito (un servicio gigante) y de ahí su nombre de microservicios (ya que son algo más pequeños).

Los microservicios una arquitectura para gigantes

¿Os imagináis como sería el monolito de Google? Yo me imagino un contenedor muy similar al de la imagen (o más grande aún), En cambio, si utilizamos micro servicios, aunque la magnitud del conjunto de los contenedores no desaparece, me da la sensación de un mejor orden, de organización, de subdivisión. Si a veces nos cuesta encontrar un calcetín en un cajón, imaginaros en un monolito de tal envergadura…

Después de este ejemplo, ¿Cual creéis que es la más indicada para desarrollos de grandes magnitudes? Si habéis respuesto micro servicios, sin mucho pestañear es que habéis entendido, tenéis el 10. Y aprovecho para deciros que ¡A las compañías gigantes les encantan!

Los micro servicios a nivel de creación de APIS están obteniendo tanta fama, digo yo que por algo será. Algunos de los nombres de algunas de estas grandes compañías que implementan los micro servicios son Netflix, Amazon, Ebay, Paypal, Spotify…

Beneficios y desventajas de utilizar una arquitectura monolítica:

Algunas de las características de los monolitos aunque no todas son:

  • Son ideales para administrar aplicaciones pequeñas que tienen una escasa complejidad.
  • Cada vez que queremos desplegar de nuevo la aplicación debemos relanzar todo el sistema de nuevo.
  • Si una aplicación desarrollada con una arquitectura monolítica falla, aunque no tiene porque si se controla con excepciones, pero si pasase, caería toda la aplicación.
  • Al principio son fáciles de desarrollar pero conforme su código y su complejidad va aumentando se vuelven más enrevesadas de entender debido a la complejidad de su código, que en el mejor de los casos únicamente está dividido en funciones. 

Beneficios de utilizar una arquitectura de micro servicios:

Algunos de las características de los micro servicios aunque no todas son:

  • Cada micro servicio realiza una funcionalidad en específica.
  • Cada parte de un micro servicio se debe comunicar con el resto de partes de esta arquitectura.
  • Las comunicaciones en la arquitectura de micro servicios se realizan mediante al protocolo HTTP.
  • Podemos utilizar múltiples lenguajes de programación y de BBDD.
  • Son ideales para administrar aplicaciones medianas o gigantes que tienen una gran complejidad.
  • Si un micro servicio falla, solo fallará ese micro servicio el resto de la aplicación es independiente y no dejará de funcionar. Esto le otorga cierto grado de resistencia a fallos que trata de conservar la integridad del resto de la aplicación permitiendo a los otros micro servicios que sigan funcionando, si uno micro servicio falla,  nuestra aplicación sigue funcionando lo que se traduce en que nuestra aplicación es más segura ya que tiene un mejor aislamiento de fallos.

Espero que os hayáis familiarizado algo más con este mundo de los micro servicios. En próximas clases hablaremos más detalladamente de ellos. Saludos javer@s!

54 comentarios

  1. Me parece interesante lo que indicas, ya que gracias a ti no me quedan dudas, ya que siempre escuchaba hablar de ambos conceptos, pero no sabia que significaban.

  2. Its like you read my mind! You seem to know so much
    about this, like you wrote the book in it or something.

    I think that you can do with some pics to drive the message home a
    little bit, but instead of that, this is excellent blog.
    An excellent read. I will definitely be back.

  3. My brother recommended I would possibly like this website.
    He was totally right. This publish truly made my day.
    You cann’t imagine just how much time I had
    spent for this info! Thanks!

    Feel free to visit my website; Optimum Keto Pills

  4. I think that everything posted made a ton of sense. But, what about this?
    suppose you added a little information? I
    ain’t saying your content is not good., however
    what if you added a title that makes people want more? I mean Micro servicios VS
    monolitos – Java desde 0 is kinda boring.

    You ought to peek at Yahoo’s home page and note how they write article titles to get viewers to click.
    You might add a related video or a pic or two to get people
    interested about everything’ve written. In my opinion, it would bring your website a little bit more interesting.

    Take a look at my webpage – Optimum Keto

  5. I think this is one of the most significant info for
    me. And i am glad reading your article. But want to remark on some general
    things, The web site style is great, the articles
    is really nice : D. Good job, cheers

  6. I love it when folks come together and share views. Great blog, stick with it!

  7. I’d like to find out more? I’d like to find out some additional information.

    My webpage Optimum Keto Ingredients (forum.lsbclan.net)

  8. A person essentially assist to make significantly posts
    I might state. This is the very first time I frequented your
    web page and up to now? I amazed with the research you made to make this particular put up incredible.
    Excellent task!

  9. Hey There. I found your blog using msn. This is a really well written article.
    I’ll be sure to bookmark it and come back to read
    more of your useful info. Thanks for the post.

    I’ll certainly comeback.

    my web blog :: SynoGut

  10. Hello there! This is my 1st comment here so I just
    wanted to give a quick shout out and tell you I really enjoy reading through your articles.
    Can you suggest any other blogs/websites/forums that cover the same subjects?
    Appreciate it!

    Feel free to surf to my site – Natural Burn Keto Review

  11. Excellent post. I was checking continuously this blog and I am impressed!
    Very helpful info specially the last part 🙂 I care for such information a lot.
    I was looking for this certain info for a long time. Thank you and good
    luck.

  12. It’s amazing in support of me to have a website,
    which is useful designed for my experience. thanks admin

    Feel free to surf to my webpage; prettypeople.club

  13. I savor, lead to I discovered just what I was looking for.

    You have ended my 4 day lengthy hunt! God Bless you man. Have a great day.

    Bye

  14. Good day! Would you mind if I share your blog with my myspace group?

    There’s a lot of folks that I think would really appreciate your content.
    Please let me know. Thank you

    My blog post shihan.com.ru

  15. Heya i am for the first time here. I came across this board and I find It truly useful & it helped me out much.
    I hope to give something back and help others like you aided me.

    Also visit my web-site – Viking XL Keto Review

  16. When someone writes an paragraph he/she keeps the thought of a user in his/her brain that how a user can be
    aware of it. Thus that’s why this paragraph is perfect.
    Thanks!

    Look into my web-site: Eagle CBD Review

  17. If you are going for most excellent contents like me, only
    go to see this web site all the time for the reason that it presents feature contents,
    thanks

  18. Hello there! I know this is kinda off topic but I was wondering which
    blog platform are you using for this site? I’m getting fed up of WordPress because I’ve had problems with hackers and I’m looking at alternatives for another platform.

    I would be fantastic if you could point me in the direction of a good platform.

  19. This is the right site for anybody who wants to find out about this topic.

    You realize so much its almost tough to argue with you (not that I personally would want to…HaHa).
    You definitely put a new spin on a topic which has been written about for ages.
    Excellent stuff, just wonderful!

    my site – Yoni Pur Review

  20. Regards for this post, I am a big big fan of this website would
    like to keep updated.

    Take a look at my web blog Virectin Loaded Reviews

  21. Hey just wanted to give you a quick heads up. The text in your article seem to
    be running off the screen in Safari. I’m not sure if this is a formatting issue or something to do with
    web browser compatibility but I figured I’d post to let you know.
    The design and style look great though! Hope you get the
    problem fixed soon. Cheers

    Here is my blog post Virectin Loaded Side Effects

  22. Great post! We will be linking to this particularly great
    content on our site. Keep up the great writing.

    Visit my web site – Jay

  23. Thanks for sharing such a fastidious idea, paragraph is
    good, thats why i have read it fully

    Also visit my website … flac.or.id

  24. Hello very cool website!! Man .. Excellent .. Superb ..
    I’ll bookmark your site and take the feeds additionally?
    I’m happy to find numerous helpful info right here in the submit, we’d
    like work out more strategies in this regard, thanks for
    sharing. . . . . .

    My web site … VikingXL Keto

  25. I’m now not certain the place you’re getting your info, but
    great topic. I must spend some time studying much more or working out more.
    Thank you for wonderful info I used to be looking for this information for
    my mission.

  26. I’m gone to tell my little brother, that he should also pay a
    visit this blog on regular basis to take updated from newest news update.

    Here is my web-site; Ketorol Reviews

  27. You can certainly see your enthusiasm in the work you write.

    The sector hopes for more passionate writers such as you who are
    not afraid to mention how they believe. At all times go after your heart.

  28. Right here is the perfect website for anybody who wishes to
    find out about this topic. You know so much its almost hard
    to argue with you (not that I really would want
    to…HaHa). You certainly put a fresh spin on a topic that’s been discussed for many years.
    Excellent stuff, just great!

    my blog – Keto Incinerate

  29. Greetings! Very useful advice in this particular
    post! It is the little changes that produce the most important changes.

    Thanks for sharing!

    My web blog – TetraMale Reviews (http://www.koan.at)

  30. It’s amazing to pay a quick visit this web page and
    reading the views of all mates regarding this post, while I am also eager of getting familiarity.

  31. It?s hard to find experienced people in this particular subject, however,
    you seem like you know what you?re talking about!
    Thanks

    Feel free to visit my homepage … Luiresse

  32. I precisely desired to appreciate you again. I’m not certain what I would have
    handled without the entire suggestions shared by you
    about such a area of interest. It actually
    was a depressing concern in my position, but noticing the well-written fashion you dealt with the issue made me to jump
    for joy. I’m just happy for your work and thus pray you know what a great job you are always getting into educating many others
    via your webblog. More than likely you haven’t encountered any of us.

    Also visit my site … Total Keto 365 Ingredients

  33. Incredible story there. What happened after? Thanks!

  34. It’s going to be end of mine day, however before end I am reading this impressive piece of writing
    to improve my experience.

  35. Thanks to my father who told me regarding this webpage, this web site is truly awesome.

  36. We’re a group of volunteers and opening a new scheme in our community.
    Your site provided us with helpful info to work on. You’ve done a formidable task and our whole community might
    be grateful to you.

    my blog :: Sparkling CBD (http://www.koan.at)

  37. Today, I went to the beach with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed.

    There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is completely off topic but
    I had to tell someone!

  38. I’m not sure why but this site is loading incredibly slow for
    me. Is anyone else having this issue or is it a
    issue on my end? I’ll check back later on and see if the
    problem still exists.

  39. Only a smiling visitor here to share the love (:,
    btw great style and design.

    Here is my blog; Bio Shed Keto

  40. Whoah this blog is excellent i really like reading your posts.
    Stay up the great paintings! You recognize, lots of individuals are looking round for this info, you could aid them greatly.

    Feel free to visit my web blog :: Insights CBD Gummies Review (librarius.main.jp)

  41. Some genuinely choice articles on this site, saved to fav.

    Feel free to visit my homepage … Moscatcher Review

  42. It is the best time to make a few plans for the future and it’s time to be happy.
    I have read this post and if I may I want to counsel you some fascinating issues or suggestions.
    Maybe you can write next articles regarding this article.
    I wish to read even more things about it!

  43. There is obviously a bundle to know about this. I assume you made various good points
    in features also.

    my website :: Infinuity CBD Gummies Reviews (http://librarius.main.jp/temp/userinfo.php?uid=68818)

  44. Whats up very nice blog!! Guy .. Beautiful .. Superb ..
    I’ll bookmark your website and take the feeds additionally?I am happy to search out
    so many helpful info right here in the submit, we want work out extra techniques in this regard, thank you for sharing.

    Feel free to surf to my homepage :: Vialis Male Enhancement Reviews

  45. I enjoy reading an article that can make people
    think. Also, thank you for allowing me to comment!

  46. When someone writes an article he/she maintains the thought of a user in his/her mind
    that how a user can understand it. Thus that’s why this piece of writing is amazing.
    Thanks!

  47. Hi there! I’m at work browsing your blog from my new iphone 4!

    Just wanted to say I love reading your blog and look forward to all your posts!
    Keep up the great work!

    Here is my page; Luiresse Skin Reviews

  48. Magnificent website. Plenty of helpful information here.
    I am sending it to several buddies ans also sharing in delicious.
    And of course, thank you for your effort!

    Look into my homepage: Total Keto 365 Side Effects#

  49. As soon as I detected this website I went on reddit to share some
    of the love with them.

    Also visit my website – http://www.koan.at/UserProfile/tabid/61/userId/419348/Default.aspx

  50. Excellent pieces. Keep writing such kind of information on your blog.
    Im really impressed by it.
    Hi there, You’ve performed a fantastic job.
    I will definitely digg it and in my opinion recommend to my friends.
    I’m sure they’ll be benefited from this site.

  51. Wow, that’s what I was looking for, what a information! existing
    here at this web site, thanks admin of this site.

    Feel free to surf to my web-site Testo Bull Review

  52. Hi! Someone in my Myspace group shared this website with us
    so I came to check it out. I’m definitely loving the information. I’m book-marking and will be tweeting this
    to my followers! Superb blog and superb design and style.

  53. Appreciate the recommendation. Let me try it out.

    ps4 games https://bit.ly/3z5HwTp ps4

  54. Howdy! I simply want to give you a big thumbs up for the great information you have right here
    on this post. I am coming back to your website for more soon.

    Here is my site Extreme Muscle XXL Muscle Gainer

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

La Ley 34/2002 nos obliga a avisarte de que usamos cookies propias y de terceros con objetivos estadísticos y de sesión y para mostrarte la 'publi' que nos da de comer. Tranquilo, este mensaje solo sale una vez. Más información

Java desde 0 comunica a los usuarios, a través de este aviso, que puede utilizar cookies cuando el usuario navega por las diferentes pantallas y páginas del sitio. Durante el uso de nuestra página Web usted acepta y autoriza expresamente el uso de cookies, de acuerdo con nuestra Política de Privacidad. Este sitio web utiliza las siguientes cookies propias: - Cookies de sesión, para garantizar que los usuarios que escriban comentarios en el blog sean humanos y no aplicaciones automatizadas. De esta forma se combate el spam. Este sitio web utiliza las siguientes cookies de terceros: - Google AdManager y AdSense: Utiliza cookies para mejorar la publicidad. Entre otros fines, suelen utilizarse para segmentarla según el contenido que sea relevante para los usuarios o su ubicación, mejorar los informes de rendimiento de las campañas y evitar mostrar anuncios que los usuarios ya hayan visto. Las cookies no contienen información personal identificable. Consulta cómo utiliza Google la información de sitios web o aplicaciones. y cómo bloquear determinados anuncios. - Google Analytics: Almacena cookies para poder elaborar estadísticas sobre el tráfico y volumen de visitas de esta web. Al utilizar este sitio web está consintiendo el tratamiento de información acerca de usted por Google. Por tanto, el ejercicio de cualquier derecho en este sentido deberá hacerlo comunicando directamente con Google. - Redes sociales: Cada red social utiliza sus propias cookies para que usted pueda pinchar en botones del tipo Me gusta o Compartir.

Cerrar