Giter Site home page Giter Site logo

eco-bench / eco-bench Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 4.0 152.11 MB

Setup for our edge container orchestrators (ECOs) comparison benchmarking

License: Apache License 2.0

Dockerfile 2.98% Shell 7.52% HCL 17.21% Go 15.97% Java 39.16% Python 11.39% Jinja 5.77%

eco-bench's Introduction

eco-bench

Setup for our edge container orchestrators (ECOs) comparison benchmarking

Planing

https://ecobench.atlassian.net/jira/software/c/projects/ECO/boards/1/roadmap?timeline=MONTHS

Directory Structure

.
├── .github/workflows               # Github Actions
├── docs                            # Documentation and notes
├── dummy                           # Smart plant factory dummy application
│   ├── camera-edge-device          # Camera
│   ├── image-processing-edge       # Image edge component
│   ├── image-processing-cloud      # Image cloud component
│   ├── sensor-edge-device          # Sensors
│   ├── sensor-edge                 # Sensor edge component
│   ├── sensor-cloud                # Sensor cloud component
│   ├── edge-irrigation-system      # Irrigation system
│   └── kubernetes                  # Kubernetes resources for the application
├── install-scripts                 # Scripts to automatically configure and provision ECOs
│   ├── kube-edge                   # Ansible script for kube-edge
│   ├── microk8s                    # Ansible script for microk8s
│   ├── openyurt                    # Ansible script for openyurt
│   └── provisioning                # Terraform script to provision VMs on Google Cloud
├── docker-compose                  # Docker-compose for the smart plant factory
└── benchmarking                    # Plotting and monitoring script

Installation

We have an install script automate_steps.sh to provision VMs, install mikrok8s, and deploy our use case application. The Script is located under install-scripts/microk8s.
The following steps are required to execute the script from you local machine:

  1. Terraform and Ansilbe installed
  2. service-account.json in provisioning folder, in google cloud console go to IAM & Verwaltung > Dienstkonten > Dienstkonto erstellen > Zugriff Standartt/Inhaber. After generating the Service Account click on the Service Account > Schlüssel and generate a new Key. Copy the key to the service-account.json file.
  3. Create (or use an existing) Key Pair, and place it under Compute Engine > Metadaten > SSH-Schlüssel > bearbeiten.
  4. In the ansible inventory file you will need your user name for the connection. Go to provisioning/inventory.tmpl and change it.
  5. If your key file is not at the default location ~/.ssh/id_rsa you will need to provide the exact location and add this --key-file "~/.ssh/mykey.pem" whenever you run ansible-playbook in automate_steps.sh.

If you have completed all this steps execute the script from install-scripts/microk8s.

Forking

The project is designed to run the benchmarks through our pre-configured github action workflow which is defined in .github/workflows/terraform.yml

1. GCloud Setup

  1. Enable the Compute Engine API: https://console.developers.google.com/apis/api/compute.googleapis.com/overview
  2. Create your Service Account: https://console.cloud.google.com/iam-admin/serviceaccounts/
  3. Create and download a JSON key for your Service Account (Actions > Manage Keys > Add Key)

2. ENV Preparation

Define the following secrets in Settings > Secrets > Repository secrets:

  • PRIVATE_KEY
  • PUBLIC_KEY
  • GCE_SERVICE_ACCOUNT: The contents of your GCloud service account JSON file.

⚠️ Make sure the Service Account has sufficient access to your project. E.g. we have chosen the Owner role.

For now you also have to change some Terraform variables inside the files therefore open the install-scripts/provisioning/tfvars.json and edit the following values:

  • gcp_project_id: The id of your google cloud project

3. Run the Action

To run the action in your own repository:

  1. Go to the "Actions" tab
  2. Select the "Install Edge Orchestrator" workflow on the left
  3. Hit "Run workflow" on top of the list of runs

If you get an error regarding failed artifacts download, try to run the workflow again.

4. Destroy the Environment

The Install Edge Orchestrator workflow does not destroy the environment after a run to speed up the action on subsequent runs. If you need a clean environment use you have to destroy the previous environment with the Destroy Environment action. To run the action in your own repository:

  1. Go to the "Actions" tab
  2. Select the "Destroy Environment" workflow on the left
  3. Hit "Run workflow" on top of the list of runs

eco-bench's People

Contributors

lukonjun avatar backerich avatar d-mzv avatar stagnu-m avatar

Stargazers

 avatar Martin Grambow avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.