Cloud Computing Services
Infrastructure as a Service (Iaas)
The word 'Cloud Computing' to certain extent has become a buzz word in IT lately with many CIOs looking to jump on the bandwagon, with a business goal to reduce cost and improve productivity. Cloud computing is generally perceived as black box to outsource and abstract IT complexities, but its important to remember that no single technology or industry approach can successfully address the computing requirements. A detailed analysis of current IT environment and business goals is required to create an effective cloud maturity model and a migration roadmap. At Jeem Services, we provide proven expertise to help you develop a hybrid approach to seamlessly integrate your on-premise environment with cloud. Our industry experts will carefully evaluate your IT environment and assess potential workloads for cloud outsourcing with a goal to enhance business productivity and reduce cost. We provide cloud enablement workshops for your key IT and businessstakeholders and deliver a comprehensive cloud strategy aligned with your future business goals.
The general concept of 'Cloud Computing' is explained here. 'The cloud generally is perceived to have some form of the computing that is outside of IT direct control and physically away from enterprise data centers. The nature of this separation makes cloud more of a 'Service' then something that you directly maintain or build on a daily basis. There are lot of companies that have built services on this paradigm, called "Public Cloud" compare to "Private Cloud" which gives you a bit more control on what can be build on a case-by-case basis.
A high level description of these paradigms or Cloud Categories is explained here. Again, an organization may need a mixture of one or more of these technologies to fully reap the benefits of cloud computing.
Infrastructure as a Service (Iaas)
This is one of simplest cloud forms to understands. Essentially, you run virtual image (VM) of a your server in another environment. The environment could be hosted by a large or a mid-size hosted provider. The capability enables you to outsource the hardware portion of your infrastructure to another location that you can manage remotely. The IT teams treat each VM as if it is running in their own Data Center. They have complete control of the system and perform maintenance like patching, backups, anti-virus, drivers etc. Since you are only moving the hardware in a IaaS situation, you are still required to perform for the configuration and system upgrades like operating system upgrades, any run-time add-ins, application updates etc.
Moving on-premise applications to an IaaS provider is simple and easy to understand. Most IaaS providers provide a provisioning process or your own process (in case of private cloud) to instantly obtain a new server. Usually, these are pre-staged virtualized images with the desired patches, baseline configurations and even software installed on them.
However, with any new technology, there are considerations to be addressed with cloud computing. Since you're moving your application and data from on-premise secure boundary where access has traditionally been restricted from inside or VPN only, additional security considerations need to be made to ensure your stretched network fully complies with the corporate security standards. Additional issues to consider would be latency, scalability and fault tolerance. If the virtual server is located far away from your data center or your client side application is not designed to work with remote server components, some degree of application tuning may be required. For scalability and high availability/fault tolerance you will need to work with the public and private cloud providers to ensure that yout geographically dispersed environment is covered by the scale-out and high availability service that the cloud provider offers.
There are many vendors that offer IaaS. Microsoft, Amazon, Vmware etc all offer their virtualization technology to allow you to provision and manage virtual machines in a private cloud.
Software as a Service (SaaS)
As the name suggests, in Software as a Service entire application is outsourced or abstracted away. Essentially, all you do is login to the system, use it and then log off. There is nothing to install, configure, patch or maintain. Your focus would largely be around the user interface that is made available by the SaaS provider. A common example is a CRM service where field sales team would remotely connect via internet , access information and close the session.
Generally, if the software offering by the SaaS provider performs all functions required by your enterprise , then SaaS may be the appropriate choice. You are not required to buy hardware and software. Also, there will not be a need for IT resources to maintain, patch, learn, configure and upgrade the software. As a matter of fact, most organization today already use some kind of SaaS provider for things like payroll, HR applications etc. For small organizations with no or little IT staff, SaaS provides a way to purchase software on a subscription basis and run operations without having to afford full time IT personals.
There are limitation as well with SaaS offerings. You may be required to lock in with a specific vendor and may not be able to switch and move data easily to another vendor. The vendors exploiting the fact may keep raising the price for you to access the data.
There are many SaaS offerings out there today. Microsoft Office 365 and Business Productivity Online Suite (BPOS) allows organizations to outsource email (Exchange), Document management (SharePoint) and collaboration/conferencing tools (Office Communicator and Live Meeting) in the cloud. These services are available on per user subscription model that range anywhere from $12-$25.
Platform as a Service (PaaS)
In this offering, the hardware, operating system and development environment is abstracted away to some degree. You can write code that can scale outward as you pay for more capacity. Most of the PaaS code is written using stateless programming. In PaaS, you write code, deploy it to PaaS environment and the users access the applications via an internal URL.
Essentially, you employ PaaS when you don't need to manage and maintain the underlying infrastructure (servers, OS, Scalability etc) but like to host the code where it can run seamlessly for end users.
The first consideration for a PaaS provider is the availability of multiple platforms for developers to run their code like .Net, Java, Python etc. The cost of PaaS provider would depend on the storage, computing power and network bandwidth your application uses.
Microsoft has implemented PaaS in two forms: Windows Azure and SQL Azure.
Windows Azure provides the Computing function, which provides the ability to write web sites using .ASPX or PHP or Tomcat servers. You can also write .NET code, Java, Ruby on Rails, C++ and other code using the compute function. The SQL Azure is essentially a version of SQL running on the web.
Generally, you can use any of the PaaS components together or separately and pay for the individual uses of each.