DevOps is a union of the Software development team (developers, testers, designers, etc) and Information Technology Operations team with a common objective of shrinking the Software Development Life cycle and providing high-quality continuous delivery. It helps to shorten the lead time for the fixes and benefits in reducing the failure rate of releases.
PLAN
We start with the planning of features we will deliver to our end customers. We can use cloud-based software like JIRA/Rally to list down the requirements. Epics. Features and user stories are created to track the completion of requirements.
CODE
Requirements are analyzed and developers write code supported by their unit tests. For .NET code, developers can use Visual Studio and Visual Studio Code. Version control systems like Github, TFS lets us create branches and help developers to collaborate and code. Release based branching strategy is discussed in another topic. The pull request feature of Github facilitates faster coder reviews.
BUILD
Commit of code to Github triggers the continuous integration pipeline. Jenkins is the most commonly used Integration server which can compile, create artifacts, analyze the code for security vulnerabilities, run code quality checks, and unit tests. MS Build can be used for compiling .NET code, JFrog as an artifact repository, Veracode for security vulnerabilities, Sonarqube for code quality checks, MSTest for .NET unit tests. Custom notifications can be sent on failure or Pass of Build stage.
DEPLOY
The successful completion of Continuous integration will invoke the continuous deployment process. Deploy and release software can be used as part of the Continuous delivery pipeline. XL Deploy and XL Release are the most commonly used tools for deployment to different environments, release orchestration and integration with the Technology service management ticket tool. XL release contains reusable release templates, In-depth analytics, custom reports, and proactive alerts.
MONITOR
Splunk is the most commonly used log management tool for monitoring DevOps activities. Splunk facilitates the storage of data as events in Indexers. It helps developers to quickly find and fix defects during development and testing, so code can be delivered with minimal defects.