|By Cary Landis||
|December 28, 2012 02:00 PM EST||
Cloud computing and platform-as-a-service (PaaS) may seem like something only for the IT guys to get excited about, but the ultimate benefit is accruing to ordinary users. While most day-to-day non-tech folks don't understand the inner workings of PaaS (nor should they have to), this disruptive system is bringing in changes that are on the same scale as the early shift from command-line to GUI.
In the 1996 documentary, "Triumph of the Nerds," Steve Jobs described his early vision to take the desktop to the masses: "It was very clear to me that while there were a bunch of hardware hobbyists that could assemble their own computers... for every one of those, there were a thousand people that couldn't do that, but wanted to mess around with programming - software hobbyists." Steve Jobs was a visionary. He knew that his computer needed a graphical, easy-to-use operating system so that millions of non-tech people could use it. Then, operating systems offered by Apple and Microsoft, and easy-to-use tools like VisiCalc and later MS Access brought personal computing to the masses.
The cloud is quickly evolving in ways that are similar to desktop computing of the 1980s. As PaaS tools emerge, they're quickly transforming the cloud into a true computing platform... one in which anyone can participate who has a good idea and basic computing skills. In the same way the early graphical operating system brought computing to ordinary people, cloud computing is already moving towards a level of democratization and pervasiveness that is having a dramatic impact on how people work. Just as PCs were once seen as something "with potential" but nonetheless only used by a handful of "hobbyists" as Jobs put it, cloud computing is seeing the same revolution. Just like prior computing platforms, the cloud needs an operating system to make it more useable and approachable by the masses. In cloud jargon, PaaS will soon be the operating system for the cloud.
Getting Under the Hood of the Cloud
From a purist's perspective, operating systems are defined as software that manages computing resources, and that's exactly what PaaS is doing for the cloud.
These days, it's difficult to imagine the desktop PC without operating systems. The OS is what makes the PC easy to use, and without it we'd all be still using cardboard punchcards. It just makes the underlying infrastructure more approachable by providing a common user interface and common security model, and by shielding users from all of the behind-the-scenes complexities that make computers do what they do. Inasmuch as some people may scoff at PC operating systems, they're an incredible bargain. Where else can we buy millions of lines of code for a couple hundred dollars? Operating systems make computing possible because they make computers easier for everyone to use.
The same is true for PaaS. Whether we're talking about a desktop operating systems or PaaS, many things remain the same across both paradigms. They are both designed to shield developers and other users from under-the-hood complexities of managing complex infrastructure. They both help developers build and deploy applications faster. They both serve as the middle layer of the "three layer cake" that rests between software applications and the underlying infrastructure. They both make it easier to run and monitor software applications. They both give users a Graphical User Interface (GUI) and shared visual experience across applications. They both make computing easier for everyone.
Regardless of how similar, cloud platforms may also be a lot more complex than their desktop OS predecessors. The cloud is more than a single computer, and even more than a collection of computers. The cloud is at its best with multiple users sharing resources that are provisioned and deprovisioned on the fly. The cloud needs to deal with special security challenges. The applications may be spread across thousands of web services that need to be served as an integrated experience. So, speaking of an operating system for the cloud requires a broader philosophical discussion.
I Don't Want to Live in a World Without OSes
There was a time when there were no operating systems. PCs were difficult to use. Security was terrible, because every software program had its own way of doing things. Those early PCs were usable, but only barely, and only by a small community of uber-geeks. It took hundreds of lines of source code to accomplish a simple task. In the post-Windows world, things changed and the world of computers became democratized. Forty years ago, who would have imagined that pre-schoolers would be using computers today? With the advent of the graphical user interface and the operating system calling the shots behind the scenes, non-tech users were suddenly able to use computers to accomplish complex tasks. The OS contains millions of lines of code, handling things we now take for granted, but in those early days would have had to have been engineered at a cost of millions of dollars. Can you imagine writing a software application without an operating system platform to support it? It would be an exercise in futility. Yet, web developers are still bypassing the cloud platform - the operating system for the cloud - on a regular basis, and spending countless unnecessary hours and dollars in development and deployment.
What Cloud Platforms Do for You
A standardized, recognizable user interface, combined with common security and support features, has assured for decades that computers are speaking the same language. The standardization and stratification afforded by operating systems led to the capability of computers to be efficiently and effectively connected.
The operating system is a big part of the conversation when it comes to PCs, laptops, and smartphones, but when it comes to the cloud, the operating system conversation gets a bit...cloudy. What is the operating system for the cloud? Individual components - the servers on the back end - each have an OS, but the servers themselves are not the whole cloud. At a more abstract level, it's PaaS that serves the operating system role when considering the cloud as a whole.
If you're developing an app for Microsoft Windows, you can count on the OS to transparently handle routine things like getting the mouse to move, connecting to the printer, or common features such as copy/paste or search. Cloud platforms work the same way, implementing a core set of functions with common features (such as user signup, security, reporting, etc.). Developers then use that to build on top of that instance, customize it, and build features on top such as form creations, data entry, or report writing, without complex programming.
The National Institute of Standards and Technology (NIST) defines PaaS as:
"The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations."
In short, what the NIST definition says, is that PaaS allows users to gain access to a set of services for accomplishing a variety of tasks by providing a layer of abstraction over things like scaling, storage, and management - and is therefore very much like an operating system.
Obviously, the cloud has a physical layer, with cloud data centers running multiple computers that may be based on Windows, UNIX, Linux, or any one of several other true operating systems; but if we think on a grander scale and take the cloud as a single, large entity, Windows and UNIX isn't really what drives it.
PaaS is one of the centerpieces of the cloud revolution. Just as with the operating system in traditional computing, PaaS gives users a standardized infrastructure and common security, signup, reporting, and countless other features and functions. Though it is not exactly the same thing as an operating system, and is in fact much simpler, Cloud Platform is the logical replacement for OS as we enter the cloud era.
Imagine Having to Forge Your Own Padlock
Not everyone needs to be a blacksmith. Most of us wouldn't have a clue if we had to create a padlock out of forged steel, or put together the door locking mechanism of an automobile. Yet far too many companies are still taking that approach with application development. Take hardware and software security as an example. Even within the cloud, many providers have approached security as an afterthought to be considered after everything else, or worse, implementing their own proprietary security approaches. It was this early lack of uniform security that caused concerns over the security of the cloud.
However, these concerns need not be an issue. Windows, Linux, OS X, and most every operating system has built-in security mechanisms. Cloud platforms by their nature impose common software elements, which are used by developers as a type of "bolt on" functionality so that they do not have to write them from scratch - and more importantly, to add a level of maturity to the final application.
This bolt-on approach of cloud platforms is what ultimately solved the security concerns many companies had over the cloud. PaaS imposes a standard, tested security model for managing things like authentication and authorization, role-based access, multi-tenancy, and policies. As a result, any SaaS application running on top of this platform immediately benefits from that built-in security, in the same way that Windows, UNIX and OS X users benefit from the proven security built into those systems.
From Punchcards, to Command Line, to Modern Day
Like any OS, the cloud platform drives down development costs, reduces time-to-market, improves profit margins, lowers risks, and improves security and interoperability. It lowers the skill requirements needed for most tasks. Ultimately, the cloud platform - whether you use one as an end user or not - is what makes cloud computing available to everyone, and that's the real power of the cloud.
Cloud platforms, like operating systems, have evolved and today we're seeing two different types of PaaS that are as different as command-line DOS and Microsoft Windows 8. Like early command-line MS-DOS, the first cloud platforms were fairly basic and limited in scope, providing mostly auto-scaling and runtime services that made it easier to deploy and scale software for large numbers of users over the cloud. These systems made it possible to add features such as performance monitoring, scaling, provisioning VMs, and load-balancing, without having to re-invent the wheel each time. These types of platforms do offer useful functions, but stop short of helping to create code and applications.
As operating systems have moved from being less like crossing the wilderness in a covered wagon and more like crossing the Universe in Captain Kirk's Enterprise starship, cloud platforms are starting to see a similar shift. A true cloud platform takes on more of an end-to-end approach. Going far beyond the basic auto-scaling and runtime services of the first cloud platforms, today's Cloud Platforms are true software development platforms that start with hosting and deployment, and move all the way to development with a hosted toolset with built-in cloud functionality. It provides tools for building and deploying software on the cloud. In the true spirit of operating system functionality, this type of cloud platform provides for push-button deployment with no server-side configuration required, and the platform itself is in the cloud so that there is no need for downloading to, or uploading from a desktop environment to access its functionality.
Who Benefits from the Cloud?
We've talked about how cloud platforms offer a lot of common core functionality, but they do a lot more than that. They can also reduce the software footprint and maintenance costs - since responsibility for maintaining platform code is the responsibility of the platform provider.
Cloud platforms are still dramatically underutilized, despite their enormous potential and power. Enterprise systems are still costing multiple millions of dollars, often taking years to implement, and experiencing a high failure rate - even though a cloud platform would easily bypass many of these troublesome problems and roadblocks. Some developers still create proprietary, stovepiped applications and functions at great expense, often causing IT buyers to pay substantially more than necessary, and experience lock-in.
This resistance is curious and unnecessary. Some of the more open cloud platforms offer open APIs as well, which allow for even greater flexibility and openness.
Early operating systems were monstrous beasts, hard to understand, and ordinary people never approached using their full functionality. Modern operating systems on the other hand, are geared towards making things easier for end users, not engineers. This is exactly the case with the cloud platform. Software developers can, of course, make excellent use of a cloud platform, but ordinary IT users who are not skilled programmers also make use of the cloud by having a platform for easily and quickly creating useful applications, proof-of-concepts, and prototypes, often without having to involve the IT department and without any programming at all; while easily incorporating all of that built-in core functionality.
The cloud has become the computing platform of the future. There is a popular quote attributed to Thomas Watson, founder of IBM: "I think there is a world market for maybe five computers." That quote assumed that computers were only for the very largest customers. We've come a long way since that speculation, and the general trend has been to move computing into the hands of everybody from big business users all the way down to preschool children. Cloud computing continues that trend by bringing greater levels of access to high-end applications and data storage, as well as new techniques for collaboration, to even the smallest mom 'n pop businesses, telecommuters, and independent work-at-home contractors.
Mr. Watson got many things right and to his credit once again, what if his quote was saner than it once sounded? The term "cloud" refers to the computing power that is available across the Internet. In a sense, the cloud is rapidly transforming a worldwide network of computers into the largest single [virtual] computer in the world. And even more, PaaS is quickly becoming the operating system for Mr. Watson's futuristic computer.
Software in a Box
Software as a Service
Platform as a Service
Infrastructure as a Service
- "All It Took Was One E-Mail to Larry," Says Former eBay Research Director As He Moves to Google
- Google Ramps Up Its Mobile Reach: Launches "Mobile Web Search"
- VoIP Update: Yahoo! Buys DialPad
- Ericsson + Napster = World's First "Wireless Digital Music" Brand
- Free Guest Passes for the SOA World Conference & Expo in NYC
- SYS-CON i-Technology Podcast August 30, 2005
- A Flair for Food - Health-Conscious Cooking Is This Chef's Cup Of Tea
- Sony PSP May Feature Porn
- Kapow Helps Seiko UK, Provides SMS Text-Alert Services
- South Korea is World's Largest Phisher