Microservices are an architectural style in which components of a system are designed as standalone and independently deployable applications. The concept of microservices has been around since the early 2000s, and since the 2010s it has gained in popularity. Nowadays, microservices are a popular choice for building modern websites. As you’ll learn in chapter 1, microservices allow you to leverage the power of distributed applications, scale components more easily, and release faster.
However, for all their benefits, microservices also come with challenges of their own. They bring a substantial infrastructure overhead, and they’re more difficult to monitor, operate, and trace. When working with microservices, the first challenge is to get their design right, and in chapter 3 you’ll learn several principles and strategies that will help you build robust microservices.