Search This Blog

Saturday, February 18, 2012

Just put it in the Cloud

I never thought I’d post anything about the Cloud, for one simple reason.   There’s been more written about the “Cloud” in recent years, than any other technology topic.   Yet, the misconception about what the cloud is, still exists.   That’s because it’s many things and we use one word to describe it all; the Cloud.

I’ve also heard the following: the cloud will solve all your problems, the cloud is a panacea, a silver bullet, the latest in transformational technologies, it will save corporations oodles of money, take that enterprise infrastructure with hundreds or thousands of servers and applications and just put it in the cloud…….not so fast.

The concept of the “Cloud” is truly remarkable, but it is not a panacea for every requirement.   So what exactly is the cloud?   Well, that’s the thing.   It’s many things for many types of solutions and applications.  In it’s most basic form the cloud is someone else’s infrastructure, who either has excess capacity or has built an infrastructure to provide a service so you don’t have to build the infrastructure yourself.   A more concise description is a service delivery and consumption model.  There are many types of cloud services just as there are many types of uses for the cloud.

The “Cloud” moniker can be applied to anything from apps to infrastructure, anything that’s not on your hard drive at home or on corporate servers or infrastructure.   That covers a wide berth.  Want to complicate it more?   Let’s talk about Public Cloud vs. Private Cloud (we’ll address that later).

From the end user perspective, I would categorize cloud services into Consumer and Enterprise.   

Consumer services are utility type services, such as storage in the cloud (Dropbox, iCloud, etc.), or applications (eg. Gmail) or entertainment (think Netflix, iTunes, Sony Music Unlimited).  There are of course some consumer services being used in the enterprise, such as Dropbox.

Enterprise services, for startups to Fortune 100 companies, comprise:

  • Software as a Service (SaaS)
  • Platform as a Service (PaaS)
  • Infrastructure as a Services (IaaS)

There’s also Storage as a Service (StaaS) which would include Amazon’s S3 service.  

Examples of SaaS services include Google Apps,, Quickbooks Online, etc.   These are software applications that live in the “cloud” instead of your corporate server and infrastructure and you access them via the Internet.

Examples of PaaS services include AppEngine from Google, based on the Django platform/Python programming language and Bungee Connect, a visual development studio based on Java programming language.   Software developers can build their own applications on these platforms.

Examples of IaaS includes Amazon Web Services (AWS), Verizon (Terremark) and Rackspace.  With IaaS, you build your infrastructure (self provision) with building blocks from the cloud provider, which include computing resources, storage and software stacks, to create Application servers, Web servers, etc.  

IaaS allows startups, for example, to quickly “build” an infrastructure so they can rapidly deploy their application or service to the public and continuously iterate.     Another huge advantage of the cloud is the ability to not only scale up, but scale down (elasticity).   Pay for what you need in a given period of time as opposed to paying for your peak demand requirement.    This is particularly helpful for businesses that have large seasonal fluctuations in traffic.  In order to achieve massive scalability, cloud providers “virtualize” their server environment creating hardware independent capabilities.

So speaking of the enterprise, when and how should a corporation move their infrastructure to the cloud?  Not overnight, that’s for sure.   Careful analysis is needed. Very careful analysis.  Not only technical analysis but financial as well.   Don’t forget, when you move your Infrastructure to the cloud, you’re decreasing your capital requirements (Capex) but increasing your operating expense (Opex).

Not everything should live in the cloud (at least not at this point in the IaaS cloud product life cycle).  Security and compliance are important considerations.  Some infrastructures are too costly to put in the cloud.  For example, video file based environments which must process and deliver very large, high resolution, digital video files often need to be collocated with their post-production editing environments.   Files in this instance need to be available in real-time and the cost to get the files to and from the cloud, via very high bandwidth circuits, would be prohibitive, not to mention the potential negative effect of circuit delay.  That’s not to say that mezzanine video files (much smaller resolution) could not live in the cloud.

A methodical approach to cloud migration over time, for large corporations, could include as a first step, virtualizing the on-premise server infrastructure environment.  Virtualization software allows your software stacks to be deployed to virtual containers.  Virtual servers are created from physical servers.  You get a lot more server capacity from less physical servers because you achieve a higher utilization per server.   It also allows for new servers (virtual servers) to be deployed in minutes as opposed to days or weeks. 
Btw, it’s easier to create a disaster recovery solution from virtualized environments.

Once virtualization is achieved, some organizations create Private Clouds.   This is essentially your own infrastructure on your own premise built in a way to serve many users in different areas, with usage based billing and “hooks” into the public cloud (Amazon AWS, Terremark (Verizon), Rackspace, etc.) for peak or overflow periods.   You become the “cloud provider” to your own organization.  

A typical next step is full migration into the cloud (into the public cloud provider’s virtualized environment).   The private cloud step is not necessary, it just depends on the organization and it’s goals.

Generally, especially for large organizations, the high-level steps involved in creating a public cloud migration strategy and implementation plan include:

  1. Inventory all applications, hardware/software, and dependencies between applications/stacks
  2. Identify needs analysis/drivers for cloud migration
  3. Determine performance, security, compliance and governance requirements
  4. Evaluate cloud providers and their offerings, including SLA’s and cost
  5. Determine those applications and/or data stores which are suited to cloud migration by priority 
  6. Architect the cloud solution including circuit bandwidth to/from the cloud and monitoring
  7. Develop high-level phased implementation plan (this could be a multi-year plan     depending on the organization).
  8. Assess staffing and skill set requirements.  Are internal resources sufficient to provision and maintain cloud-based services?  Can they be trained?
  9. Select cloud provider
  10. Create detailed budget
  11. Perform cost analysis (ROI and TCO), risk analysis and assess corporation’s financial  preference/tolerance for Opex vs.Capex expenditures
  12. Reassess elements which should be migrated to the cloud based on 11. above
  13. Gain Executive Sponsorship
  14. Create detailed implementation plan
  15. Create Standard Operating Procedures (SOP’s)
  16. Execute (Just put it in the Cloud…..)

As a side note, so I don’t gloss over too much, the implementation plan should include a proof of concept phase, a migration phase, a test phase, a “go-live” phase and an optimization phase.

On the flip side of this careful and methodical approach, when dealing with new applications, environments, or prototypes/pilots, once you’re done with the basic planning and provider selection, standing up a new environment in the cloud is fast…….. so just put it in the cloud

1 comment:

  1. Good article in Infoworld on 'Why corporate cloud storage doesnt make sense'. (thanks Kyle).