The cloud computing space has no shortage of obtuse buzzwords and obscure acronyms. We're going to dispel some of the confusion around them by defining some of the most common (and most important).
If there's one constant in the cloud computing space, it's that people love their acronyms. Every day, it seems like there's some new, obtuse terminology for everyone to learn, some new buzzword to memorize. It can be a little overwhelming to keep up.
Let's clear the air a bit.
With traditional enterprise software, you install it onto your system before you start using it. Not so with Software-as-a-Service. Although you may still be required to install a client, the majority of SaaS apps are in the cloud. This allows application data to be accessed from anywhere, and in some cases can even be completely device-agnostic.
Some examples of SaaS software with which you might be familiar include Gmail, Google Drive, Slack, and Trello.
Infrastructure-as-a-Service effectively allows a client to simulate the existence of on-demand computer architecture. This could include networking hardware, computing resources, storage, or entire virtual machines. The primary advantage of IaaS is that it can be scaled dynamically according to demand, meaning you can temporarily provision more resources as-needed.
MaaS can actually have two separate meanings, depending on your industry. The first, Mobility-as-a-Service, is actually a bit misleading. It refers to solutions such as Lyft and Uber, which academic publication Computers & Security notes "applies the everything-as-a-service paradigm of cloud computing to transportation."
Metal-as-a-Service, meanwhile, is a term coined by Ubuntu developer Canonical. It's pretty much what it sounds like, a cloud service model that allows the management and provisioning of bare-metal servers instead of virtual infrastructure. Canonical's MaaS documentation can be found here.
An Application Programming Interface, at its most basic level, allows two applications to communicate with one another. This can be used to quickly and seamlessly add new functionality to an app without having to program it manually. If you'd like to know more, enterprise software developer Red Hat has written a thorough explanation of APIs and how they work.
A Software Development Kit is basically a set of specialized developer tools, usually intended to be used in the development of an app for a certain operating environment. It may include programming language-specific libraries, APIs, and debugging software along with a host of other development tools.
An Integrated Development Environment takes a bunch of different development tools and combines them into a single platform, supported by a graphical user interface (GUI). Cloud-based IDEs may even include automated test environments and debugging utilities. You can learn more on the Red Hat Blog.
Backend-as-a-Service is a development-focused cloud deployment. With BaaS, a client leverages a cloud host to provide services and features such as social media integration, push notifications, storage, application security, and so on. This is done via an SDK, with additional functionality added via APIs.
Essentially, BaaS automates the entire backend of an application on the cloud, and the developer constructs the app's front-end atop the BaaS deployment's various APIs.
Disaster-Recovery-as-a-Service is a suite of cloud services designed to help promote business continuity and allow organizations to return to working order in the wake of crises such as catastrophic hardware failures and natural disasters. It typically includes system backups, data storage, and virtualized infrastructure. For instance, Liberty Center One offers DRaaS that features continuous data protection and one-click recovery.
There's admittedly a bit of confusion between Platform-as-a-Service and BaaS, as both serve a similar function — using the cloud to assist in application development. Where they differ is in functionality. PaaS is more focused on providing a flexible development environment, and requires the developer to code both the client and the backend rather than simply relying on a pre-built backend as they would with BaaS.
A Service-Level Agreement (SLA) is essentially a contract between a client and a vendor. It establishes a minimum acceptable level of connectivity and uptime. It also establishes the responsibilities of the vendor should it fail to meet that minimum.