Boavizta / boaviztapi

🛠 Giving access to BOAVIZTA reference data and methodologies trough a RESTful API
GNU Affero General Public License v3.0
68 stars 23 forks source link

AWS impacts #29

Closed da-ekchajzer closed 2 years ago

da-ekchajzer commented 2 years ago

Problem

Implement the impact of Amazon Web Services (aws) cloud instances

Solution

Using archetype. Each cloud instance type will be saved as an archetype. The user send the name of the instance under study to choose which archetype to load and usage data to precise the archetype.

Manufacture and usage are measured with the classic server methodology and divided by the number of instance type per server (depending on the instance type).

By default (in the archetype), the instance is load at 50% 100% of the time. This can be override by the user.

Additional context or elements

AWS archetype exemple (fake datas)

{
  "model":
  {
    "manufacturer": "AMAZON",
    "name": "a1-4xlarge",
    "type": "rack",
    "year": 2020
  },
  "configuration":
  {
    "cpu":
    {
      "units": 2,
      "core_units": 24,
      "die_size_per_core": 0.245
    },
    "ram":
    [
      {
        "units": 12,
        "capacity": 32,
        "density": 1.79
      }
    ],
    "disk":
    [
      {
        "units": 1,
        "type": "ssd",
        "capacity": 400,
        "density": 50.6
      }
    ],
    "power_supply":
    {
      "units": 2,
      "unit_weight": 2.99
    }
  },
  "usage": {
    "instance_per_server": 1,
    "max_power": 510,
    "hours_use_time": 1,
    "workload": {
        "10": {
            "time": 0,
            "power": 0.325
          },
         "50": {
            "time": 1,
            "power": 0.7235
          },
          "100": {
        "time": 0,
            "power": 1
          }
          "idle": {
            "time": 0,
            "power": 0.2
          }
    }
  }
}

Example of request querry parameter : a1-4xlarge

{
  "year_use_time": 2,
  "usage_location": "FRA",
  "workload": {
     "10": {
        "time": 0.2
      },
      "50": {
        "time": 0.3
      },
      "100": {
        "time":  0.5
      },
      "idle": {
        "time":  0
      }
    }
}
da-ekchajzer commented 2 years ago

Implementation is done. Need to integrate data from : https://docs.google.com/spreadsheets/d/1DqYgQnEDLQVQm5acMAhLgHLD8xXCG9BIrk-_Nv6jF3k/edit @github-benjamin-davy is on it ;)

da-ekchajzer commented 2 years ago

CSV file for AWS archetype can be found here : https://docs.google.com/spreadsheets/d/1DqYgQnEDLQVQm5acMAhLgHLD8xXCG9BIrk-_Nv6jF3k/edit#gid=1494701657 thanks @github-benjamin-davy

We still need to complete the missing die size for the CPU family used in AWS archetypes. Replace unknown attributes in : https://github.com/Boavizta/Tools-API/blob/main/boaviztapi/data/components/cpu_manufacture.csv