– Daddy, what are clouds made of?
– Linux servers, mostly.
(ba dum tss!)
Cloud computing is one of the most promising and discussed fields in the kingdom of information technologies. This a common term which most have heard about but not everyone knows what exactly it means and what is going on under the hood of сloud machinery.
We are banking online, shopping online, using social networking sites, playing online games, storing photos, audio, and video online and using online file-sharing. And mostly all those services are cloud-based. For example, such famous platforms as Airbnb, PayPal, Zynga, Spotify and Adobe Systems are “cloudy”.
It means that cloud computing technologies have long been a part of our daily usage. The only question is how well do we understand what does it mean?
Let's mark, that cloud computing is defined as a MODEL, PARADIGM, sometimes SOLUTION, but not exactly a technology, platform or product.
“Cloud computing architecture is something you do, not something you buy“.
— David Linthicum, author on InfoWorld
If we make an extract from different definitions of cloud computing, we will get something like this: put in simple words, cloud computing is about storing, accessing, and managing a wide range of data and programs over the Internet instead of your hardware.
It is rooted in the good times of old school presentations showing the giant Internet infrastructure in the shape of a cloud that accepts connections.
And if we need more deep and scientific meaning let’s take this one:
As far back as 1994, scientists used a cloud-shaped drawing to portray clusters of services that could be delivered over the Internet. But still, the term "cloud" is staying blurred for many people. Hope we have already figured out a "cloud computing" term, let's move on.
One much more confusing term is "serverless computing" as one of a cloud IT model, that actually doesn't eliminate servers from distributed applications.
“The term "serverless" is annoying as heck. Sure, you're not fiddling with nginx configs, but you're even more tightly dependent on running in a cloud environment. It should be "servermore".
— skewart on Hacker News
"Serverless applications don't require you to provision, scale, and manage any servers," according to Amazon. In the classic cloud model, you are paying for a constantly running server or container. Serverless apps have functions running in the response of such events as file uploads or web requests. The most famous computing platform for such a deployment model is AWS Lambda.
It's kinda equivalent to a timeshare condo vs renting a condo. Your functions only run when they are called.
— quaz 31 on Hacker News
Concepts "cloud storage" and "cloud computing" are muddled up often. This couple is interconnected but not the same. Remote cloud storage systems, such as Google Drive, Dropbox, or iCloud, may enable you to host, share, sync and edit files only from multiple devices using the Internet.
Such a system allows clients to send files to data servers on the Internet, instead of storing it on a computer or external storage device. And a cloud computing machine is more than permanent store or data sharing tool. It's abilities are much wider.
It's about the use of hardware and software to deliver varied services over a network while cloud storage is simply storing data and files, and performing backups for completing the process.
Cloud computing building consists of 3 basic levels: the lowest is Infrastructure-as-a-service (Iaas). It is a basis of 'bare metal' providing the physical servers, device storage, networking components.
Platform-as-a-Service (PaaS) is the middle that maintains an environment for hosting user apps, such as virtual servers, operating and database environments. It's demanded to develop, run, and manage apps without the need for infrastructure organization. PaaS is a simple way to deploy your app in a given technology (e.g., Node.js, .NET, Python, Java, Ruby, etc).
The top is Software-as-a-Service (SaaS) providing tan out-of-the-box software including service on demand. It's a software distribution model where a third-party vendor hosts apps and makes them available to clients over the Internet. In SaaS a lot of areas can be managed by providers: apps, runtime, data, OSes, virtualization, servers, storage, etc.
One more room on this top floor is Data-as-a-Service (DaaS) as a subset of SaaS. More specifically, it's an API (usually HTTP) returning some data e.g., currency exchange rates or weather forecasts, DaaS examples: Google Maps, Google Translate API, AccuWeather.
But that is not a full-house yet. Let's look on upstairs. There we can single out a Function-as-a-Service (FaaS), an event-based architecture: functions can be triggered by a given event. It implies a very high level of abstraction that it's called a serverless architecture (see above: name is deceptive ;) ).
To quickly relate let's consider Google's tools:
It's common to identify three ways of deploying cloud resources: private, public and hybrid. While the first duo is clear for understanding, the third one is still confusing. Let's try to handle this.
Cloud computing becomes into a most real omni-cloud journey. The optimal cloud solution for most businesses is neither public or private, but both. Traditionally, it is called a hybrid cloud, that mixes different ways of deployment.
To be honestly, a hybrid approach has spawned a lot of misunderstandings. In fact, such a model doesn't match the common term "hybrid", that is traditionally defined as something that has been bred from two different species as an individual object and primarily involves crossbreeding as process.
But in fact the hybrid cloud deployment is a specific strategy where data may intermingle between private and the public clouds, but it remains with the same workload. So the hybrid cloud is about distributing app components in various clouds and sharing data between them while the heart of the process, i.e. actual executables are functioning in only one cloud environment.
“Much of the adaptation to hybrid/multi-cloud focuses on how to move data back and forth, how to run applications on disparate hypervisors and how to bring non-standard services together.
— Chris Evans, author on Architecting.it
Now we are getting close to multi-cloud concept. In accordance with Gartner, multicloud strategies will reduce vendor dependency for two-thirds of organizations through 2024. This strategy implies mixing multiple cloud services, whereas they are not connected or orchestrated between themselves.
Such multi-vendor model gives a great opportunity to obtain the most efficacious solutions for business, while hybrid cloud refers specifically to the specific tech portfolio. Let's mark that multi-cloud strategy may include hybrid cloud as a part, but a hybrid cloud solution isn't always a multi-cloud one.
Cloud tech is gaining huge attention for today. Such corporate giants as Microsoft, IBM, Google, Amazon provide clouds and successfully use it. These systems are all kind of different but they have the same character, i.e. the same concept. Depending on the features we are looking for, we can try several services and make use of benefits of cloud computing provided by different companies.
Enterprise can use different cloud environments, implementing one workload in Google Cloud or Microsoft Azure, another in Amazon Web Services, and maybe even more, for example, you can keep some data on a private cloud.
The advent of cloud technologies revealed a lot of new business scenarios. Marketing solutions like Adobe Marketing Cloud or Hubspot, tools for education like SlideRocket (ClearSlide), ClearDATA in the healthcare sector: different areas have their own advantages of cloud computing innovations and new increasing opportunities for implementing in this deployment model.
When it comes to dilemma 'cloud vs on-site', start from your organization's specific needs and requirements. Many companies combine both models, mixing public cloud services and on-site for various apps looking for the perfect combination of scalability, cost savings and efficiency managing.
This allows them to get the best of both worlds, using the advantages of cloud computing in full.
(Disclaimer: The author works at FreshCode)
(Originally published here)