Introduction to DevOps
The IT industry has taken big leaps in technology innovation, the quality of the application development projects has been lagging. Many IT projects run inefficiently, missing implementation deadlines results in outages during or after implementation and therefore costing significant more than anticipated.
DevOps is the latest development that addresses such inefficiencies. DevOps binds development, quality assurance, and technical operations personnel in a way that the entire ‘build-test-release-run-repeat’ process operates as a factory, having clear roles and responsibilities and well-defined I/O. It is the idea that connects developers, quality assurance and technical operations people.
However to deliver the changes we need to concentrates on tools, processes, and people, while ensuring the stability of our service delivery.
- Continuous integration
- Continuous feedback
- Collaborate on vision and design
Another good practice is continuously gathering user feedback, organizing it into actionable inputs, and prioritizing those actions for your development teams. Look for tools that encourage “asynchronous brainstorming”. It’s very important that everyone can share and comment on anything: ideas, strategies, goals, requirements, roadmaps and documentation.
Tools we use: Confluence, HipChat, JIRA Software
- Staging environments for development
- Infrastructure as code
Developers build modular applications because they are more reliable and maintainable. This can be very difficult to apply to systems as they are always changing. So we get around that by using code. Provisioning code can be applied to bare metal, and re-applied to bring a server back to baseline.
Tools we use: Bamboo, Bitbucket, Chef, Docker
- Collaborative coding
Rather than waiting for change approval boards before deploying to production, you can improve code quality and throughput with peer reviews done via pull requests.
- Continuous Integration
- Continuous Integration
- Automated Testing
Tools we use: Bamboo, Bitbucket, and Capture for JIRA
- Release dashboards
One of the stressful parts of shipping/delivering software is getting all the change, test, and deployment information for an upcoming release into one place. The last thing everyone needs before a release is a lengthy meeting to report on status. This is where release dashboards come in.
Tools we use: JIRA Software
- Automated deployment
Tools we use: AWS, Bamboo, HipChat, and Puppet
- Application and server performance monitoring
Mainly there are two types of monitoring that should be automated: Server monitoring and Application performance monitoring.
- Communication and swarming
Tools we use: BigPanda, DataDog, HipChat, New Relic, Pager Duty, and StatusPage
- Incident, change and problem tracking.
Tools we use: JIRA Service Desk, JIRA Software
- Continuous Feedback
- Better products through user feedback
Customers tell you whether you’ve built the right thing – you just have to listen. This includes surveys, bug reports, support tickets, and even tweets. In a DevOps culture, every employee on the product team has access to user feedback/comment because they help guide everything from release planning to exploratory testing sessions.
Analyzing the feedback may feel like it slows the pace of development in the short term, but it is efficient in the long run than releasing new features that nobody wants.
Tools we use: GetFeedback, HipChat, JIRA Service Desk, Pendo, SurveyMonkey, and Hootsuite
Benefits of DevOps:
Companies that follow DevOps have reported significant benefits, including: shorter time to market, improved customer satisfaction, good product quality, more reliable releases, improved productivity and efficiency, and the increased ability to build the right product by fast experimentation.
However, a study published in January 2017 by F5 of almost 2,200 IT executives and industry professionals found that only one in five surveyed think DevOps had a strategic impact on their organization despite rise in the usage. The same study found that only 17% identified DevOps as key, well below software as a service (42%), big data (41%) and public cloud infrastructure as a service (39%)