{"id":18015240,"url":"https://github.com/innobead/mesos-framework-demo","last_synced_at":"2025-03-26T18:31:06.971Z","repository":{"id":113766925,"uuid":"133640233","full_name":"innobead/mesos-framework-demo","owner":"innobead","description":"A Mesos framework supports resilient HA service orchestration.","archived":true,"fork":false,"pushed_at":"2018-09-07T13:29:31.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-10T00:47:05.338Z","etag":null,"topics":["dcos","high-availability","kotlin","mesos","mesos-framework","mesos-scheduler","zookeeper"],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","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/innobead.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-16T09:13:14.000Z","updated_at":"2023-11-07T06:09:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"ab0d006c-efb4-434c-b6a9-dae37cb214cc","html_url":"https://github.com/innobead/mesos-framework-demo","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/innobead%2Fmesos-framework-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innobead%2Fmesos-framework-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innobead%2Fmesos-framework-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innobead%2Fmesos-framework-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/innobead","download_url":"https://codeload.github.com/innobead/mesos-framework-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245712591,"owners_count":20660265,"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":["dcos","high-availability","kotlin","mesos","mesos-framework","mesos-scheduler","zookeeper"],"created_at":"2024-10-30T04:13:10.477Z","updated_at":"2025-03-26T18:31:06.961Z","avatar_url":"https://github.com/innobead.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Goals \n- Setup a Mesos development environment including Mesos master \u0026 agent, Zookeeper w/ exhibitor, Marathon      \n- Create a Mesos framework/scheduler, use default command executor, then launch scalable tasks running   \n\n## Demo\n[![Demo Video](http://img.youtube.com/vi/FYWyFBmAv-Q/0.jpg)](https://www.youtube.com/watch?v=FYWyFBmAv-Q)\n      \n## Prerequisites \n- 3 CPU, 4GB Memory for Docker\n- 2 CPU, 2GB Memory for Vagrant Mesos master\n- 2 CPU, 4GB Memory for Vagrant Mesos agent\n- docker      \n- jq      \n- Java, Gradle \u0026 python3      \n- vagrant\n- virtualbox\n\n## Tutorial \n### Docker\n1. Build Docker images including framework and task      \n``` make buildDocker ``` \n\n2. Start Mesos docker environment    \n``` make startMesos ``` \n\n3. Push built Docker images to the docker registry in docker-compose env      \n``` make pushDocker ``` \n\n4. Start the custom Mesos scheduler w/o any configuration, so no tasks running      \n\u003e Go to Marahton or Mesos UI to see if the scheduler running    \n ``` make startScheduler ``` \n\n5. Update the config of Mesos scheduler, then the num of tasks will be launched accordingly        \n\u003e Check Mesos console to see if all tasks running by the scheduler. If encountering error due to network issue, please retry.    \n  For scale up - by changing Makefile 'updateScheulder' target    \n  `num_of_node: 5`    \n  For scale down - by changing Makefile 'updateScheulder' target    \n`num_of_node: 1`   \n  \n``` make updateScheduler ```   \n\n### Vagrant\n1. Launch 3 nodes environment \n\n```\nvagrant up\n```\n\n## Notes  \n- Unable to run default or custom executor, it would encounter cgroup and some runtime issue.    \n- Limited Mesos isolators are able to use in Docker environment    \n- *org.apache.mesos.Scheduler* needs thread-safe, because in Mesos runtime, there are concurrent call resourceOffered    \n- TaskInfo config is a little complicated due to different executor strategy (default command executor, default executor and custom executor)    \n    \n## References   \n- [Mesos executor explanation](https://allegro.tech/2018/01/mesos_executor.html)    \n    \n- Four types of executors  \n   - Command Executor – Speaks V0 API and is capable of running only a single task.    \n   - Docker Executor – Similar to command executor but launches a docker container instead of a command.    \n   - Default Executor – Introduced in Mesos 1.0 release. Similar to command executor but speaks V1 API and is capable of running pods (aka task groups).    \n   - Custom Executor – Above executors are built into Mesos. A custom executor is written by a user to handle custom workloads. \\It can use V0 or V1 API and can run single or multiple tasks depending on implementation. In this article we are focusing on our custom implementation and what we achieved with it.\n   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnobead%2Fmesos-framework-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finnobead%2Fmesos-framework-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnobead%2Fmesos-framework-demo/lists"}