Which are the top DevOps tools?
The most popular DevOps tools are :
- Git : Version Control System tool
- Jenkins : Continuous Integration tool
- Selenium : Continuous Testing tool
- Puppet, Chef, Ansible , AWS Lambda (C# or java or node.js) : Configuration Management and Deployment tools
- Nagios : Continuous Monitoring tool
- Docker : Containerization tool
Git – differs from SVN
Distributed Version Control System – Local Copies (Clones) of repositories as well as server copy.
Version Control – Branching Strategies
Basic branching strategy – checkout branch, delete, merge. Advanced Strategies include:
- Feature branching
A feature branch model keeps all of the changes for a particular feature inside of a branch. When the feature is fully tested and validated by automated tests, the branch is then merged into master.
- Task branching
In this model each task is implemented on its own branch with the task key included in the branch name. It is easy to see which code implements which task, just look for the task key in the branch name.
- Release branching
Once the develop branch has acquired enough features for a release, you can clone that branch to form a Release branch. Creating this branch starts the next release cycle, so no new features can be added after this point, only bug fixes, documentation generation, and other release-oriented tasks should go in this branch. Once it is ready to ship, the release gets merged into master and tagged with a version number. In addition, it should be merged back into develop branch, which may have progressed since the release was initiated.
Cloud Architects – Infrastructure Architects versus DevOps Architects
There is seemingly a divide in the type of architects in the cloud computing world. Infrastructure architects focus on creation of VPCs, subnets within VPCs and those kind of networking constructs. A DevOps architect would spend more time developing a full DevOps process – including Version Control, Continuous Integration, Deployment and Configuration Management etc.