DevOps

Azure DevOps Dashboard

Introduction

When you are managing Azure DevOps in a large enterprise organization, and you are still using only one Azure DevOps organization account, you are probably hitting some limits or have potential performance issues. Microsoft’s recommendation is to have around 300 projects in a single Azure DevOps organization account. I have seen Azure DevOps organizations with more than 600 projects that still work.

The solution is to set up a multi-organization structure. Move all the inactive projects to an archive or boneyard Azure DevOps organization account and add an extra Azure DevOps organization account per department.

Infrastructure as Code

Infrastructure as Code

Infrastructure as Code (IaC) is the process of managing and provisioning infrastructure and configuration dependencies for application stacks using machine-readable definition files rather than physical hardware configuration or interactive configuration tools.

What is Infrastructure as Code?

  • Source Controlled
  • In code (Scripts & Templates)
  • Automated & Continuous Deployment
  • Testing
  • Feedback loop (Monitoring)

Categories of IaC tooling

You can use many declarative infrastructure deployment technologies with Azure. These fall into two main categories.

Compliance as Code

Compliance-as-Code

What is compliance as code?

Compliance-as-Code can be summarized as the organizational capability to automate the implementation, verification, remediation, monitoring, and compliance status reporting. This automation comes in the form of code and is integrated into the code repositories used by Devs and Engineers. It becomes “just another piece of code.”

  • Using code to describe, validate, (possibly) remediate, monitor, and report compliance requirements and status
  • Measured against regulatory standards and internal governance
  • Includes (but not limited to):
    • Security
    • Infrastructure configuration
    • Privacy
    • Policies: Government, finance, health, etc.
    • Licensing (i.e., Open Source)

Why use compliance as code?

Just as with any other *aC, precision and repeatability of code execution eliminate human error.

Cloud-native development with containers and microservices

Introduction

To adopt cloud-native application patterns, companies must learn new skills and communicate effectively across team boundaries. A new architecture, platforms, and developer workflows mean evolving developer skillsets. While microservices allow teams to move independently, they also emphasize the degree to which software and the organization grow to resemble one another, also known as Conway’s law. To achieve a result in which many microservices are a cohesive system and still maintain velocity, an organization’s communication structures need to be highly functional and effective.

Zero Touch Deployment

Introduction

In today’s increasingly demanding marketplace, companies are looking for ways to stay ahead of their competition. Development teams are faced with challenges preventing them from delivering solutions rapidly that meet the business’s expectations. Therefore, companies need to evolve their Application Lifecycle Management (ALM) practices to integrate business, development, QA, and operations functions in an efficient cycle for greater agility in delivering continuous value.

Releasing high-quality software more frequently represents a substantial competitive advantage, and it means a significant reduction in the amount of wasted time and effort within a company.