Cloud computing has nowadays become the platform of the new, global digital transformation not only for our countries, governments and companies but for each one of us. Our phone contacts, photos and messages are stored in cloud datacenters. Music and videos are being delivered through high capacity cloud streaming services. Best route finding on maps with live traffic information is made possible with Artificial Intelligence cloud services. Tax income declaration is being applied through the cloud. Even, registration to kindergarten schools in Greece is being performed for the first time by using online family status verification through the public registry, again by leveraging cloud technologies! Cloud computing is ubiquitous either we use it deliberately or not.
But what is the actual meaning of this “cloudy” term? Is data being transferred to the sky clouds for some purpose? Probably not!
Cloud Computing is the on-demand delivery of computing services such as servers, databases, networking structures and software over the internet. This is implemented by dedicated datacenters and server farms whose services are available to many different customers/users, offering faster innovation, flexible resources, and economies of scale. Cloud computing services are based on a “pay-as-you-go” model which means that clients are only charged for the services they use.
Cloud computing centers are divided in three major categories.
Public clouds are operated by third-party companies such as Microsoft (Azure) or Amazon (AWS) which are responsible for the stability, maintenance and expansion of the underlying infrastructure, and provide their service over a public network, the internet.
Private cloud is structurally identical to the public cloud, but it is being owned and used by a single organization while the provided services are restricted to a private network.
Hybrid cloud combines private and public clouds connected with technology that enables data and applications to be interchanged between them. This interconnection offers higher flexibility and more deployment options.
Types of cloud Computing services
Cloud Computing can be provided through different models according to the abstraction level and the complexity of the underlying services. The three standard models according to NIST are:
- Infrastructure as a service (IaaS): The basic category of cloud computing. Users rent servers, networking hardware, storage devices and operating systems and configure them to provide business value. Users are responsible for system configuration, operating system updates and vulnerability eliminations.
- Platform as a service (PaaS): Ideal for developers who want to quickly deploy a web application without having to setup servers, operating systems and networking, as they are already configured. In other words, PaaS is an environment created on-demand for developing, delivering and administering web applications.
- Software as a service (SaaS): Here the whole application lifecycle as well as the underlying infrastructure, the configuration and administration tasks are performed by the cloud provider. Users interact with the application through a web browser or mobile device.
The Pizza Analogy
All these new terms can be confusing, even experienced software engineers found the concept delineation difficult. For this purpose, the famous Pizza Analogy has been created. On the first column there is the equivalent to the non-cloud traditional application deployment process. All tasks are being handled by the user. While on the other hand, the last column represents the equivalent to SaaS approach where every single task is being “outsourced” to the Cloud Service Provider leaving to the user only the pizza delight!
Inevitably, the transition to cloud computing was not spontaneous. Cloud services were initially used mainly as infrastructure (IaaS), that is online, on-demand Virtual Machines which hosted operating systems configured by the end-user. As it was growing up, it became obvious that effective leverage of cloud advantages will be made possible only by applications tailor-made for cloud environment, or as they became known, Cloud Native. Applications of this type are especially designed and developed for cloud deployment, are based on microservices architectures, leverage scaling features, and benefit from continuous delivery to achieve reliability and rapid response to business requirement changes.
Multicloud is the employment of cloud services from different service providers in a single heterogenous architecture to meet different technical or business requirements. Usually it is implemented by distributing cloud native applications to several cloud hosting environments. The main reasons that favor multicloud deployments include reducing reliance on a single vendor, increasing flexibility and adhering to local data protection policies.
Benefits and Pitfalls
The advantages of Cloud Computing can be easily identified. A third-party company that specializes on server hosting and deployment can achieve economies of scale, provide safer infrastructure that is already updated with latest vulnerability updates, guarantee a reliable platform with zero downtime and the most important, offer global-scale availability. This enables a small startup somewhere in the world to deploy a new innovative web application with global availability by paying only for the computing power, traffic and services it uses. Only consider the costs of these requirements for a self-hosted infrastructure alternative!
However, as every powerful weapon, Cloud Computing requires careful configuration from highly experienced users. The “pay-as-you-go” model can lead to unexpected operating expenses if administrators are not familiar with cloud-pricing models. Furthermore, the offered services are limited by the cloud provider decisions which results to limited platform customization options.
Data security is another critical area that poses serious concerns about Cloud computing, especially public ones. Cloud providers have access to user data that can be accidentally or deliberately modified or leaked to external parties. Data ownership is still a vague field on cloud computing Terms of Service Agreements that poses questions about the accountability on possible data misusage events. Due to these concerns, cloud computing is still not the first option for government, military and security critical applications.
Top Cloud Providers according to revenue
- Amazon Web Services
- Microsoft Azure
- Google Cloud
- Alibaba Cloud
- IBM Cloud
- VMWare Cloud
- Hewlett Packard Enterprise
- Cisco Systems
- Oracle Cloud
Barron, Albert. “Pizza as a Service.” Accessed May 31, 2020. https://www.linkedin.com/pulse/20140730172610-9679881-pizza-as-a-service/.
“Cloud Computing.” In Wikipedia, May 30, 2020. https://en.wikipedia.org/w/index.php?title=Cloud_computing&oldid=959841571.
“Cloud Computing @ Microsoft Azure.” Accessed May 31, 2020. https://azure.microsoft.com/en-us/overview/what-is-cloud-computing/.
“Cloud-Native Applications | Microsoft Azure.” Accessed May 31, 2020. https://azure.microsoft.com/en-us/overview/cloudnative/.
Drake, Nate, Brian Turner December 20, and 2019. “Best Cloud Computing Services of 2020: For Digital Transformation.” TechRadar. Accessed May 31, 2020. https://www.techradar.com/best/best-cloud-computing-services.
McLellan, Charles. “Multicloud: Everything You Need to Know about the Biggest Trend in Cloud Computing.” ZDNet. Accessed May 31, 2020. https://www.zdnet.com/article/multicloud-everything-you-need-to-know-about-the-biggest-trend-in-cloud-computing/.
Mell, Peter, and Tim Grance. “The NIST Definition of Cloud Computing.” National Institute of Standards and Technology, September 28, 2011. https://doi.org/10.6028/NIST.SP.800-145.
“Multicloud.” In Wikipedia, February 15, 2020. https://en.wikipedia.org/w/index.php?title=Multicloud&oldid=940901545.
Cisco. “What Is Cloud Computing? – Cloud Computing Definition.” Accessed May 31, 2020. https://www.cisco.com/c/en/us/solutions/cloud/what-is-cloud-computing.html.