DevOps should be at the core of every development team. Teams with a high performance DevOps cycle can deploy more frequently, get products to the market faster, increase revenue, and have lower failure rates. The reason most teams don't invest in DevOps is because it can be intimidating. Microsoft has made that easy with Azure DevOps by taking the hassel out of mainting builds, releases, code, and user stories so you can focus on the product.
What is DevOps?
"DevOps is the union of people, process and products to enable the continuous delivery of value to your end customers"
The diagram below shows a great example of what a good DevOps system can do.
What Can I Achieve with DevOps?
High performance DevOps companies can acheieve...
- 46x Deployment Frequency
- Faster Time to Market
- 7x Lower Change Failure Rate
- 2,555x Faster Lead Time for Changes
- Increased Revenue
- 2,604x Faster Mean Time to Recover
Source: 2018 Accelerate: State of DevOps: Strategies for a New Economy." N. Forsgren, J. Humble, G. Kim. DevOps Research and Assessment (DORA)
What technologies do I need to support DevOps?
Now that we know what DevOps is and what I can achieve from it, how do I go about supporting it? This is normally when people start to the feel the burden cause now they need to manage more VMs, more applications, just to help them manage their own applicaiton.
Continuous Integration (CI)
CI helps teams move faster and improve overall quality. Each time you commit code or submit a PR you can make sure it doesn't break your builds and still passes your tests.
Continuous Deployment (CD)
CD bridges the cap between a product release and CI. It allows you to automate the whole process from committing code to release if all your CI/CD tests pass successfully.
Continuous Learning & Monitoring
Using tools like Application Insights you can identity how your application is performing and see if recent reployments made things better or worse.
Show me Azure DevOps
Boards allow you to plan and track items across your team using agile or scrum approaches. You can use tools such as Kanban boards, backlogs, team dashboards and custom reporting. This tool allows you to connect your ideas at every development stage and keep your team aligned with code changes.
Similar to GitHub repos, but you can get unlimited private repos with all the same tools and advanced file management. Not only is is a codebase your used to, you can still continue to use your favorite IDE, editor and git client along with having access to Web Hooks and API integrations.
Azure Test Plans
Before shipping code make sure the correct test plans, whether manually or automated, run correctly. Having a good tool to manage all your tests lets you capture rich data and get end-to-end traceability. You want to make sure your team finds the issues before your users.
Share packages with your team and even make them available for CI/CD pipelines with a single click. Whether you are used to having packages come from maven, npm or nuget, you can manage and create them all right in your team allowing for bettering sharing of code and resources.
Setting up an existing GitHub repo with Azure Pipelines can be done in minutes. If you want to see an example check out this project.
If you are ready to get started or even want to learn move, head of over to https://azure.com/devops. You can get started for free and grow with their reasonable pricing structure.
For entire slide deck, you can download it here and of course of if you have any questions or need help getting started please feel free to email me at email@example.com.