preface

Distributed, microservices are almost a must-know architectural direction for today’s technologists. It does decouple a lot of structures in theory, but on the other hand, it brings more complexity and difficulties. How to ensure the ultimate consistency of things? How to estimate performance and capacity? How do I handle logs of distributed systems? How to carry out online emergency response? If you’ve ever been as confused as I am, I’m sure you’ll find some valuable answers in this article.

In the face of increasingly complex systems and businesses, distributed technology has long been a must-learn technology in the Internet era. However, it is difficult for us to access the design and architecture of distributed services without the practice and experience of large companies.

Distributed and micro-service technology is more and more respected and recognized by Internet enterprises, how to integrate the characteristics of its service into the enterprise is the problem that every technical personnel need to think about. Distributed Services Architecture: Principles, Design, and Practice is a great guide and inspiration for understanding distributed and microservices technologies.

This book combines the principle, practice and personal work experience of distributed, from the distributed consistency, system capacity evaluation and performance assurance, logging system, service deployment, online emergency and other aspects of the in-depth analysis.

This book examines solutions and design patterns for distributed systems architecture from the perspective of a veteran of distributed services architecture in the IT industry. Each chapter and section of the book is a summary of the author’s years of online system architecture design practice.

Due to the details of the content is too much, so xiaobian can only take part of the knowledge point screenshots out of the rough introduction, each small node there are more detailed content (here only show the chapter catalog)! There is a way to obtain information at the end of this article, because this article will take a long time to read in detail. Time-pressed friends can have a cursory look at the table of contents moved to the end of the article.

directory

Chapter one is the design principle of distributed microservice architecture

This chapter summarizes

This chapter mainly explains the development process from traditional single architecture to servitization, and explains the evolution from servitization to the current popular microservice architecture, as well as the characteristics, implementation principles and best practices of microservice architecture, and proposes that microservice is the extension and continuation of SOA servitization. The following chapters will not deliberately distinguish between SOA servitization and microservices, because microservices are the distillation and superposition of SOA servitization in new scenarios.

Finally, the key features of the microservices architecture are highlighted again.

  • Modular components are realized by splitting traditional monolithic applications into network services
  • Group functional teams based on the service segmentation of the microservices architecture to reduce cross-team communication
  • Each service corresponds to a team. The team members are responsible for development, testing, operation and peacekeeping operations. After development, the team operates and maintains peacekeeping operations without delivery to other teams.
  • Decentralized, soA-oriented central service governance and de-enterprise service bus
  • Microservices pay attention to the reasonable separation, stratification and structure of services, and can build an automatic continuous release platform, and open and deploy Wells in an agile manner.
  • Have compatibility design, fault tolerance design and contract design of services.

Chapter two thoroughly solves the problem of distributed system consistency

This chapter summarizes

Based on the practice of consistency problem, this chapter summarizes the practical experience of large-scale and high-concurrency service-oriented system, lists specific problems leading to inconsistency, and puts forward consistency principles such as ACID, CAP and BASE around these specific problems: We also learn two-stage and three-stage TCC protocol, and summarize the query mode, compensation mode, asynchronous guarantee mode, periodic check mode, reliable message mode and cache consistency mode to achieve final consistency. In the end, the paper analyzes the scenarios and solutions of timeout occurrence in detail for synchronous call, asynchronous call, message queue and other application scenarios in servitization system, so as to provide reference for everyone in the process of developing servitization system.

Chapter iii capacity evaluation and performance guarantee of servitization system

This chapter summarizes

This chapter takes the non-functional quality that Internet enterprises focus on as the main line, summarizes the overall goal of non-functional quality requirements, lists different indicators of non-functional quality requirements for different services and resources, and helps readers to sort out their ideas in the process of technical review. In this chapter, according to different system of attention when the exhaustive review point as far as possible, and then provides a simple and effective evaluation outline, according to the outline of the implementation of a Internet capacity and performance evaluation of a classic case, we can understand the high concurrency in case the Internet system is how to break up, and according to the break up of what data, Through the evaluation, design and implementation of non-functional quality requirements, corresponding to the capacity and performance evaluation during design and post-pressure test, to ensure that the Internet project to achieve the established non-functional quality requirements of the target.

Capacity and performance evaluation system design can satisfy the system quality of nonfunctional requirements, performance testing to ensure system implementation in accordance with the established goals non-functional quality objectives of the project, the remainder of this chapter introduces the comprehensive Internet companies in the whole process of pressure test and methodology, and sums up the pressure test best practices At the end of this chapter introduces the commonly used pressure measuring tool set, You can select different pressure measuring tools to test system performance indicators in different scenarios to ensure high performance of the system.

Due to the data of this chapter entirely based on the authors experience working in an Internet platform, some data is derived from the author’s laptop, not can be directly used in any business and platforms It focused on capacity, performance evaluation and pressure test scenario design methodology, help readers takai has retired to send Internet systems thinking, In practice, the reader needs to adjust the standards and metrics appropriately to the performance level of the hardware being used.

Chapter four: The construction of big data log system

This chapter summarizes

In the realization of a complete Internet service system, log system is a very important part of the function. It can record all the behaviors and information produced by the system and express it in a certain form. We can use the information recorded by the log system to troubleshoot the system and optimize the performance of the system, or adjust the behavior of the system according to the information to improve the availability of the system. Therefore, a stable logging system is an important infrastructure to ensure system availability.

This chapter introduces the background, implementation structure and usage of open source logging frameworks, including JDKLogger, CommonLogging, Log4j, Slf4j, Logback and Log4j2. Then the author shares the optimization experience and best practice of using these log systems accumulated in practice, introduces the setting of log level, the number and size of log, the cutting method, the configuration of log format, and finally gives a case of online accident caused by a line of log.

Then analyzed the principle and design of large data logging system, from a given build big data logging system began a generic architecture, tell its various modules, design, and the duty of architecture, including the log collector, the log buffer queue, log parser, journal storage and search, display system and monitor and alarm system, etc., Finally, it gives an example of how to design the capacity of the log system and evaluate the performance of the log system.

Finally, the most popular open source log framework ELK is introduced, and the installation, configuration, and basic usage of Elasticsearch, Logstash, and Kibana are introduced, which will help readers build big data log system.

Chapter five is the design and implementation of service governance system based on call chain

The summary of this chapter

With the wide application of SOA as a service and microservice architecture in Internet companies, the system of Internet companies is becoming more and more complex, and a variety of problems will arise in the complex system.

The development of a call chain tracking system, the core function of APM, helps us better manage online services and solve daily recurring problems in production environments.

This chapter introduces the open source APM project and popular commercial APM products, and introduces the functions and features of APM. Then it focuses on the principle of call chain tracking mentioned in Google’s Dapper paper, and explains the principle of business chain implementation; Finally, based on the principle of call chain tracing, the general architecture, method and best practice of implementing call chain system are summarized.

Chapter six: Java service online emergency and technical breakthrough

This chapter summarizes

At the beginning of this chapter, the necessity, ideas and methodology of online emergency response and technical breakthrough are introduced. It is emphasized that the goal of online emergency response is to quickly recover the system, reduce the impact and loss, but not to completely solve the problem. It also puts forward the importance of technological breakthrough in Internet industry through Hine’s law and Murphy’s Law. Hine law stresses that it is a good technology, perfect rules and regulations, in the actual operation level, cannot replace the person’s own quality and sense of responsibility, therefore, those important online emergency need by senior experts and technical research problem to solve, therefore, this chapter behind this paper introduces the online emergency and technical research, the domain experts should master various commands and tools.

Secondly, this chapter introduces how to build the sample service Vesta. After configuring and starting Vesta, it focuses on the efficient application layer scripts accumulated and summarized by the author in the context of running Vesta service. Next, we introduce key Java Virtual machine commands to help you check Java Virtual machine health, thread heap, memory usage, GC frequency, and more. These can help readers solve the problems of high service load, Jar package conflicts, verifying online service code, adding online logs dynamically, and introduce the basic Linux commands that we have to learn, including manipulating memory, network and network card, disk I/O, and so on.

At the end of this chapter, the author introduces, analyzes, locates and solves two typical cases of online emergency response and key problem solving encountered by the author in production, helping readers understand how to apply online emergency response and key problem solving methods, and how to use these important commands and scripts, and providing methodology for solving difficult and complicated diseases. This chapter introduces the emergency ideas, approaches, practical cases and solutions to help you escort your services.

Chapter 7 Containerization of services

The summary of this chapter

Through the content of this section, we understand the difference between virtual machine and container, as well as the benefits brought to us by container, and through actual operation, learn the common command of Docker, this chapter mainly introduces the actual operation of mirror, container, disk volume, network, service and cluster; Then it introduces the main management tools of Docker: Swarm, Kubemetes and ApachMesos. Finally, the implementation process of wOR Press’s containerization blog system is introduced.

Chapter 8 Automatization of Agile Development 2.0

This chapter summarizes

Through the study of this chapter, we understand the common development modes: waterfall development, method generation development, spiral development and agile development; Then it introduces DevOps and its process: Finally, it introduces Agile development 2.0 and its benefits, as well as the automation tools we all use.

The last

Because this book document content is too much, a total of 422 pages, so the content can not all show to share with you, need to get this complete document information friends can pay attention to me, your support is my biggest power!