Cloud computing is at least a decade old and every enterprise have either small or big applications running on cloud. One of the main reasons that cloud computing was gaining momentum in the past was because the hardware costs to run the on-premise server were higher than cloud computing offerings. In the next few years, there will be more and more application from various enterprises that will be deployed to the cloud. In that near future, the major problem that we may face will not be on the hardware but on the software and tools to manage the cloud.
To understand better let us start with the basic definition of cloud computing as per Google –
As the definition suggests, any remote server that can be accessed through a network for computing is cloud computing. Unlike the old days, where AWS was the only major cloud service provider, there are a handful of other cloud service providers in the market now. However, the way cloud service providers offer cloud computing has gone a long journey on both the hardware and software front.
Hardware offering model (Infrastructure ownership) on cloud computing –
1) Public Cloud – Infrastructure in the same cloud region/location may be shared by multiple clients
2) Private cloud – Infrastructure in the same/different region or location will be dedicated to one single customer
3) Hybrid cloud – Combination of public and private cloud in the same/different region or location
Software offering model (Service and architecture) on cloud computing –
1) IaaS – Raw infrastructure(Like server boxes, storage hardware, etc) can be leased or reserved for a specific time period. The client is responsible for running software on top of the infrastructure (Example – AWS EC2, AWS EFS, Google compute engine, etc)
2) PaaS – Platform and environment for a specific predefined programming language, database, etc for developers to develop applications over the internet via a web browser (Example – AWS Elastic Beanstalk, Google App Engine, etc)
3) FaaS – Fully functional tools and runtime are offered as a service. Cloud native serverless architecture (Example – AWS Lambda, Firebase Cloud Functions, etc)
So, why are we seeing different models of offering in cloud computing?
2 reasons –
1) For the enterprises, different offering models lets them choose the cloud offering the way they want in the most cost-effective way.
2) For the cloud service provider, acts as a differentiating factor from the other cloud service provider.
What is currently emerging in cloud computing?
Since different players provide different offering models and tools, the enterprises want to make use of the benefits from every cloud service provider. Utilizing multiple cloud services for different applications within the enterprise have seen a huge rise in the market. This is commonly called ‘Multi-cloud strategy’. Adopting different cloud service for different business applications provides multiple benefits to enterprises.
Why multi-cloud strategy?
1) Reduced downtime – While there are availability zones and you can create backup and redundancy within the same cloud service provider, it is better to rely on multiple cloud service providers for reliability. The recent downtime in hours with both GCP and AWS is worth the mention.
2) Reduced cost – Utilizing multiple cloud service providers helps in reducing the cost by comparing and choosing the different services which may be cheaper in one when compared to the other. Also, because of the competition between the providers, they will also reduce the price.
3) Better tools – Some service provider may specialize in one specific functionality and tool. This forces the enterprises to go with multiple cloud strategy for different solutions.
4) Geolocation advantages – Not all services from the cloud service provider will be available across all geography. Because of the political and business restrictions, different cloud service providers may have a different offering in the same geography. Also, the strategic presence of the data center and the edge locations forced to go with the multi-cloud model.
5) No specific vendor lock-in – More the solution can be cloud-agnostic, more the enterprises get the freedom to run their solution without having to worry about lock-in with one single vendor.
6) Data privacy compliance advantages – Some cloud providers may understand European nations GDPR well compared to others and the same with CCPA. So this helps in choosing the right service provider for the right geography.
What are some of the facts that I see missing even in multi-cloud strategy?
1) Dependency on third-party cloud aggregators – In fact, there are many startups trying to do cloud aggregations acting as the middle man between multiple cloud service providers. However, different service providers do not have much tools and standard mechanisms to enable inter-cloud service provider operations.
2) Robust secure networking – Since multiple cloud service providers are involved unless there is a hub and spoke model is in place, a multi-cloud strategy is not easily achievable. The hub acts as a trusted relationship partner between the service providers. If the hub is compromised then all of the service providers are prone to vulnerability.
3) Still, No sufficient edge locations – Even though, multi-cloud strategy utilizes lots of edge locations by combining data centers of multiple cloud service providers, the number of edge locations for the growing IoT needs is not sufficient. Also, cost to set up and manage multiple edge locations may be increasing exponentially
Before we talk about the potential future of cloud computing let us understand the difference between distributed computing vs cloud computing –
Distributed computing – A computing technique wherein a task is shared by multiple computers to finish the task faster. The computers pass the message between each other using the network.
Cloud computing – Provides hardware, software services over the internet from a centralized location.
Potential future of cloud computing –
1) Democratizing edge locations – Apart from the data centers and the edge locations provided by the service providers there should be a way to bring in any remotely available computers onto the cloud computing network. Think of it as a single stand-alone computer at home getting connected to the cloud and can serve as the edge location on demand based on the computing capability.
2) Standardize aggregator tools – The same tools that we use with service providers should be used to access the remote computers that we may add to the cloud network. Aggregating the tools will help in quick onboard time. Also will standardize the network security by eliminating the hub and spoke model. Rather there can be a peer to peer communication.
Let me know what you think as the future of cloud computing.