What is virtualization?

Virtualization concept came in 1960. It was brought by IBM for the Mainframe server to fully utilize hardware resources by logical partitioning them in virtual machine (VM). In 1980’s and 1990’s era, we almost forgot this technology due to rise of desktop and client server computing.
After this era we jumped on distributed computing technology. Company started to use multiple servers to execute their application. Each server took extra space and used more power and cooling which gave rise to extra expenditure cost to run application.
To overcome all this extra expenditure company started to explore virtualization. VM ware is one of the leading companies which provide virtualization. Virtualization is old technology in new box with more powerful resources and options.
Virtualization is the partitioning of not only mainframe server but any physical server into multiple virtual servers. It gives organization maximum utilization of hardware with same CAPEX (ongoing capital expenditure) and OPEX (ongoing Operational expenditure). Each server acts like a real physical server that can run on operating system with just like physical server. Now companies are partitioning their physical server into multiple virtual servers and run their application on virtual servers with same resources and less expenditure.

There are three different types of virtualization
  1.        Hardware virtualization – Hardware virtualization allow us to run different OS (Operating Server) and different servers simultaneously on the same hardware. 
  2.        Desktop virtualization – Desktop virtualization allow us to run different desktop for different users simultaneously on the same hardware.
  3.        Storage virtualization – Storage virtualization is the pooling of physical storage from multiple network devices on the same hardware.

Why SOA?


In my last blog, I explained about SOA. Now, I am going to explain why we need SOA in addition to all existing technologies. Why is business embracing this technology?
Our IT industry is around 40 years old. When IT industry had started, most of the applications were running on Mainframe. Most of the applications were available through centralized server (Mainframe server). Now IT industry is maturing and it is growing from a centralized infrastructure to a distributed infrastructure. Organizations are transitioning from bus computing to cloud computing. There are many software applications, software platforms and operating systems in there market. Business models are also changing very fast. IT industry is also changing along with business models. IT industry has to support both legacy systems and new systems.
 
SOA is a good solution to make a code work with new system and the legacy system at same time. I am summarizing some of the points, why I feel that an organization should implement SOA.

  1. Modular and loosely coupled  — SOA cuts big monolithic systems and services into small modular services. SOA not only disengages the process from system but it also makes loose couple among systems. If, for instance, a SOA implemented organization wants to implement a new service (Internal service, External service or Cloud based services), it can just plug that service or remove that service from the organization system without touching any existing system.
  2. Business Driven  — Now a days, business changes very fast. Mergers and Acquisitions are very common phenomena. Business needs are also changes frequently. There are different permutations and combination coming in market. IT also has to synchronize with all these business permutations and combination. SOA gives flexibility to work with all these changes with minimal effort. SOA is very close to business as well as the business people. One can define or change business process to address business needs in very small time with minimal effort. In short, organization business can change quickly along with the fast changing market.
  3. Platform IndependentSOA is completely platform independent. SOA service client or consumer can use SOA service without knowing SOA service provider platform, language or operating system. So, one can write SOA service without worrying about who is going to consume the service.
  4. Easy Service enablement  — There was big challenge for any organization to make any change in existing legacy system. SOA provides an easy tool to enable existing monolithic application or legacy mainframe system into a SOA service without knowing anything about those systems. Through SOA tool, one can expose interface(s) from existing system as service and use this service in other applications without touching any existing functionality. 
  5. Low Cost development and maintenanceAs I stated earlier, SOA is modular and loosely coupled. So one can implement new service or modify existing service(s) without touching any other service or application. As a result, it takes very small effort and time to make any change in application that uses SOA. SOA also provides the flexibility, such that service can be reused in any other application. For example, if an organization is using third party service (SAAS) for an application, it can reuse this service in other applications without investing on license, server space or maintenance. In other words, if organization builds a service for one application, it can reuse this service in multiple applications.
  6. Easy learning curveSOA is modular and loosely coupled, as such, it has a very easy learning curve. One can start to work on any service without knowing the whole application. SOA technology is completely based on XML and it is one of the easiest technologies and it is accepted by all applications and software.
  7. Increased operational efficiencyTo reuse existing SOA service, one can create new service by using current system or service. In summary, SOA helps us in creating and delivering a new product quickly.     

Types of Cloud Computing

In my earlier post, I explained about cloud? Now I am going to explain about different types of cloud computing and layers of cloud computing.
Based on organization’s business, economy and technical need, we divide Cloud in different category.
Cloud computing is define in three major technology layers. These are SAAS (Software As A service), PAAS (Platform As A Service) and IASS (Infrastructure As A Service).

        1. SAAS (Software As A Service) – This is the top technology layer of Cloud Computing and oldest among these three. Under this layer organization gets fully functional applications on-demand to provide specific services such as email management, CRM, ERP, web conferencing and an increasingly wide range of other applications. These software licenses are managed by Cloud computing company.
      2. PAAS (Platform As A Service) – Second layer of cloud computing is PAAS (Platform As A Service). In this layer organization gets mostly an operating environment to develop application, to run application or to deploy application. PAAS provides operating environment like Java, J2EE, .Net, Window, Linux etc.
      3. IAAS (Infrastructure AS A Service) – This layer provides all basic, physical and virtual resources used in application for any organization. This includes virtual platform (space on server) on which required operating environment and application are deployed. It also includes storage and datacenter.
 In other dimension, there are 4 types of cloud computing service available.  These are Public, Private, Community and Hybrid computing.
      1. Public cloud (External Cloud) – Public cloud is offering service by third party vendor over internet. If any vendor provides infrastructure, data center, search or other service to any organization, then it comes in public cloud type. This type of cloud shares  some benefit like efficiency, High availability, elastic capacity, Low upfront cost, less or no hardware setup and less or no system management.  This type of cloud computing service is provided by Amazon EC2, Microsoft Azure, Sun Microsystem cloud, Salesforce etc.  
      2. Private cloud (Internal cloud) – Private cloud is set up and managed by an enterprise’s own IT department and run inside the organization firewall. If any organization has large number of user and resources, then organization hosts cloud computing within their own firewall. This type of cloud computing is dedicated to that organization. It does not share any resource outside their organization. Any big organization like AT&T, Verizon or Bank of America open their infrastructure or data center near to low cost area and makes the service  available  through their own cloud, then it called as private Cloud computing. It shares some benefit like efficiency, High availability, elastic capacity, Lower cost over time, full access and flexibility, direct control over quality, service and security.
       3. Community cloud (Semi-private cloud) – Community cloud is offering service for similar type of business company. This type of cloud is public cloud but it focuses on same vertical domain companies. Like if any cloud dedicated to government or banking organization and it is serving only those types of organization, then it come as community cloud. It shares some benefit like efficiency, High availability, elastic capacity, expertise in domain knowledge, less cost over time compare to public cloud.
       4. Hybrid cloud (Integrated cloud) – Hybrid cloud is combination of any or all of the other types of cloud.  This type of cloud is  gaining lot of popularity among organizations.  This type of cloud computing give organization more flexibility to manage and share resource between private and public cloud. Like if  any organization host their application in public cloud and during peak sales time they need more server and space to handle this request, they can go for public cloud. In this type of cloud computing Model Company keeps  all sensitive data (transaction or credit card data) in private cloud and less sensitive data in public cloud. It shares  benefits like efficiency, High availability, elastic capacity, more control over quality, service and security, less cost over time compare to public and community cloud.

What is cloud computing?

There are lot of buzz around cloud computing. Almost all big and small companies are talking about cloud computing.
                Cloud computing is service of IT (Information Technology) infrastructure and managed sharing of IT resources.
In network diagram(as shown below) internet icon is displayed like cloud. This typically means an area of the diagram or solution that is some else’s concern. The word Cloud in cloud computing is derived from this diagram.  


To understand more about cloud computing we take a car rent example. User rents a car when he needs. User never worries about car maintenance, insurance or other car expenses, he pays for car rent service only.
 Similar to car rent, cloud computing provides service over the internet.  The beauty of cloud computing is that other company hosts your application. That means they handle the cost of server, maintenance of server and manage software update as per user’s requirement. User pays less for service only. User can increase or decrease service of server as per application requirement. Like user need more server instances in November and December month due to high volume of traffic. So user can demand more server instances for those months only. There is no need to keep all server instances for the whole year. In this way the company saves a lot of money in maintenance of server.
    In summary, Cloud computing provide rapid access to computing at a lower cost of ownership, enabling companies to perform operation that may have previously been unaffordable or impractical.