Cloud Computing – Part -I
Soumya Mondal
SOC2 Internal Auditor, cybersec, cloud & GenAI security consultant, author and blogger
Cloud computing is definitely the new sensation and in the age of Internet of Things (IoT) everyone willingly or unwillingly, knowingly or unknowingly, and importantly fortunately or unfortunately interconnected to this clouded world. Though the Cloud is part of everyone’s life, ironically cloud as a noun indicates “an indistinct or billowing mass, especially of smoke or dust” and as a verb “make or become less clear or transparent”. And in reality cloud computing holds this meaning in true sense.
It’s really complicated and a world full of uncertainty. Journey to the cloud for any organization has never been smooth and never would be. However, as all the cloud has a silver lining, cloud computing also brigs many fruits to us – accessibility, scalability, business continuity and so on so forth. Although this technological platform has unlocked many threat avenues which can result in compromising your most valuable asset – ‘data’, business model is rapidly transforming from a capital-intensive cost model (CAPEX) to an OPEX model defying all the odds.
The prime objective of this article is to assist students and newbies in understanding different could computing models, their applications and benefits, risks associated to the cloud computing, why businesses are embracing cloud and how they are planning their cloud journey. The article would be published in series. Encourage all of you to feel free to inbox me in case you wish to clarify any doubt. So here we go.
What is ‘Cloud Computing’
Let’s start with five essential characteristics of cloud computing which are (i) on-demand self-service, (ii) broad network access, (iii) resource pooling, (iv) rapid elasticity or expansion, and (v) measured service. National Institute of Standards and Technology (NIST) defines cloud computing as “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction”. So what does this mean to business? If there is a requirement of 1TB space for your SQL2008 Database within an hour, the administrator who manages storage in cloud computing platform would be able to allocate the necessary disk space to your application within the stipulated time.
In a nutshell, organizations can get whenever they want, whatever they want, exactly how much they want, and expand their business on-the fly just by paying the agreed pre-approved cost to the cloud computing service provider (CSP). They do not need to think of product and supplier selection, raising purchase order, awaiting delivery of the goods (in this case storage hard disk) and most importantly there is no dependency of in-house skill availability for configuring (attaching) the additional storage space to their existing environment.
Though virtualization is out of scope for this article, for the sake of clarity, virtualization is different from cloud computing. Virtualization means creating a virtual version of anything. Easiest example to understand is probably partitioning the computer hard disk in multiple ‘drives’. Though you have one physical hard disk, you are having virtually two hard disks and can run two different operating systems on two separate drives. However, virtualization can well be used as an underlying technology for building up the cloud platform.
Cloud Deployment Models
Now let’s look at different cloud deployment models. There are four models - private, public, hybrid and community cloud.
Private Cloud
As the name suggest, private cloud is designed for exclusive use by any particular organization. No multi-tenancy. However, different divisions within the organization can use the environment on sharing basis. For example, consider building up a server farm and hosting multiple copies of application on different servers in such a way that if the application on a server fails, the other server will automatically take that load. Is it sounding similar to having high-availability? Yes. It is. Now consider having multiple applications hosted on multiple servers in such a highly available scenario so that if any server hardware or any application fails or overloaded, then application hosted on other servers automatically start sharing the load. However, building up such infrastructure and maintain the skillset are very much expensive. So it’s generally not suitable option for SMEs. Mostly large organizations go for private cloud for robust availability and security.
Public Cloud
On the contrary, Public Cloud is a type of hosting which cloud services are delivered over a network for public use. Users do not have any control over the location of the infrastructure. The cost is shared by all users, and are either free or in the form of a license policy like pay per user. For example, many of you use ‘https://docs.google.com’ to save your documents. This is an example of public cloud which gives you free document management service up to 5 GB. And if you need more space, you can opt for a paid version.
In general, public clouds are suitable for organizations who aims to have a robust service at a reduced cost with minimum management overhead as the organizations do not need to maintain a skilled team or to buy high-end servers and storage devices. These types of clouds provide the best economies of scale and also inexpensive to set-up because hardware, application and bandwidth costs are covered by the provider. It’s a pay-per-usage model and the only costs incurred are based on the capacity that is used.
However, public cloud may not be the right fit for every organization. The model can limit configuration, security, and serviceability, making it less-than-ideal for organizations using sensitive data that is subject to compliancy regulations.
Community Cloud
The community cloud is comparatively a new concept than other two models. It’s a multitenant model providing a platform to a limited number of individuals or organizations across geographic regions to support their collaborative efforts in order to address common concerns and achieve common goals. Note that the access to the community cloud is restricted only to the participating members. For example, Microsoft implemented its Windows Azure Cloud service, a community cloud available only to the united State government, local, and federal government agencies. One of the biggest advantages of the community cloud is its ability to provide a secure collaborative environment to its members but the participants need to bear the initial setup cost, administration and support cost and also should agree on cost sharing model, responsibility and accountability towards managing the setup prior to avoid possible future conflicts.
Hybrid Cloud
Hybrid cloud model is a composition of two or more distinct cloud infrastructures (private, community, or public). Organizations generally use public cloud to interact with customers, while keeping their data secured through a private cloud. The selection of cloud deployment model depends on organization’s data / information security requirement. Other major factors are obviously reduced cost, less manageability, and easiness in collaboration. Therefore, it’s generally recommended to have a cloud strategy or cloud transition roadmap aligned to the data security requirement of the organization.
Cloud Service Model
First let’s understand what a service model is. The service model generally describes an approach which guides the designs, development, deployment, operation and retirement of services delivered by a service provider with a view to offering a consistent service experience to the customers. Here let’s look at the different services that cloud computing offers to users. As per NIST, there are in general three "service models" – software, platform and infrastructure.
Software-as-a-service
It offers an application to customer or organizations through a web browser. Best example could be Office 365 where users create and manage their documents in Microsoft's cloud environment. The application runs on a server hosted in the cloud and data is also stored in the cloud. The only thing you need is an Internet connection to access the data. Neither the application nor the data reside on the user’s computer.
SaaS applications are sometimes called Web-based software, on-demand software, or hosted software. In an enterprise scenario, service providers host applications in their data centers and customers access the applications and data over the Internet. Same application can be accessed by multiple customers and access control is done either by application itself or by using any 3rd party access control software. It is responsibility of the cloud service providers to manage customers' access to the applications, including security, availability, and performance.
SaaS is used in a number of common business areas, including customer relationship management (CRM), document management, accounting, human resource (HR) management, service desk management, content management and collaboration. There are literally thousands of SaaS vendors, but Salesforce.com is perhaps the best known example, as it is one of the first vendors to significantly disrupt a traditional software vertical. However, it's important to remember that the customers do not need to take any responsibility in terms of arranging server hardware or storage or applying security patch or feature packs (customization). They just need to purchase the service on a subscription basis. That's all.
Platform-as-a-service
PaaS provides the platform for developing such applications and services. Organisations are provided with the much needed environment in which the operating system and server software, as well as the underlying server hardware and network infrastructure are taken care of by the service providers, leaving the organisations free to develop and deploy software as per their business requirement. Instead of ready-made applications or services, here you find various development tools such as database management systems, enterprise service buses (ESBs), application servers, business intelligence (BI) and so on that could be used to support the applications and services developed.
The maintenance and upgrades of operating systems, database systems, directory services and the underlying infrastructure including backups is the responsibility of the service providers and the organisations only take care of the versioning and upgrades of their own developed software. But the catch is when it is mandatory that the underlying hardware be of a specific type or the underlying software be modified to support the deployed application, they might need to renegotiate with your existing supplier or to choose another one.
Infrastructure-as-a-service
There's probably no better way to explain IaaS but to resort to NIST definition of IaaS. NIST defines IaaS as "the capability provided to the consumer is to provision processing, storage, networks and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).”
In a nutshell, cloud service providers offers managed infrastructure, including storage, network and servers and their associated resources via dashboard or application programming interface (API). Organizations can have direct access to their servers and storage similar to the way they access servers hosted in data center but with much higher order of scalability. Basically organizations can build a “virtual data center” in the cloud opting IaaS and have access to many of the same technologies and resource capabilities of a traditional data center without investing in capacity planning or the physical maintenance and management of it. However, the maintenance and upgrading the operating system, database systems, applications, patching the operating systems and applications time to time is the responsibility of the organizations.
It's not end here. Several different flavors has sprung up in cloud computing and each has their pros and cons. Nowadays it’s no more limited to SaaS, PaaS, or IaaS; rather it’s XaaS. 'X' stands for anything you can probably think of - Security, Network, Storage, Database, Testing, Management, Communication so on so forth. Though discussing each of them will not be possible, however many of them will definitely be addressed during due course of time. Please keep an eye in future articles.