chapter one

1 Why microservices?

 

This chapter covers:

  • The learning approach of this book
  • The what and why of microservices
  • The benefits and drawbacks of using microservices
  • What’s wrong with the monolith?
  • The basics of microservices design
  • A quick overview of the application we are building

As software continues to become larger and more complicated we need better ways of managing and mitigating the complexity. As it grows alongside our business we need better ways of dividing it up so multiple teams can participate in the construction effort. As our demanding customer-base expands we must also be able to expand our software. At the same time our applications should be fault-tolerant and able to scale quickly for peak demand.

How do we meet the demands of the modern business while evolving and developing our application?

Microservices is an architectural pattern that is playing a pivotal role in contemporary software development. A distributed application composed of microservices solves these problems and more, but typically it is more difficult, more complex and more time-consuming to architect than a traditional monolithic application. If these terms are new: microservices, distributed application and monolithic application please hold tight, these will all be explained soon.

1.1   This book is practical

1.2   What is a microservice?

1.3   What is a microservices application?

1.4   What’s wrong with the monolith?

1.5   Why are microservices popular now?

1.6   Benefits of microservices

1.7   Drawbacks of microservices

1.8   Modern tooling for microservices

1.9   Designing a microservices application

1.10   An example application

1.11   Summary