Dev Ops Explained - Two Worlds Collide
In the past there was a fairly, clear divide between those that were involved in writing and developing software applications and the teams that were responsible for maintaining the hardware, network devices and storage that enabled its delivery. The typical skillset of an Australian infrastructure engineer in 1990 was someone who could pull apart hardware, weld circuits back together, splice cabling, whilst handling electrical and cooling faults.
The typical software developer in Australia in comparison was an avid language expert. Someone, who would study lines of code for hours and understand how to make a machine perform incredibly complex tasks on screen, but who wasn’t comfortable with much of the underlying hardware.
With the advent of virtualization in the 2000 era things began to change. It was no longer enough for infrastructure engineers to understand the hardware as a great shift was taking place. With the development of more powerful operating systems and containerization as a standard approach many, many core functions of the datacenter began to move from hardware driven to software driven components.
Dev Ops as a field sprang from this sea change. A different type of profile was borne into the local app development team. This new functional role now having a foot in both app development and infrastructure camps. Today Dev Ops engineers in Australia form a key component of the app development process. They bridge the former divide, ensuring that developed applications can be tested, deployed and maintained in the most efficient manner alongside todays complex infrastructure environments.
A typical Dev Ops engineer should be able to manage virtual infrastructure and support a variety of operating systems from a systems administration perspective and a local app developers perspective. Expertise in script writing is also key to support automated deployments, automated configuration of new containers and systems etc. In this role we tend to find a profile with a true mix of software development and traditional infrastructure skills. Products that are useful for Dev Ops engineers to understand include: Puppet, Chef, Selenium (for automated testing), Docker, Kubernetes, Jenkins and Elastic Beanstalk (for deployment). The sheer number of automated infrastructure platforms that exist today mean that this role is one that requires a considerable degree of expertise, coupled with self-learning.