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. How To

Load test with Odin

Introduction

Load testing is a type of performance testing that simulates a real-world load on any software, application, or website. Without it, your application could fail miserably in real-world conditions. A load testing can be performed on services or smaller components like database servers or firewalls.

Odin, as a developer tool, provides the capability to the users to perform load testing. In this article, we are going to understand the steps to perform load testing with the help of Odin. This will cover the following steps with the help of a sample:

  1. Creating a load environment

  2. Releasing a service

  3. Deploying a service in load environment using provisioning config file

  4. Configuring the components for scaling

Creating a load environment

User can create a load environment in Odin to perform load testing. Please use the following command for the same:

#Format
odin create env --env-type {ENV_TYPE} --account {CLOUD_PROVIDER_ACCOUNT}

#Example
odin create env --env-type load --account load

To view the load environment created with the above command, execute the following to see the status:

odin list env --env-type load

Releasing a Service

To release the service you have created and willing to load test, use the following command:

odin release service --path (path to directory)

Deploying a service in load environment using provisioning config file

Once the above step is completed, the AMI and the Docker image for the service gets created. Now a user needs to deploy the same in the load environment. The default deployment type in load environment is AWS EC based deployment. However, user can pass customised deployment type in provisioning config file to override the same. To deploy the service, please use the following command [the second command to pass provisioning config separately].

odin deploy service --name {serviceName} --version {serviceVersion} --env {envName}

odin deploy service --name {serviceName} --version {serviceVersion} --provisioning {provisioningFilePath} --env {envName}

Configuring the components for scaling

To perform a load testing, today a user has to follow the actions mentioned in the table below. In the rightmost column, you can see what exactly you need to specify using Odin and rest can remain as it is i.e rest can be performed via AWS console:

ASG upscale/downscale

Using AWS Console

LCU provisioning

Using AWS Console

RDS instance type

You can specify this using provisioning config

Add reader/writer in database

Using AWS Console

Add notes and shard in Redis

Using AWS Console

Parameter Group

Using AWS Console

Load Balancer Type

You can specify this using provisioning config

PreviousBuild artifacts for multi module applicationsNextTrack Deployments against Commit Ids

Last updated 2 years ago

Once the environment is created, the service needs to be released. It is important to note that the version of the service that needs to be released here should be a snapshot version. For load testing, we will not release concrete version [to know more about Snapshot and Concrete version, refer to the document here - ].

In the above command, ‘path to directory’ means the path where your service is lying. The sample service definition can be found in this link - .

For using load testing, you can create a provisioning file. Please find the sample provisioning file here - ; in this provisioning config, you can specify your load balancer type. The instance type can also be specified using this file and Odin will be taking these params into consideration while running a load test.

Odin Versioning
definition.json
provisioning-load.json