官术网_书友最值得收藏!

Understanding the Microservices Concepts

In the programming world, design patterns are very common. This is no different when it comes to web development. With the internet popularity and then after Web 2.0, many patterns developed for the web were widely disseminated with the intention of making the development more dynamic and simple for new features.

Patterns such as MVC (Model-View-Controller), HMVC (Hierarchical Model View Controller), and MTV (Model Template View), among others, inspired the creation of various frameworks such as Django, Ruby on Rails, Spring MVC, and CodeIgniter, for example.

All these frameworks are excellent for creating web applications quickly and without great concern for application architecture. This is because much of the work is done by the framework. All these patterns were thought to be only applied to a web application with all the required business rules. Typically, these applications, where all business rules are on the same code base, are called monoliths.

For years, the monoliths absolutely reigned in the web development ecosystem. Many companies looking for space in the market validated products by creating software on these full-stack frameworks. Many monolithic software applications went to the internet and, over time, a word has emerged as a problem for these monolithic applications: success.

Success is a very problematic word for monolithic applications because of the following difficulties:

  • Maintenance on the same code base can be complicated due to merges that are difficult to apply
  • Implementing new features is increasingly complex and may take longer than expected
  • Application scalability
  • Deploying new features without impacting what is already online is challenging
  • Architectural changes are always very complex

These are just some examples of the kinds of problems that may exist in a monolithic application. These difficulties are a good motivation to migrate monolithic application architecture to microservices. Increasingly, adopting microservices has been the path taken by the software engineering industry and most companies, where the word success has meant trouble for the provision of practice and scalable business. The advantages of the microservices architecture are many:

  • An exclusive business domain for each microservice, facilitating the implementation of new features
  • Better definition of business without cyclic dependency between them
  • Independent deployment
  • Simplicity to identify errors
  • Technological independence among microservices
  • Independence between teams
  • Implementation of isolation
  • Possible scalability for specific microservice 

Showing you how to make the transition from a monolithic application to microservices, applying appropriate patterns, and showing you possible implementation misconceptions, is the aim of this book. All modifications will be applied to the same project, a news portal that has interactivity, a recommendation system, authentication, and an authorization system. Throughout the book, you will be shown every step of this migration when applying design patterns, and both internal and external migrations when it comes to the communication layer between microservices. Of course, to get to that point, you first need to understand some important concepts to efficiently implement the microservices.

主站蜘蛛池模板: 巩义市| 阳信县| 宜川县| 库车县| 镇宁| 罗定市| 榆中县| 蓝田县| 驻马店市| 涞源县| 射阳县| 水城县| 万宁市| 九台市| 辉南县| 梅河口市| 平阳县| 商丘市| 黄冈市| 娱乐| 荥阳市| 全南县| 衡阳市| 邳州市| 靖远县| 措美县| 儋州市| 南阳市| 阿瓦提县| 南通市| 金川县| 龙门县| 曲松县| 紫金县| 广丰县| 大洼县| 芮城县| 旅游| 平武县| 德格县| 彝良县|