MindMap Gallery Alibaba Cloud Enterprise Distributed Application Service (EDAS)
Enterprise Distributed Application Service EDAS (Enterprise Distributed Application Service) is a cloud-native PaaS platform for application hosting and microservice management. It provides full-stack solutions for application development, deployment, monitoring, operation and maintenance, and supports Spring Cloud and Apache. Microservice operating environments such as Dubbo (hereinafter referred to as Dubbo) help your applications easily migrate to the cloud.
Edited at 2024-01-17 10:49:18This is a mind map about bacteria, and its main contents include: overview, morphology, types, structure, reproduction, distribution, application, and expansion. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about plant asexual reproduction, and its main contents include: concept, spore reproduction, vegetative reproduction, tissue culture, and buds. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about the reproductive development of animals, and its main contents include: insects, frogs, birds, sexual reproduction, and asexual reproduction. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about bacteria, and its main contents include: overview, morphology, types, structure, reproduction, distribution, application, and expansion. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about plant asexual reproduction, and its main contents include: concept, spore reproduction, vegetative reproduction, tissue culture, and buds. The summary is comprehensive and meticulous, suitable as review materials.
This is a mind map about the reproductive development of animals, and its main contents include: insects, frogs, birds, sexual reproduction, and asexual reproduction. The summary is comprehensive and meticulous, suitable as review materials.
Alibaba Cloud Enterprise Distributed Application Service (EDAS)
Product introduction
Enterprise Distributed Application Service EDAS (Enterprise Distributed Application Service) is a cloud-native PaaS platform for application hosting and microservice management. It provides full-stack solutions for application development, deployment, monitoring, operation and maintenance, and supports Spring Cloud and Apache. Microservice operating environments such as Dubbo (hereinafter referred to as Dubbo) help your applications easily migrate to the cloud.
Application hosting
Application hosting means that the developer does not provide a server for the application, but hosts the application to a service provider. After the application is developed, it can be hosted on EDAS.
Function describe Multiple language support EDAS supports hosting Java applications, and the K8s environment also supports hosting multi-language applications such as PHP, Node.js, C and Go. Multiple underlying server options EDAS seamlessly integrates ECS cloud servers and container service Kubernetes versions. You can choose ECS clusters, K8s clusters, and hybrid cloud clusters based on actual hosting needs. Multiple publishing methods Supports the use of console and API to complete creation and deployment, and supports multiple deployment forms of WAR packages, JAR packages and images. Supports application upgrades using the console, API, and plug-ins, and supports single-batch release, batch release, and canary release. Supports the use of Yunxiao and Jenkins to implement CI/CD of applications. Application life cycle management EDAS provides you with full life cycle management services for applications from creation to operation, including application release, start, stop, expansion, reduction, and deletion. You can easily operate and maintain thousands of application instances. Application monitoring EDAS integrates the application real-time monitoring service ARMS. You can monitor the health status and key indicators of applications deployed in EDAS, set alarms for monitoring indicators, and promptly discover and handle possible anomalies or failures to ensure the health and availability of applications. Application operation and maintenance EDAS provides a series of operation and maintenance functions for applications, including life cycle management, application access management, elastic scaling, current limiting and degradation, load balancing, change recording, event center, log management, etc.
microservices
Different from the traditional monolithic application architecture, the microservice architecture splits the application into multiple core functions. Each function can be used as an independent service and can be built and deployed independently by an independent team. Each service Operation and failure do not affect each other. Microservices make applications easier to scale and faster to develop, accelerating innovation and shortening the release cycle of new features.
EDAS provides a complete microservice solution from development, deployment to governance.
application development
EDAS supports microservice applications developed based on Spring Cloud, Apache Dubbo and HSF. Microservice applications of various frameworks can be directly deployed to EDAS without modifying any code or configuration.
Spring Cloud Apache Dubbo HSF Spring Cloud Overview Implement service registration and discovery Implement load balancing Implement configuration management Dubbo overview Develop Dubbo microservice applications using Spring Boot Using Cloud Toolkit to develop Dubbo microservice application sample project Smoothly migrate Dubbo applications to EDAS HSF overview Start lightweight configuration and registration center asynchronous call Generalized call
Application deployment
EDAS provides multiple paths based on the development and operation status of microservice applications to help you deploy or migrate microservice applications to EDAS. No matter which path you choose, you can use EDAS's complete microservices governance capabilities.
Microservice governance
EDAS provides complete microservice governance capabilities such as service query, call chain query, outlier instance removal and service authentication for microservice applications of various frameworks.
Spring Cloud Apache Dubbo HSF multi-language Offline Spring Cloud application without loss Publishing applications using console canaries (K8s) Publishing using console canary (ECS cluster) Use outlier instance removal to ensure the availability of Spring Cloud applications Offline Dubbo application without loss Publishing applications using console canaries (K8s) Publishing using console canary (ECS cluster) Use outlier instance removal to ensure the availability of Dubbo applications Losslessly launch HSF applications Full link flow control Query the HSF service call chain Use outlier instance removal to ensure the availability of HSF applications EDAS multi-language interoperability Query multi-language application services Canary launches multi-language app Using service authentication to implement access control for multi-language applications
Cloud native application PaaS platform
Cloud native means that applications are designed to run optimally on the cloud and take full advantage of the cloud. In the cloud-native era, the PaaS platform will sink to the infrastructure and become part of the cloud. EDAS is a PaaS platform for application hosting and microservice management.
Function describe Related documents Cloud service integration As a one-stop PaaS platform for applications, EDAS integrates many Alibaba Cloud services and provides functions at various levels and dimensions for applications in EDAS in the form of products and EDAS internal components. Product integration: Integrated in the form of independent products, and related resources and functions are managed by each product (non-EDAS). Component integration: Integrated in the form of EDAS service components. The resources and services provided for EDAS can be managed in EDAS. Cloud service integration authority management The application you host on EDAS may include multiple services or subsystems, and these services or subsystems may be developed, operated and maintained by different teams and members. EDAS provides an enterprise-level permission management system through the account system and a series of permission management operations based on the account system to help you perform necessary isolation and permission control on applications, resources and data to ensure their security. Rights management overview Distributed task scheduling Distributed task scheduling SchedulerX is a new generation of distributed task scheduling platform developed by Alibaba based on the Akka architecture. It provides functions such as timing scheduling, scheduling task orchestration, and distributed batch processing. You can access SchedulerX for applications deployed in EDAS to complete the application's distributed task scheduling tasks. What is distributed task scheduling SchedulerX
Application scenarios
Microservice solutions
EDAS supports three mainstream microservice frameworks: Apache Dubbo (version 2.6.x and above), Spring Cloud (Edgware and above), and HSF. For more information, see Spring Cloud Overview, Dubbo Overview, and HSF Overview. The HSF framework built into EDAS is an efficient microservice framework developed by Alibaba, incubated from Alibaba’s best practices in many business scenarios; at the same time, Apache Dubbo and Spring Cloud applications can be migrated to the cloud with zero code intrusion, effectively reducing operation and maintenance costs. It supports multiple advanced features such as lossless application online, offline, canary release, and traffic control, helping you easily build microservice applications on the cloud.
Architecture diagram
Functional advantages
Quickly build applications based on mature microservices framework
: Use Alibaba’s self-developed microservice framework HSF to build microservice applications on the cloud.
Apache Dubbo and Spring Cloud applications on the cloud
: There is no need to build self-built services that microservices such as ZooKeeper, Eureka and Consul depend on, greatly reducing operation and maintenance costs.
Provides enterprise-level advanced features
: Provides a variety of advanced features such as lossless online, offline, canary release, and flow control.
Application hosting solutions
This eliminates the need for operation and maintenance personnel to log in to ECS instances one by one, eliminating the need for cluster maintenance. You only need to log in to the EDAS console to quickly deploy applications through various methods such as WAR packages, JAR packages or mirrors. ECS provides full application life cycle management, including release, rollback, application group management, multi-version coexistence, and Integrated monitoring, logging and other capabilities greatly improve the efficiency of ECS cluster management.
Architecture diagram
Functional advantages
Seamless support for Kubernetes
: Kubernetes clusters are hosted on EDAS, and you only need to focus on application lifecycle management.
The perfect combination of containers and microservices
: Based on Kubernetes, quickly build a microservice architecture on containers.
No need to build an image
: Supports direct deployment of WAR packages and JAR packages. EDAS builds images and deploys them to Kubernetes clusters, effectively simplifying the process and lowering the threshold for use.
basic concept
Alibaba Cloud Toolkit
Alibaba Cloud Toolkit is a free plug-in for IntelliJ IDEA, Eclipse and Maven platforms. It is designed to help developers use Alibaba Cloud more conveniently in local development platforms (IDEs) to develop and test efficiently. , diagnose and deploy applications.
Ali-Tomcat
Ali-Tomcat is a Servlet container modified based on Apache Tomcat. On the premise of supporting the original core functions, Ali-Tomcat will automatically load the Pandora container when starting to realize the class isolation function.
CPU share ratio
CPU sharing is a method to improve single-machine resource utilization in Docker technology. For example, for a 2-core 8G machine host, if the CPU sharing ratio is selected to be 1:2, then up to four 1-core 2G Docker instances can be allocated on this host; and so on, select 1:4, You can allocate up to eight 1-core 1G Docker instances. Note that in any case, memory is exclusive and cannot be shared.
Dubbo
Dubbo is an open source distributed service framework that provides high-performance and transparent RPC remote service calling solutions.
ECS
Cloud server ECS (Elastic Compute Service) is a simple, efficient and elastically scalable computing service. Help you quickly build more stable and secure applications.
EDAS
Enterprise Distributed Application Service EDAS (Enterprise Distributed Application Service) is a PaaS platform for application hosting and microservice management. It provides full-stack solutions such as application development, deployment, monitoring, operation and maintenance, and supports micro-services such as Dubbo and Spring Cloud. The service operating environment helps you easily migrate all kinds of applications to the cloud.
EDAS Agent
EDAS Agent is a Daemon program installed on the user's ECS. It is mainly used for communication between the EDAS service cluster and the applications deployed on the corresponding ECS. During the operation process, it is mainly responsible for application management, status reporting, information acquisition and other functions; it is also the main bridge for information communication between the EDAS console and user applications.
EDAS Container
EDAS Container is the basic container for running HSF applications on the EDAS platform. EDAS Container includes Ali-Tomcat and Pandora.
K8s Namespace
K8s Namespace allocates objects within the system to different Namespaces to form different logically grouped projects, groups or user groups, so that different groups can share and use the entire cluster resources while being managed separately.
Pandora
Pandora is a lightweight isolation container, which is taobao-hsf.sar. It is used to isolate applications, middleware, and dependencies between middleware so that they do not affect each other. Pandora of EDAS integrates various middleware product plug-ins such as plug-ins for service discovery, plug-ins for configuration push, and plug-ins for call chain tracking. These plug-ins can be used to complete all-round operation and maintenance management of EDAS applications such as service monitoring, governance, tracking, and analysis.
Pandora Boot
Pandora Boot is a lighter way to use Pandora based on Pandora. Based on Pandora and FatJar technology, the Pandora environment can be started directly in the IDE.
Pod
Pod is the smallest deployment unit and billing unit in Kubernetes. It can be composed of one or more containers according to the application scenario. When there are multiple containers in a Pod, these containers will share the Pod's computing resources, storage space, IP, and ports. You can also limit the proportion of computing resources used by each container.
SLB
SLB (Server Load Balancer) is a load balancing service that distributes traffic to multiple application instances. The external service capabilities of the application system can be expanded through traffic distribution, and the availability of the application system can be improved by eliminating single points of failure.
VPC
Private network VPC (Virtual Private Cloud) is a custom private network created based on Alibaba Cloud. Different private networks are logically isolated at Layer 2. You can create and manage cloud product instances, such as ECS, load balancing, RDS, etc., within the private network you create.
Change process
When performing life cycle operations such as application deployment, startup, expansion/reduction, etc. on EDAS, the application change record abstracts the business logic executed during the entire change process into a process (Process) and displays it in a visual way.
continuous integration
A software development practice in which developers regularly merge code changes into a central repository and then run automated builds and tests.
method tracing
Using JVM bytecode enhancement technology, necessary time-consuming and call sequence records are added to all method calls in the selected method, so that the specific execution sequence during the execution can be viewed.
Call chain query
Call chain query is used to check the call link status in the system, especially slow services and error services.
Distributed link tracking
The EDAS Eagle Eye monitoring system can analyze every system call, message sending and database access of the distributed system to accurately discover system bottlenecks and hidden dangers.
Distributed task management
SchedulerX is a distributed task scheduling product developed by Alibaba’s middleware team. Users rely on SchedulerX-Client in their applications and create scheduled tasks in the SchedulerX console. After configuring the corresponding parameters, they can receive the periodic schedule of scheduled tasks by starting the application. The SchedulerX-Server cluster provides high availability and high stability guarantees for scheduling triggering, and can implement distributed scheduling for user client machine clusters.
Paid account
The paid account refers to the account used to purchase EDAS products. A paid account can be bound to (up to 5) main accounts, and the paid account is also a main account.
service report
The tenant dimension displays the running status of all services of all applications in the current tenant in the past 24 hours, including service call volume, call time, and call error times.
Service inquiry
Service query is used to query the services provided or consumed by the target machine.
Service monitoring
It can monitor the QPS, response time and error rate of the service in all aspects according to the service call status of the application.
Service downgrade
Contrary to service current limiting, each application will call many external services. Configuring downgrade rules for these services can accurately shield inferior services, ensure that the application itself can run stably, and prevent inferior service dependencies from affecting the application's own service capabilities. EDAS configures degradation rules from the response time dimension to help you properly shield low-quality dependencies when dealing with traffic peaks.
Service current limit
EDAS can configure current limiting rules for many services provided by each application to achieve flow control of services and ensure stable operation of services. Current limiting rules can be configured from two dimensions: QPS and threads, helping you to ensure that the system can run smoothly with maximum support capacity when dealing with traffic peaks.
Service topology
Intuitively understand the mutual calling relationships and related performance data between different services in the form of topology diagrams.
High-speed service framework
High-speed Service Framework HSF (High-speed Service Framework) is a distributed service framework for enterprise-level Internet architecture. Based on a high-performance network communication framework, it provides services such as service publishing and registration, service invocation, service routing, and service authentication. A series of functional features such as rights, service current limiting, service degradation and service call link tracking.
health examination
Health check performs regular checks and reports on containers and applications, and then reports the results to the console, thereby helping you understand the running status of the entire application in the cluster environment and troubleshoot and locate problems.
Basic monitoring
EDAS collects data from the instance (ECS) where the application is running, and conducts detailed monitoring of the machine's basic indicators such as CPU, memory, load, network and disk. All monitoring is performed on an application-by-application basis for data statistics and processing.
cluster
A cluster refers to the combination of cloud resources required to run an application.
ECS cluster: In an ECS cluster, only one application is allowed to be deployed on an independent ECS instance.
Swarm cluster (will be offline soon, new users cannot create and use it): Swarm is a container management tool released by Docker. In a Swarm cluster, multiple Docker instances can be created on an independent ECS instance, and one application is allowed to be deployed on each Docker instance.
Container Service K8s cluster: a Kubernetes cluster that has passed the CNCF standardized test, runs stably and integrates other Alibaba Cloud products (such as SLB, NAS). After creating a Kubernetes cluster in Container Service and importing it into EDAS, you have the ability to deploy applications to the Container Service Kubernetes cluster in EDAS.
Microservice space
Microservice space is used to achieve service isolation. You can use microservice space to isolate different running environments, such as development, testing, and production environments, to avoid affecting service invocation and configuration push in different environments.
Batch operation and maintenance
In the EDAS console, you can use machine instructions to perform batch operations on ECS instances with Agent installed. Commands can be executed in batches by cluster, application and instance, solving the trouble of repeated operation and maintenance of multiple instances.
Lightweight configuration and registration center
An EDAS lightweight configuration and registration center that can be run locally, providing service discovery and configuration management functions.
Log collector
A component that collects system monitoring logs to generate monitoring data and call chain information. In a VPC network, machines are naturally isolated from servers, and log collectors can open up the connection channel between servers and local machines. Installing a log collector can collect data from all machines in the entire VPC.
real time log
The real-time log is a runtime log of the standard output of the Docker container.
Elastic scaling
The elastic scaling function can sense the status of each server in the cluster (CPU, RT and Load), and realize cluster expansion and contraction in real time based on the status, while ensuring service quality and improving the availability of the cluster system.
Application real-time monitoring service
Application Real-Time Monitoring Service ARMS (Application Real-Time Monitoring Service) is an Alibaba Cloud application performance management (APM) monitoring product. With ARMS, enterprises can quickly and easily build application monitoring capabilities with second-level response.
Application monitoring
Used to monitor the real-time traffic and historical information of the application. Users can use this information to monitor the health status of the application to quickly discover and locate problems.
Application configuration management
Application Configuration Management ACM (Application Configuration Management) is a tool product that centrally manages and pushes application configurations in a distributed architecture environment. You can use ACM in EDAS to centrally manage and push application configurations, and you can also isolate and synchronize configurations between different environments based on namespaces.
Application life cycle
Application is the basic unit of EDAS management. An application usually contains multiple instances. EDAS provides a complete application life cycle management mechanism, which can complete the comprehensive management of applications from release to operation, including application creation, deployment, startup, rollback, expansion and contraction, and stop and offline operations.
Applications
Application instances refer to ECS instances or container instances used to deploy applications. For example, in an ECS cluster, there is only one application instance in an ECS; in a K8s cluster, a Pod is an application instance.
Application instance grouping
Group all instances (ECS) subordinate to an application so that different versions of the application can be deployed to instances in different groups. EDAS application instance grouping provides the group management function of instances within the application. Users can implement operation and maintenance methods such as Beta release, AB testing, and grayscale release. It supports users to implement application life cycle management, resource monitoring and alarming from a group perspective, which can quickly improve operation and maintenance efficiency.
application runtime environment
The environment in which the application runs, such as the EDAS-Container running environment for HSF applications or the running container for open source applications (such as Apache Tomcat).
Application diagnostics
EDAS provides detailed troubleshooting and performance analysis for applications, including providing JVM heap/non-heap memory, class loading (ClassLoader), threads, Tomcat connector statistics and method tracking on the single machine where the current application is running.
Cloud Service Bus
Cloud Service Bus CSB (Cloud Service Bus) is oriented to private clouds and private domains, helping enterprises to achieve cross-system and cross-protocol service capability interoperability between multiple systems of their own, or with systems of partners and third parties. Create a CSB exclusive instance in EDAS to manage and control the external service opening of applications in the target environment. You can also introduce external services and perform management control; open EDAS applications in VPC for use in your own development environment through the public network To test the joint debugging of EDAS applications in Alibaba Cloud VPC.
resource group
EDAS is a way of dividing resources. Resource groups can be bound to ECS, clusters, and SLB. Your main account can authorize sub-accounts based on resource groups.
Case
Case 1
need
Registration scenarios for consumer voucher activities:
In terms of traffic protection, it is necessary to ensure that the business system can continue to run smoothly in the face of sudden traffic and high concurrency scenarios.
In terms of elastic scaling, high concurrency and large traffic require smooth and rapid horizontal expansion of the system to ensure the stability of the business system.
In terms of service monitoring, system monitoring requires not only understanding of real-time system indicators, but also timely alarms and discovery of hidden production bugs.
In terms of version release, version iteration will not interrupt the business and can be brought online and offline without loss.
solution
EDAS enables dynamic expansion and contraction, grayscale release, and provides a complete set of application life cycle management. Before this, the entire life cycle management from the development and deployment of business code to the microservice application has always been a difficult problem. After Chengdu Xintong Information Technology Co., Ltd. uses EDAS, it can host the entire application life cycle on EDAS. Really achieve one-click deployment and one-click release.
The EDAS platform's support for rapid application expansion and contraction as well as traffic control, circuit breaker, downgrade and other functions can help Chengdu Xintong Information Technology Co., Ltd. to continue to operate smoothly when facing large traffic and high concurrency scenarios. .
The Alibaba Cloud application real-time monitoring service ARMS integrated into the EDAS platform has further enhanced the monitoring capabilities of the microservice system of Chengdu Xintong Information Technology Co., Ltd. Through a series of technical means such as link tracking, slow SQL and problem diagnosis, it can help Chengdu Xintong Information Technology Co., Ltd. locate and solve hidden production bugs in a timely manner.
The high-availability architecture of SLB and back-end servers meets the high concurrency requirements of the business while avoiding single points of failure in the business.
Case 2
need
With the rapid development of business, Chanjetong's IT team has carried out a large number of microservice transformations on the original IT system to adapt to the needs of rapid iteration and frequent release of large-scale Internet applications. Chanjetong's SaaS enterprise management cloud service has the characteristics of large number of users, complex business, long calling links, and deep integration with third-party application systems, which brings great challenges to the microservice transformation work. Especially during the release of new versions, if the entire process cannot be guaranteed to be smooth and controllable, it is easy for the entire system to collapse due to the update of a single application. How to improve the overall microservice governance and monitoring capabilities and ensure the stability and robustness of the system in frequent version iterations are important issues that the Chanjet IT team needs to solve.
solution
After several rounds of in-depth technical exchanges with Alibaba Cloud technical experts, the Chanjet IT team decided to gradually deploy the entire microservice architecture to the enterprise-level distributed application service EDAS provided by Alibaba Cloud. For microservice applications established through the Spring Cloud technology system, they can be deployed directly on EDAS without changing any code. The entire migration process is also very smooth, and there is no perception for users of Changjetong. . Spring Cloud applications running on EDAS can enjoy a series of enhanced capabilities in the field of microservice governance, such as application life cycle management, lossless offline, and full-link flow control. Especially in the application release process, the smooth online and offline and grayscale mechanisms provided by EDAS greatly improve the stability of the system during version updates and reduce the risks caused by application release.
Accessing ARMS, the real-time application monitoring service of Alibaba Cloud, further provides monitoring capabilities for Chanjet's microservice system. Before this, because the business links involved in Chanjet's SaaS products were extremely complex, when users reported system bugs or performance problems, the IT team needed to spend a very long time locating the source of the fault among the intricate links. and performance bottlenecks. After accessing ARMS, through full-link information troubleshooting and application of real-time diagnosis and other tools, the workload of locating system fault sources and performance bottlenecks has been reduced to less than 50% of the previous level, greatly improving the work efficiency of the IT team.
With the continuous iteration of various business lines of Chanjet, a series of cloud-native products such as messaging services MNS, AHAS, and PTS have been gradually introduced into the overall microservice architecture, further liberating the productivity of the IT team and allowing Chanjet to Put more energy into meeting users' business needs.
Case 3
need
Zuopeng's marketing system is a benchmark project for the company's establishment. The main challenge the company faces is to quickly bring the marketing system to the market for verification and development. The technical staff of the company's IT team all have rich Internet experience and have the following requirements for the basic capabilities required by the system:
Flexible application release: It can support grayscale release, canary release and continuous integration capabilities, and supports multiple release forms and multiple application running forms.
Intelligent operation monitoring: supports application monitoring, JVM monitoring and call chain monitoring, can perform current limit and downgrade management based on monitoring, and can perform elastic scaling management based on usage.
Microservice governance: supports service query, service routing settings, elegant online and offline, outlier extraction and service authentication.
Account isolation management: Supports setting resource access permissions according to accounts, roles, namespaces and other dimensions.
Distributed task scheduling: supports the orchestration of scheduled tasks, workflow tasks, batch operations and distributed task scheduling.
solution
Alibaba Cloud's EDAS 3.0 is a one-stop enterprise-level distributed application service. By accessing EDAS 3.0, you can obtain application life cycle management capabilities. It supports various publishing methods, can use application monitoring to quickly locate and analyze, and supports mainstream micro-services. The service framework and service governance support fine-grained isolation management. Distributed task scheduling can also be implemented and managed through SchedulerX, a component of EDAS 3.0.