The Cloud is the future of Information Technology (IT). Companies, big and small are scrambling to understand and adopt the Cloud for their businesses. Why this “mad rush” to embrace the cloud? In a nutshell, the Cloud is the platform to enable companies and businesses to cater to the demands of their customers to access data, 24x7x365.
Today, the demand consumers to access (and store) data is huge! Traditional IT infrastructure cannot cope with the speed and demand for data. Ifyou own a Smartphone, you are using some kind of “Cloud Services” as well.
The Cloud enables companies and businesses to scale their IT infrastructure quickly and efficiently according to business demand within minutes (or worse case scenario, a few hours). This is in stark contrast to the old days when the IT department may take days to provision new servers & associated hardware to scale up.
Characteristics of the Cloud
- Highly Scalable and Elastic (it can scale up or down depending on the load).
- Fault-Tolerant. A correctly designed Cloud architecture can survive multiple hardware failure without any downtime or impact to your business.
- Highly Available & Redundant. Even if an entire datacenter is lost, your Application on the Cloud (which has peering & load-balancing with multiple datacenters) will continue to function.
- Speed to Market. Many businesses are using the Cloud to bring their products and services to market at amazing speed. This gives them the competitive advantages over their competitors.
- Cost Effective. Gives you the best ROI and lowest TCO.
Cloud Confusion …
Depending on who you talked to, there are many “conflicting” definition of the cloud, the different terminologies used as well as the underlying technologies. This page aims to clear some of the confusion about the Cloud, and help you understand the various technologies and terminologies used.
You’ve no doubt heard about IaaS, PaaS, SaaS and perhaps even DaaS. What are they? These are “services” provided by the Cloud that performs various traditional IT functions. When we talk about “traditional (old) IT”, we talk about servers, routers, switches – various physical hardware that we can see and touch. But when we talk about the Cloud, we need to change our view – instead of physical hardware that performs certain functions, we talk about “services” (provided by the Cloud) that perform the various IT functions.
IaaS: Infrastructure as a Service
This is the lowest (most basic) service provided by the Cloud that provides the 3 basic elements of computing: Compute (CPU), Network and Storage. Access to these 3 resources are via API (usually the RESTful API) and this IaaS layer hides the complexity of wiring & configuring all the hardware pieces together. Instead of seeing a bunch of hardware in the datacenter rack, the Cloud Administrator sees pool of resources (compute, network and storage) which he/she can easily manage via a web-based GUI or via the command line to invoke the relevant APIs.
For example, instead of walking to a physical server, insert a CD with an ISO image and manually start the installation, the Cloud Administrator clicks on a VM (virtual machine) image and then click “start” to boot-up the virtual machine. For networking, instead of looking for a free port on the switch amidst of a jumble of ethernet cables, the Cloud Administrator simple clicks on the appropriate network interface/service and “attached” it to the VM. Same goes for the storage.
PaaS: Platform as a Service
PaaS is the “next layer” of services that “sits on top” of the IaaS layer. It provides the complete computing platform which includes the Operating System, Development environment (e.g. Java, .NET, LAMP, Python, Ruby, etc), databases, web servers etc for you to develop and run your own applications (whether traditional client-server apps or cloud-based/aware apps).
Basically, PaaS provides another layer of abstraction to the user so that he/she does not have to worry about what OS to install, how to setup PHP or Python, how to setup and configure the Apache webserver, etc. The user selects the appropriate “Platform” and launch straight into development.
Examples of PaaS : AWS Elastic Beanstalk (EBS), Google App Engine, RedHat OpenShift, Heroku, Force.com, Google App Engine, Apache Stratos. One (not so good) example is FaceBook – although it is strictly not a “PaaS”, it has a rich set of APIs and tools that allows you to create your own apps and make it available to all the other FB users.
SaaS: Software as a Service
This layer, SaaS is the highest level of service provided by the Cloud. Instead of launching your own VM, creating your own run-time/development environment, the user simply selects the application he/she wants to use. The end user simply uses the web-browser to access these software applications.
Examples of SaaS: Google Docs (Google Spreadsheet, etc), Microsoft 365, Salesforce.com, Dropbox, etc.
DaaS: Desktop as a Service
This is relatively new in the Cloud offering, but basically, this service provides a ‘complete desktop’ environment for the user that complies to the company’s data policy. For example, some companies allow the “BYOD” (Bring Your Own Device) to the office, but once in office, the staff has to login to the network and launch the ‘DaaS’ (which is essentially a “container” or a specialized virtual machine). This turns their personal laptop into a fully configured office machine which has all the tools and software required for the staff to do their job.
DaaS uses desktop virtualisation or VDI (virtual desktop infrastructure) to deliver a standardized desktop environment to the users in a company.
NOTE: Some folks consider DaaS as “Data as a Service”. It is based on the concept that the “product”, data in this case, can be accessed on demand to the user regardless of geographic or organizational separation. You can think of DaaS as the ‘cousin’ of SaaS (where the product is the software application).
But we are getting ahead of ourselves now … for the purpose of understanding the Cloud, we will just focus on IaaS, PaaS and Saas
Types of Clouds
Now that we’ve understood the architecture of the Cloud and their associated services (IaaS, PaaS and Saas), let look at the different types of Cloud platform. Broadly speaking, we have:
- Public Cloud: Amazon AWS, Google Cloud Platform, Microsoft Azure, HP Cloud, Rackspace Cloud, etc
- Private Cloud: A “Cloud computing environment” that resides on the company’s own premise.
- Hybrid Cloud: A Cloud environment in which a company has its own internal Private Cloud, but has a secured “cloud gateway” to the Public Cloud.
Below is a good illustration of these 3 types of Cloud (image courtesy of “For Dummies” website)
We’ve seen examples of the Public Cloud (e.g. Amazon AWS, Google Cloud Platform, HP Cloud, etc) – but what about the Private Clouds?
Well, there are many private cloud software stack, both Open Source and propriety. For our discussion, I will just mentioned the 4 main Open Source players:
- OpenStack – this is market leader, and endorsed & supported by the enterprise players – HP, IBM, Cisco, Intel, AT&T, RedHat, Canonical (Ubuntu), Oracle, SAP, Symantec, Yahoo, Paypal, etc. It has everything the enterprise needs to build a robust and scalable private cloud.
- CloudStack – this is is a turnkey solution under Apache banner. It includes the entire “stack” of features most organizations would need to setup a private cloud (IaaS) cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI).
- Eucalytus – the main attraction of this cloud offering is its fully AWS compatible APIs. What this means for the Cloud Administrator is that you can easily create a hybrid cloud architecture with Amazon AWS easily using the same set of API commands.
- OpenNebula – aims to be truly “vendor agnostic” and provides fully a open, flexible & extensible management layer to automate and orchestrate the operation of enterprise clouds
Each of these Cloud solutions have their own strengths and merits, and if your company has the technical staff and time to play with each cloud solution, then by all means, check them out.
But if your company requires stability and enterprise support, then OpenStack is clearly the way to go.
Cloud Made Simple For …
One of your main responsibility is to ensure that the enterprise I.T. is aligned to the companies core business. Supporting business logic, expansion, customer acquisition, and speed to market is vital. At the same time, you’re also concern about the total cost of ownership (TCO) should you need to purchase additional hardware and/or software. ROI is one of your main kpi. If this is your role/responsibility, then the Cloud offers you the answers. It has the speed, stability and agility required by the enterprise at the lowest possible TCO.
Check out the Characteristics of the Cloud again at the beginning of this article.
The Technical Lead/Manager
You’re the head-honcho of the I.T department, and you report directly to the CTO/CIO. You’re responsible in selecting the best solution and vendors to meet your company’s IT infrastructure. If this is you, then you’ll need to understand what is IaaS, PaaS and SaaS because you will need to explain them to the CTO/CIO.
You may be required to make a recommendation for setting up your company’s Private Cloud infrastructure. You have the 4 options mentioned above – OpenStack, CloudStack, Eucalyptus and OpenNebula.
If your company is a large enterprise, then OpenStack is clearly the way to go because you can get the support from the enterprise players. If your company is a small start-up or a SMB/SME with skilled Linux gurus in your team, you may want to explore the other options.
Finally, if your company’s policy does not require an on-premise Private Cloud, then go for Amazon AWS – it is the easiest and fastest route to embrace the Cloud. (As an aside, Amazon AWS do provide a “Virtual Private Cloud” (VPC) for all their clients. When you launch your Virtual Machines (Amazon EC2), database (RDS), etc – they are enclosed within your own VPC for optimal security.
The System Administrator/System Engineer
Underlying all these fancy Cloud terminology and user-friendly UI – your company still needs physical server boxes. The “Cloud” does not “float” in thin air. One still need the physical servers (or Virtual Machines) to host the Cloud Layer and provide the physical connectivity (network) between the servers, switches and routers.
You will still need to administer the physical servers running RHEL or Ubuntu or SUSE or Microsoft Hyper-V, or VMware ESXi.
(Tip: If your manager asks for hardware recommendation, then request for “BladeServers/BladeSystems” with their accompanying smart enclosures. One of the better higher performance BladeServers is the HP BladeServer Systems. It comes with the c3000 and c7000 smart enclosures that allows you to manage every device within that enclosure from the Web-browser and/or the command line CLI).