What is DevOps?
DevOps can be termed as brothers in conflict or two faces of the same coin. It is the latest trend in software development, where developers work in tandem with operations staff to ensure that software runs efficiently without any glitches. Today, many software development teams are going the DevOps way, which is not only helping organizations cope with the pressure to produce quality code, but also helping them deliver faster.
According to Wikipedia, DevOps is a portmanteau of ‘development’ and ‘operations’ is a concept dealing with other things like software development, operations, and services. It emphasizes communication, collaboration, and integration between software developers and information technology (IT) operations personnel.
Let us look at how Dev and Ops function:
- Continuous Change
- Add new features
- Continuous Stability
- Create new services
In delivering valuable software to customers, very often development and operations are in conflict with each other. While development wants to deliver its changes (for example, new features) to customers quickly, operations want stability, which means not changing the production systems too often.
The gap between development and operations occurs on different levels:
- The incentives gap: Result of different goals of development and operations.
- The process gap: Results from different approaches of development and operations and how to manage changes, bring them to production, and maintain them there.
- The tools gap: Results from the fact that development and operations often use their own tools to do their work.
As a result, development and operations often act like silos, as they are two distinct teams.
Development and Operations in Conflict
The conflict between development and operations is as follows:
- Need for change: Development results in change (for example, new features, bug fixes etc). It wants the changes to quickly roll out to production.
- Fear of change: Once the software is delivered, the operations department avoids making changes to the software to ensure stability.
Is DevOps the Solution?
DevOps links software development to operations. It also bridges the gap between agile software development and operations experiences. All experts have at least a basic understanding of others business subjects.
Devops is not a methodology or framework, but is a set of principles to break down silos. Specifically, Devops is all about culture, automation, measurement and sharing (CAMS):
In culture, people and process come first. If you don’t have culture, all automation attempts will be fruitless. Relationship is important in culture. Its functions include:
- Engage early, engage often
- Destroy silos
- Be open to options
- Stop blaming
Other attributes of culture are:
- Communicate with peers
- Involve everyone in core processes and decisions
- Ask questions
- Never say never
- Daily stand-ups (invite everyone)
Once you understand your culture, you can start with automation. Now, you can finalize various tools to achieve automation for Devops. Tools for release management, provisioning, configuration management, systems integration, monitoring and control, and orchestration become important pieces for Devops.
- Machines are really good at doing the same task over and over again
- Consistent and known state
- Fast and efficient
- Saves a lot of time – 10 mins/day = 2.53 days/year
What can be automated?
- System rollouts
- System configuration
If you can’t measure, you can’t improve. A successful DevOps implementation will measure everything it can as often as it can:
- Performance metrics, process metrics, and even people metrics.
- Capture, learn, improve assists in:
- Capacity Planning
- Trend Analysis
- Fault Finding
- Simple as saving Tomcat access info
- Plotted on a graph over time
Sharing is the loopback in the CAMS cycle. Creating a culture where people share ideas and problems is critical. Exposing ideas can create a great open feedback that in the end helps to:
- Share Ideas
- Share metrics
- Ops: Give devs shell access
- Devs: See what technology can be leveraged
Evolution of Devops
Utilizing a DevOps lifecycle, products can be continuously deployed in a feedback loop through:
- Infrastructure Automation
- Configuration Management
- Deployment Automation
- Infrastructure Monitoring
- Log Management
- Application & Performance Management
Reasons to learn Devops
Devops has proved to be an effective practice and helps in increasing a company’s growth:
- Continuous software delivery
- Less complex problems to fix
- Faster resolution of problems
- Faster delivery of features
- More stable operating environments
- More time available to add value (rather than fix/maintain)
1. Operating Systems
- Linux (RHEL, CentOS, Ubuntu,Debian)
- Unix (Solaris, AIX, HP/UX, etc.)
- Mac OS X
2. Infrastructure as a Service
- Amazon Web Services
3. Virtualization Platforms
4. Containerization Tools
5. Linux OS Installation
6. Configuration Management
7. Test and Build Systems
8. Application Deployment
9. Application Servers
10. Web Servers
11. Queues, Caches, etc.
- Percona Server
- MS SQL
13. Monitoring, Alerting, and Trending
- New Relic
15. Process Supervisors
- Snorby Threat Stack
17. Miscellaneous Tools
- Multihost SSH Wrapper
- Code Climate
Got a question for us? Mention them in the comments section and we will get back to you.