Skip to content

cloud-barista/cm-ant

Release Version Swagger API Doc GitHub go.mod Go version License

CM-ANT Cloud Migration Validation Framework

🧨 [WARNING]
🧨 CM-ANT is currently under development.
🧨 So, we do not recommend using the current release in production.
🧨 Please note that the functionalities of CM-ANT are not stable and secure yet.
🧨 If you have any difficulties in using CM-ANT, please let us know.
🧨 (Open an issue or Join the Cloud-Migrator Slack)

Overview

The Cloud Migration Validation Framework is designed to validate the performance, pricing, and cost-effectiveness before and after the cloud migration process (hereafter referred to as migration).

It provides two main categories of functionality:

  • Predication of cloud infrastructure transtion pricing and validation of resource usage cost.
  • On-demand performance evaluation and validation of the target cloud infrastructure.

Predication of cloud infrastructure transtion pricing and validation of resource usage cost

This feature provides:

  • Price information for the recommended or targeted infrastructure specifications before the migration begins.
  • Operational cost information for specific CSPs (Cloud Service Providers).
  • Predicted cost information.

On-demand performance evaluation and validation of the target cloud infrastructure

This feature provides:

  • Performance evaluation of applications operating on the migrated infrastructure.
  • Performance validation information based on the evaluation results.

These functionalities are integrated with other subsystems, namely CB-Tumblebug and CB-Spider, to function properly. Therefore, for CM-ANT to operate correctly, the related subsystems must be running on the same environment.

OS Image Search Configuration

CM-ANT uses CB-Tumblebug's smart image search API to dynamically find appropriate OS images for load testing VM instances. The system supports two modes for image selection:

Smart Image Search (Default)

  • Purpose: Automatically discovers the best available images for your target CSP and region
  • Features:
    • Uses matchedSpecId for precise VM spec matching
    • Prioritizes basic images (isBasicImage: true)
    • Filters out specialized images (daily, pro, minimal, k8s, deep-learning, etc.)
    • Supports multiple search strategies with fallback options

Fallback Images Only (Production Mode)

  • Purpose: Uses only pre-configured, tested images for maximum stability
  • Use Case: Production environments where predictable behavior is critical
  • Configuration: Set useFallbackImagesOnly: true in config.yaml

Configuration Example

load:
  image:
    # Smart search mode (development/testing)
    useFallbackImagesOnly: false
    useSmartMatching: true
    preferredOs: "ubuntu 22.04"
    fallbackOs: "ubuntu 20.04"
    
    # Production mode (stability first)
    # useFallbackImagesOnly: true
    # useSmartMatching: false
    
    searchOptions:
      isRegisteredByAsset: false
      includeDeprecatedImage: false
      includeBasicImageOnly: true
      maxResults: 50
    
    # Pre-configured images for each CSP/region
    fallbackImages:
      aws:
        "ap-northeast-1": "ami-0c3fd0f5d33134a76"  # Tokyo
        "ap-northeast-2": "ami-0f37ba4f1a9f199d1"  # Seoul
        "us-east-1": "ami-0f37ba4f1a9f199d1"       # US East
      azure:
        "koreacentral": "Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest"
      gcp:
        "asia-northeast3": "ubuntu-2204-jammy-v20231213"

Troubleshooting Image Issues

If you encounter image-related errors:

  1. Switch to fallback mode: Set useFallbackImagesOnly: true for stability
  2. Update fallback images: Add valid image IDs for your target CSP/region

Index πŸ“–

  1. Prerequisites πŸ“
  2. How to Run πŸš€
  3. Usage Configuration βš™οΈ
  4. How to Use πŸ”

Prerequisites πŸ“

Envionment

  • OS: Ubuntu 22.04
  • Language: Go 1.23.0
  • Container: Docker 25.0.0

Subsystem Dependency

  • CB-Spider : v0.11.5
  • CB-Tumblebug : v0.11.9

How to Run πŸš€

1) Download CM-ANT 🐜

Clone the CM-ANT Repository from github.

git clone https://github.com/cloud-barista/cm-ant.git

2) Start related Subsystem

cd cm-ant
docker compose up -d

β § Network cm-ant_cm-ant-net         Created        31.7s 
β § Network cm-ant_cb-tumblebug-net   Created        31.7s 
β ¦ Network cm-ant_cb-spider-net      Created        31.6s 
βœ” Container cm-ant-ant-postgres-1   Healthy        31.1s 
βœ” Container cb-tumblebug-etcd       Started        1.2s 
βœ” Container cb-spider               Started        1.3s 
βœ” Container cb-tumblebug            Started        2.0s 
βœ” Container cm-ant                  Started        31.4s 

Usage Configuration βš™οΈ

Using CM-ANT independently comes with some limitations.
To fully utilize all the features offered by CM-ANT, you need to use functionalities provided by various subsystems.
This means that there is a dependency on other subsystems, and proper user configuration is required to correctly use the features provided by these subsystems.

User credential registration ⭐⭐

In CM-ANT, it is necessary to register user credentials for each CSP. Registered user's CSP credentials are used for tasks such as provisioning virtual machines in a remote environment during performance evaluations, or for retrieving price or cost information from CSP.

Among the subsystems used by CM-ANT, CB-TUMBLEBUG provides a user-friendly process for registering and storing multi-cloud information. It is recommended to register user credentials using the credential registration method provided by CB-TUMBLEBUG.

Follow the guide for initializing CB-Tumblebug to configure multi-cloud information.

πŸ‘‰ Initialize CB-Tumblebug to configure Multi-Cloud info

Pre-Configuration for Performance Evaluation ⭐⭐

To correctly use the performance evaluation features provided by CM-ANT, the following steps are required:

  • Register appropriate permissions for VM provisioning with the registered credentials.

Pre-Configuration for Price and Cost Features ⭐⭐

To correctly use the price and cost features provided by CM-ANT, the following steps are required:

  • Enable AWS Cost Explorer and set up daily granularity resource-level data.
  • Register appropriate permissions for price and cost retrieval with the registered credentials.

Enable AWS Cost Explorer

  1. Open the Cost Explorer page in the AWS Management Console.
  2. If Cost Explorer is already enabled, you can view the cost information used.
  3. If Cost Explorer is not enabled, select "Launch Cost Explorer" on the Cost Explorer start page.

Enable Cost Explorer Resource-level data at daily granularity

  1. Navigate to the enabled Cost Explorer page.
  2. In the left navigation pane, go to the Preferences & Settings > Cost Management Preferences tab.
  3. On the central screen, go to the tab labeled Cost Explorer.
  4. Check the box for Detailed Data > Daily granularity resource-level data.
  5. Select the services for resource-level identification provided by CM-ANT.
    • Cost Explorer, EC2-Others, EC2-Instance, VPC, Tax

How to Use πŸ”

About

Perform verification on performance, price and cost when before and after migration to the cloud

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages