Over half of the data we produce and store on the internet has moved to the cloud in the recent decade, and the amount is steadily growing. Speed of deployment, unlimited scalability, cost-efficiency, hassle-free setup – everything is better on the cloud! Or is it?
The concept of cloud computing has been around since the early 2000s and it has disrupted the IT market in the recent decade. The term itself basically means the delivery of on-demand computing services – such as data storage, servers, databases, networking, and software – over the Internet (aka cloud).
Whenever you hear about cloud computing or service, you most likely think about computing resources managed by some provider, but that is just one cloud deployment model. There are several deployment strategies and service models, the understanding of which will help you to make informed decisions on managing and hosting your data in the cloud. Let’s dive in!
Often, when we talk about the cloud, we mean the public cloud. That is a model in which a cloud service provider owns and manages all the servers, networking, and hardware. This cloud is available to the general public, and resources are shared between all users.
Public clouds usually work on a pay-as-you-go model, embodying and fueling the sharing economy, granting elastic scalability and cost-efficiency.
If you use a public cloud but also have your own physical servers or a data center, and you wish to use both as one system, this is a hybrid cloud deployment model. This model is often adopted by enterprise products since it brings the perks of both, public and private clouds, helping to scale, driving digital transformation and keeping up with security issues at the same time.
And finally, there is a private cloud. It can be your own data centre connected to the cloud or cloud computing provider such as Amazon or Google could host it for you. Amazon describes this deployment strategy as on-premise cloud computing since there are dedicated resources being reserved exclusively for you. The pricing for the private cloud is considerably higher and usually fixed, the range of services is limited. On the other hand, you get better control over data storage residency and data privacy concerns as well as much greater security.
Infrastructure as a service or IaaS – is when you let the cloud provider manage a hardware domain of your business, such as servers, storage, virtualization, and networking. You on the other hand will still have control over the software, such as the applications, data, operating system, middleware, and runtime. Some examples of infrastructure as a service that the common person would use would be online data backup services, such as iDrive.
In Platform as a service aka PaaS the cloud provider has more control than in IaaS, and not only manages the hardware such as servers, storage, and networking, but also the operating system, middleware, and runtime. You are only responsible for the applications and the data.
Software as a Service or SaaS is probably the most common cloud service by far. In this type, all the applications are hosted by the cloud provider. There is no software to install on your computer and no hardware to manage. You just simply access and run the application from your computer when you connect to the cloud service through the internet. So the cloud provider manages all the hardware, software, networking, operating system, and storage. A good example of SaaS is Google Docs. Google Docs is a free online office suite that is accessed using a web browser. There is no additional software that needs to be installed on your computer to use Google Docs. Everything is accessed and managed from your web browser.
These are, basically, classification terms that describe how much granular control you have over your server and data storage systems and applications. An IaaS lets you control almost everything from the ground up. A PaaS already has the specific server and data storage settings implemented for you. SaaS is essentially access to a web application that lets you carry out certain functions without having to code it up yourself.
<p>The term is something of a misnomer because there are servers involved, they’re just managed by someone else. AWS Lambda from Amazon is a great example of serverless computing. When it was released at the end of 2014 Amazon’s CTO described it as “an event-driven computing service for dynamic applications”. What does it mean in practice? You organize your code in a specific way – into Lambda functions. Lambda runs your functions only when there is a request and scales automatically, from a few requests per day to thousands per second. You pay for the computing resources only when your code is running, making it very cost-effective and automatically scalable.</p>
Serverless provides a model that is very similar to how we consume electricity – we only pay for it when we run our electric appliances and lighting, and with Serverless, we only pay for computing resources when we run our code.
<p>Let’s sum up the main perks and concerns of cloud computing</p>
If chosen properly, cloud solutions provide you with elastic and scalable computing power, storage, software and a plethora of functions with a pay-to-go model. Scalability is a huge benefit of the cloud. You could easily scale from “testing an idea” in a simple app with low resource dependency to developing and running a full-fledged application with thousands of users. It wouldn’t require a huge effort on the technical team’s side. Simply purchase more resources from the cloud provider. What normally would be a multi-faceted scaling operation becomes a single vendor exchange. Security? Let us just quote former NASA CTO.
<p>Based on our experiences, I believe that we can be even more secure in the AWS Cloud than in our data centers</p>
Tom Soderstrom, IT Chief Technology and Innovation Officer at NASA in 2006-2020
Cloud environments experience pretty much the same threats as traditional data centre environments. That is, cloud computing runs software, software has vulnerabilities, and adversaries try to exploit those vulnerabilities. Or the data centers, which are located somewhere can suffer from disaster or an outage could happen. In cloud computing, you usually share risks with your provider. That is why we say: share risks and resources with giants like Amazon, Microsoft and Google.