The term DevOps comes from Software DEVelopment & IT OPS as in Operations which is a role that spans across development, infrastructure (servers) and testing involved in automating processes for software delivery & deployment.
It’s become a rather trendy term in the IT industry and I guess dev or infrastructure teams have always had someone (or not) that has a ‘cross-functional’ interest in smoothing out processes & being the ‘go-between’.
It used to be called or sometime still is called ‘release manager’ or ‘build engineer’ in larger organisations or similar and I guess formalising some of these titles helps define roles and definitely helps recruit them too!
So what are the key things to making a great DevOps?
***Awesome problem-solving skills
***Solid infrastructure skills - DevOps will often have a core Linux / Windows background or run their own servers at home
***Solid coding & scripting skills are key i.e. Bash or Powershell or Python etc - as scripting / coding skills are they way we automate processes whether it’s deployment software like Puppet to Chef or using a container like Docker to separate software out.
***Able to communicate with Dev & Infrastructure peeps & other stakeholders in the business to work out root problems or ensure process is meeting the development roadmap requirements, covering off testing & getting smooth releases
***Continuous Improvement approach - someone who is constantly improving processes & automating stuff so we don’t have to do things twice
What is Docker?
‘Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.’
Docker has exploded over the last few years and seems to be a container software of choice....
What is a Container & why use them?
Using containers, everything required to make a piece of software run is packaged into isolated containers. Unlike VMs, containers do not bundle a full operating system - only libraries and settings required to make the software work are needed. This makes for efficient, lightweight, self-contained systems and guarantees that software will always run the same, regardless of where it’s deployed.'
So what's so good about Docker?
'Docker provides lightweight virtualisation with almost zero overhead. The effect of this delivers some impactful advantages.
Primarily, you can benefit from an extra layer of abstraction offered by Docker without having to worry about the overhead. The next significant advantage is that you can have many more containers running on a single machine than you can with virtualisation alone.
Another powerful impact is that container bringup and bringdown can be accomplished within seconds. The Docker FAQ has a good overview of what Docker adds to traditional containers.
In summary, it says Docker functionality falls into several categories:
- Portable deployment of applications as a single object versus process sandboxing
- Application-centric versus machine/server-centric
- Supports for automatic container builds
- Built-in version tracking
- Reusable components
- Public registry for sharing containers; and
- A growing tools ecosystem from the published API' - Source airpair.com
If you want to get involve in a DevOps or a Full Stack Web Developer role in Christchurch check out our live roles here:
I'm founder & Principal Consultant of Sunstone, an IT Recruitment company specialising in software, web & mobile jobs based in Christchurch, New Zealand. You can contact me on: firstname.lastname@example.org