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
  • Definition
  • Fields
  • Sample:
  • Component config
  • Access To Deployed Components
  • Validating via Health Check
  • List of teams
Export as PDF
  1. Key Concepts

Service

PreviousAerospike [6.3.0.7-1.0.0]NextKnow Your Service Definition

Last updated 9 months ago

Definition

A service is an atomic unit of deployment. It is meant to package a business functionality as a unit, though, the user can define it as per their use case. A service is composed of .

A service once created is immutable when . If there is any change in service definition, then a new version needs to be released with that change.

Fields

Key
Value Type
Remarks

name

string

name of the service, service name cannot have _ (underscore) in the name as same is not support by helm

version

string

version of the service

team

string

name of your team

components

list

service name cannot have _ (underscore) in the name as same is not support by Helm -

Sample:

service-foo.json

{
  "name": "MyAuth",
  "version": "1.0.0",
  "team": "tech",
  "components": [
    {
      "type": "application",
      "name": "my-auth",
      "version": "1.0.0",
      "config": {
        "build_type": "java",
        "build_version": "8",
        "artifact_name": "profile",
        "artifact_version": "1.0.0-QA-SNAPSHOT"
      }
    },
    {
      "type": "cassandra",
      "name": "foo-cassandra",
      "version": "1.1.0"
    },
    {
      "type": "aerospike",
      "name": "foo-aerospike",
      "version": "1.2.0"
    }
  ]
}

Change in any component within a service will also require you to bump up a new version for the service definition as well.

Component config

Special case for application component-type

Application component-type exposes application_name and application_version as config params enabling you to override default name and version in cases where they might not be same.

Odin will use application_name and application_version to fetch artifact from jfrog.

Access To Deployed Components

Once a service is deployed, the respective components can be found at below URL

$COMPONENT_NAME-$ENV_NAME..local

For RDS andPostgresQL you'll have different end points for reader and master

$COMPONENT_NAME-reader-$ENV_NAME.orgname-accountname.local
$COMPONENT_NAME-master-$ENV_NAME.orgName-AccountName.local

Validating via Health Check

You can validate your service via heath check request

curl --location --request GET 'http://SERVICE_NAME-{ENV_NAME}.orgName-AccountName.local/healthcheck'

List of teams

list of

Every component exposes specific configs that can be overridden while defining service definition. You can read more about that in .

Read more about deploying your service here -

is the list of all the team onboarded on the platform for Dream11. You can use these team names for creating service while we are working to make it seamless experience for you.

components
released with a concrete version
https://helm.sh/docs/chart_best_practices/conventions/#chart-names
component-type reference
Deploy your service
Here
components