GithubHelp home page GithubHelp logo

reloadbrain / microservices-playground Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dwmkerr/microservices-playground

0.0 0.0 0.0 80 KB

โ˜๏ธ๐Ÿณ Spin up microservice platforms on the cloud in seconds - use it to evaluate them or try new technologies!

License: MIT License

Smarty 6.18% Shell 20.79% Dockerfile 1.59% Makefile 8.50% JavaScript 57.35% HCL 5.59%

microservices-playground's Introduction

โ˜๏ธ๐Ÿณ microservices-playground

(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).

This project lets you spin up microservice platforms on the cloud in seconds. You can use it to evaluate the differences between different platforms.

The software is a simple messaging platform built with microservices. Perfect for testing out microservice technology like Kubernetes, Helm, Istio, etc.

Platform Status
AWS - Kubernetes on Virtual Machines TODO
AWS - ECS Ready!
AWS - Fargate TODO
AWS - EKS TODO
Azure - Kubernetes on Virtual Machines TODO
Azure - AKS TODO
GCP - Kubernetes on Virtual Machines TODO
GCP - GKE TODO

Introduction

The 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.

  1. For each platform, the infrastructure is setup via the cloud's CLI or Terraform.
  2. If software is required, it is installed with Ansible.
  3. For each platform, a network of microservices can be deployed to show the platform in action.

Prerequisites

For 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.

This guide assumes you are using a Mac.

Kubernetes

Install the Kubernetes CLI:

brew install kubectl

If you use k8s a lot, consider alias k='kubectl'.

Kubernetes

1.9 or greater required. To deploy to minikube, run:

cd ./kubernetes
minikube start
./create.sh

Helm

The Helm 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.

Generate the Kubernetes configurations locally to see what will be created with:

helm install --dry-run --debug \
    --set-string twilio.sid="$TWILIO_SID" \
    --set-string twilio.authToken="$TWILIO_AUTH_TOKEN" \
    --set-string twilio.phoneNumber="$TWILIO_PHONE_NUMBER" \
    .

To install, run:

helm install \
    --set-string twilio.sid="$TWILIO_SID" \
    --set-string twilio.authToken="$TWILIO_AUTH_TOKEN" \
    --set-string twilio.phoneNumber="$TWILIO_PHONE_NUMBER" \
    .

GCP

First, install the GCP Cloud SDK:

curl https://sdk.cloud.google.com | bash

Follow the instructions, then restart your shell and initialise your environment:

exec -l $SHELL
gcloud init

Usage

Command Description
make gcp-gke-setup Setup GCP GKE.
make gcp-gke-teardown Teardown GCP GKE.

TODO

  • [] 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.
  • 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.
  • The need for lots of env vars is a pain, as we cannot tell Helm to use the local env by preference.
  • Consider renaming to microservices-playground

microservices-playground's People

Contributors

dwmkerr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.