{"id":15354098,"url":"https://github.com/dwmkerr/microservices-playground","last_synced_at":"2025-07-12T11:12:49.849Z","repository":{"id":66078493,"uuid":"151192931","full_name":"dwmkerr/microservices-playground","owner":"dwmkerr","description":"☁️🐳 Spin up microservice platforms on the cloud in seconds - use it to evaluate them or try new technologies!","archived":false,"fork":false,"pushed_at":"2019-10-28T06:23:36.000Z","size":80,"stargazers_count":4,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T06:09:21.942Z","etag":null,"topics":["aws","azure","docker","gcp","helm","istio","kubernetes","microservices"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dwmkerr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"dwmkerr"}},"created_at":"2018-10-02T03:01:21.000Z","updated_at":"2022-09-13T02:07:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"ee0be4de-36a8-4c77-be76-c3ef0d4be3a3","html_url":"https://github.com/dwmkerr/microservices-playground","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"3fcedd4e137daa6709872d04d7f90af47949afd7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwmkerr%2Fmicroservices-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwmkerr%2Fmicroservices-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwmkerr%2Fmicroservices-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwmkerr%2Fmicroservices-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dwmkerr","download_url":"https://codeload.github.com/dwmkerr/microservices-playground/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016627,"owners_count":21198833,"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":["aws","azure","docker","gcp","helm","istio","kubernetes","microservices"],"created_at":"2024-10-01T12:17:20.216Z","updated_at":"2025-04-15T06:09:27.267Z","avatar_url":"https://github.com/dwmkerr.png","language":"JavaScript","funding_links":["https://github.com/sponsors/dwmkerr"],"categories":[],"sub_categories":[],"readme":"# ☁️🐳 microservices-playground\n\n(Note: I'm currently merging multiple projects into this one, it might be a bit messy for a while, please be patient while I consolidate! Note what you'd like to see in the issues).\n\nThis project lets you spin up microservice platforms on the cloud in seconds. You can use it to evaluate the differences between different platforms.\n\nThe software is a simple messaging platform built with microservices. Perfect for testing out microservice technology like Kubernetes, Helm, Istio, etc.\n\n\n| Platform                               | Status |\n|----------------------------------------|--------|\n| AWS - Kubernetes on Virtual Machines   | TODO   |\n| AWS - ECS                              | Ready!   |\n| AWS - Fargate                          | TODO   |\n| AWS - EKS                              | TODO   |\n| Azure - Kubernetes on Virtual Machines | TODO   |\n| Azure - AKS                            | TODO   |\n| GCP - Kubernetes on Virtual Machines   | TODO   |\n| GCP - GKE                              | TODO   |\n\n## Introduction\n\nThe goal of this project is to allow an expert to demo different cloud based microservice platforms quickly and easily. This can help teams evaluate which platform might be right for them.\n\n1. For each platform, the infrastructure is setup via the cloud's CLI or Terraform.\n2. If software is required, it is installed with Ansible.\n3. For each platform, a network of microservices can be deployed to show the platform in action.\n\n## Prerequisites\n\nFor each cloud provider, there are specific requirements. Install them all to ensure that you can build each platform. You will also need to install Docker and the Kubernetes CLI.\n\nThis guide assumes you are using a Mac.\n\n### Kubernetes\n\nInstall the [Kubernetes CLI](https://kubernetes.io/docs/tasks/tools/install-kubectl/):\n\n```sh\nbrew install kubectl\n```\n\nIf you use k8s a lot, consider `alias k='kubectl'`.\n## Kubernetes\n\n1.9 or greater required. To deploy to minikube, run:\n\n```sh\ncd ./kubernetes\nminikube start\n./create.sh\n```\n\n## Helm\n\nThe [Helm](https://helm.sh/) chart for the project is at `helm-meznger`. The name is not idiomatic (preferred would be `meznger`) but makes it clearer when looking at the directories to see what is what.\n\nGenerate the Kubernetes configurations locally to see what will be created with:\n\n```sh\nhelm install --dry-run --debug \\\n    --set-string twilio.sid=\"$TWILIO_SID\" \\\n    --set-string twilio.authToken=\"$TWILIO_AUTH_TOKEN\" \\\n    --set-string twilio.phoneNumber=\"$TWILIO_PHONE_NUMBER\" \\\n    .\n```\n\nTo install, run:\n\n```sh\nhelm install \\\n    --set-string twilio.sid=\"$TWILIO_SID\" \\\n    --set-string twilio.authToken=\"$TWILIO_AUTH_TOKEN\" \\\n    --set-string twilio.phoneNumber=\"$TWILIO_PHONE_NUMBER\" \\\n    .\n```\n\n### GCP\n\nFirst, install the GCP Cloud SDK:\n\n```sh\ncurl https://sdk.cloud.google.com | bash\n```\n\nFollow the instructions, then restart your shell and initialise your environment:\n\n```sh\nexec -l $SHELL\ngcloud init\n```\n\n## Usage\n\n| Command | Description |\n|---------|-------------|\n| `make gcp-gke-setup` | Setup GCP GKE. |\n| `make gcp-gke-teardown` | Teardown GCP GKE. |\n## TODO\n\n- [] ms-otp: If there are no Twilio credentials, should not send messages. We would have a static page which renders sent OTPs for the purpose of demoing.\n- [ ] The helm chart will not restart services if the secrets change. We could make the secret name contain the release name, or sha values or something to force a restart, but not super urgent right now.\n- [ ] The need for lots of env vars is a pain, as we cannot tell Helm to use the local env by preference.\n- [ ] Consider renaming to microservices-playground\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwmkerr%2Fmicroservices-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdwmkerr%2Fmicroservices-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwmkerr%2Fmicroservices-playground/lists"}