5 Must for a Cloud Computing Job

I was recently asked to list 5 must for a cloud computing job. It can greatly differ for roles and kind of industry that you work for. Innovation and rapid delivery is a must for a software developer or architect while managing virtual environments and data management skills are necessary for a data center manager. However, I think there are a few common factors that will be applicable for all

Understanding of IT as a Service

One of the advantages for cloud offering is the service model or the shopping cart kind of experience where IT managers shop for the service using their credit card instead of building it themselves. IT managers have to transition from owner of the service to provider of the service. They have to give out their control and focus more on negotiating service quality with appropriate vendors. Prospective candidates transitioning to a cloud domain must understand cloud categories and deployment models. Understanding the business beyond the technologies and identifying ways and means to fulfill business requirements to maximize the productivity of their end-users is a common trait they should demonstrate.  Analyst Peter Christy at the Internet Research Group refers to this as  inversion of enterprise IT from an application-centric to a people centric structure.

Managing Virtual Environments

Be it a developer or an IT manager, at some point in your transition time, you will have to deal with virtualized environments.  You should be proficient in designing and managing IT infrastructure using hosted services, managing policies and configurations within private or public cloud as needed.  These skills will help an IT manager to negotiate their SLAs correctly and realistically.

Innovation and Rapid Delivery

Probably one of the most appealing aspects of the cloud computing is the agility with which one can realize their solutions. This is particularly true for developers as well as IT managers. They can fulfil business requirements via innovation and integration of cloud services with agility. Gone are the days where one raise a purchase request and wait for the approvals and subsequent delivery of hardware and software.

Security

One of the drawbacks of not having complete control over the services that you offer is security. This can be a daunting task if the services are offered from a public cloud. One should know how to manage security and compliance and should be familiar with various compliance requirements across verticals and locations. Good understanding of applications delivered from the cloud, the way users accessing them and security implications of the whole model will be a must have trait for a cloud engineer. Analyst Mark Diodati at Gartner says that the shift to the cloud and the consumerization of IT have complicated the task of identity and access management in the enterprise security environment.  Federation protocols, OAuth, REST, SCIM, BYO{D,I,A} etc are a few keywords that they can research on.

Data Management Skills

Most organizations will have a hybrid cloud approach where they will have data managed from on-premise and off-premise. Most medium and large enterprises prefer to keep their critical data such as identity and IP related information on-premise. Candidates opting for a cloud computing job must possess necessary skills to design systems to manage and integrate data from off-premise to on-premise. This would also include ability to get deeper understanding of data through analytics and management through big data technologies.
This is no way a comprehensive list of skills. I believe the above items are the intersection of skills and technologies that every individual must possess before adopting cloud technologies or services.

Experimenting with Oracle Virtualbox

I have been using VMWare Fusion on my MBP for a while.  I noticed significant performance issues after upgrading to Mavericks.  That is when I decided to try out Oracle Virtualbox.  More importantly some of the devops I was trying such as Vagrant and Docker did have readily available VMs for Virtualbox.  I never bothered to checkout Virtualbox in the past as I owned licenses for VMWare Fusion and VMWare WorkStation.  Staying with VMWare was more productive as I can move around VMs between my development environments and Office work environment.

Storage

The first step was to getting all my existing VMs running on VirtualBox.  I must say that running my SLES and Ubuntu VMs were easier than I thought. All that I need to do was create a new instance and use the same vmdk image from VMWare.    By default VirtualBox will use a SATA/SCSI interface for the disk image.  It worked well for Unix/Linux virtual machines, but for Windows, I had to forcefully use IDE interface.  Do the following for Windows (I tested with 7.x and 8.1) images.

  • Once the VM is created, goto settings and Storage
  • Delete the SCSI instance associated with your vmdk file
  • Add an IDE interface and choose the same vmdk file.

Networking

The next configuration required is with respect to Networking. I normally use a NAT’d environment with specific CIDR for all my development VMs. I can access this private network from my host on VMware WorkStation or Fusion.  It appears that only way to access services running on Virtualbox image on a private interface is through port forwarding.  Even to SSH to to guest OS, you need to forward a host port to 22 on the guest.  Thankfully the network configuration dialog in the VM settings provides an option to do that.  There is an experimental NetWork Address Translation Service in VirtualBox.  I haven’t been able to get that working on my OSX yet.

Shared Folder

Shared folder concepts are a little convoluted on VirtualBox. Apparently they disable the ability to create symbolic links in a shared folder due to some bizarre security reasons.  You need to enable them manually for each shared folders in each VMs.  More importantly, you need to restart the VirtualBox application after enabling them.  Given below is the syntax for enabling the creation of symbolic links on a given volume.

The SHARE_NAME at the end of the parameter should be a full path to the shared folder on your host.

Headless Mode

One of the features I liked in VirtualBox is the headless mode.  You can run a vm in the background without any UI elements.  This saves some memory on your host and typically you can run any linux instances in runlevel 3.  Push shift key while clicking on the Start button or use VBoxManage command line tool to start a VM in a headless mode.

Overall I find the performance of VirtualBox better than Fusion for my workload.  I’m also liking the command line tools and programmability via its rich set of APIs.  Tune in for more of my VirtualBox experiments.