📜 ⬆️ ⬇️

The book "Creating microservices"

Hi, Habrozhiteli! We have a new book by Sam Newman.

image The book is devoted to the programming of microservices - small autonomous components, allowing to achieve modularity and fault tolerance of any program. The theory of micro-services is closely related to the Unix philosophy, contributes to the improvement of the architecture of any applications, and makes it possible to avoid cumbersome and confusing code. This book will help the reader to re-look at the many seemingly intractable problems, scale any projects, jeweler develop even the most complex systems.

This book is full of concrete examples of the use of microservices gathered around the world, including their use in organizations such as the Netflix, Amazon, Gilt and REA group, who came to the conclusion that the increased autonomy of this architecture gives their teams tremendous advantages.
')


Who is this book written for?

The subject of the book is quite extensive, which, in fact, corresponds to the scale of the consequences of using microservice architectures with a high degree of detail. The book is intended for those interested in aspects of the design, development, deployment, testing and maintenance of systems. And those who have already begun to work with highly detailed architectures, creating applications from scratch or breaking into existing monolithic systems into smaller parts, will find in it a lot of useful practical tips. The book will help those who want to find out what is the matter, in order to understand whether microservices are suitable for them or not.

Why did I (Sam Newman) write this book

The theme of application architectures interested me many years ago when I worked to help people speed up the installation of their software products. I realized that if the fundamental design of the system lacks the ability to easily make changes, then the help of technologies to automate the infrastructure, testing and continuous delivery will be very limited.

At the same time, in order to achieve similar goals, as well as to increase scalability, the degree of autonomy of development teams, or more effective introduction of new technologies, experiments on creating architectures with a high degree of detail were conducted by many organizations. My own experience, as well as the experience of colleagues at ThoughtWorks and other organizations, allowed me to confirm the fact that using a large number of services with their own independent life cycles creates a lot of problems that need to be solved. In many respects, this book seemed to me a kind of one-window service, helping to cover the most diverse topics necessary for understanding microservices - everything that could help me in the old days!

The world of microservices today

Microservices is a very dynamic topic. Although the idea is not new (despite the novelty of the term used), the experience gained around the world, along with new technologies, significantly influenced the very ways of its use. Because of the high pace of change in this book, I tried to focus more on ideas than on specific technologies, knowing that the implementation details always change faster than the underlying thinking. Nonetheless, I am full of expectations, that literally in a few years we will get a deeper insight into the essence of the use of microservices and the order of their effective use.
Although I have put all my strength into conveying in this book the main essence of the subject concerned, if you have a serious interest in it and you want to be aware of the latest trends, be prepared to devote it to studying for more than one year.

Book structure

The basis of the book is mostly thematic. Therefore, you can arbitrarily choose to study topics that are of most interest to you. Although I tried to reveal the main points and ideas in the initial chapters, I want to believe that even a fairly sophisticated reader will find something interesting in all the chapters without exception. If you want to delve into the study of some of the later chapters, I strongly recommend that you look at chapter 2, concerning the extensive nature of the topic itself, as well as giving an idea of ​​the structure of presentation of the material that I have adopted.
For beginners in this area, the chapters are structured in such a way that, I hope, it will make sense for them to read the entire book from beginning to end. Here is a brief overview of everything that is covered in this book.

Chapter 1. Microservices. It begins with an introduction to microservices, indicating both their advantages and some disadvantages.
Chapter 2. Development Architect. Dedicated to the difficulties of compromise in architecture and the diversity of everything that needs to be comprehended when using microservices.
Chapter 3. How to simulate services. It starts with the definition of the boundaries of microservices using technologies borrowed from the design based on the applications as an aid to directing the thoughts in the right direction.
Chapter 4. Integration. This chapter begins to dive into specific technological implications as we consider the most appropriate types of technologies to ensure the joint work of services. It also takes a deeper look at the topic of user interfaces and integration with obsolete and ready-made commercial software (COTS products).
Chapter 5. Breaking the monolith into pieces. Many experts consider microservices as a kind of antidote from large, poorly modifiable monolithic systems. This question will be discussed in detail in this chapter.
Chapter 6. Deployment. Although this book is primarily theoretical in nature, some of the topics in it were raised under the influence of recent changes in such technologies as deployment, which will be the subject of consideration.
Chapter 7. Testing. This chapter is devoted to an in-depth examination of the topic of testing, which should be taken up with increased attention when it comes to deploying several separate services. Special attention will be paid to the role that contracts based on consumer demands can play in promoting the quality assurance of software.
Chapter 8. Monitoring. Testing the software before deployment does not help if problems are detected while it is working in production mode, so this chapter explores the possibilities of monitoring systems with a high degree of detail and methods that can cope with the difficulties inherent in distributed systems.
Chapter 9. Security. This chapter examines the security aspects of microservices and discusses methods that allow the user to authenticate and authorize with respect to the service and the service with respect to another service. Security in computing systems is a very important topic, but many eagerly ignore it. Although I by no means consider myself to be a specialist in the field of security, but I still hope that this chapter will help you at least consider some aspects that you need to be aware of when building systems, in particular systems based on microservices.
Chapter 10. Conway's law and systems design. The focus of this chapter is on the interaction of organizational structure and architecture. Many organizations have already understood that if you don’t strive for harmony in this matter, then there will be significant difficulties. We will try to get to the very depths of this dilemma and consider several different ways of linking the design of the system with the command structure.
Chapter 11. Microservice scaling. This chapter examines the order of all previous actions in the context of system expansion, allowing to cope with the ever-increasing probability of failures that occur in the conditions of using a large number of services, as well as with large volumes of traffic.
Chapter 12. Briefly about everything. In the final chapter, an attempt is made to identify the main features that distinguish microservices from the rest. It lists the seven principles of microservices, and summarizes the key points of the book.

about the author

Sam Newman is an engineer at ThoughtWorks, where he is currently combining work on client projects with solving architectural problems for ThoughtWorks internal systems. Sam had to work with companies around the world in various subject areas, often engaged in both software development and support. If you ask Sam what he does, he will answer: "I work with people to create more and more cool software systems." Sam Newman is the author of articles, reports at conferences, from time to time he participates in the development of free projects.

More information about the book can be found on the publisher's website .

Table of contents
Excerpt

For Habrozhiteley a 25% discount on the coupon - Microservices .

Source: https://habr.com/ru/post/275891/


All Articles