Alibaba Cloud Releases EventBridge to Support Cloud Native Architecture
Introduction to EventBridge
In recent years, as the concepts of cloud native and Serverless become increasingly popular; “event-driven” has once again become a hot topic in the field of cloud application architecture. In 2018, the evaluation report of Gartner listed the event-driven model as one of the top 10 strategic technology trends. The report predicted that the event-driven architecture (EDA) would become the mainstream of microservices in the future. In addition, the report also made the following predictions:
By 2022, event notification model will be the solution for over 60% of new digital business.
By 2022, more than 50% of business organizations will participate in the event-driven digital business ecosystem.
In May 2018, the Cloud Native Computing Foundation (CNCF) began to host the open-source CloudEvents project. This project is aimed at describing events in a unified and standardized format to enhance the interoperability among different services, platforms, and systems. Therefore, the importance of events in the cloud native field is self-evident.
However, it is not easy to implement EDA on Alibaba Cloud. Alibaba Cloud’s Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) offering generate hundreds of millions of events every day. However, there is no simple or unified method to reach these events.
Many cloud services have self-built event centers, but they do not adopt unified standards or specifications to describe these events. As a result, users cannot interpret these events in the same way.
Currently, the events on the cloud are too independent to form a scale effect, which makes it difficult to obtain the business value of those events. To better discover the value of data, we must give full play to the scale effect of data and establish the relationship among data.
At present, events are mostly used in offline data analysis. Due to the lack of out-of-the-box capabilities to process the centralized events, those events cannot be applied to online business scenarios.
To solve these problems, Alibaba Cloud officially released the latest Serverless event bus service, called EventBridge. EventBridge is designed to serve as the hub of cloud events, connecting to cloud services and cloud applications with the standardized CloudEvents 1.0 protocol. It also provides the centralized capacities to govern and motivate events, helping users easily build a loosely coupled and distributed event-driven architecture. In addition to Alibaba Cloud, there are a large number of vertical SaaS services in the cloud market. Being excellent in cross-service, cross-organization, and cross-cloud integration, EventBridge will help users build a new on-cloud interface, which is comprehensive, event-driven, efficient, and controllable.
Core Capabilities of EventBridge
EventBridge is a brand-new cloud service completely designed for cloud native designing and architecture. The core capabilities provided by EventBridge include integration, choreography and drive, and data tunnel.
The ability and degree of integration are the key points of a service. EventBridge will connect cloud services, cloud applications, and SaaS applications in a cross-organization and cross-cloud manner. The connection requires low cost or even no cost, with low code or even no code.
Cloud Service Integration
Nowadays, Alibaba Cloud provides hundreds of mature cloud services and millions of computing instances, with hundreds of millions of cloud events generated every day. However, these events are currently out of control. They are a treasure of data waiting to be mined. Under this circumstance, EventBridge connects most of Alibaba Cloud services. Serving as an event source or event target, EventBridge improves the centralized governance capability for cloud events of Alibaba Cloud, and fully discovers the business value of cloud events. At the same time, EventBridge provides all-in-one connectivity services to ensure a better experience of cloud migration and cloud services utilization.
Cloud Application Integration
The ultimate goal of going to the cloud is to fully enjoy the technical benefits of cloud computing. Therefore, the process of cloud migration needs not only to change the host, but also to reconstruct the platform and systems. EventBridge provides abundant integration capabilities to make applications better connect to and use cloud services. At present, users can access Alibaba Cloud EventBridge ecosystem through the official HTTP interface of EventBridge, multi-language clients (Java, Golang, Python, C#, and PHP), and the open-source client of the CloudEvents community.
Third-party SaaS Integration
Alibaba Cloud adheres to the strategy of being integrated for SaaS. It is expected that a number of excellent SaaS providers will grow on Alibaba Cloud. EventBridge will provide a convenient way for SaaS to be deeply integrated with the Alibaba Cloud ecosystem and services.
Choreography and Drive
The best practice of Serverless application architectures is the event-driven design. Whether it is traditional microservice or function computing, EventBridge greatly simplifies the development of event-driven architectures. Massive amounts of functions and microservices will be choreographed orderly in the form of events.
Gartner’s report compares the differences between architectures of orchestration and choreography. It is found that the way of combining and orchestrating microservices and functions through request-driven architecture brings a lot of unnecessary strong coupling. However, choreographing microservices and functions by event-driven architecture can be more thorough in decoupling, thus improving the resilience of the program and making business development more flexible and efficient.
Another core capability of EventBridge is to serve as a tunnel for streaming data. As a data tunnel, EventBridge uses the CloudEvents specification and the Schema registry (coming soon) to uniformly describe these data, and provides basic filtering and conversion capabilities. By doing so, EventBridge is able to implement data routing between different data warehouses, data processing programs, and between data analysis and processing systems.
EventBridge is about to launch the Connect capability. By using a large number of source and sink connectors, EventBridge allows user data to flow on the cloud.
Basic Model of EventBridge
EventBridge has several basic concepts: event, event bus, event source, event rule, and event target.
As is shown in the preceding figure, events are delivered from event sources to event buses. After being filtered and converted based on specified event rules, events are finally delivered to multiple event targets to be processed.
Event represents the occurrence, rules, and status changes of things. In the cloud era, events are ubiquitous. Any service, application, or even resource on the cloud is generating events all the time. These services, applications, and resources are called event sources. Event sources come from different organizations and environments. They do not have any expectations on how events will be responded to. Meanwhile, event targets subscribe to events through centralized event buses. They rely on the self-description capability of events to understand and process events at low cost.
Events in EventBridge are described by the cloud native event standard, called CloudEvents. CloudEvents is the first-class component in the EventBridge ecosystem. The main reasons for EventBridge to adopt CloudEvents are as follows:
Adopting a unified standard for cloud native events helps to uniformly express events from different event sources, thus improving the interoperability of event-driven programs.
When a standard is adopted, CloudEvents-based event-driven programs can be migrated between different clouds, without the need to worry about the vendor binding.
CloudEvents is very simple in structure. The following JSON text is a CloudEvents event.
Currently, Alibaba Cloud EventBridge supports two types of events: Alibaba Cloud service events and customized events.
Alibaba Cloud service events: Alibaba Cloud service events have a pre-defined schema registry. These events are generated from status changes of user resources on various Alibaba Cloud services. For example, Cloud Video Conferencing events, which include events of the start, end, and member changes of the meeting.
Customized events: Users can deliver customized events to EventBridge in multiple ways, such as using the open-source SDK of the CloudEvents community, the official multi-language lightweight SDK of EventBridge, EventBridge Connect, and Webhook. EventBridge Connect and Webhook will soon be available. With a wide range of methods to access event sources, clients can quickly build event-driven Serverless applications.
The concept of event bus is abstract. In short, event bus is a carrier of events. The event bus of Alibaba Cloud EventBridge has the multi-tenant capacity in the user side. Each bus has a unique Amazon Resource Name (ARN). Events are sent to event buses and then routed to event targets according to event rules.
As is shown in the preceding figure, Alibaba Cloud’s event bus consists of the following two types:
Default event bus: The default event bus is automatically created when the user activate the EventBridge service. All connected cloud service events are automatically delivered to the default bus. For users, cloud service events are out-of-the-box.
Customized event bus: Customized event buses are created by users to receive customized events. Customized event bus is an essential resource for developing event-driven architectures and programs.
Rules are used to filter the events in the event buses. After certain conversion, the successfully filtered events are routed to the Alibaba Cloud target services or HTTP gateways specified in the rules.
The rules in EventBridge have two ends. One end is connected to the event bus, and the other end to the event target. The two ends are in a one-to-many relationship, with each rule connected with a maximum of five event targets. In addition, the filtering and conversion components in rules provide users with lightweight event filtering and conversion capabilities.
The filtering capability of a rule is provided by event pattern. The following filtering patterns are now supported:
• Specified value matching
• Prefix matching
• Suffix matching
• Exception matching
• Numeric matching
• Array matching
• Complex combinatorial logic matching
The conversion in the rules is used to convert the CloudEvents event into the format that can be accepted by the event target. EventBridge provides four converters:
• Complete event: Directly deliver events to the native CloudEvents without conversion.
• Partial event: Use JSONPath syntax to extract part of the content from the CloudEvents event and deliver it to the event targets.
• Constant: Events only serve as a trigger and the delivered content is a constant.
• Template converter: Render the customized content to be delivered to event templates by defining templates.
Architecture of EventBridge
As a brand new cloud service, EventBridge fully adopts the cloud native technology stack. As is shown in the following figure, EventBridge is built on the Kubernetes cluster provided by Container Service for Kubernetes. A complete set of Kubernetes-based DevOps R&D system has also been designed. In the R&D phase, GitOps is practiced to improve the delivery and iteration efficiency. In the testing phase, a large number of automated tests are deployed. In the publishing phase, a complete gray release mechanism is provided. In the O&M phase, Kubernetes’s self-healing capability greatly reduces the O&M costs. Besides, a cloud-native monitoring system is established based on services such as Prometheus Service and Log Service (SLS).
In addition, EventBridge relies on the event storage capabilities of Message Queue for Apache RocketMQ (RocketMQ). As a message-oriented middleware developed by Alibaba, RocketMQ has been tested by several years of Double 11 and countless Alibaba’s internal business scenarios. It is proven to be excellent in providing EventBridge with high SLA and high-performance event transmission services.
Typical Scenarios for EventBridge
This section lists three typical cases based on the available capabilities of EventBridge. As the EventBridge ecosystem becomes increasingly rich, more business scenarios will be able to apply EventBridge in the future. A series of model projects will be offered in the near future for users to reference, so that they can quickly adopt the event-driven approach to their own business scenarios.
Scenario 1: 360-degree Business Panorama
The larger the enterprises grow, the more business stability they demand. To prevent more failures in the increasingly complex scenarios, it is particularly important to build an all-round observation and monitoring system for applications. For traditional applications, after their reconstruction based on cloud native, they can enjoy the benefits of cloud native technologies. At the same time, however, they are also confronted with more complexity in how to manage the stability of the applications. The most challenging issue is that it is difficult to control changes. The business relies on the entire cloud infrastructure, physical and network resources in the IaaS layer, cloud services in the PaaS layer, and even the upstream and downstream services. These services are so constantly changing that it is difficult for users to immediately perceive the occurrence and corresponding impact of these changes. In fact, 95% of faults are caused by changes.
To solve this problem, a 360-degree business panorama is created based on EventBridge. With this achievement, users can clearly perceive changes and exceptions in the entire business procedure, and whether these exceptions are related to the recent changes. What’s more, when special problems show up, self-O&M method can be used to help services recover faster and minimize the impact.
All these capabilities can hardly be realized without EventBridge to integrate multiple events of cloud services or trigger the responses of multiple cloud services through events. At the same time, through EventBridge, events, as an important carrier of information, are able to coordinate various cloud services to work in an orderly manner.
Scenario 2: Webpage Screenshots for Daily Briefings
Scenario 1 is relatively complex, so let’s take a look at another scenario that can be easily implemented. Use EventBridge-driven Function Compute to take webpage screenshots, and send them through email to make daily briefings.
• First, through analysis, the business system calculates out the most valuable and mostly searched news of the day, and sends the URL addresses of the news as an event to EventBridge.
• After receiving the event, EventBridge activates the webpage screenshot program of FC based on the pre-configured rules.
• Then, FC automatically creates resources after receiving the event and runs the webpage screenshot program. Screenshots are saved to Object Storage Service (OSS) at the same time when FC notifies EventBridge to release the resources.
• Next, after receiving the event from FC, EventBridge activates the email service to send the screenshots to users based on the pre-configured rules.
This example demonstrates that Serverless and EventBridge are a very powerful combination in the cloud native era. Driving FC through events allows services to schedule resources on demand. By doing so, stability risks caused by burst traffic can be prevented, and costs can be reduced to the greatest extent through pay-as-you-go mode.
Scenario 3: Smart Furniture Store of New Retail
How many scenarios can EventBridge be applied to in the future? Let’s look at the scenario of smart furniture store of new retail.
• In this scenario, the warehousing events of furniture and the events of customers entering into the store are sent to the online analysis system in real time through EventBridge. By doing so, users are informed of which furniture is now available in the store and what kind of furniture customers prefer. The system also sends the analysis results to the shopping guide or advertising screen of the store, helping ensure a better ordering process.
• Customers first pay online, and then the orders are sent to EventBridge. EventBridge informs third party logistics companies to deliver the furniture.
• Third-party logistics companies push the location information of the furniture that customers order to the mobile apps through EventBridge in real time. Customers can easily check where their furniture is and when it will be delivered in real time through apps.
• All the data of these online business events are transferred through EventBridge. They will eventually be transferred again to the offline analysis system through EventBridge. Business reports will be automatically generated for management to make performance appraisal or operational decisions.
In this scenario, EventBridge plays a key role in efficiently transferring event information to help achieve business goals. For scenarios such as IoT, online business, and big data, the efficient transferring of EventBridge is very critical. Events are both online business data and offline analysis data, which reduces costs and improves efficiency.
Future of EventBridge
As an event hub on the cloud, the core capability of EventBridge is to provide connectivity. Therefore, EventBridge will focus on building an ecological network in the future. Applications in online business, IoT, or big data scenarios can all be integrated to EventBridge with low code or even no code. If the applications are deployed in private Internet data centers (IDCs) or in cloud environments that are not provided by Alibaba Cloud, a secure and reliable integration methods will also be provided.
Certainly, to build such a huge central nervous system in the cloud era needs not only time, but also joint efforts. In the future, EventBridge will be committed to the construction of an open source community. It is hoped that more friends can participate in the construction and promote the event-driven model as pioneers in the cloud native era.