As the cloud gains supremacy over the IT marketplace, you need to be in the know. Here are 11 key terms you should be familiar with if you want to have a career in the cloud.
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:
- First, you can expand the amount of disk space available as you need it, and only pay for what you’re using. Moreover, you can reduce the amount of disk space, and cost, as well, as the need declines. This makes storage-as-a-service solutions cost effective for larger volumes of data, typically more than 500 gigabytes, either through direct access or using the disk as if it were local to your client computer. Or, using the storage-as-a-service provider as a redundant backup for critical files.
- Second, you don’t have to maintain the hardware. Drives can go down and you don’t have to replace them. It’s all a part of the service. When compared against an on-premises solution, where you have to physically repair the drive, storage-as-a-service removes you from having to deal with that issue.
- Finally, the storage-as-a-service provider furnishes the disaster recovery system for you, and retrieving deleted files or entire directories is part of the service. They back up and restore the file system as often as you need them to. You don’t have to pay somebody to handle that task within the data center, and, better yet, local staff can’t screw that up if they are not properly maintaining local storage systems.
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”
- Transmit order to a warehouse.
- Process shipping provider.
- Price shipping.
- Turn over to shipping provider.
- Track shipment.
- Report to the customer.
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:
- A user interface.
- Predefined application behavior.
- Predefined data.
- Support for any number of client platforms, since they run through a browser.
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!