Skip to content

Requirements

Tom Kelly edited this page Jun 4, 2021 · 22 revisions

This page documents the infrastructure requirements of the OCaml open-source tooling, in an effort to ease allocation of the available resources.

Continuous Integration

  • docker-base-images.

    • OCurrent orchestrator (toxis)
    • AMD64 builder (amd64)
    • ARM32 builder (arm32-1, arm32-2)
    • PPC64 builder (ppc64)
  • ocaml-ci.

    • Production.
      • Web front-end and OCurrent scheduler.
        • Currently toxis, but could/should be a separate, smaller machine.
        • New ci3.ocamllabs.io VM now allocated for the frontend.
        • Builders: arm64-build-1.ocamllabs.io, x86-build-[1,2,3].ocamllabs.io on Scaleway.
      • Build fleet (toxis, laodoke, phoebe, m1-a - see https://github.com/ocurrent/ocaml-ci/blob/master/service/conf.ml#L26)
    • Staging. A similar environment to production, but with a smaller build fleet (e.g. web front-end, scheduler, debian build machine). (UNALLOCATED)
  • ocaml-cb

    • Existing: autumn. Benchmark machine. Runs with isolated CPU cores for the benchmarks so needs to be baremetal and dedicated.
    • UNALLOCATED: An extra machine (can be a VM, shared) that runs the ocurrent orchestrator to trigger the benchmarks and host the web frontend. Suggested minimal setup: 2 cores, 8gb ram, 500mb disk, ubuntu 18.04
  • www-deployment pipeline

    • Existing: none?
    • UNALLOCATED: A server that can host KVM unikernels, ideally with multiple IPv4/IPv6 addresses for automatic deployment from an ocurrent pipeline. If we can't get extra IPs an alternative could be do deploy the http instances behind an nginx frontend (or unikernel). Suggested minimal setup: bare metal, 4 cores, 16gb ram, 1tb disk, ubuntu 18.04
  • opam-health-check.

    • Production. A beefy server hosting frontend/build server for check.ocamllabs.io (hipp)
    • Testing. A server half (or even a quarter) the size of the production server would be enough to test several improvements such as new versions of opam-health-check, new opam solver, opam optimizations, new releases of the compiler, custom tests for opam-repository PRs (sometimes the CI environment is not enough and requires custom tests such as for revdeps, or custom dependencies/distributions) (UNALLOCATED)
  • opam-ci.

    • Web front-end and OCurrent scheduler. This would be at first a testing server. A normal size server would be enough, no need for crazy specs if the build fleet of ocaml-ci (see above) is accessible. If not, its size would be to be discussed, possibly a normal size for testing and taking what currently drives ci.ocaml.org instead. (UNALLOCATED)
  • mirage-ci (opam-repository CI).

    • Production. A big server hosting frontend/build server for ci.ocaml.org (pima)

Continuous Benchmarking

  • bench2/caelum-614

  • [navajo]

    • A 20+ core machine for continuous running of the parallel benchmark suite in sandmark
    • A machine to run sequential and parallel Jupyter notebook benchmark comparisons as nightly builds (cannot overload winter!)

Multicore development

  • [bremusa/128.232.80.167] & [winter]
    • General purpose development benchmarking when needing 20+ cores
    • General purpose multicore testing (and particularly repeated testcase running to find bugs and refine to a small testcase)
    • General purpose multicore development (particularly build and run testsuite prior to pushing PR branches)

OCaml development

  • [spring/128.232.124.188]
    • Sandmark instance for OCaml flambda development.