{"id":18951032,"url":"https://github.com/dkfbasel/kolumbus","last_synced_at":"2025-04-16T00:31:53.346Z","repository":{"id":74620833,"uuid":"118091788","full_name":"dkfbasel/kolumbus","owner":"dkfbasel","description":"Service discovery for microservice architecture with grpc, docker and envoy proxy","archived":false,"fork":false,"pushed_at":"2020-05-18T15:10:31.000Z","size":42195,"stargazers_count":13,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-15T00:43:16.809Z","etag":null,"topics":["docker","envoy","envoyproxy","grpc","miroservice"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkfbasel.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-01-19T07:22:43.000Z","updated_at":"2024-06-19T07:39:12.002Z","dependencies_parsed_at":null,"dependency_job_id":"c3504738-9a4c-41a9-bb43-a13bd72921ea","html_url":"https://github.com/dkfbasel/kolumbus","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/dkfbasel%2Fkolumbus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkfbasel%2Fkolumbus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkfbasel%2Fkolumbus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkfbasel%2Fkolumbus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkfbasel","download_url":"https://codeload.github.com/dkfbasel/kolumbus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223690921,"owners_count":17186698,"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":["docker","envoy","envoyproxy","grpc","miroservice"],"created_at":"2024-11-08T13:25:56.842Z","updated_at":"2024-11-08T13:25:57.468Z","avatar_url":"https://github.com/dkfbasel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kolumbus: Creating a service mesh with docker and envoyproxy\n\n![Overview](kolumbus.png)\n\nDocker makes it easy to package your applications and run it reliably in\ndifferent environments.\n\nHowever, orchestrating multiple containers with load balancing, rate limiting,\ndynamic replacement of services, monitoring and all the nice operational stuff\ncan quickly become quite cumbersome.\n\nGiven our current move to a microservice architecture that makes heavy use of\nthe grpc framework, we were looking for a simple solution.\n\nUp until now, we were managing our services manually with caddyserver as proxy\nand were quite happy with this. We did look into traefik as a possible alternative\nbut found that it is not really what we were looking for.\n\nWith envoyproxy and its sidecar philosophy we found a solution that seems to\nwork very well with our setup. One of the great things about it, is that\nenvoyproxy instances can fetch almost all of the configuration dynamically.\n\nThis allowed us to write a simple orchestration service (\"kolumbus\"), that\nwill watch all docker containers in the same network and use simple docker labels\n(very similar to traefik) to dynamically generate the configuration required\nto run an envoyproxy service mesh.\n\nIn addition the kolumbus container starts its own internal envoyproxy process,\nwhich makes it trivial to connect local services for development purposes.\n\nFinally, it is possible to automatically fallback to services on a remote\ncluster (i.e. your integration testing server) with very little configuration.\nRespective server and client certificates will automatically be generated if\nthe remote proxy mode is set to inbound.\n\nAn example on how kolumbus can be used in development and production is given\nin the examples directory.\n\nPlease note that `Kolumbus` is currently pretty new and we are still working on\nseveral aspects to improve the user experience.\n\nKolumbus is provided as docker container from dkfbasel/kolumbus.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkfbasel%2Fkolumbus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkfbasel%2Fkolumbus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkfbasel%2Fkolumbus/lists"}