Cloud computing has become the platform for the new, global digital transformation stage we have entered to not only for our countries, governments and companies but also for each one of us. Our phone contacts, photos and messages are stored in cloud data centers. Music and videos are being delivered through high capacity cloud streaming services. The best route finding filter on maps with live traffic information is made possible with Artificial Intelligence cloud services. Tax income declaration is 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 we do 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 data centers 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 into 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. 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. In 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 the SaaS approach where every single task is being “outsourced” to the Cloud Service Provider leaving the user only with the pizza delight!
Inevitably, the transition to Cloud Computing was not spontaneous. Cloud services were initially used mainly as an infrastructure (IaaS), that is online, on-demand Virtual Machines which hosted operating systems configured by the end-user. As cloud services were developing, it became obvious that the effective leverage of cloud advantages could be made possible only by applications tailor-made for the cloud environment, or as they became known, Cloud Native. Applications of this type are especially designed and developed for cloud deployment. They are built on microservices architectures, leverage scaling features, and benefit from continuous delivery to achieve reliability and rapid response to the requirements imposed by business changes.
Multicloud is the employment of cloud services from different service providers in a single heterogeneous 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 multi-cloud 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 in server hosting and deployment can achieve economies of scale and provide safer infrastructure that is already updated with the latest vulnerability updates. It also guarantees a reliable platform with zero downtime and the most important, offers 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 decisions of the cloud provider which results in limited platform customization options.
Data security is another critical area that poses serious concerns about Cloud Computing, especially the public cloud. Cloud providers have access to user data that can accidentally or deliberately be modified or leaked to external parties. Data ownership is still a vague field within the Terms of Service Agreements for Cloud Computing that raise questions about the accountability on the misuse of possible data events. Due to these concerns, cloud computing is still not the first option for governments, 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.