"We are navigating a Digital Transformation phase, and data is the new oil!"
That's what I have been hearing from customers for the past 2.5 years, even pre-pandemic.
I am sure you can resonate with that phrase.
In the world we live in today, the majority of companies are transforming their businesses using data. Companies are moving from a traditional business to a "Technology company that solves X problem."
To be agile and efficient, increase time to market, and provide an excellent delivery of products and services to customers, we frequently see organizations leveraging cloud capabilities—both on-premises and off-premises. Connectivity, agility, and speed are the front force enabling Digital Transformation.
In this article, I want to decomplexify the terminology and explain the models, the advantages of cloud computing and of using multiple clouds, and the benefits of doing so.
Table of contents
What Is Cloud Computing?
According to the National Institute of Standards and Technology (NIST), a Cloud Computing definition is a model for ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Therefore, this is the meaning of cloud computing.
According to the NIST, the cloud model consists of five essential characteristics, three cloud computing service models, and four deployment models.
The Institute also defines five fundamental characteristics for establishing a cloud solution architecture of cloud computing.
These characteristics are guidelines for companies providing cloud services to clients and companies that are establishing their data centers and creating their private cloud. So what are examples of cloud computing?
The five characteristics of Cloud Computing are:
- Self-service: the ability to take advantage of computing resources (e.g., memory, storage, and computing) and other services easily and efficiently, in which the customer consumes, provisions, and monitors its resources;
- Broad Network Access: the ability to leverage a wide network that can be accessed by multiple users in multiple regions. It is important to take into account the connection's bandwidth and also the latency that the business is willing to endure;
- Resource Pooling: a large repository of resources is needed to make cloud computing deliver everything it sets out to deliver; a grouping of resources is necessary to efficiently make available computing resources for different needs, using them in the most optimized way;
- Elasticity: the ability to resize computing resources (CPU, memory, and storage) manually or automatically according to the demand for access to services available in the cloud. Elasticity helps, for instance, in periods of peak access, such as Black Friday;
- Measured Service: the ability to measure and monitor what is being consumed in the cloud. This measurement helps in the adequacy of these resources, being possible to adjust them according to the demand.
Cloud Deployment Models: Private; Public; Hybrid; Multi-Cloud
When choosing a cloud strategy, a company can choose from four ways of implementation:
- Private Cloud: all services and computing resources (memory, CPU, networks, and storage) reside on your premises, and there is no sharing of resources with other companies. The private cloud can be managed by your company or by a third party;
- Public Cloud: all services and computing resources are available in a virtual cloud computing environment and can be accessed over the internet. The most common public cloud computing providers are: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Alibaba;
- Hybrid Cloud: this cloud model consists of two or more types of cloud computing (e.g., the company's data and applications are in the private cloud, and other workloads are in the public cloud). In this model, it is essential that the company has some kind of good management, orchestration, and portability between the clouds to ensure that the infrastructure is offering efficient resources to all of its users;
- Multi-Cloud Strategy: while hybrid cloud computing refers to two of the same type of cloud coexisting, multi-cloud strategy refers to two or more clouds, regardless of type (for example, a company using Azure services and AWS).
Each cloud model requires the presence of the five characteristics we mentioned above.
Whether your company is building its private cloud infrastructure, outsourcing its management, or simply using public cloud services, you must ensure you have the structure to accommodate all resources in a user access portal with the defined consumption metrics.
Cloud Service Models and Its Limitations: IaaS, PaaS, SaaS
When defining Cloud service models, we must consider which layers of the infrastructure are the service provider's responsibility and which will be in the hands of the user. For each cloud service model, infrastructure responsibilities must be well-defined.
Below, I explain each one of them and put an explanatory chart for better understanding.
Infrastructure-as-a-Service, or IaaS
In the Infrastructure-as-a-Service service model or IaaS, the cloud service provider is responsible for the computing infrastructure. However, the company is responsible for managing virtual machines, configuring networks, and choosing the operating system.
IaaS is similar to managing and maintaining servers in a private data center. Still, the company does not need to "touch" the servers or worry about having administrators dedicate hours and hours to building the entire IT infrastructure.
Still, the company needs employees who know how to manage infrastructure services, as IaaS does not remove all responsibilities from the customer.
Limitations of IaaS
It is important to remember that, by leaving the infrastructure in the hands of the cloud service provider, the company is aware that there can be downtime - downtime is a possible downtime in the system, which leaves the client's websites and other applications out of service.
Platform-as-a-Service, or PaaS
In Platform-as-a-Service or PaaS, the customer is responsible for the application and software and does not have to worry about managing the virtual machine or operating system. The service provider, in this case, offers different "flavor" options for the customer to choose how they prefer their virtual machine to be used.
Limitations of PaaS
While the customer is responsible for fewer layers of the infrastructure, their choices are also limited as they are at the mercy of what the service provider can offer.
Some applications run better on one type of server and configuration, so it's up to the customer to know which PaaS service is best to host their application.
An example of PaaS is Cloud Run from Google Cloud Platform (GCP). The client can create and deploy applications in different programming languages, but only those compatible with the service: Go, Python, Java, Node.js, and NET.
Software-as-a-Service, or SaaS
Software-as-a-Service (SaaS) services are offered to end users, usually through a browser, in a complete way: the user does not have to worry about running the application in their environment, and they do not need to worry about the disks for storage and computing resources.
The service provider does all the application updates, bug fixes, and maintenance. The user doesn't have to worry about these maintenance activities.
One example of SaaS is Slack, where you have all the infrastructure being offered by the company. When you open Slack on your work or personal computer, all your files are still there ("in the cloud"), accessible from any device and any location worldwide. The user's only concern is putting their data and information in the software or application.
Small companies and startups can benefit from using SaaS services since investing in infrastructure and creating your own data center (even if it is small) are not cost-effective.
Amazon, for example, has a program that offers credits to small business owners and startup founders. Other examples of SaaS are Gmail and Salesforce.
Limitations of SaaS
As the customer uses ready-made software, he has no control over its functionality. When choosing the best SaaS solution, it is important to consider the needs of the business applications and the service provider's limitations. Another limitation is the control that the company leaves in the hands of the service provider.
Benefits of Leveraging Cloud Services
Resource pooling, scalability, and metered services are some of the characteristics of cloud implementation and the benefits of cloud computing of this consumption model. Other benefits include:
- High Availability: resources are always available as they are redundant and may be available in different regions (of the world!);
- Agility: agility in provisioning, implementation, and consumption model. There's nothing more frustrating for software developers and teams who want to implement new functionality, product, or application not having the infrastructure resources available (imagine reducing provisioning from weeks to just a few hours! Amazing, right!?);
- Geographic distribution: companies serving global markets can benefit from the expanded geographic distribution that cloud providers offer.
- Disaster recovery: due to the redundancy and geographic distribution of resources, using cloud services means that data and workloads in a given region can be effectively returned and saved in another region, reducing risks and helping business continuity.
- OpEx model (or Operational Expenses): instead of the company buying servers and machinery and putting them in a data center (which also has a cost of rent, energy, maintenance, light, etc.), the cloud consumption model is less complex. The company does not need to have a physical data center and only pays for what it consumes. The cost of this consumption is allocated to the operating costs column on the balance sheet. There is no asset depreciation as in the CapEx (Capital Expenses) model an organization's money is invested in acquiring, maintaining, and improving a company's fixed assets, such as equipment, machinery, factories, technology, among others.
Leveraging cloud solutions and working with different cloud models and cloud providers can bring agility to your company, efficiency for your team, and speed to an organization navigating Digital Transformation.
I hope you enjoyed this article!