Service bus là gì

     
Typically, an enterprise service bus (ESB) or other integration solutions lượt thích extract-transform-load (ETL) tools have been used lớn try to decouple systems. However, the sheer number of connectors, as well as the requirement that applications publish và subscribe lớn the data at the same time, mean that systems are always intertwined. As a result, development projects have sầu lots of dependencies on other systems & nothing can be truly decoupled.

The need for integration—a never ending story

No matter in which enterprise you work, no matter when your company was founded, you will have the requirement lớn integrate your applications with each other khổng lồ implement your business processes.

This includes many different factors:

Technologies (standards like SOAPhường, REST, JMS, MQTT, data formats like JSON, XML, Apabít Avro or Protocol Buffers, open frameworks like Nginx or Kubernetes and proprietary interfaces like EDIFACT or SAPhường. BAPI)Programming languages và platforms like Cobol, Java, .NET, Go or PythonApplication architectures like Monolith, Client Server, Service-oriented Architecture (SOA), Microservices or ServerlessCommunication paradigms lượt thích batch processing, (near) real time, request-response, fire-and-forget, publish subscribe, continuous queries và rewinding

Many enterprise architectures are a bit messy—something lượt thích this:


*

Every company needs lớn solve these spaghetti architectures. Depending on the decade, you either bought something lượt thích an ETL tool khổng lồ build batch pipelines or an ESB lớn kiến thiết a SOA. Some products also changed their names. Today, you are offered things lượt thích middleware messaging, an integration platsize, microservice gateway or API management. The branding & product name bởi vì not matter. You always see the same picture as a solution to move sầu away from your spaghetti architecture khổng lồ a central integral box in the middle, lượt thích this:


*

This rarely worked well in practice, unfortunately. Most SOA projects in the last two decades failed. Instead of using an ETL tool or ESB for this, enterprises are now moving on to lớn a streaming platkhung lớn solve this issue. Is this the next bubble on the market? Just a new term? Or, did something really change lớn allow successful integration across an enterprise—whether you integrate legacy mainframes, standard applications lượt thích CRM and ERPs, modern microservices built with any programming platkhung, or public cloud services? Why are companies now migrating to lớn Apabịt Kafka khổng lồ build this streaming platform? Why is everybody toàn thân happy and talking about this at conferences, tech talks and blog posts? How does it compare to an ESB or ETL tool?

The next sections will answer all these questions, and explain the reason & differences between the ecosystem of Apache Kafka & other existing integration solutions.

Bạn đang xem: Service bus là gì

quý khách đang xem: Enterprise service bus là gì

Event-driven processing & streaming as a key concept in the enterprise architecture

An event streaming platform (you can also enter another buzzword here) leverages events as a core principle. You think in data flows of events & process the data while it is in motion.

Many concepts, such as event sourcing, or kiến thiết patterns such as Enterprise Integration Patterns (EIPs), are based on event-driven architecture. The following are some characteristics of a streaming platform:

Event-based data flows as a foundation for (near) real-time & batch processing. In the past, everything was built on data stores (data at rest), making it impossible to build flexible, agile services lớn act on data while it is relevant.Scalable central nervous system for events between any number of sources and sinks. Central does not mean one or two big boxes in the middle but a scalable, distributed infrastructure, built by kiến thiết for zero downtime, handling the failure of nodes và networks & rolling upgrades. Different versions of infrastructure (lượt thích Kafka) & applications (business services) can be deployed and managed in an agile, dynamic way.Integrability of any kind of applications & systems. Technology does not matter. Connect anything: programming language, APIs lượt thích REST, open standards, proprietary tools & legacy applications. Speed does not matter. Read once. Read several times. Read again from the beginning (e.g., add new application, train different machine learning models with the same data).Distributed storage for decoupling applications. Don’t try to build your own streaming platsize using your favorite traditional messaging system và in-memory cache/data grid. There is a lot of complexity behind this & a streaming platkhung simply has it built-in. This allows you lớn store the state of a microservice instead of requiring a separate database, for example. Stateless service và stateful business processes. Business processes typically are stateful processes. They often need khổng lồ be implemented with events and state changes, not with remote procedure calls and request-response style. Patterns like sự kiện sourcing and CQRS help implement this in an event-driven streaming architecture.

Benefits of a streaming platform in the enterprise architecture

A streaming platform establishes huge benefits for your enterprise architecture:

Large & elastic scalability regarding nodes, volume, throughput—all on commodity hardware, in any public cloud environments, or via hybrid deployments.Flexibility of architecture. Build small services, big services, sometimes still even monoliths. Event-driven microservices. Asynchronously connected microservices model complex business flows and move sầu data khổng lồ where it is needed.

Xem thêm: 'Hot Boy Xăm Trổ' Giờ Ra Sao, Lê Hoàng Anh Hot Boy Xăm Trổ

Openness without commitment to a quality giải pháp công nghệ or data format. The next new standard, protocol, programming language or framework is coming for sure. The central streaming platform is open even if some sources or sinks use a proprietary data format or công nghệ.Independent and decoupled business services, managed as products, with their own lifecycle regarding development, testing, deployment & monitoring. Loose coupling allows for independent speed of processing between different producers & consumers, on/offline modes & handling backpressure.Multi-tenancy khổng lồ ensure that only the right web5_user can create, write lớn và read from different data streams in a single cluster.Industrialized deployment using containers, devops, etc., deployed where needed, whether on premise, in the public cloud or in a hybrid environment.

These characteristics build the foundation of a streaming platsize, the beginning of your successful digital transformation. With services implementing a limited phối of functions, and services being developed, deployed và scaled independently, you get shorter time khổng lồ results and increased flexibility. This is only possible with a streaming platkhung having the above characteristics.

Use cases for a streaming platform

Here are some generic scenarios for how you can leverage a streaming platform with the characteristics discussed above:

Event-driven processing of big data sets (e.g., logs, IoT sensors, social feeds)Mission-critical, real-time applications (e.g., payments, fraud detection, customer experience)Decoupled integration between different legacy applications and modern applicationsMicroservices architectureAnalytics (e.g., for data science, machine learning)

Producer & consumers of different applications are really decoupled. They scale independently at their tốc độ & requirements. You can add new applications over time, both on the producer and consumer side. Often, one event is required to be consumed by many independent applications lớn complete the business process. For example, a khách sạn room reservation needs immediate payment fraud detection in real time, the ability to process the booking through all backkết thúc systems in near real time, và overnight batch analytics lớn improve customer 360, aftersales, khách sạn logistics và other business processes.

While some processes need real-time processing, you also need to be capable of supporting batch processes. You even need re-consumption of data more often than you would think in the beginning, such as in cases of an application being down for some time, A/B testing with different versions of an application, adding a new application that needs khổng lồ consume the data from scratch, or building different analytic models via machine learning based on the same data sets.

Xem thêm:

Think about some more use cases that you can build easily with a real decoupled system that is still a well-integrated & scalable streaming platform:

Selling before the customer left the storeAborting a transaction before the fraud happenedReplacing a part of a manufacturing machine before it breaksInforming customers if a flight or train is late (plus sending updates, rebooking or a voucher) You name it—the danh mục goes on.

Big bang from batch to lớn real time?

Now, you understand the added value of a real decoupled, scalable streaming platsize. So, vì I have sầu to introduce this as a central data platform for all of our applications?

The following shows the streaming maturity mã sản phẩm that we use to lớn identify the current situation & planning in large enterprises: