Subscribe Our Official Account by Clicking on the Blue Words.
“The development trend of the world is the transition between the centralized and the distributed, which is the default law of development of things. It is also the law that IT architecture should obey and the overall trend is from the centralized to the distributed. Distributed service architecture adapts to the development of business, which means that it liberates the individual in the architecture, so that it can have full rights of autonomy and independent thinking. Transforming from traditional vertical architecture to distributed service architecture, enterprises face the important projects, which are how to perform service transformation to applications and how to perform comprehensive management to services.
Background
With the development of business, the scale of applications is expanding and the quantity of various giant applications within the enterprises is increasing, so that the traditional vertical application architectures have been unable to deal with complex business challenges. The decoupling between service consumers and service providers can be achieved through abstracting business public capacities to atomic services and performing horizontally splitting and servitization to complex applications. The extraction and services of public capacity can effectively reduce the cost of iterative development and construction of public modules.
The core of traditional vertical architecture transformation is to perform service transformation to applications. The core technical framework used in the process of service transformation is distributed service architecture. With the increasing of services, the comprehensive management of services tends to be more important.
The Evolution of Application Architecture
From the perspective of the evolution processes of application architecture, there are five stages showing the overall trend is from the centralized to the distributed.
1Monolithic Architecture
It is a highly cohesive version with all functions deployed together. The data access framework is the key of the architecture. This kind of architecture is seldom used. Monolithic architecture cannot adapt to high traffic and it is difficult to perform secondary development with high deployment cost.
2Vertical Architecture
With the increasing of visit traffic, vertical architecture, instead of monolithic architecture, is more extensively used. For example, mvc is a typical vertical architecture, used to separate front-end logic from back-end logic. On the one hand, there is a certain degree of modularity in the architecture. On the other hand, it accelerates and facilitates the development. Although all of functions are still deployed in the same process, load distribution can be achieved through two-machine or pre-load balance. In this case, the application can also be split into several different applications to improve performance and efficiency.
3RPC Architecture
Under more and more cases, the interaction among applications is inevitable when mvc vertical application is split into different applications. In this case, core and public business functions are extracted as separate services. Besides, the separate between front-end logic and back-end logic is achieved.
4SOA Architecture
With the increasing of services in rpc architectures, there are various problems in management and control to lifecycle, assessment to capacity and so on, which make the realization of servitization become a bottleneck. In this situation, a dispatching center should be added to manage, control and supervise services.
5Micro Service Architecture
Micro service refers to distributing functions into each discrete service and then realizing the decoupling to schemes. The smaller scale the services have, the smaller the autonomy is, and then deploy services with high density.
Distributed Service Architecture
In an enterprise, new business needs and functions are continuously increasing. With the evolution of technology, technical architectures adopted by systems built by different teams are diverse. Besides, there are big differences in the modes of development, deployment, operation and maintenance among different systems. If there is no unified service framework within enterprises to communicate in the technical level, the efficiency of development, operation and maintenance will be constrained greatly.
The emergence of distributed service architecture is not accidental. Instead of that, under the overall trend of fast development of Internet, it is the best practice framework based on the thinking of decentration, distributed management, opening and sharing, business autonomy and so on.
With the continuous development of business and increasement of demands, the principle designed by large systems is that functions should be continuously split, so that independent extension, reduction, isolation, fault tolerance, development and deployment can be achieved in a better way. Under the background, the need for the mature distributed service architecture is pressing, which is based on the following two reasons:
Applications move towards being distributed from being centralized
Services need to be managed
Distributed Service Architecture in Business
Whether it is in an e-commerce platform of a large website or it is in telecommunications, finance, game and other industries, a high-performance and low-latency distributed service architecture is needed to deal with the issues of business servitization and the management issues after servitization.
The current distributed service architectures include Dubbo in Alibaba, HSF in Taobao, Coral Service for internal use in Amazon, DSF in Huawei and so on.
Take Dubbo distributed service architecture in Alibaba as an example.
Dubbo framework is a distributed service framework, which is the core framework of SOA service management schemes in Alibaba, focusing on providing high-performance and transparent RPC remote service invocation schemes. Through Dubbo service framework, the output function and input function can be performed in applications by high-performance RPC and seamless integration can be achieved between applications and Spring framework. The main frameworks are as follows:
Examples of Application Scenario
Group enterprises usually have the needs of centralized management and control in different degrees. At the same time, they want to maintain the relative independence among each unit. This kind of contradiction between concentration and independence may involve business and technical aspects at the same time. The typical situation is the management and control to subordinate units by higher-level units, so that tree structure can be formed. For example, higher-level units want to uniformly control the main business processes (such as the main process, key statistical data, etc.), while subordinate units are responsible for the specific business operation; higher-level units want to uniformly control technical standards, while subordinate units are responsible for the specific system construction. Certainly, because of different specific situations in various enterprises, management strategies may be more complex and there may be management problems in units at the same level, so that complex network structure will be formed.
Under this kind of application scenario, group enterprises need a relatively unified service support platform for each application within enterprises to achieve public support. Howerer, under this kind of mode, it is impossible to achieve full concentration or decentralization. From the technical perspective, service support platforms should support the distributed deployment. As shown below:
As for the services managed by platforms, this kind of distributed architectures should be transparent. In other words, when several applications integrate based on platforms, they do not have to know where the other applications deploy. Besides, whether mutual integration is permitted among applications is also under the control of platforms.
In general, the mixed distributed service architectures, which mean the coexistent architectures of bus architectures and micro services, should be adopted. Each unit can respectively build the architectures of bus mode or micro service under its own environment according to the actual situation. Interaction can be achieved among different service platforms based on distributed service architectures, so that the unified platform environment can be created.
Conclusion
In conclusion, the distributed service architecture is a kind of decentralized architecture, which can make business capability modularized and make component capability servitization, so that the business needs can be met more flexibly without the limitation of space and time. In the overall development trend of architectures, the distributed service architecture may be one of forms, fitting the trend of moving towards the distributed from the centralized. In the future, the trend may be moving towards the centralized from the distributed, following the law of The development trend of the world is the transition between the centralized and the distributed