What is Cloud Architecture? Understanding the Fundamentals
With the adoption of cloud computing systems gaining popularity, understanding what is cloud architecture is becoming an important career skill for software engineers, IT specialists, data scientists, and even some non-technical professionals. For those getting started with cloud services, there’s a lot to learn related to the construction of cloud environments.
Think of cloud architecture as the components of a cloud computing system and its method of organization. This includes the relationships between these components and the business benefits delivered by the system.
Read on as I explain the key pillars of cloud computing architecture and why each is a necessary part of cloud adoption.
4 Core Concepts of Cloud Architecture
When cloud architects build out a company’s cloud environment, they’re structuring it around four primary concepts:
1. Cloud infrastructure – The underlying compute, storage, and network systems.
2. Cloud delivery model – The front-end (client-side) and back-end (provider-side) of the cloud platform.
3. Cloud service model – The type of service offered such as IaaS, PaaS, or SaaS
4. Cloud deployment model – This relates to the access and governance of the cloud platform.
Let’s take a closer look at each of these concepts.
1. Cloud Infrastructure
Cloud infrastructure includes the compute, network, and storage systems on which cloud services run. Cloud infrastructure typically leverages virtualization to create pools of resources from the compute, network, and storage building blocks that can be programmatically managed and elastically scaled.
To be defined as a “cloud computing” platform, a vendor typically will offer a portal for on-demand self-service. The service will also provide monitoring capabilities and often use metered billing.
2. Cloud Delivery Model
The end-to-end delivery of cloud-based services may include a front-end platform (client computer, mobile device, or IoT device), and a back-end platform (the pool of virtualized resources).
Front-end systems (clients) access the cloud environment using the Internet or in some cases a virtual private network (VPN) link. This could be using a web browser, mobile app, or client-based software.
The backend includes the pooled cloud infrastructure resources, data, and applications. This is typically delivered out of multiple data centers for high availability and disaster recovery.
3. Cloud Service Model
You may be interested to learn what types of services are most common with cloud technologies. Let’s go through a few of the most popular examples and look at the cloud service model they are associated with.
Infrastructure as a Service (IaaS)
This is a cloud service model where a cloud provider offers virtualized servers or “instances.” As a consumer, you can request the resources your instance requires (such as CPU, RAM, disk space), and the operating system. Resources can be requested programmatically, using a REST-based Application Programming Interface API, or through a console.
As a consumer of this service, you are responsible for managing the operating system and any applications installed. The cloud service provider is responsible for ensuring the availability of the underlying resources.
The most popular example of an IaaS service is the Amazon Web Services (AWS) Elastic Compute Cloud (EC2). With Amazon EC2 you can quickly and easily launch a virtual server in the cloud from over 70 data centers in 22+ regions around the world.
Platform as a Service (PaaS)
You may want to reduce the management overhead of some aspects of your cloud service. For instance, you may want to reduce the burden of tasks such as operating system maintenance, patch management, and middleware management. In that case, a PaaS service may be for you.
With PaaS, the operating system and also the application middleware such as the Node.js runtime, .Net runtime, or Docker engine, are delivered to you as a managed service. The key benefit of this model is that you, as a consumer, can easily deploy software applications with minimal configuration or operational overhead.
PaaS is favored by cloud developers as their priority is to deploy and test their code. PaaS allows them to do this quickly and easily, enabling agile software development and continuous integration and delivery (CI/CD) models.
Examples of PaaS services are Microsoft Azure Web Apps and AWS Elastic Beanstalk. Both of these services provide fully-managed platforms that perform OS patching, capacity provisioning, servers, and load balancing.
With both IaaS and PaaS, you are typically charged under a pay-per-use model with no fixed contract. However, significant discounts can sometimes be found by locking in for a fixed-term contract.
Software as a Service (SaaS)
You’ll probably be most familiar with SaaS services. In the consumer world, SaaS services include Facebook, Gmail, Instagram, and cloud storage services such as Dropbox. Corporate examples include Salesforce.com, Office 365, and ServiceNow.
In the case of a SaaS service, the consumer has very little control over the configuration of the software service. On the positive side, you also don’t need to worry about the platform, data, or applications as this is all managed for you.
You can typically access a SaaS service using a web browser or mobile app over the Internet. SaaS services are usually offered on a subscription basis.
4. Cloud Deployment Model
Now that you understand the architecture of a cloud-based service let’s examine the deployment models. You may have heard the terms private cloud, public cloud, hybrid cloud, and multi-cloud. These terms relate to the dedicated or shared use of a cloud service and its governance model.
If you build one of the cloud services mentioned above in your own data center for your company’s sole use, this is called a private cloud. However, if the cloud is dedicated to a single tenant this would make it a private cloud.
With a private cloud, you have more control over the design and implementation of the stack and even the hardware and software of which it’s comprised. This flexibility may come at a cost as this type of cloud can be expensive and there are limits in its scalability.
With a public cloud a third-party organization, such as AWS or Microsoft, offers access to its cloud services to large amounts of customers. The cloud platform is multi-tenant allowing many consumers to run services on the same underlying hardware.
Due to massive economies of scale, public cloud services can be very cost-effective. The scalability is almost limitless so you can grow your business fast on these platforms, paying only for what you use.
A hybrid cloud refers to the use of private and public clouds by the same organization. Typically, this will include VPN links to connect the clouds together and may include features such as the ability to “burst” workloads into the public cloud as necessary.
You may want to create a hybrid cloud architecture to gain the benefits of both public and private cloud options. This is advantageous when the requirements of specific applications are better suited to one deployment model over the other.
Sometimes an organization may benefit in utilizing the services from multiple, disparate cloud service providers. These services could be offered in managed (or on-premises) private clouds and public clouds. The use of services from multiple cloud providers results in what is often called a “multi-cloud.” An example of this setup could be using both Amazon EC2 and Microsoft Azure Web Apps.
Again, you may want to use a multi-cloud architecture when you have different applications that are better suited to one cloud deployment model or provider over another. For instance, you may find that your Microsoft applications are better suited to Microsoft Azure, while your non-relational database requirements are better served on AWS.
Where to Now?
Creating a cloud architecture requires a good knowledge of cloud design principles, business drivers, and also deep technical expertise on at least one of the major cloud providers.
For these reasons, Cloud Architect — also called, Solutions Architect — roles are not only some of the most sought after positions in the IT industry today, but they’re also some of the top-paying roles. To get ahead in this competitive market you’ll need to brush up on your cloud skills.
In my AWS Certification course for the AWS Certified Solutions Architect Associate certification, I take students from beginner level knowledge through to expert knowledge of AWS. This is an in-demand certification in cloud computing and an important qualification on a resume. If you’re interested in gaining hands-on, practical expertise as well as getting certified on AWS, join me in this course.