Friday, January 13, 2017

Dev Vs Ops

The Dev

Developers build software and deliver changes quickly, while the IT operations give priority on stability and reliability of the system. This mismatch of goals between the teams in an organisation can lead to conflict, and eventually more cost to the Business.

Developers deliver software after performing testing in development or PTL (path to live) environments. However these systems may not be same as complexly integrated production systems. While doing development, the developers are not really concerned about the production infrastructure as well as the deployment impact due to code changes. 

The Ops

The IT operations (service support) focus majorly on SLAs around uptime and stability. IT ops expect lesser turn around time for code deployment and testing as high volumes of development builds / code changes come their way.

In today’s work these old divisions within organisations are breaking down, with the IT operations and Developer roles merging and following efficient principles like:
  • Automation
  • Continuous deployment
  • Monitoring
  • Security


Benefits of bringing Dev and Ops together

We are here to ENABLE Business. Developers work in collaboration with Operations to impact assess the code change. Developers work more closely with production equivalent environments with similar integration points and live like data. The Operations have better clarity of infrastructure. As a result there is more focus on deployment automation and test automation. Also Monitoring provides more visibility of Dev to Test to Production pipeline for each deployment and better feedback mechanism.

DevOps is an approach to bridge the gap between Agile Software Development and Operations. DevOps doesn’t mean Fire-fighting, DevOps is to help.

Agile and DevOps

In the recent years, the agile software development methodology has started to move downstream towards DevOps. Agile software development primarily focuses on the collaboration between the business requirements and its developers, whereas DevOps focuses on the collaboration between developers and IT operations (DBAs, Network engineers, administrators, infrastructure architects, service support personnel and security). Agile software development provides business the much required agility, DevOps provides IT agility, enabling the deployment of applications that are more reliable, predictable, and cost efficient. With respect to application development, DevOps focuses on development of code, code coverage, unit or component testing, release packaging, and deployment. With respect to infrastructure, on the other hand, DevOps focuses on provisioning, configuration and deployment. Underlying principles include version management, deployment, re-startability, roll back and roll forward.

DevOps is what Agile is to software development


What do we do in DevOps

DevOps can be categorised as C.A.M.S (Culture, Automation, Measurement, Sharing)

Culture:
A successful DevOps is all about people relationships and communication.






Automation:
Machines are really good at doing the same task over and over. Automation guarantees Consistent and Known state. Automation provides Fast and Efficient delivery of products to the business.

What can be Automated?












Measurement

DevOps is an evolving process, hence to evolve there is a need of measurement at every stage to capture the learning's and enable continuous improvement. 
Mesurement assists in

  • Capacity planning
  • Trend analysis
  • Fault finding
  • Plotted on a graph over time

Sharing

Sharing of knowledge base creates redundancy that helps reducing dependencies and increase synergies within the team. Sharing can be in the form of:

  • Share Ideas
  • Share Metrics
  • Ops: Give devs shell access
  • Devs: See what technology can be leveraged

DevOps Lifecycle

Before:

Talk about functional requirements
Talk about non-functional requirements
           – Security
           – Backups
           – Availability
           – Upgradeability
           – Configuration management
           – Monitoring
           – Logging
           – Metrics

During:

           – Communication
           – Source control
           – Automate builds
           – Automate tests
           – Automate deployments (dev, test and production)
           – Collate metrics

After:

Release
          – Retrospective Meetings
          – Continue to Run Tests
          – Monitor Applications and Systems
Issues
          – Post mortem meetings
          – What went wrong, what could be done better

1 comment:

  1. Good stuff...what all agile methodology supported in devops culture .. will this work for ITIL

    ReplyDelete

Reduce food wastage with IoT Solution

Ethylene gas is produced by most plants, which use it as a hormone to stimulate growth & ripening . Fruits and flowers under stress can...