In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)05/31 Report--
This article will explain in detail how to realize the architecture visualization under the microservice system. The content of the article is of high quality. Therefore, Xiaobian shares it with you as a reference. I hope that after reading this article, you will have a certain understanding of relevant knowledge.
Why Architecture Visualization is Needed
With the transformation of microservice architecture, the complexity of system architecture becomes higher and higher, and the architecture changes more and more frequently. The actual architecture model after microservice transformation may be greatly different from the expectation. It is difficult for architects or system operation and maintenance personnel to accurately remember the composition and interaction of all resource instances. Secondly, some unreliable factors may be introduced into the dynamic evolution process of the system architecture, such as weak dependence becoming strong dependence, insufficient local capacity, excessive system coupling, etc., which bring great security risks to the stability of the system. Therefore, every time we face system transformation, business promotion and stability governance work, we will present the interaction mode between components in the system architecture by combing the architecture diagram. Architecture visualization can clearly help us identify problems in the architecture and establish a highly available system.
cdn.com/cb3ded9bf6b7f30c859cf2290aebbdd161416782.png">
Daniel Woods is talking about microservices in an architecture diagram
After architecture visualization, it can give us the following advantages, but not limited to this:
Determine system boundaries
A good architecture diagram should clarify the core call relationships between the various components contained in the system. The collection of these components is the processing boundary of the system, and the boundary of the system architecture also reflects the boundary of the business domain to a certain extent.
Architecture Problem Identification
Based on high availability architecture criteria, combined with visual architecture diagrams, you can evaluate possible security risks of the architecture, such as the robustness of the system in disaster recovery, isolation and self-healing dimensions. Second, some architectural link visualization tools (such as Hawkeye) do greatly improve the efficiency of developers in troubleshooting and locating problems in practice.
improve system availability
With the upstream and downstream dependency graph of the system architecture, when a failure occurs, developers can quickly locate the source of the problem with the help of dependency data, greatly reducing the time to repair (MTTR). With the help of the architecture diagram, we can also sort out the strong and weak dependencies in the system, downgrade the weak dependencies during the peak business period, or perform failure simulation for each component of the system dependency to evaluate the reliability of the system as a whole in the face of local failures.
Common Architectural Visualization Practices
We are familiar with the architecture diagram is static stay on the PPT, many times our architecture has undergone very big changes, but we still use that looks very classic but outdated architecture diagram. Using architecture diagrams that don't match the actual architecture over time can be extremely damaging to the perception of architecture online, and we need to keep our view of the system architecture updated in our minds to maintain sensitivity to the system architecture. The annual big push or major system transformation becomes an opportunity for us to sort out the system architecture and re-recognize the architecture. At this moment, we need to view the distribution of various components of the system and the internal and external dependencies of different components through various tools. This method of sorting out the architecture diagram is the most common way, which is called "manual drawing method."
For things that are often done manually, students who pursue efficiency use automation methods brought by computer systems to help them do this. For example, we often see microservice visualization solutions based on data buried points. Such architectural visualization methods are usually used in distributed tracking, APM and other monitoring fields. The following figure shows the application dimension architecture visualization solution provided by an APM product:
We call this visualization method "buried-point perception". The identification of architectural components depends on key core class detection and buried-point detection. This scheme has the following disadvantages:
Linguistic relevance:
As long as it is a system embedding point, language-related features are basically impossible to please, and different dependency packages need to be provided for different languages;
Not easy to maintain:
Because it is an inspection of core classes, when significant changes are made to component packages, synchronous changes are required;
Not easy to expand:
Because it is a client identification scheme, once the client is open, support for new components can only wait for users to update components;
Limited size:
Another disadvantage of client identification is that the algorithm is limited, and the server can identify it more effectively and accurately by means of big data analysis.
There is also an automated architecture sense visualization method, which we call "unbounded architecture awareness", which is a language-independent architecture recognition scheme that collects the most basic data of metadata, monitoring numbers and network data of processes and containers on user hosts to build architecture diagrams on the server side.
What else can architecture visualization do?
In order to minimize the cost of architecture visualization for users, we adopt a non-invasive microservice visualization method. By collecting process data and network call data, we construct the network call relationship between processes and construct the architecture information of microservices. Users only need to install our AHAS Agent probes to complete the architecture visualization operation; for Aliyun native systems, we provide automated installation without logging in to the machine.
How to make architecture visualization more effective
We also believe that the effectiveness of architectural visualization is related to the level of human cognition, and that the focus of architectural visualization is to determine whether the tool better supports top-down approaches, bottom-up approaches, or a combination of both. Developers are more concerned with application dimension architecture, architects or managers are more concerned with overall system architecture. So there is a need to provide different levels of architectural visualization for different users. The ideal architecture diagram needs to support macro dimensions and micro perspectives that are constantly drilled down. We have designed the architecture hierarchically. At present, it is divided into process layer, container layer and host layer. In the later stage, we may continue to expand or drill down to support geographical layer or service layer.
The following figure shows a visual three-layer architecture interface after an Alibaba Cloud ECS deployed a microservice application and installed AHAS probes:
Dealing with architectural variability
No technology company has a fixed system architecture, which evolves over time as the system iterates. Therefore, for architecture visualization operations, it is also necessary to have the ability to automatically update the architecture information over time. In our architecture-aware products, the default architecture diagram will automatically refresh over time, and support retrospective history. You can select a moment in history to view architecture information, such as major version changes, whether there are problems with the system architecture before and after release that violate some high availability principles, or whether there are unnecessary dependencies.
The heart of architectural visualization
At the heart of software architecture visualization is finding meaningful and valid views of elements in software architecture and the relationships between those elements. We believe that a good software architecture visualization product should help users eliminate unimportant information and present valuable views to them, especially in the context of large and complex invocation chains under microservices architecture. The core point here is meaningful and effective. To achieve these two points, we first need to identify what is meaningful and effective elements and relationships. What we do in this field can be summarized as "identification". Identify what each process on the machine is, what is the remote end of the network call that occurs, and only by knowing what these elements are can we have reason and basis to judge whether they are meaningful to the user and their importance in the user architecture.
Element identification in architectural visualization
After combing through a large number of architecture diagrams, we found that the architectural elements that users care about are mainly divided into three categories: 1. Own application services;2. Application external resource dependence;3. Information about the server itself. Applications 'dependencies on external resources usually exist in the form of other applications and common middleware or storage services. Therefore, we divide the processes that need to be identified into application services and common component services (such as Redis, MySQL, etc.), which are divided into user-built services and services provided by public clouds, especially for Cloud Native applications.
At present, we provide identification of 20 kinds of Alibaba cloud services and 21 kinds of common three-party service components including MySQL, Redis, Tomcat, etc. This component library is still expanding, and the purpose is to know what the elements in the architecture are to the greatest extent.
The figure shows Nginx, Redis components identified by identification services, Mysql services and AHAS services in Alibaba Cloud
The figure shows basic information such as the flow of requests for node details and node monitoring
The figure shows some process information on the identified host
What else can you do with architectural visualization?
Architecture visualization is not an end in itself, but a means to high availability. With the help of the architecture data collected by architecture awareness, after identifying the components used by users (we collectively refer to MySQL, Redis, MQ, etc.), we can automatically recommend the faults that these components may encounter to users with the help of these components and the fault library matched with the components. With the evaluation service we provide, users can more conveniently simulate and drill various faults of components to improve the robustness of the system. Secondly, identify Java Application applications through architecture awareness. If they are found to have high load, cooperate with the current-limiting degradation (Sentinel Commercial Edition of Alibaba Open Source) function provided by us to protect the continuous availability of services.
Configuration of System Current Limiting with Architecture Awareness
AHAS is positioned as a data analytics high availability assurance product that helps cloud native architecture systems achieve high availability capabilities. Architecture visualization is a window for efficient O & M and control that we provide to users. We hope to establish an application-centric O & M integrated platform through rich cloud native data systems and visualization and operability of architecture diagrams. In the future, we will strengthen the integration with other cloud services, such as monitoring and Kubernetes Engine, to enrich the architecture-aware data dimension; secondly, we will invest more energy in the deep mining and intelligent consumption of data, so as to truly make data the core value of the enterprise and make data a sharp weapon to ensure the stability of the business.
About how to realize the architecture visualization under the microservice system to share here, I hope the above content can be of some help to everyone, you can learn more knowledge. If you think the article is good, you can share it so that more people can see it.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.