How Does Cloud Computing Work?
Whether you're looking to become a cloud engineer or you're a manager wanting to gain more knowledge, learn the basics of how cloud computing works...Learn More
A 2013 study by CDW of 1,242 IT professionals found that more than half of organizations are moving a variety of capabilities to the cloud. The majority recognize cost savings and increased profits. The CDW study found that 88 percent of cloud users pointed to cost savings, and 56 percent of those polled agreed that cloud services have helped them increase profits. Additionally, 60 percent of respondents said cloud computing reduced the need for their IT team to maintain infrastructure.
A 2013 study by CDW of 1,242 IT professionals found that more than half of organizations are moving a variety of capabilities to the cloud.
Beyond cost savings, enterprises pursue cloud computing to become more agile and decrease time-to-market. The use of public cloud-based platforms, for example, can provide almost instant provisioning of compute and storage resources as needed by the business. This eliminates months of hardware and software procurement cycles, and thus the enterprise can stand up applications and databases that allow them to move quickly into a new market, or shift the business as needed. In other words, it’s the ability to operate at the “speed of need.”
The benefits of cloud computing are well understood, although we need to focus on the use cases, or examples of cloud computing, to truly understand those benefits. The purpose of this article is to list real examples combined with the real use of cloud technology.
When we talk about cloud computing, I see the following primary examples or patterns:
Example: AWS S3
Storage-as-a-service, as you may expect, is the ability to leverage storage that physically exists at a remote location, but is logically a local storage resource to any application that requires storage. This is the most primitive component of cloud computing and is a component or pattern that’s leveraged by most of the other cloud computing components.
The use of a disk that you access over the Internet is a bit illogical at first thought. Why would some enterprise leverage storage that exists thousands of miles away, as a service, when disk space is so cheap, and getting cheaper every quarter?
There are a few core benefits:
You can dive deeper with Cloud Academy’s set of courses, quizzes, labs, and learning paths around Storage-as-a-Service. We offer a free 7-day trial subscription where unrestricted access is available to ALL the resources we offer.
Example: AWS’s Red Shift
Database-as-a-service provides the ability to leverage the services of a remotely hosted database, sharing it with other users, and having it logically function as if the database were local. You can self-provision a database, create the tables, load the data, and access the data using the interface provided, all on-demand and cloud computing-based.
Like storage-as-a-service, database-as-a-service provides access to a resource that you neither own nor host and thus saves you the hardware, software, and maintenance costs. The self-provisioning capabilities mean that you can think about a new database at 8:00 AM and have it running by noon, without buying hardware or software, or even leaving your office. This makes it incredibly easy to provision a database as needed.
Database services include everything that you can do with a local database, such as setting up the tables and the relations between them, adding data, extracting data, and deleting data. Moreover, database-as-a-service providers not only deliver basic database functions, but even provide services that are brand specific, such as Oracle, Sybase, or Microsoft. Thus, you’re able to leverage proprietary features if you need them.
An effective database-as-a-service provider should be able to offer database services that appear local, in terms of performance and functionality. However, as we discussed with the storage-as-a-service offerings, there are always tradeoffs.
Example: (See www.programmableweb.com )
Information-as-a-service refers to the ability to consume any type of information, remotely hosted, through a well-defined interface such as an API. Examples include stock price information, address validation, or credit reporting. There are over 1,000 sources of information that can be found today, most of them listed in www.programmableweb.com. While they typically “serve up” the information using standard Web service APIs, there are some that leverage proprietary interfaces. Because of this, I suggest you consider information-as-a-service interfaces, as we did with our database-as-a-service cloud computing provider.
Typically, APIs function like this:
With the return of:
“John H. Smith”
Pretty simple. But, that’s just one type of API. Others are more complex, perhaps returning complete structures with information.
There are a wide variety of Web APIs available that you can leverage, including APIs for social networking sites like Twitter and Facebook. Or, information from those who maintain information for a living, such as sites that provide business statistics and stock quotes. The list goes on. As far as cloud computing categories go, this one is the most eclectic
Process-as-a-service refers to a remote resource that can bind many resources together, either hosted within the same cloud computing resource or remote, to create business processes. An example would be the creation of a business process that defines how to process an invoice on remote cloud-delivered systems, and then have that process invoke any number of cloud-based or on-premises services (such as sending a copy of the invoice into the order fulfillment system and another copy to the accounts payable system) to form the business process. The SOA gains the value of agility because processes are easier to change than applications.
For now, it’s enough to understand that processes are meta-applications that bind many services and information together to form a business solution. Because they follow a configuration rather than a programmatic approach, it’s often easier to create and change processes using a graphical interface versus writing new programs.
Process-as-a-service provides a mechanism to bind other things together to form a solution. While your information and APIs may be hosted within a cloud provider, or perhaps on-premises, you would leverage this service to abstract and bind these resources together to form a business solution, such as processing a sale or shipping a product.
You can think of processes as a sequence of events that must occur in a certain order, leveraging any number of services and portions of data. For example:
Process “Ship Product”
Each step above includes services called by the process, but the services themselves are not processes. Processes provide control instructions about how to do something using many resources that can exist on-premises or in the clouds. Processes can span a single enterprise, or, more often, many enterprises, when dealing with process-as-a-service.
Process engines are really nothing new, although the existence of process engines on-demand is. As we move forward with cloud computing, the use of process engines to leverage and manage any number of local and remote services to form them into business solutions will be an important component of cloud computing, and to SOA using cloud computing.
Application-as-a-service, also known as software-as-a-service (SaaS), is an application that is delivered over the platform of the Web to an end user, typically leveraging the application through a browser. While many associate application-as-a-service with enterprise applications, such as Salesforce SFA, office automation applications are applications-as-a-service as well, including Google Docs, Gmail, and Google Calendar. They typically offer:
Application-as-a-service was really the first drive into modern cloud computing, but it is based upon the more traditional timesharing model from years past, where many users shared one application and one computer. The difference here is that we’re using a Web browser, not a terminal and that the applications are typically sold by subscription, not by time. Some are free of charge and obtain revenue through various channels, such as advertising or upselling specialized features. Others are subscription-based.
The advantage of application-as-a-service is the ability to leverage an enterprise-class application without having to buy and install enterprise software. Thus, business functionality once available only to those who could afford SAP, Oracle Financials, and other larger packaged systems, are now available to any business user for a small subscription fee. Indeed, Salesforce.com became a multi-billion-dollar business using this model, and other application-as-a-service providers are quickly catching up, including many that provide specialized applications for human resources, logistics management, and trade risk management, to name just a few.
Example: Engine Yard
Platform-as-a-service, or PaaS, is a complete platform, including application development, interface development, database development, storage, and testing, all delivered through a remotely hosted platform to subscribers. Based upon the traditional timesharing model, modern platform-as-a-service providers offer the ability to create enterprise-class applications for use locally or on-demand for a small subscription price or for free.
You can think of PaaS as one stop shopping for those looking to build and deploy applications. PaaS provides self-contained platforms with everything you need for application development and operational hosting. Platforms such as Google App Engine and Force.com (part of Salesforce.com) are popular ways to approach application development on the cloud.
Core to the PaaS notion are a few major components: Design, development, deployment, integration, storage, and operations.
Design refers to the ability to design your application and user interfaces.
Development within the world of PaaS refers to the ability to design, develop, and test applications right out of the platform, on demand, using development tools that are delivered on-demand. We’ve seen the Salesforce.com Apex language provide these services, with a few smaller players providing similar capabilities.
Deployment, or the ability to test, bundle, and deliver the PaaS-created applications. This means hosting the applications, typically accessing them visually, through a browser, or as Web services.
Integration, or the ability to integrate the applications developed on your PaaS provider, with SaaS applications, or with applications that may exist within your enterprise.
Storage, the ability to provide persistence for the application, meaning an on-demand database or on-demand file storage.
Finally, operations. This is the ability to run the application over a long period of time, dealing with backup, restore, exception handling, and other things that add value to operations.
Example: Boomi (Dell)
Integration-as-a-service is the ability to deliver a complete integration stack from the cloud, including interfacing with applications, semantic mediation, flow control, and integration design. In essence, integration-as-a-service includes most of the features and functions found within traditional EAI (Enterprise Application Integration) technology, but delivered as a service.
Integration is a tough problem to solve, and integration on-demand does not make that problem any easier. The core notion is that you link up to many information systems, either at the data or behavior levels, and abstract information and/or behavior from those systems to be delivered with one or many systems, either within the same enterprise or within companies.
There are many books on integration, including 3 that have been written by the author of this article, so we won’t get into it too much detail here. However, any integration engine, on-premises or in the cloud, must support certain basic functions that include:
…to name just a few.
Transformation: The ability to convert the information semantics from one system to the information semantics of another system, thus the target system is able to receive information in a format it can understand.
Routing: Information is routed to the correct systems, based upon pre-defined logic (called intelligent routing).
Interface: The ability to connect to the source or target systems using whatever interface they expose.
Logging: The ability to log all integration activities, such as messages flowing in and out, as well as other events.
Example: AWS Identity and Access Management
Security-as-a-service, as you may have guessed, is the ability to remotely deliver core security services over the Internet. While the security services provided today are often rudimentary, more sophisticated services are becoming available, such as identity management.
Security-as-a-service is a tough sell, considering that security is typically considered a weak point of cloud computing. Many enterprise customers believe providing security on-demand is an unimaginable act of treason. However, there are times when security delivered out of the cloud makes sense, such as securing a cluster of cloud resources you’re leveraging within your enterprise, or even between enterprises. You can enforce security hierarchies between physical organizations out of the cloud, or perhaps have on-demand encryption services, or identity management solutions that are cloud-delivered.
The downside is rather obvious, considering that most look at security as something that needs to be controlled, and thus not outsourced. However, as time goes on and security-on-demand becomes more sophisticated, and more corporate data and applications reside in the clouds, then there will be an uptake in the security-as-a-service market.
Example: AWS Cloud Service Management
Management/governance-as-a-service is any on-demand service that provides the ability to manage one or more cloud services, typically simple things such topology, resource utilization, virtualization, and uptime management. Governance systems are becoming available as well, such as the ability to enforce defined policies on data and services.
Much the same as with security-on-demand, this aspect of cloud computing is slow on the uptake right now. Indeed, most enterprises like to hold control management and governance. However, as more applications and data are outsourced, it may make sense to manage and govern those resources from the cloud as well.
Testing-as-a-service is the ability to test local or cloud-delivered systems using testing software and services that are remotely hosted. It should be noted that, while a cloud service requires testing unto itself, testing-as-a-service systems have the ability to test other cloud applications, Web sites, and internal enterprise systems, and do not require a hardware or software footprint within the enterprise.
The advantages of testing-as-a-service include the ability to avoid purchasing test servers and testing software. Moreover, in many respects, testing applications, either on-premises or in the clouds, is better done by using a testing service that connects to those applications over the Internet, since many real life users will do the same thing. If you’re looking to test a Web site or a Web-delivered application, testing-as-a-service is actually more logical than testing on premises, in many instances.
The downsides are the ones you might expect. Many of those who build and deploy applications like to control their testing environments and would not dream of leveraging testing servers and software that they don’t own nor host. Again, as more applications are re-hosted in the cloud, testing-as-a-service will become more of an accepted paradigm.
Example: AWS IaaS Cloud
Infrastructure-as-a-service (IaaS) is really datacenter-as-a-service, or the ability to remotely access computing resources. In essence, you lease a physical server that’s yours to do with as you will, and, for all practical purposes, is your data center, or at least part of a data center. The difference with this approach versus more mainstream cloud computing is that, instead of using an interface and a metered service, you’re getting access to the entire machine and the software on that machine. In short, it’s less packaged.
We defined database-as-a-service, storage-as-a-service, etc., as separate categories of cloud computing. Infrastructure-as-a-service can provide all of them, including database, storage, governance, application development, application processing, security, etc. Anything that can be found in a traditional data center can be delivered as an IaaS. The overlapping features of IaaS and the other cloud computing services we’ve defined and described in this article can make this section a bit confusing.
The advantage of infrastructure-as-a-service is that you’re able to access very expensive data center resources through a rental arrangement, and in so doing, preserve capital for the business. Additionally, somebody is always there to manage the physical machines for you, including replacement of downed disk drives and correction of any networking issues.
Other examples of cloud computing are the use cases and applications from this technology. The Internet of Things (IoT), for instance, is about data coming from sensors, and the processing of that data in near real time. The platform requirements make the IoT a natural application for the cloud. Food producers are looking at cloud-based IoT applications to provide better insights into irrigation and production. That’s just one small example of where the cost savings make the development and production of IoT applications cost effective.
These innovations are not lost on the cloud providers, with Google, Microsoft, and Amazon Web Services all offering IoT services within their public clouds. Indeed, the ability to support IoT applications could easily encompass 25 percent of cloud applications by the end of 2017.
More and more, people expect everything to be connected, and the cloud makes costs realistic to accomplish this. Companies that make devices, from mobile phones to thermostats, understood early on that it doesn’t make sense to keep all the smarts and storage in the device itself. Most smart IoT devices pair with their own cloud.
Nest thermostats store data from their thermostats in their own cloud, and they even sell cloud storage services for their DropCam IoT device. Most mobile applications have a back-end cloud service, typically running in another public cloud. Without the cloud services, the devices would likely cease to have value, or cost much more than the sub-$100 US price tags we see today.
Developers are creating applications that are purpose-built for cloud platforms. Called “cloud native,” this means they leverage the native features of the platform, such as auto-scaling, auto-provisioning, and other features that are accessible by leveraging the native APIs.
Cloud native applications, written specifically for the cloud platforms that they run on, provide better performance than applications that are not. They burn less money during operations and provide better monitoring and management capabilities.
The way I see it, Cloud computing is really more of an evolution than another inflection point. Cloud services, either public or private, are becoming systemic to everything, including enterprise infrastructure and applications, IoT, mobile computing, etc. The success is in how cloud computing provides the path of least resistance, and typically the most cost effective solution. Unless there are major issues uncovered (highly unlikely), cloud computing will continue its rapid growth.
Keep in mind that the components of cloud computing will change over time as our thinking and the market evolves. However, the general patterns presented in this article will be relatively consistent as cloud computing evolves; just the names and the features may change a bit. What’s most important is that you recognize and understand the available cloud computing resources that can help change your enterprise architecture (if you’re a manager) or get your next job (if you’re an engineer).
Cloud Academy offers a free 7-day trial subscription that allows complete access to all our learning resources. We feature Learning Paths for focusing in a dynamic ecosystem as described in this piece. The video Courses are created by working professionals who understand what is required for passing certification exams as well as getting the job done right. Quizzes and labs support the core learning experience and with a full 7-day trial, you might find you can build something you’re proud of in one of the hands-on Labs without asking anyone for advice.
Let’s get started today!
What is Ansible? Ansible is an open-source IT automation engine, which can remove drudgery from your work life, and will also dramatically improve the scalability, consistency, and reliability of your IT environment. We'll start to explore how to automate repetitive system administratio...
When it comes to building and configuring IT infrastructure, especially across dozens or even thousands of servers, developers need tools that automate and streamline this process. Enter Puppet, one of the leading DevOps tools for automating delivery and operation of software no matter ...
As Head of Content at Cloud Academy I work closely with our customers and my domain leads to prioritize quarterly content plans that will achieve the best outcomes for our customers.We started 2018 with two content objectives: To show customer teams how to use Cloud Services to solv...
2018 was a banner year in cloud computing, with Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP) all continuing to launch new and innovative services. We also saw growth among enterprises in the adoption of methodologies supporting the move toward cloud-native...
Today, cloud technology platforms and best practices around them move faster than ever, resulting in a paradigm shift for how organizations onboard and train their employees. While assessing employee skills on an annual basis might have sufficed a decade ago, the reality is that organiz...
How building Cloud Academy helped us understand the challenges of transforming large teams, and how data and planning can help with your cloud transformation.When we started Cloud Academy a few years ago, our founding team knew that cloud was going to be a revolution for the IT indu...
If you want to deliver digital services of any kind, you’ll need to compute resources including CPU, memory, storage, and network connectivity. Which resources you choose for your delivery, cloud-based or local, is up to you. But you’ll definitely want to do your homework first. In this...
Now that you’ve decided to invest in the cloud, one of your chief concerns might be maximizing your investment. With little time to align resources with your vision, how do you objectively know the capabilities of your teams?By partnering with hundreds of enterprise organizations, we’...
It’s no secret that cloud, its supporting technologies, and the capabilities it unlocks is disrupting IT. Whether you’re cloud-first, multi-cloud, or migrating workload by workload, every step up the ever-changing cloud capability curve depends on your people, your technology, and your ...
In the IT world, failure is inevitable. A server might go down, an app may fail, etc. Does your team know what to do during a major outage? Do you know what instances may cause a larger systems failure? Chaos engineering, or chaos as a service, will help you fail responsibly.It almo...
As the sixth annual re:Invent approaches, it’s a good time to look back at how the industry has progressed over the past year. How have last year’s trends held up, and what new trends are on the horizon? Where is AWS investing with its products and services? How are enterprises respondi...
71% of IT decision-makers believe that a lack of cloud expertise in their organizations has resulted in lost revenue.1 That’s why building a culture of cloud—and the common language and skills to support cloud-first—is so important for companies who want to stay ahead of the transfo...