Has Cloud Computing something to do with SOA
How is SOA connected with cloud computing? What Service Orientation has to do with cloud and how they are related? SOA is basically application architecture, whereas cloud provides infrastructure, platform and software as services. How these two can leveraging each other’s core best practices.
SOA, a flexible, modular approach to deliver IT services, is an essential foundation for the emerging technologies like cloud. While it lowers the cost, its primary benefit is the improvement in agility that it provides organizations, enabling them to respond to the increasing rate of change occurring in every business around the world.
Definitions
Service Oriented Architecture (SOA) is a flexible set of design principles used during the phases of systems development and integration. A deployed SOA-based architecture will provide a loosely-integrated suite of services that can be used within multiple business domains.
Service-oriented computing builds upon past distributed computing platforms and adds new design layers, governance considerations, and a vast set of preferred implementation technologies, many of which are based on the use of Web services and REST services.
Cloud computing provides almost infinite flexible and scalable external computing and processing services that not only offer significant cost benefits, but also provide the ability to connect with customers, partners and suppliers like never before.
XaaS is the essence of cloud computing, where X denotes Infrastructure, Platform and Services. Cloud computing guarantees certain levels of service to the cloud’s customers. Cloud is elastic i.e. if the load increases, cloud computing will increase the underlying resources to handle the load.
Where SOA and Cloud Connect?
So the question here is – what is the relationship between SOA and Cloud? Are they same? Are they different? Do they really fit together?
Cloud computing is all about providing elasticity in terms of infrastructure, platform and services through internet. Cloud enables enterprises to utilize their resources and services to its maximum potential. Besides providing compute, storage and other infrastructure resources, cloud also provides sets of API and toolkits to the outer world to utilize XaaS. The underlying infrastructure or platform can be reduced or extended based on the load/demand. This is possible only because of loosely coupled components which made up cloud. So in way cloud follows the very basic principle of SOA i.e. loosely coupled services. Cloud also enables the reusability of various components.
Cloud utilizes another SOA principle i.e., abstraction of services. Abstraction is one of the key principles of SOA. In cloud environment, every service is abstracted to the user. Cloud provides many features on demand, but user remains unaware of the underlying implementation.
Though SOA is an architectural principle, cloud is leveraging its basic principles in its scenario and providing XaaS.
Also, cloud is not only about providing XaaS, it is also about integration with other services which is within or outside of cloud environment. SOA provides a good set of standards and guidance for service integration. So, for the enterprises that are moving towards cloud needs to focus more on standards, security, compliance and governance processes.
The Relationship
Cloud infrastructure can be build without considering SOA best practices. It is all about infrastructure (IaaS), platform( PaaS) and last but not the least about software on cloud( SaaS). These applications can be built without considering SOA principles.
It is true that anybody can create a monolithic traditional application and deploy that application to cloud. It will work. But over the time, it will be a nightmare to maintain that application considering the fast paced changes in cloud and other environment.
But enterprises, which have past experience in application development using SOA principles, can easily migrate to cloud. They can also leverage the cloud infrastructure to maximize the business requirements potential, and fulfill a potential with those resources.
The more an enterprise understands how much its business depends on these services, the more they’ve been reused. Enterprises who have already gone through cases where they have had services crash, because the usage has been too high, or they’ve been attacked, or certain fail-over in house hasn’t worked, the more they can appreciate what a cloud environment can bring.
In fact Organizations should leverage the SOA learning and implement the application on cloud in such a way that they could utilize the best of the infrastructure and platform underneath.
Synergies between Service Orientation and Cloud
Both cloud and SOA talks about abstraction, reuse and standardization. If practices from both the worlds are combined together, that can result in great application for the consumers which can automatically scale according to the demand.
Enterprises can leverage SOA and build service on cloud, which are more reliable, scalable, cost-effective and agile. They shall be able to adapt on one hand quickly to a change in business strategy or an emerging competitive threat, and on the other to create a new product to sell in online markets.
Conclusion
SOA and cloud computing share many common principles, but also differ significantly in their role in IT architecture. SOA is mainly an application architecture with horizontal services; while cloud computing is an IT architecture with vertical services.
Given the differences, SOA and cloud computing complement each other very well.