DevOps
![DevOpsDays in Salt Lake City Utah](/jargon/d/devops.png)
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the SDLC (systems development life cycle). The term was coined in 2009, when the first DevOpsDays was held in Ghent, Belgium. Today, the conference has spread to countries all around the world, including Salt Lake City, Utah, as shown in the picture.
DevOps combines software engineering (developers) with QA (quality assurance) testing and operations (IT) to focus on improving team efficiency during the development process. Getting these groups to collaborate efficiently helps improve the company's culture, reduce development time, and create a better overall product.
Example of DevOps
When a customer visits a website or uses a program and encounters a problem, how it's resolved is an example of DevOps. For instance, a customer may encounter the following scenario when dealing with a company without good DevOps integration.
- A customer comes across a problem and contacts support.
- Support verifies the problem and escalates it to development by e-mail.
- Development is overwhelmed with e-mails, but eventually gets to the e-mail. They again verify there's a problem and log it in their bug tracking software.
- While resolving open bugs, a developer gets to the problem, but realizes they're unqualified to resolve it and escalates the bug to a senior developer.
- While a senior developer is going through their open bugs, they review and resolve the escalated bug and submit it for testing.
- QA verifies the fix, logging that it was completed and is ready to be deployed with the next patch release.
The scenario above may take the following steps with a better DevOps integration.
- A customer encounters a problem and contacts support.
- Support verifies the issue and logs it in their bug tracking software that also allows the technician to prioritize the problem as serious.
- Bug tracking software knows who handles which problems and assigns the issue to a senior developer.
- The senior developer immediately resolves the severe bug and submits it for testing.
- Because of its priority, QA also immediately verifies the fix, logs it completed, and indicates it's ready to be deployed with the next patch release.
Allowing support to submit the bug eliminates the need for e-mail. Also, because the bug tracking software assigns a priority and developer type, it's handled first and by the right person. This small change helps improve overall operations by only involving the appropriate team members, decreasing the time it takes to resolve the issue. If the company handles hundreds of bugs per month, the extra efficiency is compounded.
DevOps ideas
Below are suggestions on how DevOps might be implemented in a company or organization.
- Consider a communication platform like Slack or Discord for live communication between team members and customers.
- Use version control like Git or GitHub and share access to those repositories between departments.
- Utilize tools like Ansible, Docker, and Jenkins to automate configuration management, deployment, and orchestration.
- If tracking bugs cannot be performed using version control or a better system is needed, consider Jira.
- When deploying to the cloud, use a tool like Terraform to help automate the process.
- Create custom scripts, tools, programs, or services to help solve your company or organization's problems.
Agile development methods, Automation, Collaboration, Deployment, Developer, Programming terms, QA, Scalability, SDLC, Version control