24 February 2017

DevOps

Set of practices that emphasize the collaboration and communication of both software DEVelopers and IT OPerationprofessionals while automating the process of software delivery and infrastructure changes, which aims at establishing a culture and environment where building, testing, and releasing software can happen rapidlyfrequently, and more reliably.

"which ultimately means building digital pipelines that take code from a developer’s laptop all the way to revenue-generating prod awesomeness"


some myths that should be addressed before deep dive into DevOps

Myth - DevOps replace Agile
DevOps is the next step of agile
DevOps principles and practices are compatible with agile
agile is an enabler of DevOps
not a replacement, but is a logical continuation
a 'deployable piece' of code rather than a 'potentially ship-able piece' of code after each sprint

Myth - it "All Dev & No Ops"
the nature of IT Ops work may change.
ops collaborate far earlier in the software life cycle with Devs.
Devs continue to work with Ops long after the code is in prod.

Myth - DevOps is just automation
it requires automation for sure.. But that's not all.. it's much beyond that.

Myth - DevOps is a Tool/Product
it's rather a combination of tools
we don't buy DevOps.. instead, we do DevOps

In an organisation where everything gets automated for seamless delivery the generic logical flow will be:
  1. Developers develop the code and the source code is managed by a Version Control System tool like Gitthen developers send this code to the git repository and any changes made in the code is committed to this repository.
  2. Then Jenkins pull this code from the repository using the git plugin and build it using tools like Ant or Maven.
  3. Configuration management tool like Ansible/Puppet deploys this code & provision testing env. and then Jenkins releases this code on the test environment on which testing is done using tools like selenium
  4. Once the code is tested, pipelines configured using Jenkins send it for deployment on the production server (even production server is provisioned & maintained by tools like Ansible/Puppet)
  5. After deployment, it is continuously monitored by tools like Nagios.
  6. Docker containers provide a quick environment to test the build features. 


here are some useful articles with respect to DevOps





No comments:

Post a Comment