In today’s digital and hyper competitive age, seamless alignment of Developers with Operations team is inevitable to cater to ever-changing business landscape and needs.
Just imagine – you got a team comprising of almost everyone – UI designer, Tester, Scrum Master, Tech Writer, Developer and Infrastructure support. Do you think, you can still execute your project seamlessly? It is beyond the scope of delivery leaders to even think that they can deliver world class IT solutions without good alignment between the inter-twined tracks of App Dev and Operations Support.
DevOps is the practice of promoting collaboration and integration between software developers and IT operations.
DevOps is not a tool, it’s an approach and it’s a culture with an objective to optimize SDLC (Software Development Life Cycle) by bringing development and operations closer. It’s an entirely new ideology that has swept IT organizations worldwide, boosting project lifecycles and in turn increasing profits. DevOps promotes collaboration between development engineers and operations, participating together in the entire service lifecycle, from design through the development process to production support.
“Dev” is a blanket term for all kinds of software developers while “Ops” encompasses system engineers, system administrators, operations staff, release engineers, DBAs, network engineers, security professionals, and various other sub disciplines. When combined, DevOps bridges the ageless gap between Development and Ops by reducing uncertainties of release and change. It also brings down risk factors involved in various stages of release management i.e. Build, Deploy, Test, and Continuous Improvement.
DevOps in Real Life
Apple was the first one to come up with this unique idea of blending/ merging two different, potential roles into a single entity and coin out this term – “DevOps” as they witnessed so many advantages associated with it. Ecommerce companies like Amazon, eBay followed trail and now almost every product based company is implementing DevOps team to reduce the time to market
By 2019, Gartner predicts 50% of enterprises will implement automated configuration and release management as a result of DevOps initiatives.
Companies have been able to achieve more than one release cycle in week compared to the earlier once a month after introducing DevOps.
The benefits reaped by having DevOps person in a team are endless to list out. High performance organizations (with DevOps) are deploying code 30 times more frequently, with 50% fewer failures.
Source: Techinsights Report, “What Smart Businesses Know About DevOps (2013)
PoI (Percentage of Improvement) figures of survey respondents who have already seen or anticipate seeing benefits of DevOps are very encouraging.
Source: Techinsights Report, “What Smart Businesses Know About DevOps (2013)
DevOps Skill Matrix and Toolsets
By introducing DevOps – Not only did Apple raise the bar for companies to re-think their hiring strategies but also defined a new pathway in risk mitigation – how to overcome uncertainties in the future with respect to Project management.
The skills matrix for a DevOps profile is very sophisticated comprising of many parameters. He/she should have real time experience in Commands & Administration (Linux/Unix), Shell scripting (Bash, Sed/Awk), Coding (Perl, Python, Ruby), familiar with Configuration Management (Puppet, SaltStack, Chef, Vagrant), experience with database NoSQL (MongoDB), hands on exposure to Build Tool (Docker) and clear understanding of Bare Metal Configuration tasks by using components such as: Cobbler, Foreman, PXE, DHCP, DNS.
Beside these above skillsets, one must have knowledge and experience in leveraging automation tools depending on the layer of automation that is targeted:
Continuous Integration – Jenkins, Hudson, SVN, Git, Preforce, Ant and Maven are used,
VMS – Vcentre and Hyper-V is put forth
Revision Control System – Git, Cvs and Subversion is applied
Monitoring – Nagios, Sensu, Zabbix and Custom tools are exercised
Continuous Deployment – Capsitrano, Yum, Deb, RPM and Custom tools are employed
Challenges faced with DevOps
More often than not, DevOps is seen as a business problem rather than a technical one as it involves a lot of stakeholder interaction and engagement. It can introduce friction with the respective stake holders, which one must try to avoid as far as possible. DevOps is not about cool tools. To tackle this, effective change management to enable a shift from cultural mindset is a must. Transitions need to be managed very closely and efficiently. How quickly an organization can build skill set and cross train people is very important.
Streamline DevOps Transition
We can categorize DevOps in three sections, known as PPT: People, Process and Technology. Each one has possess peculiar attributes to discuss…
For People – we need to project DevOps team with DevOps culture,
For Process – we must mould DevOps into a Business process & Change management and
For Technology – we can implement DevOps at Delivery & Deployment Pipeline phase.
To make DevOps Transition smooth, one must follow these steps /guidelines:
1. Streamline the processes within the organization and then try to achieve the processes.
2. Unified processes-In DevOps the complete development-to-operations lifecycle is considered as one end-to-end process
3. Unified tooling –The tools used across the system, so that they can be easily utilized, maintained and improved.
4. We must bring all the teams together and get them cross trained, change their roles and get rid of old systems that resist change and protect old order of things.
Common Questions
Some of you may still be left with some questions on Implementation of DevOps like; Can we adopt Agile methodology along with DevOps? Do we have to migrate to the Cloud if we implement DevOps?
Talking about Agile Development and DevOps –
It is not a pre-requisite though Agile is preferred in DevOps to have Agile in place. Like most standard delivery models/ approaches without Agile, you can still strive for greater collaborations within these tracks and strive for automation. If incase, the product is getting deployed without any customization then DevOps can be implemented directly.
Talking about moving to Cloud and DevOps
Moving to cloud is not mandatory for DevOps, the added advantage here is that it can enable automatic provisioning, monitoring, and infrastructure management for added benefits.
Conclusion
DevOps is an idealistic approach which is taken proactively and it’s a culture with an objective. It bridges the ageless gap between Development and Operations reducing uncertainties and eliminating risks of the future that withholds the IT industry as a whole while delivering the following benefits:
1. Quick and Continuous Delivery
2. Better Quality, minimal production incidents
3. Reduced risk
4. Increased reliability, stability, resilience, and security of the production environment
5. Maximized end-to-end value
6. Move organization away from traditional, high-stress, high-risk development models
7. Cost reduction due to automated practices in infrastructure and apps support
Quality, Productivity, Speed of execution and Collaborative governance