DevOps. It's no longer a random combination of letters; it's a cultural shift in development, widely regarded as the best way to go about technology changes and software delivery.
Here are four easy ways to sharpen your best practices to ensure your team is high-performing!
1. If something is recurring, automate it; it'll give your team more time for the "real" work instead of repeating the same steps for the 70th time. Why not automate end-to-end testing? We’ve developed a quick guide on automating visual regression testing with Cypress.
2. Keep passwords, connection strings and licence files safe and secure. Do not keep any credentials in your code repository, as it gives potential access to your resources to anyone with the right to read code.
3. Use variable groups for everything. Variable groups store protected resources or "secrets" like variables, configurations, and files that you can link to a dedicated variable group in a dedicated deployment stage, such as YAML, release pipeline, or build pipeline.
4. It's good practice to use variable groups to improve security, as you can store passwords to improve flexibility, readability, and security within your dedicated environment.
5. Cache getting dependencies. When you're not changing the version of your dependencies (these may be NuGet or Npm, for example), why not use the cached version instead of restoring it; It'll save a ton of time if you're using a lot of external libraries!
6. Use test reports. Using test reports will give you an overview of existing tests that are working or failing. If you can, attach screenshots and videos to any failed tests to help get to the bottom of the issue in your teams. Especially handy for your teams to view if you're in the middle of a deployment push.
7. Automate package releases. Automate releasing internal or public packages to internal and external clients. Check out our tutorial on how to publish NuGet packages with GitHub. Automating your package release process helps to collaborate and work together on packages in a standardised way (perfect for Agile teams).
8. Automate managing infrastructure as part of your deployment process. For a quick way to manage your infrastructure, Arm Templates, Azure Bicep, or Terraform to set up and modify your infrastructure as part of your release process! It saves you time tweaking infrastructure on cloud provider websites.
9. Prioritise code quality and reviews. Some great tools (free and commercial) like SonarQube, SonarSource and NDepend, which integrate with source control systems like Github, CI/CD Pipeline or Azure DevOps! More on how to perfect your code reviews in 7 steps.
10. On-demand environments can help you to test specific features without disrupting development activities as a whole! Set up on-demand environments in your development process for maximum efficiency in every workflow step.
11. QA the whole release. Testing specific tasks doesn't guarantee everything is going to work together. Any new feature might affect another one or other preexisting features. The final step before live deployment should be QA testing the whole release in a QA environment (the environment before making a release live in your pipeline).
12. Embrace continuous integration and continuous delivery. Without continuous integration and delivery, there are no DevOps. Approach DevOps with regular standups, huddles, estimations sessions, short and effective meetings and timeboxing techniques.
Culture and mindset.
13. Cross-collaboration is key to team success. Ensuring that as many tools as possible are cross-functional between teams will help break down silos between development, design, and strategy teams!
14. Reflect and learn with retrospectives. Retrospectives should be a vital part of the development process and are even better when you can involve clients. Check out our guide on how to run client retrospectives.
DevOps at Cogworks.
Our DevOps team is a team of Agile software developers and DevOps engineers. Before the days of DevOps, we found ourselves in a time-consuming, predominantly manual development process with an eye-watering amount of extensive technical documentation to absorb.
Thankfully, the heavy focus on automation and standardisation in DevOps engineering allows us to quickly adapt to a new project and introduce new team members, thanks to the short, simple documentation.
Get the best from DevOps.
Are your DevOps processes and architecture as efficient as possible? Chat with one of our DevOps consultants to help get the best out of your Continuous Integration (CI) and Continuous Deployment (CD) architecture and workflow using Azure Pipelines and Azure DevOps!
Our development team stay up-to-date with best practice through conferences, webinars and community events, so we can transfer our knowledge to you.