DEV Community

Cover image for AZ900-Exam Ref by Jim Cheshire Chapter 1 Skill 1.2
Lemilletrente1030
Lemilletrente1030

Posted on

AZ900-Exam Ref by Jim Cheshire Chapter 1 Skill 1.2

Previously we have learnt about several cloud advantages. Now lets three common cloud service models.

Shared Responsibility Model

Depending on our goals, we will need different types of control on our assets, that also means we will have more responsibility in the system. This responsibility sharing is the main differences between today's service models. The most common way to visualise this is by using a triangle hierarchy diagram.

Image description

To decide which service model best fits our plans, it is best to understand their portions of control and responsibility, along with their pros and cons. So lets dive in the first one right now, IaaS!

Infrastructure-as-a-Service (IaaS)

Infrastructure of an application includes all the necessary and foundational components, systems and resources needed to develop and deploy the application. I want to firstly start with the key components of an application infrastructure.

  • Processing power: processing power are those that deal with the application's logic and workloads, such as physical hardware and virtual machines.
  • Storage: this is where application's data, files and configurations are stored.
  • Networking: where communication between application components and users are enabled.
  • Development and deployment tools
  • Application layer: not to be confused with the application layer in the OSI model, this is where we apply components and code to deliver functionalities to users.
  • Logging and monitoring: to track performance, identify issues and ensuring availability.
  • Security: to protect the application and its data from potential threats.
  • Disaster redundancy and recovery: to ensure availability in the event of natural catastrophes.
  • Cost management: tools and strategies for cost-efficiency.

Cloud IaaS will provide all of the above except for application layer and development and deployment environment. Additionally, we will also benefit from management and automation tools as well as data centres, virtualization technology and operating systems on VMs.IaaS will give us control over cloud resources, so, once again, we have the responsibility to cater for the patching and troubleshooting, though Microsoft will give access to various helping tools for those tasks.

Cost benefits of IaaS and pay-as-you-go align closely as both emphasize flexibility, cost-efficiency and scalability. In short, IaaS service is the best choice if we want another party to manage the hardware infrastructure part of our application.

Platform-as-a-Service (PaaS)

This is the best service for developers as it provides the platform for test, deploy and manage application without worrying about the underlying infrastructure (e.g: VMs are now entirely managed by cloud providers). Here, middleware, software that sits between applications and the underlying infrastructure, is also introduced, we can get some extent of control over it depending on the provider. PaaS is the right choice for us if we want to offload the unnecessary and complex setup/ management work.

Additionally, thanks to the PaaS perks, we are able to move from on-premise to a pre-built cloud environment pretty seamlessly without the hassle of configurations, set up and database migration. Moreover, because cloud providers control the OS and what's installed in the VMs, we are also benefited from being able to add features as easy as flipping a switch. Lastly, PaaS offers all the enhancement from the cloud that I have written in my previous blog, which are effective cost management, auto-scaling, fault-tolerant, disaster recovery and so on.

Here, Cheshire also provides one drawback of PaaS, that is the lack of liberty to decide when to upgrade our VMs. This is one of the expected disadvantages when giving over the control of low-level configuration. This same factor also causes several following issues. First, many PaaS providers use proprietary technologies, which makes transferring from Google App Engine to AWS, for example, require extra work. Secondly, we will suffer from limited customisation and security risk. This, too, is the result of limiting out access to underlying structure. There is still more drawbacks but I will not include them all in this article.

Software-as-a-Service (SaaS)

In this service, we are literally presented with cloud-based apps of which infrastructure is completely controlled by the provider, we can access these over the internet without the need to control, manage, install or maintain infrastructure, middleware or software update. As a result, most of them are well known: Google workspace, Microsoft 365, Slack, Zoom, Google Drive and OneDrive to name a few. Please note that all SaaS apps are cloud apps but not all cloud apps are SaaS apps, some cloud-based apps are custom-built.

One huge benefits of SaaS is that it can be accessed from a web browser, which means we can take advantage of the software from any device, ultimately boosting our connectivity and productivity. What's more, we can benefit from the fact that SaaS software maintained and configured by the cloud provider, this is particularly useful in the entreprise environment when we can have a business-oriented software ready to use instead of hiring IT staff for that job. Still, SaaS service is not limited to entreprise, but personal use as well. One prime example of that is Gmail, we have it both as an app and as a web-app, we have new features, updates and, even if we don't realize, regular patch from time to time.

Comparing The Service Types

Let's quickly go through three types once last time.

IaaS offers the most control along with responsibility, and thus the greatest flexibility. The payment model being PAYG allows use to optimize the budget, converting capital expense to operational expense, thought the benefit is offset as we have to do the maintenance work.

PaaS offers the same flexibility, with less control over infrastructure. We are responsible for our own application, PaaS is also a go-to option for dev teams seeing that it presents various deployment tools and middleware as well as way more features than the previous service. Cost will increase unintendedly by the updates and version change of the underlying software.

SaaS offers the lowest scalability as the it is tight to provider's offering, so it is all about whether they meet our demands or not. In SaaS, IT-related burden is lifted along with high accessibility, as long as we have Internet access we are good to go. SaaS is for both business owners and non-tech users as all the technical work is well taken care of. In exchange, there will be no customization or liberty in configuration.

Top comments (0)