Chapter 1. Cloud Computing Fundamentals
Over the last decade, cloud computing has changed the way we build and deploy software. It is now easier than ever to deploy highly scalable, resilient, and secure solutions to a global audience, in many cases at a fraction of the previous cost.
John Kilmister, Software Architect and Microsoft Azure MVP
What Is Cloud Computing?
Before delving into learning Microsoft Azure, it’s essential first to understand cloud computing. Cloud computing is a significant technological innovation that delivers various services through the internet, including web servers, databases, data storage, virtual machines, applications, network infrastructure, security tools, software, and other IT infrastructure. Cloud computing refers to the virtual storage and access of data and information over the internet, with the actual computing processing transpiring in the cloud.
Understanding the foundational principles of cloud computing is essential for designing and developing solutions in the cloud. As a public cloud platform, Azure provides secure, scalable, reliable, cost-effective, and easy-to-manage ways to build on the cloud. By leveraging Azure, organizations and users developing with it can take advantage of various cloud services and tools to innovate and solve complex business problems.
As a modern, game-changing technology, cloud computing enables businesses, organizations, and teams to access a wide range of IT resources on demand through the internet. With Azure, we can build and deploy cloud-based solutions that are secure, scalable, and cost-effective.
John McCarthy’s Interesting Cloud Computing Prediction
John McCarthy, an American computer scientist and cognitive scientist known as the father of artificial intelligence, gave some interesting insights about cloud computing in his speech at MIT’s centennial celebration in 1961. He suggested that computing could be sold like a public utility, just like water or electricity.
Cloud computing makes life easier for us. A practical example is the possibility of saving our photos, videos, and files into cloud storage with virtually unlimited capacity instead of keeping them on a local storage device with limited storage. Another benefit is virtualizing web servers and databases instead of having the physical infrastructure or servers in costly data centers.
Software engineering and modern IT innovation are a few significant advantages of the cloud. Adopting and implementing cloud computing provides a fully managed cloud computing infrastructure and services with the benefits of scalability, autoscaling, availability, and performance at a flexible global scale.
The different cloud computing solutions give us tools and capabilities to handle peak loads based on demands at any time on a global scale. This is complicated, expensive, and time-consuming in an on-premises environment. Azure seamlessly handles scenarios like this through horizontal or vertical scaling or a combination of both.
Benefits of the Cloud in Software Engineering and IT
Cloud computing and software engineering are both evolving rapidly. The evolution of computing in the cloud, along with innovations like machine learning (ML), the Internet of Things (IoT), edge computing, quantum computing, and big data, has caused an increased demand for skillsets and people who can work in these technologies and platforms in the cloud.
Computing in the cloud enables software developers, engineers, and even IT professionals to create, build, test, and deploy technical cloud solutions productively, effectively, and securely. Software engineering teams still need to be expanded to work and develop on premises, and they encounter technological gaps. They may experience the risks of missing the advantages of developing cloud computing systems.
Engineering teams, business teams, and organizations may risk missing the great features, benefits, and capabilities that cloud computing provides. Cloud engineering offers better speed of development, testing, maintainability, automation, scalability, and so much more.
With the advancement of modern automation processes like infrastructure as code (IaC) becoming available for cloud infrastructures, benefits such as infrastructure automation are making software development easier for developers and DevOps teams. Through the IaC approach, there will be more consistency and routines for configuring systems with the capability of replicating systems to several environments.1
In addition to this, solutions and platforms using low-code/no-code like Power Apps, Azure Logic Apps, AI Builder, etc., on the cloud also help IT professionals with fewer programming skills and less experience to build modern and smart applications quickly on demand. Infrastructure as code technologies and low-code/no-code solutions will be discussed later in this book.
To complement the benefits the cloud has for engineering teams, IT managers can easily manage their projects and collaborate with their teams by working Agile with available modern and remote collaboration tools in the cloud. For example, Azure DevOps is an all-in-one collaboration suite used by operations and development teams to plan, build, test, deploy, and monitor applications. It helps cover the entire application lifecycle, including Agile project planning, source code versioning, continuous integration and continuous delivery (CI/CD), testing plans, artifacts, and integrations. We will dive more into Azure DevOps, cloud development integration tools, and infrastructure automation and management in Chapter 11.
Digitalization and modernization come with great benefits; however, they also come with challenges. These include the challenges of preparing, transforming, and adapting to fast-changing and evolving technologies. These barriers can be handled by learning the foundations of cloud computing. Instead of having our resources like databases, applications, servers, or infrastructure in physical data centers or on premises, we have these resources on the cloud or the internet.
Note
In cloud computing, a data center is a physical facility that houses many servers and other computing equipment. Consider a data center a place or physical location meant to provide a centralized place for storing and managing servers for databases and applications that users can access remotely over the internet.
Data centers are the backbone of cloud computing. For example, in Azure, they are the infrastructure necessary to deliver cloud-based services, including storage, computing power, and network connectivity. A data center’s physical layout and design are planned to ensure high availability, security, and energy efficiency. They are equipped with redundant power and cooling systems, backup generators, and other measures to ensure continuous operation, even during a power outage, bad weather conditions, or any type of disruption. They also employ strict security measures with biometric authentication of whoever enters the premises. Security systems detect intrusion to protect the resources and assets within the data center premises.
Businesses and organizations consider cloud computing technology a good and strategic option because of its speed, reliability, financial savings, productivity, efficiency, security, performance, and more. By the end of this chapter, you will learn the specific benefits cloud computing has for different categories.
Cloud computing has been a popular option for many because of the growing demand and evolution of technological innovations over the past decades. Organizations want to improve and modernize their systems to innovate with the new trends in technology. Computing in the cloud is expanding and continues to grow; our mission to increase sustainability is also one of the great drivers of cloud innovation.2
Cloud Computing Versus Virtualization
Cloud computing and virtualization both create useful virtual environments. Hosting compute and data resources on the cloud is better than a virtual machine for a web server or databases hosted in an on-premises environment. Hosting in the cloud provides efficiency, flexibility, reliability, global scalability, and security.
The cloud is an environment, while virtualization is a technology that enables us to virtualize hardware to create and simulate several machines or dedicated resources. The cloud is an IT environment that pools and shares scalable resources across a network. Cloud environments are created to activate the extraordinary capabilities of cloud computing, such as running workloads within it.
Note
Cloud computing provides on-demand resources for computing, storage, network, platform, web applications, and infrastructure over the internet or cloud. These are pools of virtual services and resources hosted on the cloud, which is accessible by its users anywhere in the world. Cloud administrators can manage these cloud resources through self-service administrative portals—for example, Microsoft Azure Portal for Microsoft cloud resources.
Cloud Hypervisor: The Key to Virtualization in the Cloud
Hypervisor technology is emerging as a vital tool in virtualizing resources and is driving modern innovation in cloud environments. Hypervisors make resources and applications in the cloud available to their users remotely. Accessing and managing cloud resources over the internet gives organizations and IT better control in managing their systems, applications, data, and infrastructure in the cloud environment. Hypervisor technology is illustrated simply in Figure 1-1.
The emerging transformation to digitalization and rising demand for better service expectations are resulting in building more modern and reliable applications. For these reasons, organizations are considering migrating or are already migrating their enterprise applications from on-premises virtual machines to cloud environments.
An excellent example of the use of hypervisors in cloud computing is the Microsoft Azure cloud platform. Microsoft uses a native hypervisor on Azure called Azure Hypervisor. It enables deployments of virtualized machines, web servers, database servers, enterprise applications, web services, etc., on the cloud. The hypervisor was initally based on Windows Hyper-V. It provides various virtualization deployment, management, monitoring, and security features.
Even with all of the benefits just described, migrating existing enterprise applications to the cloud is a challenging journey. It requires careful planning, implementation of good strategy, and more resources to rearchitect or rewrite systems or applications for cloud upgrades. Through the technology of virtualization with the hypervisor, it is possible to migrate existing on-premise workloads to any cloud computing platform faster while investing less time, money, and resources.
Note
Virtualization technology simulates resources and environments from a single physical hardware system. Behind this technology is the software called a hypervisor, which has the capability to distribute a system into secure and distinct environments known as virtual machines (VMs). The VMs we use on our traditional web servers rely on the ability of a hypervisor. VMs are emulations of computers running on top of a hypervisor.
Today, containerization is one of the better alternatives to VMs. Unlike a VM, a container is a lightweight, portable, and isolated software unit that enables us to run multiple containers on a single host machine. Containerization allows us to run applications and services on the cloud.
In the later chapters of this book, you will learn more about Azure’s different virtualization, infrastructure, and container solutions. In Chapter 13, you will learn more about Microsoft Azure cloud migration concepts and solutions.
Evolution of Cloud Computing
Earlier computing technologies were mainframe computers, which provided extensive computational capabilities. Mainframes were powerful, highly reliable, and specialized for large data movements and massive input/output (I/O) operations. Large organizations mostly used them for bulk data processing. Mainframes worked on batch processing.
There were different stages of earlier computing before we started using dynamic cloud platforms like Microsoft Azure. However, the early mainframe computer systems are similar to modern cloud computing platforms.
For example, both use a client-server model and thin clients. The reason why many organizations and institutions are migrating to the cloud is because of cost savings, increased productivity of IT teams, speed, availability, flexible scaling, efficiency, performance, and security. The earlier cloud computing technologies have evolved to create more dynamic technology solutions and offerings like the public cloud, which platforms like Azure provide.
Mainframe computing
Mainframe computing utilizes large, high-performance computers to complete critical tasks. It is also referred to as big iron and uses a single unit of hardware like a huge mainframe box with several processors, centralized storage, and a large amount of memory. IBM was the pioneer of mainframe computers, which are mainly client/server-based systems. They offer high performance and significant processing power to handle massive data like transactions and calculations in real time.
Mainframe characteristics include utilizing time sharing, high security, and support for batch processing. The drawbacks of the mainframe are that they are expensive to maintain and do not support the X86 architecture. A significant challenge of mainframe computers is the limited amount of skilled engineers who can maintain them.
Cluster computing
Cluster computing consists of tightly coupled computers (also known as nodes) that work together to reach a single goal and purpose: to execute tasks. A cluster’s components are connected through a closed group of local area networks (LANs). When multiple computers are clustered, they share the computation tasks like a distributed system.
Cluster computing is commonly used for implementations of business requirements and optimization of performance: types include high-availability, high-performance, and load-balancing clusters.
Cost-effectiveness, scalability, high availability, and speed processing are some of the benefits of using cluster computing. These can be implemented in real-life use cases like search engines, earthquake simulation, and weather systems.
Earthquake simulation is an exciting and valuable application because earthquake dynamics are significant and challenging in geophysics and computer modeling because of their highly nonlinear nature. To learn more about these earthquake simulation studies utilizing cluster computing, please read "NaradaBrokering: A Distributed Middleware Framework and Architecture for Enabling Durable Peer-to-Peer Grids" and “Study Uses Supercomputers to Advance Dynamic Earthquake Rupture Models”.
As noted, cluster computing is composed of multiple computer systems called nodes. These nodes are used together to execute tasks. This type of computing has expanded considerably in modern days.
Azure offers high-performance computing (HPC), which integrates resources from storage, computing, and networking with workload orchestration.
Grid computing
Grid computing is a subset of parallel and distributed computing in which clusters of computers and other loosely coupled computers perform a large task. The computer resources can be geographically spread out in different locations or in several computing clusters that form the grid. The advantage of this is that data is processed quickly because the data is stored on all computers in the data grid.
The computer systems on the grid in the same network work together and serve as a virtual supercomputer. All systems in the grid use compute resources like storage capacity and processing power.
Cloud computing
Cloud computing is considered fifth-generation computing. The evolution of mainframe computing, grid computing, and cluster computing created an enormous path of accelerated innovation that drove and enabled the modern computing we have today. The technology of cloud computing is widely used, and we are continually exploring more of its capabilities in our modern digitalization.
Based on Foundry’s Cloud Computing Study 2022, over 40% of companies are planning to migrate their data integration, disaster recovery, business intelligence (BI), data warehousing, data analytics, and backup to the cloud.
Our Journey to the Modern Cloud
Advances in digitalization are amongst the most impressive and impactful technological innovations in our history. When I was studying computer science in the 1990s, I used small-capacity storage floppy disks to save my documents and photos.
Using the cloud, we have many alternatives and an enormous capacity to collect and store data. The data we store on the cloud is portable and accessible anywhere. Portability of accessing data and getting the information we need when we need it, wherever we are, provides huge benefits and is also practical.
Modern cloud computing delivers reliability, scalability, agility, cost savings, and portability to our applications and resources globally. Azure compute services, which we will explore in Chapter 3, enable us to build, manage, and scale cloud computing applications and services.
Cloud Computing Deployment Models
Cloud computing deployment models give us a descriptive overview of cloud computing platforms and their various categories, helping us identify essential facts like who has access to the cloud, how it is hosted, and what is implemented.
Figure 1-2 shows some commonly used cloud deployment models: public cloud, private cloud, and hybrid cloud. Other deployment models, such as community cloud and multi-clouds, are trending and in demand. These deployment models work the same way by virtualizing servers’ computing power into segmented applications with speed, reliability, scalability, and massive storage capacities.
Public Cloud
A public cloud infrastructure is available to the public or any organization using or selling cloud services. A public cloud platform is a service provided by cloud providers like Azure. The public cloud vendors offer cloud storage and computing resources (operating systems, CPU, memory, storage, web servers, applications, or databases) that are securely shared among its customers with other organizations or tenants of the cloud. The public cloud is offered to its users for a subscription fee or on a pay-as-you-go basis.
For example, in Azure, you can start using that platform as an individual by signing up for a free account with a pay-as-you-go type of subscription with included free Azure services. Many organizations globally have adapted and evolved to use the public cloud as their central platform for IT infrastructure and services, as illustrated in Figure 1-3.
Advantages of using a public cloud
Whether your business is focused on cost reduction, global scale, or better administrative management, or it wants modern solutions with enhanced security, there are many great benefits to moving to the public cloud. Services available by migrating to the cloud include:
-
Cost effectiveness and cost management
-
On-demand services and portability
-
Scalability and reliability
-
Sophisticated and modern solutions
-
Flexibility in administration through self-service cloud management portals
-
Monitoring, analytics, and report visualization
-
Resource pooling
-
Security and privacy
-
Disaster recovery and geolocation
Private Cloud
A private cloud infrastructure is operated and owned by one organization: on premises or off premises. An organization utilizing private clouds uses cloud computing technology with considerations for privacy and security. This means that access to the resources in the IT infrastructure within the organization is centralized. Trust boundaries define the organization’s administration of private clouds.
As shown in Figure 1-4, a private cloud infrastructure and its resources are typically managed on the organization’s private cloud on a virtual private network. Organizations that use the private cloud in their IT infrastructure are responsible for managing and maintaining their infrastructure.
Some institutions with special requirements and IT policies requiring enhanced security and control over the cloud infrastructure use private clouds. Financial institutions, government agencies, and organizations that require advanced security and strict privacy usually prefer this cloud.
Advantages of using a private cloud include:
-
Enhanced privacy and security since resources are not shared with others
-
Increased control over the infrastructure and owned resources
-
Compliance with business-critical security and regulatory compliance requirements
-
Flexibility to customize the environments based on the on-demand requirements of the organization or business
Community Cloud
A community cloud is a hybrid form of the private cloud. These multi-tenant platforms enable different organizations to work on a shared platform. This type of collaborative cloud is rarely mentioned publicly, but it is used widely.
Institutions and organizations that use community clouds include:
- Government
-
Most cloud providers offer community clouds for governments; they are known as clouds for the government. For example, cloud provider Amazon AWS offers Cloud Computing for Federal Government while Microsoft has Azure Government for US government agencies and their partners. Clouds for the government sector are community clouds meant explicitly for the government since they have legal, security, and privacy regulations, processes, and services that require constant communication and data transactions between different departments. They all operate on the same infrastructure, with benefits and shared resources.
- Healthcare
-
The US healthcare sector is regulated by Health Insurance Portability and Accountability Act of 1996 (HIPAA) compliance. This compliance holds and controls the security and transfer of sensitive patient record information such as medical records exchanged between hospitals and laboratories. Healthcare sectors adopting the cloud use community cloud providers that adhere to HIPAA regulations. Aside from compliance, the healthcare sector is also adopting cloud computing technology to improve healthcare services and costs using artificial intelligence and machine learning.
- Education
-
When COVID-19 struck, it affected the education sector and institutions in many countries. Because of pandemic regulations, schools were challenged to deliver education in person. Internet, cloud computing, and remote access to education and learning materials have helped schools and universities develop online education for students. Azure for Education is a cloud provider that offers cloud services such as Azure Lab Services, Teams, Office 365 Educational Plans, and Azure Virtual Desktop for education.
- Remote and hybrid work
-
Based on recent statistics, about 16% of companies globally are 100% remote while 77% of remote workers claim they are more productive when they are working from home. Cloud computing technologies are used for remote and hybrid work 3, and they will continue to change how we work and collaborate. Some companies enable remote employees to securely connect to their systems from any device over any network. Organizations also use community clouds for innovations governed by regulations before hosting in the public cloud. This means community clouds are being used as an initial setup hosting resources and infrastructure to a private cloud.
The infrastructure of the community cloud supports a specific community with shared missions, compliance, security, jurisdictions, etc. A community cloud, as shown in Figure 1-5, can be managed by a community or organization that can be controlled or hosted internally or externally.
Hybrid Cloud
A hybrid cloud is a type of cloud infrastructure composed of multiple clouds, a combination of private, public, or community clouds, as shown in Figure 1-6. In hybrid clouds, unique entities are kept but bound together by standardized technology, which allows the portability of applications and data—for example, load-balancing between clouds through cloud bursting.
Cloud bursting is common in hybrid cloud scenarios. It is an application deployment in which an application runs in an on-premises data center or private cloud. Then it can burst into a public cloud if the workload or computing capacity demands increase, thus granting access to more computing resources when needed.
Benefits of cloud bursting are its agility and ability to adjust to rapidly changing workloads. It also provides a cost-effective way to scale up and down. One practical example is the flexibility to handle compute workload issues by rerouting the traffic from a private cloud and expanding or “bursting” it to the public cloud.
What Is Multi-Cloud?
Multi-cloud refers to using multiple cloud computing services from different providers to meet a business’s needs. In other words, rather than relying on a single cloud provider, an organization uses services from multiple providers, such as Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), or IBM Cloud.
Benefits of implementing a multi-cloud approach include:
- Reduced risk of downtime
-
By using multiple cloud providers, organizations can reduce the risk of downtime or service interruptions. If one provider experiences an outage, the organization can quickly switch to another provider to keep its services running.
- Cost optimization
-
Organizations can use different cloud providers for other purposes based on pricing, performance, and features. This can help optimize costs and prevent vendor lock-in.
- Improved security
-
Multi-cloud can enhance security by reducing the risk of a single point of failure. Furthermore, organizations can use different providers for different security needs, such as those with specialized security features for sensitive data.
- Flexibility
-
Multi-cloud helps organizations be more agile and flexible, enabling them to adapt to changes in the market and their business needs. For example, they can choose a provider based on their specific requirements for a particular project.
- Better performance
-
Using multi-cloud strategy for IT infrastructure can help organizations achieve better performance by leveraging different providers’ strengths and using the right provider for the right workload.
In summary, multi-cloud is a strategy that enables organizations to use multiple cloud providers’ strengths to meet their business needs while improving flexibility, cost optimization, security, and performance.
Hybrid Cloud Versus Multi-Cloud
Hybrid and multi-cloud are two different cloud computing architectures, each with its own set of benefits, downsides, and strategic considerations. Some of the common reasons why organizations consider either of these two cloud infrastructure options include modernization, innovation, migration, and business requirements.
A hybrid cloud computing model combines public and private cloud resources to offer a comprehensive solution. This approach enables organizations to maintain control over their sensitive data by keeping it in their private cloud while also taking advantage of the scalability and cost-efficiency of public cloud resources.
Organizations can achieve greater flexibility in managing their workloads and data by using a hybrid cloud. They can use the private cloud for workloads requiring higher security and control levels. In contrast, the public cloud can be used for workloads that demand greater scalability and cost-effectiveness. A hybrid cloud approach offers a more adaptable and effective solution for organizations that require both security and flexibility in their cloud computing environment.
Benefits of a hybrid cloud include:
- Improved security
-
Organizations can keep their most sensitive data in the private cloud and still leverage the scalability and cost-efficiency of public cloud resources.
- Greater flexibility
-
A hybrid cloud allows for more flexibility in managing workloads, as it allows organizations to choose the cloud environment that best suits their needs for each individual workload.
- Cost efficiency
-
A hybrid cloud can reduce costs by allowing organizations to leverage the cost advantages of public cloud resources while keeping mission-critical data in the private cloud.
On the other hand, a multi-cloud architecture means the use of multiple public cloud providers for business strategy purposes. In this environment, an organization can use different cloud providers to meet different needs. For example, one provider might offer better storage solutions, while another might have better data analysis tools. Note that there are pros and cons when considering multi-cloud solutions in terms of storage.4
Common uses and benefits of multi-cloud include:
- Avoiding vendor lock-in
-
Multi-cloud can help organizations avoid being tied to a single cloud provider and subject to their pricing and policies.
- Increased resilience
-
Multiple cloud providers can provide additional redundancy and backup options to ensure business continuity and disaster recovery.
- Agility
-
Multi-cloud allows organizations to choose the best cloud provider for each workload, ensuring that each workload has the best resources and capabilities available.
While hybrid and multi-cloud are different, both offer significant benefits in terms of flexibility, security, resilience, and cost-efficiency. The choice between the two depends on the specific needs and objectives of the organization.
Accordingly, it is important to understand the differences between these deployments so that you plan how you design your cloud architecture and infrastructure. Being aware of the benefits and limitations of hybrid and multi-cloud would be ideal for an organization’s cloud strategy.
Public Cloud Computing Providers
This book is about learning Microsoft Azure; however, since we are learning about cloud computing and multicloud in this chapter, it is crucial to learn about the other public cloud providers in the market.
Migrating on-premises applications or systems to the cloud is a challenging process. It requires serious planning, strategy, and preparation.
It is difficult to say that one cloud provider is better than the other. However, choosing the appropriate cloud provider for your organization and your teams depends on your current IT infrastructure, the business problems you need to solve, and your organization’s business motivations. Every cloud solution and its implementation should be aligned with the purposes and goals of a business.
Microsoft Azure
Azure is one of the fastest-growing cloud provider platforms offered by Microsoft. Even though Azure started years after its competitors, it is one of the leading global cloud computing providers.
Azure offers a wide variety of cloud services in different categories, including artificial intelligence, machine learning, analytics, blockchain, compute, containers, serverless computing, databases, developer tools, DevOps, identity management, integration, Internet of Things (IoT), edge computing, quantum computing solutions, cloud management and governance, media and communication services, Azure Hybrid, migration, mixed reality, mobile, networking, security, storage, web, and Windows Virtual Desktop.
What makes Azure one of the most attractive and intelligent solutions is its exclusive offering of Microsoft’s products and integration of services in the cloud. Azure pro‐ vides the most advanced and maximum number of smart products and services.
This book will cover Microsoft Azure in detail.
Amazon (AWS)
AWS is Amazon’s cloud platform that offers various services such as Virtual Private Cloud, EC2, AWS Data Transfer, Simple Storage Service, DynamoDB, Elastic Compute Cloud, AWS Key Management Service, AmazonCloudWatch, Simple Notification Service, Relational Database Service, Route 53, Simple Queue Service, CloudTrail, and Simple Email Service.
It is one of the most broadly adopted cloud platforms. This cloud platform offers services from data centers globally. Millions of customers—including the fastest-growing startups, largest enterprises, and leading government agencies—are using AWS to lower costs, become more agile, and innovate faster.
Google Cloud Platform
Google Cloud Platform (GCP) is Google’s cloud and is also one of the top public cloud providers available. Similar to AWS and Microsoft Azure, GCP also offers services in various categories, including computing, storage, identity, security, database, AI and machine learning, virtualization, DevOps, and more. Google Cloud Services are available in 20 regions, 61 zones, and 200+ countries.
GCP delivers a wide variety of IT products that IT professionals, businesses, and software developers can take advantage of to work more efficiently and gain more flexibility.
Oracle Cloud
Oracle Cloud Platform is the cloud offering of Oracle corporation. Oracle Cloud Platform offers infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS), and data as a service (DaaS). Oracle SaaS offerings are Oracle Cloud CX, Human Capital Management (HCM), Enterprise Resource Planning (ERP), Supply Chain Management, EPM, IoT, analytics, data, and blockchain applications. Oracle DaaS is the Oracle Data Cloud.
Alibaba Cloud
Alibaba Cloud, founded in 2009, is lesser known in some parts of the world but is also a prominent public cloud provider. It is the largest cloud provider in China. Alibaba is registered and headquartered in Singapore, and it was initially built to serve Alibaba’s e-commerce ecosystem.
They offer various products and services in multiple categories, including elastic computing, storage and CDN, networking, database services, security, monitoring and management, domains and websites, analytics and data technology, application services, media services, middleware, cloud communication, Apsara Stack, and IoT.
If you want to learn more about how these different public cloud providers are leading, I recommend Gartner: Magic Quadrant for Cloud Infrastructure and Platform Services.
Cloud Computing Service Models
There are different cloud service models in the cloud. These are infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS), as shown in Figure 1-7.
Infrastructure as a Service
Infrastructure as a service (IaaS) is a computing deployment model category in which the public cloud provider like Azure delivers infrastructure through the cloud. Instead of the traditional infrastructure on premises in one physical location, the services are provided by public cloud vendors.
IaaS is a delivery of IT infrastructure resources like web servers, database servers, compute storage, networking, computing data centers, and other compute resources available as a service and on demand. When a cloud computing user uses the IaaS deployment model, they don’t need to worry about maintenance costs or the hassles of having infrastructure on premises in the traditional structure.
Platform as a Service
Another cloud deployment model category commonly used is platform as a service (PaaS). It is a cloud model where users, organizations, or developers can create, build, and deploy applications on the cloud without worrying about the IT infrastructure behind it. This means that Microsoft Azure, as one of the PaaS cloud providers, typically provides a range of computing services, development, and monitoring tools for application development on the cloud.
In this cloud model, typically, Azure is responsible for taking care of the physical infrastructures, data centers, hardware, operating system, middleware, and other resources required to run and manage the application. The developer is only responsible for writing and deploying the application code on the platform.
Software as a Service
A few examples of standard software as a service (SaaS) offerings are Salesforce, Microsoft 365, Dropbox, OneDrive, Google Workspace and other applications offered as services.
The SaaS model enables users to access and use applications online with sync capabilities. It is more flexible and convenient than installing and running the applications on their computers or servers. Users can access the applications through a web browser or other client software and typically pay for the service on a subscription basis. SaaS applications can be used for various purposes, including productivity tools, customer relationship management, and enterprise resource planning.
SaaS is a software on-demand cloud model where the cloud service providers give the users access to a fully developed application explicitly created for distribution. The software updates are rolled out for all users, and organizations can use their tools with vendor-provided application programming interfaces (APIs).
One way to compare the cloud computing service models in the real world is to illustrate using our favorite food, pizza. Consider the pizza example in Figure 1-8, which was originally created in 2014 by Albert Barron, who used to work as a Software Client Architect at IBM. 5
There are similarities between baking our pizza and having our traditional on-premises IT infrastructure. Shopping for a pizza from the store and baking it at home is like IaaS. Pizza delivery is like PaaS, and dining out at a restaurant to order pizza is like SaaS offered by the cloud provider.
Aside from IaaS, PaaS, and SaaS, other cloud computing service models are available. These additional service models are serverless, function as a service (FaaS), backend as a service (BaaS), and more.
Serverless Computing: Function as a Service and Backend as a Service
Serverless, FaaS, and BaaS are terms that have gained popularity and interest in the cloud computing industry. Serverless is a method of computing where backend services are provided by a cloud service provider.
In serverless computing, a third-party provider manages the infrastructure and automatically provisions and scales resources as needed, allowing developers to focus solely on writing code for their applications.
In a serverless computing model, the provider handles the server infrastructure, operating system, and other lower-level components while developers provide the application code. This approach can significantly simplify the development process by allowing developers to focus on application logic and functionality without the need to manage the underlying infrastructure.
Serverless computing is related to BaaS and FaaS. They all provide an abstraction layer between the developer and the underlying infrastructure. However, they differ regarding the level of abstraction and the services provided.
Technically, “less” in this term means the servers and underlying infrastructure are abstracted. There are servers behind a serverless function or serverless cloud service, but the cloud provider or serverless provider is taking it off them for its users. Cloud services on serverless usually have consumption pricing models where the users are charged on usage and execution.
FaaS is a technical concept that aims to allow developers the freedom and productivity to easily create functions in a cloud environment. In this type of architecture, the developers will still create the application logic, yet the code is executed in stateless compute instances managed by the cloud provider. FaaS provides an event-driven computing architecture where a specific event, such as message queues, HTTP requests, etc., can trigger a function. In Azure, different serverless solutions, such as Azure serverless compute services for applications and serverless containers, are available. These compute services for serverless or event-driven applications such as Azure Functions, Azure Logic Apps, Azure Event Grid, Azure Event Hubs, and other services are discussed in detail in Chapter 3.
Azure compute services like Azure Functions, as shown in Figure 1-9, allow users to build applications faster by eliminating the hassles of managing servers and infrastructure. It enables software developers or programmers to focus on the productivity of their development teams and pay only when the code runs. Developers can focus on developing event-driven applications using their chosen supported language.
Implementing serverless and FaaS solutions has several benefits, especially for the software development team. In software engineering, we developers want to focus on delivering solutions, solving problems, and building applications.
Developers and engineers do not want to spend time maintaining servers and infrastructures. Usually, they prefer to deliver value and solutions by programming and developing applications whether they are on premises or on the cloud.
With serverless computing, FaaS, or BaaS, developers or cloud engineers can focus more on productivity by focusing on the backend logic and not worrying about infrastructure management. This results in speed of delivery, which helps the project process.
Aside from developer benefits such as speed of delivery, the opportunity to solve problems with complex applications is available. Other benefits include automatic scaling, reliability, and a consumption-based pricing model.
Serverless architecture is a crucial software architecture design pattern that partly relates to distributed computing systems and microservices. Developers need not worry about managing and maintaining infrastructure, hardware, or servers but can focus more on developing logic and functionality. They write the code and leverage the infrastructure of cloud provider services and other third-party services, or BaaS. We will cover serverless and compute solutions in Azure in Chapter 3.
Containers as a Service
Containers as a service (CaaS) or container development is an exciting solution. By utilizing containers, you get PaaS benefits without the overhead of IaaS.
Containerization, in simple terms, is deploying your applications into the container. A container is a runtime that contains the essential computing resources needed to run an application. This includes the core part of the host operating system (also known as a kernel) and its shared resources like storage across a host. The shared kernel allows containers to be lightweight and faster.
When hosts are running, the containers in them can start quickly. Quickstarts mean high availability and resiliency of the applications in the container. One example of containerization technology is Docker, one of the more popular providers of container services. Compared to traditional virtual machines, containers:
-
Can run in cross-platform environments
-
Are lightweight and portable
-
Are self-contained with no need to install application dependencies
-
Have good scalability and high availability
-
Are quick to restart
Container development and other compute services in Azure will be covered in the Chapter 3.
Data as a Service
Every website, application, system, mobile app, and tech product we use has data in it. Sensitive data is being protected through data protection policies.
Data as a service (DaaS) focuses on providing data as a business asset by implementing data management strategies. This cloud service model gives organizations better agility.
As listed in Table 1-1, DaaS provides organizations effective strategies on how to handle, manage, and visualize the massive data that is generated every day.
Benefit | How? |
---|---|
Data-driven culture |
DaaS enables organizations to organize and manage their increasing data by using datasets that are reusable and easier to analyze and visualize. |
Innovation and business growth |
DaaS puts data as a critical driver in the business, opening growth and innovation opportunities. Data-driven strategies drive innovation and growth without creating huge risks. |
Scalability, reliability, and flexibility |
Cloud solutions usually offer DaaS solutions that are flexible and scalable. |
Data monetization |
Solving data operation problems and complexity can also be beneficial in monetizing the valuable data. |
Cost savings |
DaaS solutions can help organizations save expenses by allocating the appropriate workloads for their data in the cloud. |
The challenges of data as a service
Although DaaS offers great benefits to an organization, it has some known challenges:
-
Risks of solving data complexity problems especially for old and unstructured data sets
-
Implementing a data-driven culture with DaaS requires an top-down organizational and business strategy
-
Higher demand for management of data privacy and security because of different data privacy regulations and compliance requirements
Shared Responsibility in Cloud Computing and Azure
Considering and evaluating cloud services on any public cloud provider requires careful planning and strategy. It is critical to learn and understand the shared responsibility model, which helps both parties (the user and cloud vendor) share the trust and responsibility of hosting applications and resources in the cloud.
For example, it helps identify which security tasks are handled by the cloud provider and which jobs are handled by the public cloud user. The shared responsibility for the workload varies depending on whether the workload is hosted on SaaS, PaaS, or IaaS, or in an on-premises data center.
With Microsoft’s example of the Cloud-Enabled Shared Responsibility Model, your organization will be able to properly choose the right services and deployment model for your use case. The model also gives you a good overview on which components of your infrastructure are your responsibility as an organization, and which ones are the responsibility of the cloud provider, Microsoft Azure.
Shared Responsibility Model Offers Cloud Security Advantages
The cloud offers significant advantages for solving long-standing information security challenges. In an on-premises environment, organizations likely have unmet responsibilities and limited resources available to invest in security, creating an environment where attackers can exploit vulnerabilities at all layers.
As a security framework commonly used by organizations and cloud providers, the shared responsibility model addresses the security faults of cloud service providers and their users. This security framework is an excellent model to follow because it guides them through how they would architect, design, develop, process, and manage their data through their users and applications.
For example, in this type of model focusing on security, the cloud service provider is responsible for the protection of the cloud infrastructure like data centers, which usually includes ensuring the infrastructure is always available and keeps its integrity, along with confidentiality, reliability, and other factors in terms of compliance with local regulations within that specific region.
On the other hand, the client or user of the cloud services is responsible for securing their data and applications stored and used in the cloud. This includes implementing appropriate access controls, managing user identities and authentication, and securing data in transit and at rest.
The cloud service provider, Azure, and the users have a shared responsibility for security, with each party responsible for different aspects of the cloud environment’s safety. All of the parties involved must understand their responsibilities to ensure the cloud environment is secure and compliant with relevant regulations.
Figure 1-10 shows a traditional approach in which many security responsibilities are unmet due to limited resources. In the cloud-enabled practice, you can shift day-to-day security responsibilities to your cloud provider and reallocate your resources.
Capital Expeditures and Operational Expeditures
An organization can’t migrate on-premises resources to the cloud without knowing about the benefits for capital expenditures (CapEx) and operational expenditures (OpEx). Comparing these two when considering cloud computing solutions for businesses or organizations is vital.
- Capital expenditures (CapEx)
-
CapEx refers to capital costs or expenses required for cloud computing. Usually these expenses involve physical assets such as buildings needed for the IT infrastructure, networking equipment, data centers, human resources, and other resources to get started. These types of capital expenses are typically fixed and are not flexible. They cannot be adjusted based on usage. For example, if a business purchases a new web or database server, it will incur a one-time cost that cannot be dynamically adjusted or scaled based on the level of usage of its users or the entire organization.
- Operational expenditures (OpEx)
-
OpEx refers to expenses that are incurred on an ongoing basis to keep the business running, such as cloud computing services, software licenses, salaries, and maintenance costs. These expenses are typically variable and can be adjusted depending on the level of usage, making them more flexible than CapEx. With the adoption of cloud computing, businesses can reduce their CapEx and shift toward OpEx, as they can pay for the services they use on a pay-as-you-go basis, allowing for more efficient resource allocation and cost savings.
Typically, organizations start with traditional on-premises physical servers and data centers that require expensive CapEx. Cloud computing solutions offer organizations the option to eliminate the hassles of traditional infrastructure on premises by providing services with OpEx alternatives.
Benefits of Adopting and Transformation to Modern Cloud Technologies
Cloud adaptation and transformation is a complex and lengthy process. It is not a quick-fix solution to modernize on-premise and legacy applications quickly to the cloud. However, when planned adequately with intelligent strategies, there is an excellent list of benefits.
Cloud Computing for Business Value and Customers
How does an organization or business benefit from cloud computing? Regardless of the size of the business or organization, cloud computing helps in saving resources, time, and money by accelerating innovation, collaboration, modernization, and productivity in different teams within the organization. It also helps provide business value for users because of the enhanced user experience, speed, and reliability of modern cloud applications.
Cloud Computing for IT Companies
IT organizations gain many benefits from using cloud computing solutions:
- Data access management and portability
-
Cloud computing lets businesses portably access their important business-related data anywhere on any device. This capability allows the entire organization to work effectively and productively by focusing on deliverables. With cloud storage and servers on the cloud, employees in the organization can be out of the office and access the intranet to work and collaborate. Information is available securely at any time on demand.
- Cost management and efficiency
-
Buying and maintaining server equipment requires time, expertise, and money; rather than building your bespoke server, which can be prone to downtime, a cloud computing provider stores data for you without all the downsides. Prices for business-oriented cloud services are still monthly, but it’s a manageable and predictable expense.
- Convenient backup and disaster recovery solutions
-
Catastrophic data loss can happen at any time, and it can be time-consuming to solve such a significant issue when it happens. Whether that loss occurs from natural disasters, power surges, or hardware failure, affected companies are at increased risk of bankruptcy within the same year as the data loss. And while most companies have adopted backup plans, it helps to have additional contingencies. By utilizing the cloud to store important data, business owners can rest easy knowing that important files are safe even if hardware fails. For cloud computing solutions in Microsoft, a great variety of backup and disaster recovery options are available for applications hosted in Azure.6
- High-level cloud security and data privacy
-
Security and privacy are critical in the decision-making process when using cloud computing services. The public cloud computing provider and the user or organization have shared responsibility. Hosting applications and servers on the cloud is built on trust. This is the reason for setting clear expectations and being familiar with the shared responsibility model. Cloud providers prioritize security and data privacy for their clients and consumers. They use different strategic cloud security controls to protect their users’ resources. Identity management, high-level physical security in data centers, strict personal protection, and ensuring data privacy for sensitive data are taken seriously. Dedicated security expert teams scan the cloud for possible internal and external vulnerabilities. Performing cloud penetration testing and examining inside and outside the cloud must be strictly authorized. Cloud providers do not tolerate any security breaches. Services are terminated when security and use policies are violated. Cloud computing impacts our daily routines at work, home, and school. It has improved our facilities for healthcare, education, and communities, and it is continually changing our digitalization worldwide.
- Digitalization and modernization
-
Digitalization and modernization of many computer systems in different sectors was made possible because of the advancement of technologies hosted on the cloud over the internet. Institutions in sectors like healthcare, government, and education are using the cloud to modernize their services and products.
- Remote and flexible education and digital literacy
-
Aside from digitalization and modernization, cloud computing also improves education worldwide. It activates the capability and capacity of online collaborative and self-paced modern learning environments.7 Remote locations with internet access facilities give opportunities for literacy through online education.
Summary
In this chapter, you have learned about the fundamentals of cloud computing, its different types, and its deployment models. You also learned about the history and evolution of cloud computing that helped shape the modern cloud.
You saw an overview of the different types of clouds (public, private, hybrid, community, and multicloud) and know the differences between them. The other deployment models, such as IaaS, PaaS, SaaS, CaaS, DaaS, FaaS, and serverless, are helpful when choosing which cloud service to use in a cloud platform.
You learned insights and the advantages and benefits of cloud computing in businesses, IT companies, our society worldwide, and software engineering.
In the next chapter, we will learn more about the vital concepts you need to know about Microsoft Azure as a cloud platform. We will learn what cloud solutions Azure has to offer to help you and your organization.
Check Your Knowledge
-
What is cloud computing? Why is it important to society today?
-
What are the differences between the public cloud and the private cloud? Which would you consider using for your organization?
-
Reflect on and explain the importance of understanding the shared responsibility model security framework when using cloud services such as Microsoft Azure.
-
What is the difference between hybrid cloud and multi-cloud?
-
What is CapEx and OpEx?
For the answers to these questions, see the Appendix.
Recommended Resources
“Cloud Computing Basics for Developers.” Microsoft Learn, https://oreil.ly/YKN3o.
“Cloud Computing Platform Market by Service Model, by Deployment Model, Organization Size, Vertical and Region - Global Forecast to 2027.” Reportlinker.com, https://oreil.ly/qHA2H.
Foote, Keith D. “A Brief History of Cloud Computing.” Dataversity.net, May 4, 2023. https://oreil.ly/FcpoQ.
“Mainframes and Cloud Computing: Similarities and Differences.” Turbosoft, May 19, 2015, https://oreil.ly/eU3bC.
Regalado, Antonio. “Who Coined ‘Cloud Computing’?” MIT Technology Review, October 31, 2011, https://oreil.ly/kDbM1.
“What Is Cloud Computing? A Beginner’s Guide.” Microsoft Azure documentation, https://oreil.ly/1Gh-2.
“What Is the Cloud?” Microsoft Azure documentation, https://oreil.ly/ekOql.
1 Kief Morris, 2020, Infrastructure as Code, O’Reilly Media, https://learning.oreilly.com/library/view/infrastructure-as-code/9781098114664
2 Bernard Marr, October 25, 2021, “The 5 Biggest Cloud Computing Trends in 2022,” Forbes.com, https://www.forbes.com/sites/bernardmarr/2021/10/25/the-5-biggest-cloud-computing-trends-in-2022/
3 Shardul Bhatt, 2021, “Using Cloud Computing to Build a Remote Organization,” Business2Community.com, https://www.business2community.com/cloud-computing/using-cloud-computing-to-build-a-remote-organization-02382933
4 Rene Millman, “Multicloud Storage 101: Pros, Cons, Pitfalls, and Strategies,” ComputerWeekly.com, https://www.computerweekly.com/feature/Multicloud-storage-101-Pros-cons-pitfalls-and-strategies
5 Albert Barron, “Pizza as a Service,” https://www.linkedin.com/pulse/20140730172610-9679881-pizza-as-a-service
6 Microsoft documentation, “Backup and Disaster Recovery for Azure Applications,” https://docs.microsoft.com/en-us/azure/architecture/framework/resiliency/backup-and-recovery
7 James Riddle, “Cloud Technologies in the Education System,” IEEE Computer Society, https://www.computer.org/publications/tech-news/build-your-career/cloud-technologies-in-the-education-system
Get Learning Microsoft Azure now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.