In this first post, we learn the fundamental basics of Cloud Computing, cloud characteristics and its advantages, different cloud implementation models, major cloud services providers in current market and different types of Cloud services offered by them.
What is Cloud Computing ?
In general, Cloud Computing is nothing but outsourcing datacenter operations, applications, or a section of IT operations to a service provider often referred as cloud company or cloud service provider. There are many cloud service providers but Amazon, Microsoft and Google are the top 3 cloud service providers and they define cloud computing as below
Amazon Web Services (AWS) describes Cloud Computing as it is the on-demand delivery of compute power, database, storage, applications, and other IT resources via the internet with pay-as-you-go pricing.
Microsoft Azure describes Cloud Computing as it is the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale. Users will typically pay only for cloud services they use, helping to lower their operating costs, run infrastructure more efficiently, and scale as the business needs change.
Google Cloud Platform (GCP) describes Cloud Computing as the capital investment in building and maintaining data centers is replaced by consuming IT resources as an elastic, utility-like service from a cloud “provider” (including storage, computing, networking, data processing and analytics, application development, machine learning, and even fully managed services).
IBM Cloud describes Cloud computing, often referred to as simply “the cloud,” is the delivery of on-demand computing resources — everything from applications to data centers — over the internet on a pay-for-use basis.
Cloud Computing allows Organizations to rent resources for data center operations rather purchasing them. This allows for a much lower startup cost and helps organizations minimize their capital expenses.
Cloud computing follows the utilities model where a provider will sell computing resources on demand model. The consumer of cloud services pays either monthly or by the amount of usage of the service. This allows a company or individual to pay for only what they use and has many additional advantages.
Uses of Cloud Computing
Below are some of the usecases where Cloud Computing is extensively used to meet the changing business needs
- Build Cloud Native applications to leverage containers and microservices architectures.
- Primarily used by startup companies to escape the capital and operational expense of maintaining physical IT infrastructure resources.
- Develop & Implement DevOps process
- Perform Backup & Recovery of Data, Disaster Recovery strategies.
- Deliver Software on Demand
- Stream audio and videos seamlessly
- Analyze small to large sets of Data & Process the Data in minutes
- Develop Machine Learning Models & Artificial Intelligence applications
- Build and Test Personalized applications in healthcare industry
- Develop real-time Fraud Detection and Prevention
Also Read: Storage Infrastructure Basics
Advantages of Cloud Computing
Organizations which adapt Cloud Computing services can leverage following advantages based on the type of cloud services they utilize. Different types of Cloud services are discussed in next sections.
Agility for developing new applications – Cloud Computing allows Organizations to innovate faster because they can focus more on developing applications that differentiate business and transform customer experiences rather than managing infrastructure and data centers. Many Cloud Service providers offers fast access to a broad range of technologies such as compute, storage, databases, analytics, machine learning, and many other services on an on-demand basis. As a result, IT teams can quickly develop and roll out new applications to experiment and innovate more quickly and frequently. If an experiment fails, IT teams can always de-provision resources without any risk.
Elasticity on demand – Before cloud computing, Organizations had to over provision infrastructure to ensure they had enough capacity to handle business operations at the peak level of activity. But with Cloud Computing technology, Organizations can provision the amount of resources that they actually need and instantly scale up or down with the needs of the business. This reduces costs and improves Organizations ability to meet users’ demands.
IT Cost Savings – Cloud Computing technology allows the Organizations to trade capital expense (data centers, physical servers, etc.) for variable expense and only pay for IT as they consume. Cloud computing eliminates the capital expense of buying hardware and software and setting up and running the servers in datacenter, it saves the round-the-clock electricity for power and cooling, and the IT experts for managing the infrastructure.
Deploy applications at Global scale to provide better user experience – With the cloud computing, Organization can easily deploy applications in multiple physical locations around the world with just a few clicks. Thus providing a lower latency and better experience for customers simply and at minimal cost.
Improved Performance – The Cloud Computing services run on a worldwide network of secure datacenters, which are regularly upgraded to the latest generation of fast and efficient computing hardware. This offers several benefits over a single corporate datacenter, including reduced network latency for applications and greater economies of scale.
Enhanced Security – Many cloud service providers offer a broad set of policies, technologies, and controls that strengthen Organizations security strategy overall, helping protect data, apps, and infrastructure from potential threats.
Deployment at Speed – Cloud Computing technology offers self service and on demand, so even vast amounts of computing resources can be provisioned in minutes, typically with just a few mouse clicks or couple of lines of code, giving businesses a lot of flexibility and taking the pressure off capacity planning.
Less Management, More Productivity – Unlike On-site datacenters, Cloud Computing does not require a lot of racking and stacking, hardware setup, software patching, and other time consuming IT management headaches. Cloud computing removes the need for many of these tasks, so IT teams can spend time on achieving more important business goals.
Reliability – Cloud computing provides data backup, disaster recovery, and business continuity solutions in much easier way and less expensive because data can be mirrored at multiple geographical redundant sites on the cloud provider’s network.
Audit and Compliance – Cloud Computing allows Organizations to audit and log every actions or clicks that has been performed on the various cloud services that are consumed by the Organization. This feature allows Organizations to monitor and manage the user access controls and risk management procedures.
Easy Integration (APIs) – Cloud Computing provides integration capabilities to connect with other locally built applications or Cloud based applications over internet. This feature helps organizations to quickly add value the changing business needs.
Types of Cloud Services
Cloud service models are characterized by the term as a Service and are accessed by many types of devices, including web browsers, thin clients, and mobile devices. As cloud computing has grown in popularity, several different models and deployment strategies have emerged to help meet specific needs of different users.
Each type of cloud service, and deployment method, provides different levels of control, flexibility, and management for the users. Understanding the differences between these services & deployment strategies will help users decide what set of services is right for their needs. There are three primary service types
Infrastructure as a Service (IaaS)
- It is the basic building blocks for cloud IT and typically provide access to networking features, computers (virtual or on dedicated hardware), and data storage space.
- Infrastructure as a Service provides the highest level of flexibility and management control over IT resources and is most similar to existing IT resources that many IT departments and developers are familiar with today.
- The cloud consumer purchases a basic computing hardware platform and can build their solutions on top of that. The consumer does not manage or control the underlying cloud infrastructure such as physical servers, SSD disks, networking routers/switches etc but has control over operating systems, storage, deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
- IaaS is the commonly and widely used service than the other cloud services. This will give maximum control over the IT infrastructure and users can build their own networking and security control as needed.
Platform as a Service (PaaS)
- Platform as a Service sits on top of the IaaS and users will have less control over underlying when compared with IaaS.
- The consumer of this service does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and application hosting environment configurations.
- Platform as a Service offers the compute and operating systems as a service and allows customers to install their applications on the Cloud platform.
- The cloud provider takes responsibility up to the operating system level, including all hardware and OS software. The consumer can deploy their applications quickly without having to purchase and install their own servers and associated equipment.
- This service removes the need for organizations to manage the underlying infrastructure and allow IT teams to focus on the deployment and management of their applications.
- This helps IT teams to be more efficient as they don’t need to worry about resource procurement, capacity planning, software maintenance, patching, or any of the other undifferentiated heavy lifting involved in running applications, thus allowing for rapid deployment of applications.
Software as a Service (SaaS)
- SaaS sits on top of the PaaS and the consumer of this service does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities.
- The Software as a Service (SaaS) model is where the customer of the service accesses application software that is owned and controlled by the cloud company that has complete responsibility for management and support of the application. Some best examples are gmail, dropbox etc.
- All networking, processing, storage, and applications are offered as a service in this model. Business applications are good examples of SaaS and can include customer relationship management, enterprise resource planning, human resources, payroll, and software development applications. Hosted applications such as email or calendars that are accessible from a browser are examples of SaaS.
- The service allows even small to medium-sized businesses to implement advanced technologies at a reasonable metered cost. New features can be quickly implemented, and there is no need for a staff to manage these communication services since the SaaS cloud provider takes responsibility.
Many cloud service providers offer more descriptive terms in their marketing and sales offerings, including Communications as a Service (CaaS), Anything as a Service (XaaS), Desktop as a Service (DaaS), and Business Process as a Service (BPaaS), to name a few of the additional offerings. However, all of these new services fit into either SaaS, IaaS, or PaaS.
Communications as a Service (CaaS)
- This Service offers hosted voice, video conferencing, instant messaging, email, collaboration, and all other communication services that are hosted in the cloud.
- These outsourced corporate communication services can support on-premise or mobile users accessing the applications hosted in the cloud. Another common term for this service is Unified Communications as a Service (UCaaS).
Anything as a Service (XaaS)
This service can be described as offering complete IT services as a package. Anything as a Service is the combination of the services described in this post. It is a very broad term that is a catchall of the various service offerings.
Desktop as a Service (DaaS)
- This service offers virtual desktops that is hosted in the cloud and accessed by desktop computers, laptops, tablets, and phones as well as any thin client solution.
- This solution is sometimes called VDI, which stands for Virtual Desktop Infrastructure.
- All desktop applications are hosted in the cloud and can consist of any type of application such as spreadsheets, word processing, and any other common application.
- The DaaS provider manages all maintenance and configurations as well as licensing and version updates.
Business Process as a Service (BPaaS)
- This service is a specialized area that outsources many of a company’s day-to-day operations such as inventory, shipping, supply chain, finance, and other services to the cloud.
- BPaaS is similar to SaaS except that it focuses specifically on applications that support a company’s business operations.
- This allows for small and medium-sized businesses to access sometimes very expensive applications from a BPaaS service provider that pools its resources and allows for economies of scale in providing these services.
Do you know What is Disaster Recovery as a Service (DRaaS) is ?
Accountability and responsibility based on service models
When moving to the cloud, a company experiences a large shift in responsibilities and accountability that must be defined in service agreements. Service level agreements (SLAs) define who is accountable for what and who has ownership of responsibility for each part of the offered service. This can be very complex because many different models and responsibilities are defined.
Types of Cloud Delivery Models
Cloud Computing offers different types of Cloud Deployment Models. Not all clouds are the same and not one type of cloud computing is right for everyone. Several different models, types, and services have evolved to help offer the right solution for various needs.
To adapt Cloud Computing, the Organization needs to determine the type of cloud deployment, or cloud computing architecture, that the cloud services will be implemented on. There are three different ways to deploy cloud services:
Private Cloud
- Private Cloud provides privately shared virtualized resources for a single/dedicated customers. In most cases this deployment model is the same as legacy IT infrastructure while using application management and virtualization technologies to try and increase resource utilization.
- The Cloud computing resources in a Private Cloud are used exclusively by a single business or organization. A private cloud can be physically located on the company’s on-site datacenter. Some companies also pay third-party service providers to host their private cloud.
- A private cloud is one in which the services and infrastructure are maintained on a private network. Connectivity will be established over the internet, fiber and private networks.
- This type for deployment model is best suited for secured confidential information and core systems.
Also Read: Server and application Virtualization techniques
Public Cloud
- Public Cloud provides publicly shared virtualized resources for a multiple customers.
- Public clouds are generally owned and operated by a third-party cloud service providers such as Amazon Web Services, Microsoft Azure, Google Cloud etc. which deliver their computing resources, like servers and storage, over the internet.
- With a public cloud, all hardware, software, and other supporting infrastructure is owned and managed by the cloud provider. Organizations access these services and manage their account using a web browser, APIs and SDKs.
Hybrid Cloud
- Hybrid cloud is the combination of both public and private clouds, that are connected together by technology that allows data and applications to be shared between them.
- By allowing data and applications to move between private and public clouds, a hybrid cloud gives business greater flexibility, more deployment options, and helps optimize existing infrastructure, security, and compliance.
- The most common method of hybrid deployment is between the cloud and existing on-premises infrastructure to extend, and grow, an organization’s infrastructure into the cloud while connecting cloud resources to internal system.
Community Cloud
- Community clouds are designed for a specific community of interest and shared by companies with similar requirements for regulatory compliance, security, or policy.
- Designed to help member organizations share a common goal and reduce cost. Infrastructure is shared between several organizations from the similar community. Each organization has an isolated environment.
- Community clouds can be owned and operated by a group of companies, a specialized cloud provider, or other interested parties.
- Community Cloud can exist on or off a company’s datacenter or hosting facility.
Accountability and responsibility based on Delivery models
- Security differences between models – It is very important to take security into consideration when selecting a service model. Issues such as data confidentiality, integrity, regulatory issues, and availability must be understood and implemented. These factors include patching of operating systems and applications, intrusion detection and prevention systems, firewall rules, and policies. Ultimately it is the owner of the data who is responsible for security.
- Functionality Validation – It is the process of testing and verifying that cloud deployment is operating and performing as expected. The validation and testing required will follow how cloud is architected, with close attention paid to who is responsible for what aspects of the service and if the service level agreements are being met.
- Multitenancy issues – Software as a service provider may offer a single application to be shared by many customers. For example, many customers may access a single database application hosted in the cloud but only have access to their own area of the shared database application. With this multi-tenancy approach, application testing must validate that each individual customer does not have the ability to change or configure the application in any way that would affect the other customers sharing the application. Further validation should determine the maximum number of concurrent users based on hosts resources, licensing, and performance criteria.
- Data segregation – Since cloud computing is a shared resource, the cloud provider must test and validate that each cloud consumer has data segregation from other cloud consumers and the data is protected from unauthorized access. Each cloud consumer should have exclusive access to their data stored in the cloud and the data should be segmented and separated between customers.
- Network isolation – Cloud service providers may offer many types of service variations with each of their offerings. IaaS, PaaS, and SaaS offerings as well as the many other types of services may be offered in a shared network or in a private and network isolation for Organizations own exclusive use. A shared network environment is less expensive but much less secure than an isolated cloud network protected by security devices, such as firewalls.
- Laws and regulations – As part of any cloud deployment, the data stored in the cloud may fall under various laws and regulations by local, state, national, international, and industry organizations. It is important to validate that the applications and stored data meet these laws and regulations. The cloud service provider can assist with the validation. However the responsibility is ultimately that of the cloud consumer who owns the data.
- Orchestration platforms – Orchestration platforms automate the provisioning of cloud services and often include a self-service dashboard that allows the consumer to manage and deploy cloud services with a web browser. The automation used by cloud providers allow for fast deployment of new services and applications. Consumers can leverage the service providers automation tools or configure their own Orchestration platforms to deploy and manage the applications in the cloud.
Cloud Computing characteristics and features
- Elasticity – It is the ability to add and remove additional resources automatically such as storage, CPUs, memory, and even servers. This allows the organizations to automatically scale up or scale down as their workload increases and decreases based on the workload and demand.
- Global Scalability – Cloud Service providers offers their services in multiple regions across the globe to provide fault tolerance and to allow improved performance for the customers. Each region will then have two or more availability zones which are physically separated data centers in different locations within a same region and with redundant power and network.
- Self service on demand – Cloud services offers customers to access a self-service portal and instantly create additional servers, storage, processing power, or any other services on demand. If the computing workload increases, then additional cloud resources can be created and applied as needed. This feature allows company’s to consume cloud services only as needed and terminate them when they are no longer required.
- Pay as you Grow – In traditional datacenter operation, the infrastructure must be over provisioned considering the peak usage or future requirements. Many cloud providers offers organizations to select CPU, memory, storage, and application needs, and the charges are based on actual usage. This is very cost effective cloud feature as there are no upfront costs and the costs are based on the consumption of the service. Since there is no over provisioning for future growth, resources are not wasted.
- Chargeback – Chargeback is basically billing for cloud resources that are consumed. It allows for budgeting of computing expenses at the individual business unit level to track usage and accounts for who is using the cloud services. It allows clear visibility into individuals or departments that are using the cloud services and ensure accounting departments to charge billing of cloud services.
- Access Anywhere – Cloud offers their users the ability to access the cloud resources from anywhere in the internet from a variety of devices such as laptops, tables, smartphones, and thin or thick clients. Access can be over a corporate network sitting behind a firewall or public over the Internet.
- Resource pooling – Resources can be pooled when using a multitenant business model where computing resources are set by consumer demand and can be allocated based on usage and demand.
- Multitenancy – This feature allows a software package to serve multiple tenants. This is a very cost-effective approach where the cost of the application and its maintenance is shared among multiple customers across the application.
- Cloud Bursting – Cloud bursting is a hybrid model that is most commonly found in private cloud deployments but also configured to use public cloud services during peak workloads. A private cloud can burst to a public cloud service during times when additional compute resources are needed.
- Rapid Deployment – This is the ability to provision and deploy cloud based applications in a very short time window. With cloud services, a rapid deployment model uses automation to deliver services very quickly.
- Automation – This feature allows cloud customers to automate the deployment and monitoring of applications. Everything from network, storage, and compute can be virtualized and automated. This makes rapid deployment possible and enables users to have control over their cloud usage.
In the next post we will look at Virtualization & Hypervisor basics, an important core technology to create Cloud enabled Datacenter and services.