Archive for January, 2010
For most people, the term “cloud platform” is even fuzzier than cloud computing as a whole. Yet, when cloud platforms are properly understood and embraced, they potentially offer the greatest impact over any other aspect of cloud computing.
Cloud platforms can drive down software engineering costs tenfold, reduce time to market, improve profit margins, and lower risks. They can promote higher levels of security and system interoperability, and can allow system integrators to enter into new markets within days, instead of years. They can dramatically lower the skill requirements needed to create new software applications, so that entrepreneurs are empowered to serve their customers, and customers are empowered to serve themselves. In a nutshell, cloud platforms takes cloud computing to the masses.
Let’s start with a simplistic understanding of the term “platform” for computing, and then we will expand our definition to the realm of cloud computing.
A platform generally refers to a “prefab” software architecture upon which you can build computing solutions. It provides core software functionality, which would otherwise need to be engineered from the ground up. Can you imagine building an oven every time you wanted to cook dinner? Probably not. Fortunately, the oven is already built; otherwise your meals would cost $500 each.
Likewise, the cloud needs platforms to do a lot of the grunt work, which otherwise needs to be engineered into every software application from the ground up at great expense. Cloud platforms serve as a launch pad for cloud software, providing “prefab” functionality such as a user interface, user sign up and administration, role-based security, federated search, multi-tenant data management and so on. If you’re asking the question, “What the heck is multi-tenant data management?” then exactly! You’re seeing the point. It’s complicated stuff, and you wouldn’t want to program it to every app. Unfortunately, most cloud developers are not talking full advantage of platforms.
By their very definition, cloud platforms are offered “as a service”, meaning that you can use them over the Internet with no need to ever install, upgrade or host. Cloud platforms are readily distinguished from other platforms, which require installations, uploads, downloads and managed hosting. As-a-service means that cloud platforms are easy to use. More important, if you build cloud software on top of a cloud platform, then your solution is inherently cloud-enabled, taking advantage of underlying cloud infrastructure, elasticity and as-a-service models.
Cloud platforms also may include online tools and APIs that make it easier for developers to build on top of the platform. When choosing a cloud platform, it’s important to make sure that the API is open, allowing for integration with 3rd-party, open source and legacy software and web services, otherwise, you could become overly locked into the platform provider for all your needs. This is referred to as an “open platform” versus “proprietary vendor lock-in.”
Major Benefits of Cloud Platforms
On the surface, it’s easy to think that cloud platforms are for software developers, but it’s the IT buyers who are suffering the most from astronomical software engineering costs and delays.
For IT buyers, investors and developers, the advantages of cloud platforms are tremendous. Creating a cloud application from the ground up is a complex process, involving not just ordinary coding, but also adding a layer of abstraction, and incorporating a far-flung communications layer as well as security protocols. If every SaaS provider had to create each of these things from scratch, then cloud-based application development would be hindered, and limited to only the larger software companies. Cloud platforms address this problem by allowing developers to build cloud applications on top of an existing architecture that includes core functionality. In essence, developers can use platforms to get their software to “80-yard line” without programming, and avoid reinventing the wheel.
The benefits are many:
• Lower costs – In some cases, a cloud platform can reduce costs by 80% or more, because non-core code is already engineered;
• Lower risks – Likewise, a cloud platform can reduce risks by as much, because common functions are already tested, sometimes over a period of years;
• Faster time-to-market – Cloud platforms dramatically reduce time-to-market, because they serve as a launch pad for software engineering efforts;
• Higher profit margins – Software developers and system integration firms can deliver more for substantially less, thus higher margins on fixed price contracts;
• Rapid prototyping – Create and deploy concept applications without writing code;
• Higher security and interoperability – NIST indicates that the cloud suffers from major security issues, largely because vendors are implementing disparate and unproven security models. Cloud platforms provide a common, proven security model. If cloud software uses the platform, then it is inherently secure.
As an added advantage, cloud platforms shield both software engineers and end-users from the behind-the-scenes complexities of the entire cloud. Dan Tapscott, the author of Wikinomics, talks about the growing complexity problem this way: “the Web look[s] increasingly like a traditional librarian’s nightmare — a noisy library full of chatty components that interact and communicate with one another.” He is referring to the cloud as a cluttered hodgepodge of Web apps and services, each with their own logins, data sources and security/resource functions. In the absence of cloud platforms, we are recreating the wheel millions of times over. In a few years, the redundancies will drive up costs by billions within federal IT systems, health-IT systems and other enterprise IT systems that rely on cloud services. All these IT systems will struggle with disparate security models and interoperability concerns.
Unfortunately, cloud platforms remain vastly underutilized. That’s why some enterprise software systems unnecessarily cost millions of dollars and take years to implement, only to eventually fail! The resistance to platforms is sometimes baffling. It’s almost as if the logic is to stick with what we know, even though it doesn’t work. Ironically, some software integrators are creating totally proprietary stovepipes from the ground-up, just to avoid platforms. As a result, IT buyers are paying more than twice as much for their systems, and being locked into developers. Instead, they should be taking advantage of open APIs that are available with some of the more open cloud platforms.
Cloud Platforms as Middleware
It may also help to think of a cloud platform as the middle layer of a three-layer cake, in that it rests between the hardware and the software. Sure, you can remove the middle layer, but in doing so you’re also removing a lot of important “cake” that somebody needs to bake from scratch. In the case of software engineering, that’s some expensive cake. That is to say that software can be built without using cloud platforms, but the costs of doing so can be detrimental; and creates a barrier to entry for all but the largest development shops. You see – platforms actually do a lot more than just provide core functionality for software. They also lower the time and risks of engineering software dramatically because the platform engineers have already worked out the devils in the details on their own dollar.
Platforms also reduce the software footprint and maintenance costs, because the responsibility for maintaining platform code is essentially outsourced to a platform provider, who achieves economies of scale by maintaining one system.
Web software that is created without platforms is considerably more costly. On the other hand, cloud platforms provide core functionality that dramatically reduces time, risk and development costs.
Types of Platforms
Cloud platforms come in many shapes and sizes, depending on the application at hand. Arguably, Google is currently dominating the consumer app platform, whereas Facebook is dominating the social networking platform, and Salesforce.com is trying to make a footprint as an enterprise software platform. Several other players, Yahoo included, offer ecommerce platforms, which have driven down the time, risk and cost of ecommerce solutions.
The term “platform” as it relates to cloud computing is often misused to refer to customizable software. Software that can be customized is simply that: customizable software. Similarly, cloud infrastructure vendors sometimes promote their products inaccurately as platforms. A platform, on the other hand, is something entirely different. A cloud platform rests between the physical infrastructure and customizable software.
Enterprise Platforms
Of all types of platforms, enterprise business platforms may provide the greatest value in the near future, simply because enterprise business systems are extremely expensive – sometimes costing $10s of millions to engineer. By enterprise business system, we’re referring to the types of scalable multi-user / multi-tenant cloud-enabled software that government agencies and Fortune 500 companies spend millions on, sometimes without blinking an eye. For enterprise business systems, platforms offer such great benefit only because the engineering costs are otherwise so high, sometimes representing more than 95% of the total cost of ownership.
Significance of Platforms
In the future, cloud platforms will make the cloud easier to use. To fully understand the significance of cloud platforms, we need simply look at the evolution of earlier computing models. Can you imagine a world without desktop operating systems? We, the authors of this book, don’t need to imagine. We were there.
In the early days, PCs were hard to use; and security was terrible because every software program implemented its own way of doing the same things. The early PCs were only usable by an elite community of hacker geeks or well-funded NASA engineers. They were expensive to program, because old-time developers would author hundreds of lines of source code just to move a mouse or paint lines on a screen.
Then came operating systems like Microsoft Windows and toolkits like VisiCalc. All of a sudden, anyone could use a PC. Secretaries were creating spreadsheets for their bosses. The mouse moved automatically, as if by magic. Inasmuch as some techies might knock Microsoft, their Windows platform indisputably changed personal computing. Think about it – for about $100, you get tens of millions of lines of code, which handle thousands of things that we take for granted, and which would otherwise need to be painstakingly engineered the into every software application at the cost of millions of dollars and years of development time. These days, no one in their right mind would remotely consider writing a software application directly to a PC without using some sort of platform, yet that’s exactly what Web developers are doing each and every day!
The cloud platform is evolving in many of the same ways as desktop computing. Cloud platforms are helping to bring cloud software to the masses. As the cloud increases in its complexity, the role of platforms is becoming more important.
Cloud Platforms are like Operating Systems for the Cloud
We tend to think of an operating system as a behind-the-scenes technology that manages resources, and that’s true. But in fact, they do much more than that. There is a major user-facing element to an operating system. Windows, for example, makes the underlying infrastructure easier to use. It provides a common user interface, a common security model, and shields users from all of those behind-the-scenes complexities.
A cloud platform works the same way. The platform implements a virtual instance of a core set of functionality, with common features such as user signup, security, reporting, and so forth. The platform will then allow developers to build on top of that instance to customize it for their specific needs, and to additionally build features on top of the platform without programming, such as creation of forms, data entry collection, report writing, etc.
As a result, users can log into one place and experience an integrated solution, where they do whatever they do.
We’ve informally defined cloud computing as “computing on the Internet, as opposed to computing on a desktop.” A more purist definition of cloud computing is one that differentiates true cloud computing from mere software on the Web. After all, Web software has been around for more than a decade and cloud computing is relatively new, so how can they possibly be the same things, right?
Rather, true cloud computing takes advantage of new enabling technologies and cloud constructs, which are making the movement possible. In essence, Web software has been around for years, but until recently it has been prohibitively costly for the masses to develop and host – often costing millions of dollars and taking years to develop and implement. Cloud computing changes all that by incorporating virtualization technology that allows the physical infrastructure to be rented for mere pennies compared to the old ways to engineer Web software. It further changes the equation by providing cloud-specific platform toolkits to accelerate development.
The National Institute of Standards and Technology (NIST) puts it this way:
“Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
NIST also categorizes cloud computing into three “as a service” offerings, namely infrastructure, platforms and software, which are broken down in more detail here. We will start with Cloud Infrastructure (Infrastructure-as-a-Service, or IaaS)…..
Cloud Infrastructure (Infrastructure-as-a-Service, or IaaS)
In the old days, if you needed a server, you might spend between five and ten thousand dollars or more upfront and then you’d pay a techie $30K a year plus benefits to manage it. Nowadays, with cloud infrastructures, you can actually buy a “virtual server” over the Internet almost as easy as signing up for an email account. The server never arrives at your doorstep. Instead it stays out on the cloud where you can log on and manage it anywhere and anytime over the Internet. For the techies amongst us, that means that you can buy and manage processing time (CPU time), storage, network capacity, and other fundamental computing resources without shelling out big bucks upfront. You only pay for what you use.
If you’ve never used cloud infrastructure, then the very notion of using a server over the Internet may sound crazy. You’re probably asking the question, “How can I do that?” Well, actually, it’s easy to rent computers over the Internet. The easiest way to learn is to actually do it. If you go to Amazon.com’s EC2 website, you can launch and manage a real live server (well, actually a small virtual server) for an hour for about 20 cents. What a bargain! You will specify a server name, the type of operating system and other details to create your server instance. Then, you can log on using remote desktop or visit the website, just as if it were a real live server.
How it Works
We use the term “virtual server”, because you’re not really renting a physical box. That is, you can’t actually walk into a room and touch your dedicated machine. Instead, it’s all managed by “virtualization” software, such as VMware.
In the old days, one operating system would run on one physical box. For example, you would buy a Windows server that contained a copy of Windows, or a Linux server that contained a copy of Linux. It was one-to-one. Virtualization, on the other hand, lets you run multiple operating systems on the same box.
In the early days of virtualization, this was a handy trick. For example, virtualization made it easy to test new software on multiple operating systems without needing multiple physical boxes. Virtualization also made it easy to run Windows and UNIX programs on the same physical box, such as when a program was only available for one operating system.
Then, one day, somebody realized an even bigger trick. With virtualization, it’s possible to sell the same physical machine multiple times. That is, a data center can run 10 copies of Linux on one box, and then sell it over the Internet like different servers? Voila, the basic concept behind cloud infrastructure (infrastructure-as-a-service).
In reality, cloud infrastructure is not limited to a single server, but rather relies on a shared pool of servers, whereby any one user can scale up to take advantage of extra computing power when needed. It works because servers are mostly unused anyway, so there’s always some extra computing power available if the pool is large enough. It works somewhat like a bank that loans the same money 10 times over. In theory, it wouldn’t work if everyone demanded their money (or computing power) at the same time.
So where is all this infrastructure?
The cloud’s infrastructure consists of actual, physical hardware that is complemented by a delivery mechanism. The main difference is that it exists outside of the user’s immediate grasp, and its existence has been abstracted to the point where its exact location is both unknown and irrelevant to the users. When you work in the old way, you know that your application is located on the PC in front of you, and the data is held on the data server in the room across the hall. With cloud computing, you don’t know whether your applications and data are in a data center in Des Moines or Delhi, and what’s more, it doesn’t make any difference.
This is an important point. One of the biggest objections to cloud infrastructure is that you can’t put your finger on it. There is a certain satisfaction to walking into your server room, and being able to point to a rack of servers and storage arrays with a glorious mass of cables coming out of the back, and saying “that’s where our data and applications are.” But that satisfaction is an illusion; in reality, there is no inherent advantage in being able to reach out and touch your own hardware infrastructure. If it works, it works; it doesn’t really matter where it lives. In fact, if your infrastructure is elsewhere at a hosted facility, then you are gaining a strategic advantage of having somebody else who specializes in such things manage it for you.
An ordinary computing infrastructure may consist of several physical pieces of hardware and cables that you must maintain and allocate. A cloud infrastructure consists of a pool of highly abstracted and scalable infrastructure devices existing in multiple provider data centers, connected over virtual private Internet connections; where a trusted third party is charged with maintenance and allocation.
Virtualization
Virtualization is the behind-the-scenes enabling technology that makes cloud infrastructure possible. Just as you can drive a car without understanding how the engine works, so too is virtualization. You don’t need to know how virtualization works to use it, since it involves the infrastructure—which the end user no longer has to worry about with a cloud implementation. The concept of server virtualization allows many “virtual servers” to run on a single physical server as if each one were a separate device. Storage virtualization works the same way. Both types of virtualization essentially decouple the function from the underlying hardware, and virtualization has become a common enterprise technology for saving money and making better use of existing resources. It’s not uncommon for a large enterprise to employ this technique in its own data center, and the technology is also in common use by cloud providers—delivering an efficient method for them to service the needs of multiple clients on a cost-effective and secure basis.
Why does virtualization make better use of resources? Because of technologies like thin provisioning. In storage for example, traditionally a volume was created for each application. This storage volume was always over-provisioned, to ensure that adequate storage would always be available; as a result, it was common for storage environments to be making use of only 30 percent or so of available storage. Virtualization uses thin provisioning to allocate storage virtually, instead of absolutely; freeing all of that previously trapped storage space. Server virtualization also makes better use of resources by not requiring separate, dedicated hardware servers for each application. In virtualizing servers, it allows for a single physical server to act as multiple virtual servers, each one separated absolutely by a virtual division that isolates each one. The “walling off” of the virtual servers within the single physical server addresses the obvious concern that there would be some potential for somebody else on the same physical server to access your data.
This is an important concept for cloud computing, since cloud computing is all about abstraction. For the end user again, the concept of applications and storage is abstracted to the highest degree—and in many cases the user will not even be aware of where the actual application or data is located. And it doesn’t matter. Virtualization works hand in hand with cloud computing to provide the abstraction that is necessary for both. Virtualization provides a type of technology that allows applications to be moved around freely onto different devices that exist in the cloud, transparently to the end user.
Next, we’ll talk about Platform as a Service (PaaS) and Software as a Service (SaaS).
__________________________
TeamHost(TM) lowers the time, risk and cost (by more than half) of creating enterprise IT systems.
In cloud terminology, the phrase “as-a-service” is extensively used, which simply means that a given cloud product (whether infrastructure, platforms or software) is offered in a way that it can be “rented” by consumers over the Internet. By “rented,” we are implying that you pay only for whatever you use. It is often described as an “on demand” service because it is available whenever you need it. There are two immediate advantages to the as-a-service model; first, up-front costs tend to be substantially less; and second, it affords a greater level of easy scalability. For example, if you store large amounts of data on premises, you’ll probably buy extra servers and storage (over-provision) to make sure that a shortage does not occur; and then when you do reach capacity, you must spend time purchasing and installing more. If you use storage-as-a-service, on the other hand, the need for over-provisioning is eliminated, and you simply purchase as much as you need on an ongoing basis, and the actual provisioning of it is transparent.
There are several methods of offering a cloud product as-a-service:
The most familiar model used by cloud software is a per user/month subscription. For example, a software provider may offer its collaboration product over the Internet for $30 per month for each user. Another approach is the advertising supported model, in which the offering is free, but you need to stare at advertisements. In such cases, the vendor receives revenues from the advertiser, rather than from the end-users. Facebook is a popular example of the seemingly free, but ad supported model.
Likewise, cloud platforms employ both the per user/month and ad supported models, as well as more creative models, such as assessing a fee per record.
Cloud infrastructure is a bit different, in that it employs the most creative as-a-service models of all, such as offering CPU time on a per hour basis, assessing for storage usage, as well as assessing for data transfers per gigabyte, often with differing rates for uploads versus downloads. Amazon’s Elastic Computing Cloud (EC2) is a great example. Amazon EC2 offers a console for creating virtual machines on a per hour basis, with additional fees assessed for data transfers and storage.
NIST takes it a step further by asserting that true cloud offerings provide certain expected characteristics, which may not have been present in earlier Web-based software. These include such things as on-demand self-service, resource pooling and rapid elasticity. Naturally, on-demand simply implies that the service is available to turn on or off as needed. Resource pooling means that multiple users share a bank of servers (including storage devices and other computing resources) over the Internet, as an alternative to using dedicated servers. And lastly, rapid elasticity means the cloud offering can be dramatically scaled up and down as needed. As an example, let’s pretend that a guy launches his own dotcom, and next week he is scheduled to appear on the Oprah show. Should he buy ten new servers just in case? No! If he takes advantage of cloud infrastructure, he can offer his software as-a-service, and scale it up and down as needed. With as-a-service, you only pay for what you use, and you can use as much as you want.
Cloud computing is more than a technology - it’s also a game-changing business process. The reason it has gained so much traction is because of what it enables for entrepreneurs. A complete discussion of cloud computing must go beyond the technology that underlies the cloud process, to include a discussion of the greater question of what drives cloud computing, and what the social and macroeconomic impact of it may be.
In this book, we choose the term “people cloud” to illustrate how our workforce is scattering in many of the same ways that computing resources have scattered across the cloud. Even more, we are managing people resources over the Internet in many of the same ways that are managing computing resources. As a result of cloud computing as an enabling technology, we are seeing an explosion in entrepreneurship and a decentralization of larger companies.
The workplace has evolved from everyone in one place, to a scattered workplace, and finally to one in which the physical roof is replaced by a virtual roof. The virtual workplace is again reconnected.
We’ve already seen major changes in the workplace. Companies have embraced a model of decentralization in favor of outsourcing and offshoring. Web 2.0 technologies have enabled a greater level of collaboration, which means two things: First, people no longer need to be physically present at the office, and can instead work from home, or anywhere else in the world. Second, this new level of collaboration allows companies to partner with smaller providers anywhere in the world to get the job done.
Job 1.0
The 1950’s mindset of the corporation as a sort of benevolent father is obsolete. That older (and short-lived) way of doing business was what we refer to as “Job 1.0″. During that time, we saw the corporation as a benevolent institution, which looked out after our own well-being. We had an expectation of a 30-plus year career with a single company, an opportunity to rise from within the ranks, and a relative amount of job security. The prevailing philosophy was that company growth was equivalent to the company’s apparent physical size. A company, during this time, that had 1,000 employees was considered to be more successful than one with 100 employees. Companies embraced the in-house strategy with a vengeance, and larger firms did everything from running their own internal print shops, to hosting their own cafeterias for workers.
This is in some ways reminiscent of the old-fashioned “company town,” which went so far as to even provide rental housing for its workers (usually substandard), a company grocery store, and so forth, and in the process, keeping employees beholden to the company, and usually in debt to it.
Job 1.0 came with three illusions: That physical growth of a company’s mass was equivalent to success, and that the “everything in-house” business model was beneficial to employees, and that it created a heightened sense of job security and loyalty.
Job 2.0
The “dotcom boom” broke down the illusions of Job 1.0. During this incredible time of entrepreneurism, the notion that a company with 1,000 employees is better and more successful than one with 100, or even one with 10, started to break down. New technologies allowed companies to do more with less. One clerk with spreadsheet software could do the work of ten people in the pre-desktop days.
What’s more relevant is that Job 2.0 started to break down the illusion of a single-company career as being beneficial. The desire for a 30-plus year career with a single company became less desirable, and employees became freer to move from job to job in search of greater opportunity. The dotcom boom ushered in a new era of mobility in the workplace, and at the same time, made it more acceptable and possible for someone to go out on their own and start an entrepreneurial venture.
Still, “Job 2.0″ operated under the concentrated model of corporate communities. Silicon Valley flourished, and contained an incredible concentration of talent, and more high-tech companies in one small region than anybody could imagine. That’s because while the concept of “job” had evolved, the concept of “company” had not yet shifted.
Many high-tech companies during this time were short-lived, but nonetheless contributed to the collective wisdom by creating new technologies that are still used today in the latest iteration of “Job 3.0″. Job 2.0 re-set the tone, breaking down the expectation of a 30-year single-company career, providing the technology for a dramatic change in how business processes are accomplished, and overcoming the ’50s mindset that prevented people from switching jobs or leaving a job to go out on their own entrepreneurial venture.
Job 3.0
And so we come to the latest version of what a job really means. Today, two factors are driving a permanent shift in employment patterns:
· Modern communications technologies and cloud computing
· High unemployment and a huge recession
These new technologies mean that we now have the technological wherewithal to move away permanently from the centralized model of work and employment. Collaboration no longer requires a physical presence, and this means companies can do more with less. It means that companies are keen to outsource many of the functions that were once done in-house. This means in turn that those functions are being done by people working at home, or for small companies that specialize in specific areas.
When we speak of the macroeconomic realities and how they too have enabled the cloud computing shift, we mean that the recession has made companies take a long, hard look at how they get things done. Companies are looking for new ways to become more efficient, and they are looking for technologies that enable them to do more with less. It’s not just a matter of getting new features or capabilities—it’s a matter of economic survival. The economic downturn transformed cloud computing from a “nice to have” into a “must have.”
The age of the cubicle is over. There are naturally some jobs that must be maintained on-premises, but increasingly, it is just as feasible to accomplish many tasks off-site, either through telecommuting or teleworking arrangements, or outsourcing to a third party provider. Today, the link between corporate size and corporate success is upside down. It is possible for a ten-person company to be more successful and productive than a 1,000 person company. And taking that to the logical conclusion, the possibility of a successful one-person company is now much more realistic than it has ever been.
The notion of working at one’s own home has gone through a lot of iterations over the centuries. In the Middle Ages, it was the standard, as craftspeople and tradesmen plied their trades out of their own workshops behind their homes, but the Industrial Age brought us a new normal. Working outside the home became the standard, and people started to see working at home as less desirable. Today, the pendulum shifts once again, as new technology makes it possible to conduct business from anyplace in the world.
The idea of working from a lounge chair on the beach in a tropical island isn’t that far-fetched. Or for those who don’t have a tropical island handy, at least, working from home. When you call into any large company’s Customer Service department for example, more often than not, you are either speaking to someone on the other side of the world, or someone who is wearing a bathrobe, sitting in their own kitchen with a laptop and broadband connection.
Ultimately, Job 3.0 has led to decentralization not only of the workplace itself, but of the workplace community. We no longer need Silicon Valley. It is no longer necessary for all those high-tech companies to be physically present in the same little section of central California. Silicon Valley has made itself obsolete. And what’s more fascinating is that it has made the very idea of what a “company” is, obsolete as well.
The end of the company as we know it
Cloud computing technology and outsourcing have an obvious symbiotic relationship, and one cannot exist without the other in the real world. Outsourcing becomes much easier and more realistic when there is cloud computing; and cloud computing becomes much more than just a theoretical technology when outsourcing functions as a practical application of it.
What is a job, and what is a company? Those questions seem simple to answer, but the answer isn’t always evident. Today, the answers are changing rapidly. In the last chapter, we talked about what a “job” really is and what it is becoming, now let’s talk about what a “company” is. Sure, in business school they taught you all about corporate structures, and how a corporation is an entity unto itself, but that’s no what we’re talking about.
A “company” has always been traditionally seen as an entity engaged in commerce, which has members (owners and employees) which carry out the tasks related to the company’s commercial endeavor. A larger company has “divisions” of employees, which may carry out tasks such as accounting, human resources, information technology, customer service, sales, and marketing. Seen in this way, a company is a very defined sort of organization that is self-contained. In a limited sense, every company had some interactions with other companies, as the company took on suppliers, vendors, customers, and partners, but still, it stood on its own as an island.
A company today, or “Company 2.0″, operates a little differently. It is still an entity engaged in commerce, but it is no longer dependent on its internal departments and employees to carry out those tasks. Instead, a company’s set of tasks is condensed down to its core mission, with all others being carried out by other companies. As such, the “corporate walls” have broken down and collaboration has built up. When a manager gets his or her weekly reports, they may not come from inside. Customer service may be taken care of by a company in Mumbai. IT is taken care of by a managed service provider in San Francisco, and marketing functions are handled by a handful of small and creative companies that collaborate with each other even further to accomplish the goals of the main company.
Web 2.0 technology, outsourcing trends, cloud computing, competitive pressure and other macroeconomic realities all have converged to make these major changes. Is a company with 1,000 employees more successful than a company with ten employees? The answer is no longer obvious. In many cases, the company with ten employees may be able to accomplish the same thing, reach the same sales goals, and carry out the same tasks as a much larger firm with many more employees.
The Virtual Company
Taking the concepts described in the previous section a step further, we can easily see the shift that has occurred from a workplace organizational structure that was several layers deep, to one that is leaner in nature, but incorporates a “cloud” of virtual extensions. In the past for example, a hierarchical business would include internal departments for data entry, payroll, public relations, IT programming, and so forth. In addition, the same business would retain functions like data storage, telecommunications, web hosting, and server farms internally as well.
The inherent inefficiencies of this hierarchical model are obvious.
The boundaries of the actual “company” have become permeable to the point of being nearly invisible. As a result, we are already seeing the emergence of the “virtual company.” These companies exist in reality today all over the world. A “virtual company” has no corporate walls at all. It may be organized to formally have only one or two employees, yet it may have dozens, or hundreds of people working towards its main commercial goal. The CEO’s office may be a spare room in her house; the “Marketing Department” is actually a virtual group of creatives working in spare rooms of their own, servicing not only the primary virtual company, but several others as well. The entire network of people—we can no longer call them “employees”—are connected in real time through modern collaborative technology, and the entire IT infrastructure exists in the cloud. Virtual private networks (VPNs) ensure that every party can connect to the applications and data they need on a secure basis, from any location and from any machine. At any given time, the Public Relations manager may be working out of a Starbucks, the tech support guy is sitting in his kitchen wearing a headset and nibbling on leftover pizza as he doles out advice, and the Vice President of Operations is keeping everything flowing smoothly from a bungalow on the beach in Thailand. Indeed, it is very possible that most of the members of this “virtual company” have never even met face-to-face. And they don’t need to.
Why does a company outsource?
A company engages in outsourcing because it brings cost savings and efficiencies, and because it has the technological framework to do so efficiently through innovations in cloud computing.
But the bigger question is, does it really make a company more cost-effective and efficient? Since traditionally, we think of achieving gains as something that is done through control, but this is not always correct. Outsourcing actually serves the broader goal of efficiency by breaking down those artificial corporate barriers, exposing processes so that they are more transparent and responsive to the corporate entity, and eliminating unnecessary layers of corporate bureaucracy.
A highly vertical company, which tends to do all functions in-house, will out of necessity have enormous layers of bureaucracy. Processes get bogged down. Reporting may not be responsive enough. Individual fiefdoms within the corporation may have conflicting goals, and may be so caught up in their own domain that they neglect the greater goal of the corporate entity. When a company is so large and organized vertically in this way, it may very easily lose focus and lose its ability to respond to the market quickly and efficiently. As such, the economic advantage is not the only advantage—a less integrated company will simply be able to respond better, maintain its core focus better, and spend its money better.
What makes a good company to begin with? A company that specializes in something; a company that does something or produces something better than anybody else. When a company starts devoting large amounts of energy and resources to tasks that are not related to that thing it does better than everybody else, then that company’s energy starts to dissipate. And more importantly, those peripheral tasks aren’t getting done as well.
For example, a company that makes pizza may make the best pizza in town. They’re good at it. That’s their “thing.” But there are other things they’re not as good at. Good pizza makers aren’t necessarily good marketers, and so that pizza company outsources the marketing function to another company, which is very good at what they do.
_____________________
The ever-present question however, is whether it is safe to put mission-critical data on the cloud. The very term “cloud” implies that your sacred information is being stored someplace, and you probably don’t even know where or how. To little surprise, security is the far biggest concern among those considering cloud technology.
Yet, cloud computing is too big to ignore. It is likely the most significant shift in computing paradigms in the past 30 years. That shift is well underway, with consumers, small and midsize businesses, and even large enterprises putting applications and data into the cloud. They are shifting from pure on-premises applications and data storage to virtualized servers with hopefully reputable vendors.
If you’re an IT manager, it’s good to be paranoid. Losses from cybercrime and attack can be enormous, and the 2008 CSI Computer Crime and Security Survey show an overall average annual loss of just under $300,000.
It may seem like a leap of faith to put your valuable data and applications in the cloud, and to trust cloud computing security to a third party. Yet faith is not a part of the equation, nor should it be. Every enterprise needs to know that its data and applications are secure, and the question of cloud computing security must be addressed.
In fact, the cloud does have several security advantages. According to NIST, these cloud computing security advantages include:
· Shifting public data to a external cloud reduces the exposure of the internal sensitive data
· Cloud homogeneity makes security auditing/testing simpler
· Clouds enable automated security management
· Redundancy / Disaster Recovery
All four points are well taken. Cloud providers naturally tend to include rigorous cloud computing security as part of their business models, often more than an individual user would do. In this respect, it’s not just a matter of cloud computing providers deploying better security, the point is, rather, that they deploy the precautions that individual companies should, but often don’t.
Is 2010 the year of cloud platforms?
Most application providers impose some level of security with their applications, although when cloud application providers implement their own proprietary approaches to cloud computing security, concerns arise over international privacy laws, exposure of data to foreign entities, stovepipe approaches to authentication and role-based access, and leaks in multi-tenant architectures. These security concerns have slowed the adoption of cloud computing technology, although it need not pose a problem.
Are cloud “platforms as a service” the answer? The very nature of a cloud platform is that it imposes an instance of common software elements that can be used by developers to “bolt on” to their applications without having to write them from scratch. This advantage is especially useful in the area of security. The cloud platform brings an elegant solution to the security problem by implementing a standard security model to manage user authentication and authorization, role-based access, secure storage, multi-tenancy, and privacy policies. Consequently, any SaaS application that runs on the common platform would immediately benefit from the platform’s standardized and robust security model.
Are private clouds the answer?
The term “private cloud” likely sounds like a misnomer because it really is. A private cloud generally refers to cloud computing technology within a firewall. In many cases, you can probably even touch the box that it runs on, so it’s not really “in the cloud”. Be that as it may, so called private clouds may be the ultimate solution for enterprises that want the best combination of benefits and risks. With a private cloud, enterprises can dramatically lower their time, risks and costs of engineering and maintaining Web-based software systems, without the security concerns associated with remote hosting. The easiest way to implement a private cloud may be to leverage an open platform, which inherently takes advantage of open APIs. This way, enterprises can build and integrate cloud-enabled systems over time without the proprietary dependencies.
Superior physical security through cloud computing provider
Lack of physical security is the cause of an enormous amount of loss, and insider attacks account for a surprisingly large percentage of loss. And while the specter of black hats hacking into your network from a third world country is very much real, very often, the “black hat” is in reality a trusted employee. It’s the guy from the Accounting department who you have lunch with. It’s the lady who brings you coffee in the morning and always remembers that you like two sugars. It’s the recent college grad with so much potential, who did such a great job on that last report.
Of course, insiders can attack your network and data regardless of where it is located, given enough incentive and information, but physical proximity of the actual hardware and data makes it much easier to gain access, and cloud data centers tend to have better internal physical security protocols, including locked rooms, regulated access, and other protections against physical theft and tampering.
Conclusion: Superior security through the cloud
Besides physical security, technical security is of the utmost importance. Hosting your own servers and applications requires extra measures. A larger organization may need to deploy dedicated IT staff to security only. Cloud computing, on the other hand, builds cloud computing security directly into the cloud platform. While the company still must maintain in-house security in any case, the provider ensures that the applications and data are safe from attack.
We tend to think that retaining control over everything is inherently more secure, when this is not the case. Smaller companies especially may lack the skilled security staff in-house, and even larger firms often just don’t have the resources to dedicate to implementing rigorous security on an ongoing basis. A cloud computing provider on the other hand, which offers a detailed service level agreement and retains skilled security staff in-house, will often provide superior security when compared with the in-house alternative.
For more information about cloud computing, please visit http://www.cloudipedia.com for a free copy of “Cloud Computing Made Easy.” Cloudipedia is a property of Virtual Global, a provider of cloud-enabled enterprise IT solutions and the TeamHost™ cloud computing platform for building SaaS applications without programming.
_________________
The eBook is entitled “Cloud Computing Made Easy”, so it starts with a simple working definition:
“Cloud computing refers to computing on the Internet, as opposed to computing on a desktop.”
Hmmm, so cloud computing just means Web-based software, right? Well, no. Truth be told, a lot of major software vendors are saying “We do cloud computing too!” simply because their software works over the Internet. Cloud computing is about MUCH more than that. Inasmuch as Web-enabled software is wonderful and very useful - it has also been around for a long time. It’s nothing new in itself.
In reality, cloud computing encompasses other forms of computing beyond software, including the underlying hardware (infrastructure) and platforms. In many ways, cloud computing is strikingly similar to desktop computing in that it encompasses the same three basic elements: hardware (infrastructure), operating systems (platforms), and software. The main difference is that, with cloud computing, all three elements are “rented” over the Internet, rather than being managed locally.
Let’s take a closer look at the definition above:
“…computing on the Internet, as opposed to computing on a desktop.”
What does it mean to say “computing on the Internet”? We simply mean that you can log onto a website to do whatever you might normally do on a PC or local server. For example, you can “rent” and manage all your hardware over the Internet, configure computing environments and/or run software. Cloud computing lets us do all of our computing on the Internet as a viable alternative to buying, installing, upgrading, uploading, downloading, backing up and otherwise managing physical hardware, operating systems and software. It doesn’t require a big upfront investment, because you “rent” only what you need, and as much as you need. With cloud computing, your PC is mainly used as a way to run a Web browser. The actual processing and computing is done by remote servers (or virtual servers) and software that may be scattered across the Internet, thus the word “cloud.”
In cloud terminology, the term “as a service” loosely refers to the ability to use something over the Internet on as-needed basis. The terms software, operating systems and hardware are confusingly described as Cloud Software (or Software-as-a-Service), Cloud Platforms (or Platform-as-a-Service) and Cloud Infrastructure (Infrastructure-as-a-Service). To make matters even more confusing, the acronyms SaaS, PaaS and IaaS are often used. Since our eBook is entitled Cloud Computing Made Easy, we’ve adopted the lesser confusing terms: Cloud Software, Cloud Platforms and Cloud Infrastructure, though we will occasionally reference the other terms. We recommend these terms. In due time, we believe that the “as a service” suffix will be dropped by everyone in favor of “infrastructure”, “platforms” and “software.” Afterall, we don’t say “software on the desktop” now. Rather, the desktop is implied as a suitable delivery mechanism for software.
Next, we will talk more about “as-a-service”, and will drill down into the deeper significance of cloud computing.
______________
If the term “cloud computing” sounds confusing, then you’re not alone. Cloud computing sounds like a very fuzzy term, and like a literal cloud in the sky, you can’t really put your finger on it. It may help to understand WHY cloud computing is so hard to understand:
· First, cloud computing is an extremely broad term. It’s as broad as saying “desktop computing” (i.e. the PC), which encompasses everything from the microchip to the Windows operating system to the software. As we will learn in this eBook, cloud computing encompasses all the same elements as the desktop.
· Second, you can’t touch the cloud. Desktop computing is easy to understand because you can see, touch and feel your PC. The cloud is real, but it is abstracted to the point where you cannot see it, so it’s harder to imagine.
· And third, the term is tainted by the “me too” marketing buzz. The term “cloud computing”, for a variety of very good reasons, has become very popular, and there are plenty of new and established IT companies that want to jump on the bandwagon, often incorrectly labeling anything to do with remote computing as the “cloud”.
Nevertheless, the term cloud computing may be difficult to grasp at first, but it is very real. Download Cloud Computing Made Easy to learn more.