Saturday 6 September 2014

CLOUD...Does It Rain?

Cloud...the first thought that gets into the mind is the cloud computing rather than a cloud in the sky. The rapid technology growth in this area made this word to lose its original meaning. But still there is a lot of gap between a common software professional and the cloud because most of the young professionals do not aware how it can change their life and what it can bring to their career. Lets see what cloud computing technology talks about!

Cloud

In a common-man's language, cloud is a "software technology on rent". Professionally, cloud is a service that provides the technology (software/ hardware) in a sharing model. That means, outsourcing the IT operations of an organization to a cloud vendor. However IT operations can be outsourced at different levels .. as a whole or only part of it. Cloud vendor takes care of the such operations and charge the fee accordingly.

How it works

It works in a normal business model where a cloud provider provides the services, called the cloud-vendor and the user who subscribe for the service, the cloud-user. For example, a start up company that develops a new software product needs to have the basic infrastructure setup like a set of computer hardware, network setup, office space to keep the lab (data center),  required software platforms and licenses to develop their product and the maintenance staff (network engineers/ hardware engineers/ database engineers etc) in order to start developing their product. This is a costly and time consuming affair. Instead, if the start up company subscribes to a cloud service from a cloud provider company, all this initial setup can be skipped. Here the provider company provides all the mentioned setup as a service and the user (start up company) can start using them from the day one itself. 

Service Models

Cloud services are provided in different models. They are classified on the level in which the services are used i.e. at hardware level/ software level/ application level or whole of these.

IaaS (Infrastructure as a Service)

This model provides the users with virtual machines, servers, storage, network etc. For example, a new company needs a powerful server to run their application and some more systems to develop, build or test the application. Instead of buying these systems and set them up, send this requirement to the IaaS provider, the setup is ready to use in couple of hours. How? Since the provider company maintains a huge setup that include hundreds of servers, many racks of storage and variety of networks established, they just give access to use their setup limited to the given requirement. If the user needs an additional server or storage of different configuration, the provider just gives the access to use an additional system/ storage of the requested configuration type from their existing infrastructure within minutes. Then, it is user's responsibility to install the required operating system, databases, web server software etc to make the environment ready. If the user does not want to buy these softwares and do the setup, it is recommended to go for PaaS instead of IaaS.

PaaS (Platform as a Service)

PaaS provides a working computing platform to the user. When we talk about infrastructure, it just means to the physical setup that is required. It does not bother what operating system you install, what database you use, what web server you configure, which framework you want to develop your application etc. Platform means that the setup that is required to develop/ run your application/ product. It includes the infrastructure and the environment required to develop/ run your application (OS, DB, Web Server, IDE etc).

SaaS (Software as a Service)

If the user needs additional softwares like E-mail, CRM, ERP etc to run their business, there is another level of service provided by Cloud vendors - SaaS. It includes not only the infrastructure and the platform, any other supporting softwares/ packages required. It is nothing but outsourcing the entire IT operations.


Deployment

Till now we discussed about different levels of service that can be obtained from a cloud vendor. A user can also ask for the type of deployment - the way the requested service should be provided: Private, Public and Hybrid.

Private Cloud

It is a cloud operated separately for an organization. For example, when an organization subscribe to the PaaS service as private cloud, the infrastructure and the softwares/ environment is exclusively maintained for that organization by the cloud vendor. The resources are not shared to any other customer at any level by any means.

Public Cloud

It is a shared cloud where many customers share the resources. Here it is guaranteed that one customer's details/ environment are not visible to any other customer by any chance. However they may really share the common resources at the vendor's data center since the real allocation of resources by the vendor is completely hidden from the customers. The cost of a public cloud is less , compared to the private cloud.

Hybrid Cloud

When a customer needs some services which are highly critical and confidential along with other services which are normal IT operations, they go for hybrid model. In this, the critical part is provided as private cloud and the other services are provided by means of a public cloud. As the cloud service is provided in the combination of private and public, it is called hybrid.

Top players

The global leaders in the cloud technology are:

IBM (Smart Cloud)
Amazon (EC2)
Google (App Engine)
Microsoft (Azure)
Dell (Cloud Manager)
VMWare (vCloud Suit)
HP (Helion)

Jobs and Skills

There are many existing job roles in cloud industry and it would create lot more opportunities in the future. It is true that Java plays a major role in cloud jobs but it is not only language required to work on cloud solutions.

Cloud Architect

Job Description: Development and implementation of cloud-based initiatives to ensure that systems are scalable, reliable, secure, and supportable, and that they achieve business and IT performance.

Required Skills: 10+ years experience in large-scale, multi-platform networks; Expert in Shell, VBScript, Perl, or Python; Expert knowledge of Linux and Windows; significant experience in designing, installing and administrating virtual environment.

Cloud Software Engineer

Job Description: Responsible for design and development of distributed software modules that integrate with cloud service providers.

Required Skills: 2+ years professional experience in software development; work experience with ETL (Extract-Transform-Load) tools and techniques; work experience with system configuration and deployment automation technologies; hands-on programming experience on a Linux/Unix operating system; excellent understanding of at least one compiled-code language.

Cloud Engineer

Job Description: Plan and conduct technical tasks associated with the implementation and maintenance of internal enterprise-shared virtualization infrastructure.

Required Skills: 5+ years of implementation experience with highly virtualized shared infrastructure, platforms, or applications architecture at a large enterprise or service provider.

Cloud Services Developer

Job Description: Design and build the multi-platform customer-facing tools -- such as sales interfaces and management portals -- that serve as the gateway into how end users consume the underlying cloud services.

Required Skills: 5 years of experience with cloud architecture and design or 5 years of experience architecting and deploying Web services on SOA platforms (examples: Amazon EC2, Heroku, Azure, Rackspace) or 5 years of experience with PHP Python, Java, or C++ with software development methodologies like agile.

Cloud Systems Administrator

Job Description: Configure and maintain the systems that comprise the underlying cloud platform. Troubleshoot when problems arise and plan for future cloud capacity requirements.

Required Skills: 3 years of experience in operating system administration or 3 years of experience in supporting enterprise-level platform installations; strong Linux command-line skills; experience in performance monitoring and capacity planning for enterprise platforms.

Cloud Consultant

Job Description: Conduct technical studies and evaluations of business area requirements and recommends to IT management appropriate cloud technology options.

Required Skills: At least 8 years of related IT consulting experience; outstanding understanding of cloud technologies available and vendors providing cloud services; top-notch communication skills.

Cloud Systems Engineer

Job Description: Build the virtual systems that support the cloud implementation.

Required Skills: 5-10 years of systems engineering experience, holistic understanding of the Internet and hosting from the network layer up through the application layer; experience in a 24x7 hosting environment.

Cloud Network Engineer

Job Description: Perform the implementation, operational support, maintenance, and optimization of network hardware, software, and communication links of the cloud infrastructure.

Required Skills: 4 years' in-depth network engineering experience; proven deep understanding of TCP/IP, Subnetting, DNS, DHCP, NAT, and routing; strong knowledge of Layer 2 network protocols; strong knowledge of Layer 3 IP routing; proven scripting abilities in one or more language -- Perl, Shell, or Python.

Cloud Product Manager

Job Description: Perform product planning for cloud-based offerings including creating product concept and strategy documents, creating requirements specifications, identifying product positioning, and enabling the sales processes (licensing, pricing, packaging, benefits, etc)

Required Skills: Minimum of 3 years of experience working with a software development company that deploys its offerings using a SaaS or cloud-based model; very strong communication skills.

Cloud Sales - Cloud Sales Executive, Cloud Sales Representative, Cloud Sales Consultant, Cloud Sales Manager

Job Description: Develop and grow a book of outsourced cloud business with C-level professionals in midsize and enterprise-level customers.

Required Skills: 5-10 years business experience in client-facing roles, with some of that spent in outsourcing or systems integration; highly effective communication skills; strong understanding and successful experience in building strategic and/or developmental partnerships at the C-level within midsize and large corporations; demonstrated consistent quota attainment in selling infrastructure, IT, cloud, and security services.

More Info

Refer the below links if you need more info.

https://en.wikipedia.org/wiki/Cloud_computing
http://www.infoworld.com/

Questions?

Post here :)