Microsoft Certified: DevOps Engineer ExpertConfigure processes and communicationsMedium

A software company is developing a suite of microservices. Each microservice is independently deployable and has its own Git repository. The company wants to adopt a versioning strategy that clearly indicates whether a release contains new features, bug fixes, or breaking changes, and allows for automated dependency resolution. Which versioning strategy should they implement?

  1. ADate-Based Versioning
  2. BAlphabetical Versioning
  3. CSemantic Versioning
  4. DSequential Versioning
Show answer & explanation

Correct answer: C. Semantic Versioning

Semantic Versioning (SemVer) uses a MAJOR.MINOR.PATCH format to communicate the nature of changes. MAJOR for breaking changes, MINOR for new features (backward-compatible), and PATCH for backward-compatible bug fixes. This clarity is crucial for microservices to manage dependencies and understand release impact.

Why the other options are wrong

  • A. Date-Based Versioning uses the release date, which doesn't directly communicate the type of changes (breaking, features, fixes) or facilitate dependency management.
  • B. Alphabetical Versioning is not a standard versioning strategy and would provide no meaningful information about releases.
  • D. Sequential Versioning (e.g., 1, 2, 3) provides no information about the nature of the changes or their backward compatibility.

Semantic Versioning (SemVer)

A versioning scheme (MAJOR.MINOR.PATCH) that communicates the type of changes in a release, indicating backward compatibility and impact.

  • MAJOR: Breaking changes.
  • MINOR: New features, backward-compatible.
  • PATCH: Bug fixes, backward-compatible.
  • Crucial for dependency management.

Memory trick: SemVer sends signals on changes.

More Configure processes and communications questions