Code Monkey home page Code Monkey logo

microservices-demo-multirepo-portfolio's Introduction

microservices-demo-multirepo-portfolio

  • MSA 데모를 기반으로 AWS EKS환경으로 배포 자동화
  • Tech : K8S(EKS), MSA, gRPC, CI/CD(CircleCI), Cloudflare, Locust

기존 MSA demo에서 변경점

  • monorepo => multirepo
  • CI/CD 추가(CircleCI)
  • ELB의 CNAME을 지정한 도메인으로 연결(Cloudflare API, CircleCI)
  • GKE => AWS EKS
  • Jaeger support based OpenCensus

Service Architecture

Online Boutique 는 마이크로서비스간 통신에 gRPC를 사용하는 MSA demo project

Architecture of microservices

gRPC의 Protocol Buffer Description은 각 repo의 ./pb

Service Language Description
frontend Go
cartservice C#
productcatalogservice Go
currencyservice Node.js
paymentservice Node.js card info(mock)
shippingservice Go mock
emailservice Python mock
checkoutservice Go
recommendationservice Python
adservice Java
loadgenerator Python/Locust

Screenshots

Home Page Checkout Screen
Screenshot of store homepage Screenshot of checkout screen

Tech Stack

사전 준비

AWS EKS provisioning with budget config

# spot instance 를 이용한 EKS 인프라 설정
eksctl create cluster -f eksctl-spot.yaml
# redis 설치
kubectl apply -f redis.yaml

CircleCI 환경변수

context

  • dockerhub
    • $DOCKERHUB_PASS
    • $DOCKERHUB_USERNAME
  • awsauthdibisis # 사용자의 aws auth 정보
    • $AWS_ACCESS_KEY_ID
    • $AWS_DEFAULT_REGION
    • $AWS_SECRET_ACCESS_KEY

Jaeger 설정

# simplest.yaml
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simplest
$ kubectl apply -f simplest.yaml

microservices-demo-multirepo-portfolio's People

Contributors

dibisis avatar

Stargazers

 avatar  avatar

Watchers

 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.