Sunday, 15 January 2012

Cloud Computing and the Linux Job Market

Cloud Computing and the Linux Job Market

According to an article which recently appeared on LinuxInsider, “the biggest change and impact to the Linux landscape and market to date has been the advent of cloud computing”. The IT industry is headed towards a centralised data centre model once more with cloud computing gathering momentum and a swagger of big integrators and small start ups alike are offering services in this arena. Open source solutions such as Linux naturally thrive in the current environment where multiple platforms seek solace under the same apparent cloud.


The National Institute of Standards and Technology defines cloud computing as: “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.” Cloud computing offers the user a seamless and simple entry point to their applications using a desktop, laptop, smart phone and other connectivity devices via a web interface. It’s a truly mobile solution in that the user can connect to their desired system via the cloud from anywhere and is no longer tied down to a specific desktop location.

Most of us have dabbled with using Cloud computing without batting an eyelid. Have you ever purchased a book through Amazon? Do you have a Hotmail or a Gmail account? Do you use Facebook? All of these are applications that run on Cloud technology concepts to manage their customer or user access requirements. Cloud computing, simply put, is computing on-demand, accessed through a web interface.

The cloud provides various aspects of traditional IT infrastructure services remotely including:

    Platform as a Service (PaaS), which facilitates organisations running their applications on Cloud infrastructure.
    Infrastructure as a Service (IaaS), which provides on-demand scalable services via the net, enabling the utilisation of infrastructure to meet the real time work loads of an organisation. During peaks, many servers may need to be available to meet an organsiation’s processing needs, while troughs see server space being freed for other users’ needs.
    Software as a Service (SaaS), which enables organisations to adopt a pay per use model for the right to access and utilise software that sits in the cloud (e.g. Google Docs).

In a nutshell, cloud computing enables organisations to outsource the challenges and expense of offering IT infrastructure in-house to a cloud provider. The cloud provider, much like an ISP, manages and maintains the server power that is required to manage the provision of processing and storage services to the organisation's computer users. The user pays for the processing power, software and storage space that their organisation uses, and the cloud provider is able to manage the processing load of the subscribing organisations in such a way that economies of scale are achieved and the dilemma of server underutilisation during off peak times may be overcome.

It’s a great time to be an Open Source guru. To meet the dynamic and complex needs of today’s business world, a Cloud needs to have all sorts of platforms coexisting in harmony under the same umbrella, and so interoperability concepts are key. Linux virtualisation concepts are integral to enabling these sorts of mixed platform management scenarios.

Jay Lyman of the LinuxInsider comments, “Linux is popular in cloud computing infrastructure largely thanks to its flexibility and source code availability for customization and fine-tuning. Similarly, the open source OS is used by supercomputer system engineers as a resource that can be expanded or stripped down like no other option”. In this article, Lyman notes that he periodically monitors the Top 500 Supercomputer List and says there is a growing trend that organisations utilising these supercomputers are turning towards Linux as their platform of choice.

Community Linux distributions such as CentOS, Debian, Gentoo offer significant cost savings and are effective alternatives to the likes of Red Hat and Suse, the Novell distribution of Linux. These community Linux distributions are vital pieces for the cloud computing puzzle and featured favourably on the June 2011 Top 500 Supercomputer list. These community distributions offer scalability without the need to juggle the costly licensing issues and being open source, they can be changed programmatically and are constantly being enhanced and contributed to by creative technical geniuses, giving freely of their expertise, time and talent to better the OS and create awesome free tools.

Now cloud computing seems to be on path of exponential growth, with the Gartner Group predicting that the IaaS market alone is set to grow from $3.7 billion in 2010 to $10.5 billion in 2014. An article recently posted on Cloud Computing Today states “Within the first half of 2011, Dell, HP, IBM, Oracle, Red Hat, Apple, Go Daddy and Microsoft have made increased commitments to cloud computing deployments in ways that promise to significantly impact the existing market share balance”. This is an arena where the big integrators as well as some entrepreneurial start ups already have a presence. Match this with the expected growth and the fact that Linux is such a prevalent feature of Cloud solutions; it’s a GREAT time to be pursuing a Linux career.

Will cloud computing effect the size of required IT workforce in the future? According to an article published on InformationAge, “The high degree of virtualisation used in cloud environments makes them ripe for automation, which by its nature removes the need for staff”. If an organisation chooses to outsource its IT department and utilise the services of a Cloud provider, then the question remains: what will happen to the redundant IT personnel? And given that the whole value proposition is that a Cloud provider reaps economies of scale by the virtualisation of a gargantuan network of servers, file servers etc., then it would seem reasonable to argue that those jobs won’t necessarily be able to be reabsorbed by the Cloud providers. It’s a safe bet to say that “movement of IT work to the Cloud, may have a more destructive impact on employment levels than traditional IT outsourcing”.

On a more positive note, technical folk have tenacity and creativity. This isn’t the only time outsourcing has occurred, in fact, outsourcing has been a risk factor for decades in the IT domain: outsourcing to IT service providers; outsourcing to IT resources in India. The IT jobs market has withstood these challenges in the past and has risen with grace to find new and exciting challenges and possibilities for career growth and development. This may be just another opportunity to embrace the challenges and changes and see potentials for future growth.

Cloud computing also lends itself to assisting organisations ponder and execute shift in the way they do business. Given that the cloud provides a flexible and mobile remote access to an organisation’s IT systems, surely this will lead to an increasing number of “virtual office” scenarios where staff can work from wherever they choose - in the park on a nice sunny day or at the cafe where there might be a WiFi connection. There are truly no boundaries as long as there is an internet connection and a laptop, and this has the potential to offer greater flexibility of work arrangements for employees.

With more and more organisations taking advantage of the Cloud, the future is far from cloudy for Linux career professionals!

Linux and open source in the cloud

Linux and open source in the cloud

Let's now explore how Linux and the open source community contribute to the world of cloud computing. As you might have guessed, Linux and open source technologies play a huge role.

Software-as-a-Service

SaaS is the ability to access software over the Internet as a service. An early approach to SaaS was the Application Service Provider (ASP). ASPs provide subscriptions to software that is hosted or delivered over the Internet. The ASP delivers the software and charges fees based on its use. In this way, you don't purchase the software but simply lease it on an as-needed basis.

Another perspective on SaaS is the use of software over the Internet that executes remotely. This software can be in the form of services used by a local application (defined as Web services) or a remote application observed through a Web browser. One example of a remote application service is Google Apps, which provides several enterprise applications through a standard Web browser. Remotely executing applications commonly rely on an application server to expose needed services. An application server is a software framework that exposes APIs for software services (such as transaction management or database access). Examples include Red Hat JBoss Application Server, Apache Geronimo, and IBM® WebSphere® Application Server. Many other application servers exist, and an extensive list is included in Resources.

Another recent example of SaaS is Google's Chrome browser. The browser is an ideal environment as a new desktop through which applications can be delivered (either locally or remotely) in addition to the traditional Web browsing experience. (For more information, see Resources.)

Platform-as-a-Service

PaaS can be described as an entire virtualized platform that includes one or more servers (virtualized over the set of physical servers), operating systems, and specific applications (such as Apache and MySQL for Web-based applications). In some cases, these platforms can be predefined and selected; in others, you can provide a VM image that contains all the necessary user-specific applications.

One interesting example of a PaaS is Google App Engine. App Engine is a service that allows you to deploy your Web applications on Google's very scalable architecture. App Engine provides you with a sandbox for your Python application that can be referenced over the Internet (and additional languages will be supported in the future). App Engine provides Python APIs for persistently storing and managing data (using the Google Query Language, or GQL) in addition to support for authenticating users, manipulating images, and sending e-mail. The sandbox in which the Web application runs restricts access to the underlying operating system. Although App Engine limits the functionality available to your application, it supports the construction of useful Web services. Check out Resources for more information.

Note: Deploying applications in App Engine is free within certain bandwidth and storage constraints. To build production Web sites with App Engine, usage fees are assessed.

Another example of a PaaS is 10gen, which is both a cloud platform and a downloadable open source package for creating your own private cloud. A software stack similar to App Engine, 10gen provides similar functionality to App Engine—with certain differences. With 10gen, you can develop applications in Python as well as the JavaScript and Ruby programming languages. The platform also uses the sandbox concept to isolate applications and provide a reliable environment over a large number of computers (built, of course, on Linux) using their own application server.

Infrastructure-as-a-Service

IaaS is the delivery of computer infrastructure as a service. This layer differs from PaaS in that the virtual hardware is provided without a software stack. Instead, the consumer provides a VM image that is invoked on one or more virtualized servers. IaaS is the rawest form of computing as a service (outside of access to the physical infrastructure). The most well-known commercial IaaS provider is Amazon Elastic Compute Cloud (EC2). In EC2, you can specify a particular VM (operating system and application set), and then deploy your applications on it or provide your own VM image to execute on the servers. You're then billed simply for compute time, storage, and network bandwidth.

The Eucalyptus project (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) is an open source implementation of Amazon EC2 that is interface-compatible with the commercial service. Like EC2, Eucalyptus relies on Linux with Xen for operating system virtualization. Eucalyptus was developed at the University of California, Santa Barbara, for the purpose of cloud computing research. You can download it from the university's Web site (see Resources), or you can experiment with it via the Eucalyptus Public Cloud with certain restrictions.

Another EC2 style of IaaS is the Enomalism cloud computing platform. Enomalism is an open source project that provides a cloud computing framework with functionality similar to EC2. Enomalism is based on Linux, with support for both Xen and the Kernel Virtual Machine (KVM). But unlike other pure IaaS solutions, Enomalism provides a software stack based on the TurboGears Web application framework and Python.
(source - IBM)