Odin
  • Introduction
  • Why Odin?
  • Key Concepts
    • Environment
      • Environment Type
    • Provisioning
      • Provisioning Config for Component Types
    • Component
      • Available Component Types
      • Component Type reference
        • Optimus Components
          • Aerospike [6.3.0.7-1.0.0]
    • Service
      • Know Your Service Definition
    • Versioning
      • Clearing the Confusion: A Simplified Guide to Artifact, Component, and Service Versions
    • Service Sets
    • Labels
  • Reference
    • CLI reference
  • Onboard Your Service
    • Installation
    • Configure
    • Odin -h
    • Getting Started
    • Create Environment
      • Operations on Environment
    • Service Definition
    • Provisioning Config
    • Deploy Service
    • Release Service
    • Optimus Datastore Operations
      • How to use Optimus Datastore in my service?
      • RDS Operations
      • Aerospike Operations
      • Kafka Operations
    • Operating Service & Components
      • Redeploy
        • In Place Deployment
        • Blue Green Deployment
      • Rolling Restart
      • Adding & removing components
      • Revert a deployment for application component
      • Downscaling a Passive Stack
      • Updating the no. of stacks of application component
    • Dev <> QA iteration
    • Frequently Asked Questions
    • Deploy Concrete Service
    • Undeploy Service
    • Delete Environment
    • Appendix
  • How To
    • Define error threshold for canary deployment
    • Add or Remove a component in an already deployed service
    • Integrate mono-repo(cronjobs) with Odin
    • Deploy crontab with Odin
    • Integrate Data pipeline with Odin
    • Push logs to log central
    • Build artifacts for multi module applications
    • Load test with Odin
    • Track Deployments against Commit Ids
    • Deploy Service on Production - Dream11
    • How and when images are created
    • Check logs for deployed infrastructure - Dream11
    • Onboard Stepfunction as a component
    • Onboard Serverless as a component
    • Login to Kubernetes clusters
  • Release Notes
    • 1.2.0-beta.2 - 11 August, 2022
    • Odin October Release
    • Odin 1.2.0 - Nov 9th 2022
    • Odin February Release
Powered by GitBook
On this page
Export as PDF
  1. Key Concepts

Versioning

Versioning is a central concept to Odin. Components and Service definitions always point to a specific version.

A service definition with concrete version is defined below

{
  "name": "MyAuth",
  "version": "1.0.0",
  "team": "tech",
  "components": [
    {
      "type": "application",
      "name": "my-auth",
      "version": "1.0.0"
    },
    {
      "type": "cassandra",
      "name": "foo-cassandra",
      "version": "1.1.0"
    },
    {
      "type": "aerospike",
      "name": "foo-aerospike",
      "version": "1.2.0"
    }
  ]
}

Concrete versioned service definitions or component artefacts are treated as immutable objects. For development purpose SNAPSHOT keyword can be added in version.

Service definition or component artefacts with SNAPSHOT in the version are treated as mutable.

{
  "name": "MyAuth",
  "version": "1.0.0-SNAPSHOT",
  "team": "tech",
  "components": [
    {
      "type": "application",
      "name": "my-auth",
      "version": "1.0.0"
    },
    {
      "type": "cassandra",
      "name": "foo-cassandra",
      "version": "1.1.0"
    },
    {
      "type": "aerospike",
      "name": "foo-aerospike",
      "version": "1.2.0"
    }
  ]
}

Below diagram explains the SDLC workflow with Odin

PreviousKnow Your Service DefinitionNextClearing the Confusion: A Simplified Guide to Artifact, Component, and Service Versions

Last updated 2 years ago

SDLC with Odin