{"id":13509988,"url":"https://github.com/emc-advanced-dev/layerx","last_synced_at":"2025-03-30T15:30:32.834Z","repository":{"id":57501170,"uuid":"67823789","full_name":"emc-advanced-dev/layerx","owner":"emc-advanced-dev","description":"The Framework for Cross-Cluster Scheduling","archived":false,"fork":false,"pushed_at":"2017-02-02T19:55:08.000Z","size":16518,"stargazers_count":71,"open_issues_count":0,"forks_count":8,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-11-01T10:35:10.608Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emc-advanced-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-09T18:45:44.000Z","updated_at":"2024-09-23T11:00:21.000Z","dependencies_parsed_at":"2022-09-14T19:41:06.510Z","dependency_job_id":null,"html_url":"https://github.com/emc-advanced-dev/layerx","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emc-advanced-dev%2Flayerx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emc-advanced-dev%2Flayerx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emc-advanced-dev%2Flayerx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emc-advanced-dev%2Flayerx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emc-advanced-dev","download_url":"https://codeload.github.com/emc-advanced-dev/layerx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246338578,"owners_count":20761404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:01:20.180Z","updated_at":"2025-03-30T15:30:27.824Z","avatar_url":"https://github.com/emc-advanced-dev.png","language":"Go","readme":"# \u003cimg src=\"http://i.imgur.com/idwFRSK.png\" alt=\"Container Scheduling across Clusters\" width=\"159\" height=\"50\"\u003e\n\n**Layer X** a single centralized service that manages containers across multiple clusters, multiple clouds, and multiple cluster managers. it joins together pools cluster managers such as [*Kubernetes*](http://kubernetes.io/), [*Docker Swarm*](https://docs.docker.com/swarm/), and [*Mesos*](http://mesos.apache.org/) into a single shared group of resources, where any container can be managed, scaled, migrated across a unified resource pool. \n\n**Layer X** exposes a set of cluster-management APIs including scheduling \u0026 resource management to so-called “brains” which enables advanced features such as live migration \u0026 continuous placement of containers, easy flex up \u0026 flex down of cluster, and dynamic resizing of resource constraints.\n\nTo learn more about the motivation behind project Layer X, watch our [slides](http://www.slideshare.net/IditLevine/layer-x-oss-65996486) and watch a [demo](https://youtu.be/YEqYIm-jbB4).\u003cBR\u003e\nTo stay up-to-date on Layer X, join us on our [slack channel](http://project-unik.io).\n\n\n![Layer-X Arch](http://i.imgur.com/O5TxJLF.png \"Architecture\")\n\n\nIn the **Layer-X** world:\n* **Resource Providers** offer nodes with useable resources (e.g. a [Mesos Slave](https://open.mesosphere.com/reference/mesos-slave/), a [Kubelet](http://kubernetes.io/docs/admin/kubelet/), or a [Swarm Node](https://docs.docker.com/engine/swarm/swarm-tutorial/add-nodes/)) to be consumed by\n* **Task Providers**, which create services and perform work by launching Docker containers (e.g. [Marathon](https://mesosphere.github.io/marathon/), [Deis](http://deis.io/))\n* **Brains** interface with the **Layer-X** HTTP API to manage the global state of the cluster, including scheduling *tasks* on *nodes*.\n\n**Layer-X** abstracts specific implementations of **task providers** and **resource-providers** with **Task Provider Interfaces** (TPIs) and **Resource Provider Interfaces** (RPIs). Currently, TPI and RPI have only been completed for Mesos, but Kubernetes and Docker Swarm will be available soon™.\n\n**Layer-X** implements a simple interface for adding TPIs and RPIs to encourage easy community contributions for new resource providers (Nomad, Hadoop, etc.) and task providers (Dokku). Client APIs for TPIs are visible [here](./layerx-core/layerx_tpi_client/layerx_tpi.go) and for RPIs [here](./layerx-core/layerx_rpi_client/layerx_rpi.go).\n\n**Brains** are also designed to be pluggable, 3rd party extensions for **Layer-X**. The Brain API is visible through the Brain Client package [here](./layerx-core/layerx_brain_client/layerx_brain_client.go)\n\nManually install with the [installation documentation](docs/install.md), or bring up a local cluster in minutes with [vagrant](vagrant/).\n\n---\n\nA rough diagram of Layer-X architecture:\n\n![Layer-X Arch Diagram](http://i.imgur.com/GcYh5ug.png \"Architecture\")\n","funding_links":[],"categories":["Go","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femc-advanced-dev%2Flayerx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femc-advanced-dev%2Flayerx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femc-advanced-dev%2Flayerx/lists"}