You don’t have to go far to have The Cloud invoked: watch a football game on the TV, pass through an airport, or read any book published in the last couple of years, and you are confronted with its unavoidable presence. But what specific services does The Cloud deliver?
Cloud services are defined as any IT capabilities, resources, or infrastructure that are provided by and accessed from any cloud utility provider, or via any hardware or software product intended to distribute those capabilities, resources, or infrastructure across a virtual environment.
From an infrastructure perspective, let’s break the definition of cloud services down into three discrete definitions of cloud services environments:
Accessing cloud services from a public cloud provider, such as Salesforce.com, Amazon Web Services, or Adobe Creative Cloud. In this circumstance, cloud services are provided by a vendor to a customer, and the customer has neither need nor desire to understand how the service is built, maintained, or managed because they are using the public cloud.
Accessing cloud services that are resident in a self-operated location using cloud-oriented software, such as BMC Software, VMWare, or SAP Hana Cloud Platform. In this circumstance, the cloud services user operates hardware, upon which cloud-oriented software is run to provide what is known as a private cloud.
Accessing cloud services that are provided through the public cloud as well as operating a private cloud. In this circumstance, the cloud services user makes use both of publicly-available cloud services, while providing their own private cloud, resulting in an architecture known as a hybrid cloud.
The actual services delivered by cloud providers and software generally speaking fit into four categories:
Infrastructure-as-a-Service (IaaS): If you watch sports on the television, you’d be forgiven for thinking IaaS was the sole definition of cloud services. As offered by market leaders Amazon Web Services (AWS), Microsoft Azure, and Google Cloud, IaaS is the provision of computing resources—mainly storage and literal computation—across a virtual network. Much as individuals save their photos to iCloud, organizations need to store data securely and reliably off-site, to maintain not only access but also high availability in the event of catastrophic failure elsewhere in their pipeline. Instead of merely adding server after server to support growing audiences on successful applications, companies can ‘spin up’ virtual servers within the public cloud. Doing so gives them an almost entirely elastic supply of computational capacity whenever needed, as well as the ability to switch it back off and cease paying when that capacity is no longer required.
Software-as-a-Service (SaaS): Way further up the value chain is SaaS, which is simply software that is delivered on an as-needed basis, as often as not through a simple thin client that is either resident in, or based on the same technology as, a browser. Hard as it may be to remember, until the early 2000’s, the standard way to start using a piece of software was to buy it on a disk, then install it onto a single client machine. Now, through the magic of the Internet, the software is generally accessed across an HTTP connection—from design like Adobe to instant messaging like Slack, to project management like Atlassian, consumers, and corporate employees alike benefit from software that is largely cloud-resident.
Platform-as-a-Service (PaaS): Somewhat in the middle ground between IaaS and SaaS sits PaaS. PaaS is essentially a virtual environment intended for a specific purpose, such as building, running, or maintaining a particular class of applications. Like IaaS, PaaS provides computational power that can be assigned to activities chosen by the user. Then, much like SaaS, PaaS provides both capabilities and limitations that put boundaries on how the service can be used. Top PaaS providers include Amazon AWS, Salesforce aPaaS, and Engine Yard.
Application Programming Interfaces (APIs): Perhaps the most popular cloud service is the API—generally speaking, this is a service that may do something extremely sophisticated but has a simple programming interface for the user to use. For instance, with a single line of code, today’s developers can find out the exact location of a cell phone, the translation of a sentence into a near-infinite array of languages, and even the mood implied by a typed message. No cloud services definition is complete without considering APIs, as they are reshaping how software is developed, evolved, and deployed.
Combining the three environments (public, private, and hybrid cloud) with the four service categories of cloud services (IaaS, PaaS, SaaS, and APIs) results in a veritable smorgasbord of options for infrastructure and application architects to choose from as they prepare to bring the next generation of solutions to market. The advent of cloud computing technology has changed how companies and their customers interact with data.
Indeed, without cloud services, the evolution from monolithic to microservice software architecture, which is generally agreed to be the inevitable next-generation of software design. This evolution makes sense in light of how we have defined cloud services:
Monolithic architecture assumes a ‘walled garden’ of tightly controlled infrastructure, containing bespoke software from the ground up.
Microservices architecture assumes a ‘mash-up’ of publicly available services. These services are configured and connected by deft developers to deliver a unique experience that can be accessed by anybody, any time, anywhere. This accessibility demands that it be run, at least in part, on public cloud services.
The latest software innovations build quite explicitly on the work done by those who came before. Newer innovations often tap into projects that have often been completed, commercialized, and packaged either into frameworks (such as React Native or Redux) or into APIs that can be accessed easily through Internet connections.
The decentralized nature of such applications functions is practical only because of cloud services. Disparate systems need to be able to reach out to one another and quickly acquire core information. If a foundational service resided only in a single data center, it would be impossible for global operators to access it and enjoy the rapid response necessary to deliver credible modern applications. Imagine, for instance, if the geo-location services that display your rideshare driver in your app’s map were located in Boston. You’d know exactly where your car was across much of the Eastern Seaboard, but start using the app on the other side of the country, or the other side of the world, and there’s a good chance the physical car would arrive before you knew it was in the same zip code.
Cloud services are defining the new age of distributed, micro service-oriented applications by combining public, private, and hybrid environments with SaaS, IaaS, PaaS, and API service categories to bring new and eye-popping solutions to market. Defined as any IT capabilities, resources, or infrastructure that are provided by, and accessed from, any cloud utility provider, or via any hardware or software product intended to distribute those capabilities, resources, or infrastructure across a virtual environment, cloud services are the foundation of the next generation of solutions.
There are common underlying technologies for a dating app, and in this post, we’ll talk about the major technologies and designs...