summaryrefslogtreecommitdiff
path: root/settings.gradle.kts
AgeCommit message (Collapse)Author
2022-08-03refactor(web/server): Create standalone OpenDC distributionFabian Mastenbroek
This change updates the Quarkus configuration of the OpenDC web server to serve as a fully standalone distribution that is capable of serving the web UI, web API, and experiment runner. Such an approach vastly simplifies local deployments. For Docker deployments, we create a custom Quarkus profile that uses PostgreSQL and disables the web UI.
2022-06-08test(trace): Add conformance suite for OpenDC trace APIFabian Mastenbroek
This change adds a re-usable test suite for the interface of the OpenDC trace API, so implementors can verify whether they match the specification of the interfaces.
2022-05-18feat(web/runner): Add Quarkus extension for OpenDC runnerFabian Mastenbroek
This change adds a Quarkus extension that hosts the OpenDC web runner for a (potentially local) OpenDC API instance. This functionality enables a simplified developer experience by allowing users to spawn the complete OpenDC stack with a single command.
2022-05-18refactor(web/ui): Remove module nesting in Quarkus extensionFabian Mastenbroek
This change updates the OpenDC web UI Quarkus extension to live completely in the `opendc-web` directory, as opposed to adding another level of nesting. This also allows us to properly name the artifacts of the Quarkus extension modules.
2022-05-18refactor(web/runner): Move runner CLI into separate configurationFabian Mastenbroek
This change splits the command line interface from the OpenDC web runner into a separate configuration. We plan to re-use the runner code for a Quarkus extension that integrates the runner in development mode.
2022-05-06refactor(harness): Remove OpenDC Harness modulesFabian Mastenbroek
This change removes the OpenDC Harness modules from the main repository. We have made the decision to take a different direction regarding the specification and execution of experiments. The design of the current harness does not integrate well with the specification of experiments in the web interface. The new version focuses on proper integration with the web interface, as well as via the command line interface.
2022-05-06feat(faas): Add helper tools for FaaS simulationsFabian Mastenbroek
This change adds a new module, opendc-faas-workload that contains helper code for constructing simulations of FaaS-based workloads using OpenDC. In addition, we add an integration test that demonstrates the capabilities of the helper tool and the FaaS platform of OpenDC.
2022-05-06refactor(telemetry): Remove dependency on OpenTelemetry SDKFabian Mastenbroek
This change removes the dependency on the OpenTelemetry SDK. Instead, we'll only expose metrics via the OpenTelemetry API in the future via adapter classes.
2022-05-06refactor(compute/service): Remove OpenTelemetry from "compute" modulesFabian Mastenbroek
This change removes the OpenTelemetry integration from the OpenDC Compute modules. Previously, we chose to integrate OpenTelemetry to provide a unified way to report metrics to the users. Although this worked as expected, the overhead of the OpenTelemetry when collecting metrics during simulation was considerable and lacked more optimization opportunities (other than providing a separate API implementation). Furthermore, since we were tied to OpenTelemetry's SDK implementation, we experienced issues with throttling and registering multiple instruments. We will instead use another approach, where we expose the core metrics in OpenDC via specialized interfaces (see the commits before) such that access is fast and can be done without having to interface with OpenTelemetry. In addition, we will provide an adapter to that is able to forward these metrics to OpenTelemetry implementations, so we can still integrate with the wider ecosystem.
2022-04-30feat(trace/calcite): Add Calcite (SQL) integrationFabian Mastenbroek
This change adds support for querying workload trace formats implemented using the OpenDC API through Apache Calcite. This allows users to write SQL queries to explore the workload traces.
2022-04-05feat(web/ui): Add extension for serving OpenDC web UIFabian Mastenbroek
This change adds a new Quarkus extension that is able to serve the OpenDC web interface via the Quarkus deployment of OpenDC.
2022-04-04feat(web/client): Add separate web client implementationFabian Mastenbroek
This change implements a simple client for the OpenDC REST API into a separate module. This allows other users to use this module as well.
2022-04-04feat(web/proto): Design unified communication protocolFabian Mastenbroek
This change adds a unified communication protocol in form of the module opendc-web-proto which contains the classes that form the communication protocol of OpenDC's API v2. By having the protocol in a separate module, we can utilize the classes in both server and client.
2022-04-04build: Move build dependencies into version catalogFabian Mastenbroek
This change moves build dependencies used by Gradle into the version catalog to ensure a single location for all dependency versions.
2022-02-18build: Remove opendc-platform moduleFabian Mastenbroek
This change removes the opendc-platform module from the project. This module represented a Java platform which was previously used for sharing a set of dependency versions between subprojects. However, with the version catalogue that was added by Gradle, we currently do not use the platform anymore.
2022-02-18refactor(utils): Rename utils module to common moduleFabian Mastenbroek
This change adds a new module, opendc-common, that contains functionality that is shared across OpenDC's modules. We move the existing utils module into this new module.
2021-11-16feat(workflow): Add helper tools for workflow simulationsFabian Mastenbroek
This change adds a new module, opendc-workflow-workload that contains helper code for constructing workflow simulations using OpenDC.
2021-10-03refactor(simulator): Migrate to flow-based simulationFabian Mastenbroek
This change renames the `opendc-simulator-resources` module into the `opendc-simulator-flow` module to indicate that the core simulation model of OpenDC is based around modelling and simulating flows. Previously, the distinction between resource consumer and provider, and input and output caused some confusion. By switching to a flow-based model, this distinction is now clear (as in, the water flows from source to consumer/sink).
2021-09-19feat(trace): Add tool for converting workload tracesFabian Mastenbroek
This change adds an initial implementation to the trace library for converting between workload trace formats. Currently the tool supports only converting to the OpenDC VM trace format. However, in the future, we will add support for converting between other formats as well.
2021-09-19feat(trace): Add support for internal OpenDC VM trace formatFabian Mastenbroek
This change adds official support to the trace library for the internal VM trace format used by OpenDC for its experiments. This is a compact format that uses Parquet to store the virtual machine trace data in two Parquet files.
2021-09-19feat(trace): Add support for Azure VM trace formatFabian Mastenbroek
This change adds support in the trace library for the Azure VM trace format.
2021-09-19refactor(capelin): Extract common code out of Capelin experimentsFabian Mastenbroek
This change creates a new module for doing simulations with virtual machine workloads. We have found that a lot of code in the Capelin experiments code is being re-used by non-experiment modules.
2021-09-17refactor(experiments): Remove energy experiments shellFabian Mastenbroek
This change removes the energy experiments. The experiments only provided a setup for the original experiments and is not able to reproduce the results without further worker.
2021-09-11feat(trace): Add support for WfCommons (WorkflowHub) tracesFabian Mastenbroek
This change adds support for reading WfCommons workflow traces in OpenDC. This functionality is available in the new `opendc-trace-wfformat` module.
2021-09-10refactor(compute): Integrate fault injection into compute simulatorFabian Mastenbroek
This change moves the fault injection logic directly into the opendc-compute-simulator module, so that it can operate at a higher abstraction. In the future, we might again split the module if we can re-use some of its logic.
2021-09-07refactor(capelin): Move metric collection outside Capelin codeFabian Mastenbroek
This change moves the metric collection outside the Capelin codebase in a separate module so other modules can also benefit from the compute metric collection code.
2021-09-02refactor(trace): Implement trace API for WTF readerFabian Mastenbroek
This change updates the WTF trace reader to support the new streaming trace API.
2021-09-02refactor(trace): Implement trace API for SWF readerFabian Mastenbroek
This change updates the SWF trace reader to support the new streaming trace API.
2021-09-02refactor(trace): Move Bitbrains format into separate moduleFabian Mastenbroek
This change moves Bitbrains trace support into a separate module and adds support for the new trace api.
2021-09-02refactor(trace): Extract Parquet helpers into separate moduleFabian Mastenbroek
This change extracts the Parquet helpers outside format module into a new module, in order to improve re-usability of these helpers.
2021-09-02refactor(trace): Move GWF trace reader into separate moduleFabian Mastenbroek
This change starts the process of moving the different trace formats into separate modules. This change in particular moves the GWF trace format into a new module, opendc-trace-gwf. Furthermore, this change also implements the trace API for the GWF module.
2021-09-01feat(trace): Add API for trace readingFabian Mastenbroek
This change introduces a new OpenDC API for reading various trace formats in a streaming manner.
2021-06-21simulator: Add core module for network simulationFabian Mastenbroek
This change adds a basic framework as basis for network simulation support in OpenDC. It is modelled similarly to the power system that has been added recently.
2021-06-17faas: Rename opendc-serverless to opendc-faasFabian Mastenbroek
This change renames the opendc-serverless module to opendc-faas to better distinguish between the two terms (Serverless and FaaS) and be clearer about the intent of the module. The opendc-faas module holds the code for the FaaS platform on top of OpenDC. Although this is one approach of doing serverless, serverless can also entail other services that will not be covered by this module.
2021-06-10simulator: Add module for datacenter power componentsFabian Mastenbroek
This change adds a new module for simulating power components in datacenters such as PDUs and UPSes. This module will serve as the basis for the power monitoring framework in OpenDC and will future integrate with the other simulation components (such as compute).
2021-05-09exp: Add TensorFlow experiment setupWenchen Lai
This change adds the initial experiment setup for the TensorFlow on OpenDC experiments.
2021-05-07build: Use Gradle version catalogFabian Mastenbroek
This change adds support for the Gradle version catalog feature in our build configuration. This allows us to have a single file, gradle/libs.versions.toml, which contains all the dependency versions used in this project.
2021-05-06build: Use type-safe project accessorsFabian Mastenbroek
This change updates the build scripts to use type-safe project accessors when specifying build dependencies between modules.
2021-05-05harness: Split harness into separate modulesFabian Mastenbroek
This change splits the OpenDC Experiment Harness into separate modules. This prevents users from pulling in unnecessary dependencies when depending on the harness API.
2021-04-25build: Migrate to flat project structureFabian Mastenbroek
This change updates the project structure to become flattened. Previously, the simulator, frontend and API each lived into their own directory. With this change, all modules of the project live in the top-level directory of the repository. This should improve discoverability of modules of the project.