Awesome Open Source
Awesome Open Source

coffeelog

Coffeelog is a multi-tier web application composed of microservices, where coffee enthusiasts can log in with their Google accounts and share their coffee experiences with other people.

This is intended to be a sample cloud-native application to showcase the best practices in application deployment, products of Google Cloud Platform and test new features/products.

Coffeelog is written in Go, uses gRPC for communication between microservices. It runs on Google Cloud and uses Cloud Datastore, Cloud Storage, Google Kubernetes Engine, Cloud Container Builder, Stackdriver Logging and Stackdriver Trace.

Setup

The following steps will walk you through on how to prepare requirements, deploy and run this application.

Note: If you see any issues with the steps below, please open an issue.

  1. Requirements
  2. Set up service credentials
  3. Set up storage
  4. Set up a Kubernetes cluster on Google Kubernetes Engine
  5. Set up continuous image build on Container Builder
  6. Set up continuous deployment on Container Builder

Advanced topics:

  1. Set up Network Policy to restrict communication between services
  2. Set up a domain name
  3. 🔜 Set up TLS with Let’s Encrypt
  4. 🔜 Limit access to secrets with Kubernetes RBAC and Service accounts
  5. 🔜 Set up TLS communication between microservices with linkerd

Monitoring:

  1. 🔜 Set up distributed tracing with Stackdriver Trace
  2. 🔜 Browse application logs with Stackdriver Logging
  3. 🔜 Set up alerting with Stackdriver Monitoring

Local development (if you are interested in developing this app further)

  1. Running services directly outside containers
  2. Running locally on Minikube
  3. Running locally on Minikube with Skaffold (RECOMMENDED)

Disclaimer: This is not an official Google product.

Alternatives To Coffeelog
Select To Compare


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Go (171,741
Google (36,514
Cloud (29,201
Kubernetes (25,940
Microservice (12,335
Builder (10,711
Minikube (1,612
Stackdriver (395