Rent Instead of Buying 

In one of our previous posts we introduced the concept of XaaS (anything as a service) and briefly explained the main Cloud products and services that are commonly offered by most Cloud Service Providers. But there are much more than just 3 commonly known layers: SaaS, PaaS, and IaaS. Let us reveal what is possible Xs in this formula and how many variations we can list down.

Elasticity is the key benefit that Cloud brings to businesses that use it, it allows to try some new concept, idea, or business model without significant capital expenses. It is an essential requirement in the modern agile and rapidly changing world, it demands businesses to be flexible, and adapt to constantly changing circumstances. Even traditionally conservative IT giants have realized the importance of the “fail fast” approach when introducing new technologies and products. It is much safer to start small, grow according to real demand, and be able to shrink back if the load goes back low. Clouds support such a model and allow to build of an MVP (Minimum viable product) or PoC (Proof of concept) first and scale it later to a production-grade level almost without any resource limitations. 

As we also learned before, the main asset of a company in the Clouds is its Data, it has to be securely stored, transferred, and processed; you own your data and everything else can be offered as a service. What’s also important when offering XaaS is DevOps infrastructure. 

DevOps infrastructure is a term used to describe the tools, processes, and practices used to rapidly deliver software changes through DevOps teams. It enables organizations to move at speed and scale while maintaining quality and compliance. DevOps infrastructure is critical in an age where ‘Anything as a Service (XaaS) is the norm. XaaS provides organizations with the ability to procure and consume services on-demand, without the need for capital investment or long-term contracts. 

DevOps teams need to be able to quickly adapt to changes in service offerings and customer demands. This can only be achieved with a flexible DevOps infrastructure in place. DevOps teams must also be able to integrate with a wide range of other systems and services, both inside and outside of the organization. A robust DevOps infrastructure is therefore essential for organizations that want to stay agile in a XaaS world.

Any type of data processing, transferring, storing, securing, transforming, sharing, observing, or exposing to other services can be offered in a subscription-based service. Let us see what types of such services exist out there on the market.

Big Three Xs

Let us start with the three most well-known “as a service” options:

IaaS (Infrastructure as a Service) – probably one of the first created cloud offerings, introduced by AWS back in 2006 as EC2 (Elastic Compute Service), in simple words, it is a managed virtual machine that can be rented. It abstracts the whole physical and hypervisor layers offering you a virtualized server with pre-installed OS, so you do not need to think of anything related to power/cooling, physical security of the hardware, placement in a rack, allocating RAM/CPU/Disk, etc. Usually, you just choose a profile from a list of predefined VM configurations and provision it using a web console or CLI via API. As with any other subscription-based service – there are some metrics that define how much you will be paying per second/minute. For IaaS the price mostly depends on how powerful the VM is: how much – RAM (in GB), CPU (in a number of vCPUs), Disk (size and type of storage attached – HDD or SSD). Additionally, inbound & outbound network traffic, number of static public IP addresses, presence of Load Balancer, High Availability, and other different features influence the final price. 

It is essential to understand what the price of your IaaS is. Usually, for this purpose, there are online calculators or, in more complex projects, you can always contact your Cloud Service Provider’s representative to help you with calculating the price, or, it is more common to operate with, so-called TCO (Total Cost of Ownership) – the amount of money you will spend for some specific period.

If you need just one virtual machine and your load is predictable, it is pretty straightforward, but the beauty of Clouds comes with a scale. When you need to scale your solution horizontally, the number of your VMs will vary, and it can be done automatically as a reaction to the total load (autoscaling). So, in this kind of scenario, there might be more components and features added to our IaaS, such as Load balancers – to distribute traffic between multiple VMs, Disaster Recovery – to ensure availability even in case of a complete Data Center failure, additional network storage, specific connectivity configurations (access to the Internet or other private networks via different ports), Domain Network Resolution, Security configurations and many more.

Do not be overwhelmed by so many are various things to consider when configuring your Cloud infrastructure; most of them are also offered as other types of services on top of IaaS, and we will discuss them later in this article, but before this, let us see what we can get if in the form of control but to deploy our software to some pre-built platform quickly. 

PaaS (Platform as a Service) – is used when you need some specific development or deployment environment installed on top of an OS, but you do not want to manage (install/patch/update) it yourself; you might not even know what OS this platform is running on.

An example of such an offering can be managed container management platforms such as Kubernetes or Openshift as a service. This is an offering that allows developers to entirely abstract from any physical or virtual infrastructure; they just need to develop their applications that can be placed in technology-agnostic containers (Docker) or to be able to run inside some specific runtime provided by a Service Provider (Tomcat, .Net, Node.js, PHP, Python, Ruby, etc.).


Platform as a Service (PaaS)

Fig. 2. Platform as a Service (PaaS)

The variation of PaaS specifically designed to support containers is called CaaS (Container as a Service); in this case – runtime is also defined within a container by the user, not by the Cloud Provider.

SaaS (Software as s Service) is the extreme case when you do not manage anything but your data; all features you are using are part of some end-user software with minimal configuration and customization available for you. Best samples of such software might be Office 365, Google Workspace, Dropbox, etc.

In fact, in most cases, you can not build anything with such services and just use it as it is in the same way as other users. 

The SaaS model is a natural evolution of some online services and software that was traditionally available as a native desktop application and then has evolved into Web-based clients. The main requirement is an Internet connection and a web browser. So, any software that requires these two things can be considered SaaS; of course, the license model also matters – such software is available for you only for the time you pay for the subscription. Of course, there are some exceptions when a company offers a “perpetual” subscription plan, but it only means that the software (service) will be available as long as the company exists and supports it. Even a web browser client is not a strict requirement – one example is Office 365 which still has a desktop client, but still requires an Internet connection. The most valuable benefit of SaaS is the availability of the software functions and your data from anywhere in the World from a browser and data synchronization between your devices.


Fig. 3. Three Most Used Cloud Service Types

We Need to go Deeper!

Earlier in this post, we discussed various additions on top of IaaS and mentioned that they can also be separate Cloud offerings. During all these years of Cloud development and evolution, Cloud Providers realized that multiple auxiliary IT resources and functions can be also provided to complement IaaS and they can significantly influence the performance, enable different features, ensure security,  define availability, scalability, reliability, and, of course, the price.

Cloud Storage, also known as “StaaS” (Storage as a Service) – is an integral part of any Cloud infrastructure. There are multiple storage types available, and they can be used for different purposes, starting from “hot” data processing with high Read/Write rates where speed/throughput is crucial to “cold” storage where the price per Gb matters more, and the data is not frequently used (for backups or not critical data).Samples of StaaS: AWS S3, Azure Blob Storage, Google Persistent Disk, etc.

Storages usually differ from each other based on the following parameters:

  • Type of stored data (block, file, object)
  • Disk type (HDD, SSD)
  • IOPS / Throughput / Latency
  • Available size
  • Access frequency
  • Reliability (based on data redundancy on multiple physical disks)
  • Data protection features (encryption at rest and in transit)

Database as a Service (DbaaS) – managed by a Cloud, Provider DB engine is used to reduce the overhead of managing the DB by a DBA (Database Administrator), in this case, all administration activities like database maintenance, upgrade, backup and even provisioning licenses are borne by your Cloud provider. Different DbaaS offerings mostly vary from each other by types of DB engines they support:

  • SQL – Azure SQL, MySQL, MariaDB, Oracle, etc. 
  • NoSQL – DynamoDB, CosmosDB, Google Cloud Bigtable, DocumentDB, etc.

For those who just need to deploy a simple function without provisioning any IT resources, there is a special lightweight service type – FaaS (Function as a Service), such as AWS Lambda, Google Cloud Functions, Microsoft Azure Functions, IBM Cloud Functions. Usually, it is some runtime environment available instantly and limited to some particular time of execution and available RAM amount & Compute processing power. This approach – complete abstraction from any infrastructure and pricing based on actual resource consumption by a simple application that performs only one function (usually as a microservice), is also known as Serverless computing.

What Else can be aaS?

Well, actually anything you could think of as an IT asset or related to its service, let’s list down them and describe the basic features of each:

  • BMaaS (Bare-metal as a service) – most close to “dedicated server” cloud offering when you can use a whole metal server without sharing it with any other client. Can be a suitable option for BYOL (Bring Your Own License) cases (e.g. when the license is tied to physical CPU/motherboard)
  • DaaS (Desktop as a Service) – virtualized desktop available from the Cloud
  • NaaS (Network as a Service) – multiple various connectivity options, starting from Site-to-Site VPN to a Mobile Virtual Network Operator (MVNO)
  • B/MBaaS – Backend/Mobile Backend as a Service – set of commonly used backend features such as notification services integration, cloud storage adaptors, APIs to social networks, etc. 
  • APIaaS (API as a Service) – set of tools that allow developing web APIs
  • UCaaS  (Unified Communication as a Service) – platform with integrated communication capabilities that allow creating a single communication stack of services such as voice- & video-calls and conferencing, instant messaging & chats, contact centers, collaboration workspaces, etc.
  • SECaaS (Security as a Service) – a family of different security-related services starting from Cloud Firewalls and Network Access Control Lists (NACL) to encryption and vulnerability analysis.
  • MaaS (Monitoring as a Service) – managed monitoring applications integrated into other Cloud solutions.
  • Backup/Recovery/DR as a Service – sometimes it is provided as an optional part of IaaS. Still, there are some special Cloud solutions that offer extended data protection and recovery procedures with guaranteed lower RPO/RTO.

The list above is definitely not exhaustive and there are more types of Cloud/subscription-based types of services even bizarre ones, like Malware as a Service and new types are yet to be “invented” for sure.

Conclusion

In general, the separation between types of XaaS is conditional, sometimes we do not even notice the difference between them using multiple online services both at work and at home – Social Media (Communication & Content as a Service), Netflix & Spotify (Content as a Service), Skype (Communication as a Service), Uber & Grab – (Transportation or Delivery as a Service), Google Maps (Maps as a Service). Most of these terms are introduced by marketing departments to have a richer portfolio of offerings, not even necessarily IT-related.

Clouds provide building blocks of different sizes and shapes to design and construct IT systems for your own business or to offer to your clients as another XaaS offering. You should understand what each of them means and how to combine them together into a single Cloud Solution with all possible features and parameters that define the right balance of functionality and costs that will bring benefit to your business. 


Fig. 4. Cloud Building Blocks

Clouds are still a relatively young IT technology and it constantly evolves, so probably you could even invent your own model of offering %Something% as a Service and make a fortune out of it.

DevOps has been around for a while, but it’s only recently that DevOps as a service has become more popular. DevOps is a set of practices that helps organizations to deliver software faster and more reliably. DevOps as a service helps companies to automate the software delivery process, making it more efficient and reducing the risks associated with traditional software development methods. 

DevOps as a service also makes it easier for companies to adopt DevOps practices, by providing tools and services that are designed specifically for DevOps. This is becoming increasingly popular in an age where anything can be delivered as a service. 

It provides the benefits of DevOps without the need for companies to invest in their own DevOps infrastructure. This makes DevOps as a service an attractive option for companies that want to improve their software development process but don’t have the resources or expertise to do so themselves.

In an Anything as a Service (XaaS) age, DevOps Online Training is more important than ever before. The cloud has transformed how we access and use software, making it possible for businesses of all sizes to tap into the power of DevOps.

However, with this new paradigm comes new challenges, and DevOps Online Training is the key to meeting them head-on. At Darey.io, our courses are designed to help you master the DevOps mindset and toolset, so you can deliver quality software faster and more efficiently. We’ll show you how to optimize your workflow, automate key processes, and get the most out of the latest DevOps technologies. 

If you want to know more about Cloud and DevOps practices, learn how to apply them in real-life scenarios, build IT solutions and deploy them into Clouds – join Project Based Learning courses, and stay tuned for new posts in our blog!

Whether you’re just getting started with DevOps or looking to take your skills to the next level, Darey.io is the perfect solution.


written by
Dare Olufunmilayo

Tell us about yourself...

Liked this article?

Stay updated with our latest articles, subscribe to our newsletter

You may also like

Darey Blogs

Uncategorized

DevOps - Where to start?

Dare Olufunmilayo
  • 5 min watch
Darey Blogs

DevOps Career

Why A DevOps Career Is A Great Entry Point Into Tech

Dare Olufunmilayo
  • 5 min watch