O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Whitebase : Assault Carrier for Micro-Services

4.649 visualizações

Publicada em

Whitebase is an assault carrier to carry and support Micro-Services.

Features:
- Light-weight API Gateway/Proxy for Micro-Services
- Launcher for Micro-Services
- and more! (TBD)

Publicada em: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Whitebase : Assault Carrier for Micro-Services

  1. 1. Whitebase Assault carrier for Micro-Services Platform Architecture Team SK Planet
  2. 2. Synopsis • We’re using Micro-Service Architecture(MSA) • UI (frontend) need to talk with many MSs (Backend) • In developments, each developers should instantiate their own MS instances • Each MS may use different language/framework (a.k.a. Polyglot) –> it requires different ways of launching (a.k.a. How to Run)
  3. 3. What we need • Single Endpoint from UI to multiple MSs (a.k.a. API Gateway/API Proxy) • Make it easy to instantiate MSs in development environment • Solving resource problems on Developer’s PC
  4. 4. What we need A UI A Service B UI B Service C UI C Service D UI D Service A DB B DB C DB D DB Content Router API Gateway Content Router Service Registry Event Broker Config Service Deploy Service User Endpoint Admin Endpoint Yes, this one (+ @ for dev)
  5. 5. Whitebase? • We use ‘MS-’ prefix for naming Micro-Services (MS means not Microsoft nor Mobile Suite) • Whitebase is an assault carrier to carry and support Mobile Suites in famous Japanese Animation, Mobile Suite Gundam (http://gundam.wikia.com/wiki/SCV-70_White_Base)
  6. 6. Whitebase • Whitebase is an assault carrier to carry and support Micro-Services • Features – Light-weight API Gateway/Proxy for Micro-Services – Launcher for Micro-Services – and more! (TBD)
  7. 7. API Gateway/Proxy • URL-based Router + Proxy
  8. 8. API Gateway/Proxy: Development • UI could be served by Whitebase too
  9. 9. API Gateway/Proxy: Production • Whitebase serves backend only
  10. 10. API Gateway/Proxy : Configuration • Simple YAML basePath: /api/v1.0 routes: MS-API: path: "/products/:productKey/apis" targetAddress: "http://localhost:9002" useBasePath: true prependPath: true MS-Product: path: "/products" targetAddress: "http://localhost:9001" useBasePath: true prependPath: true MS-Auth: path: "/auth" targetAddress: "http://localhost:9003" useBasePath: true … *********************************************** WHITEBASE : Assault Carrier for Micro-Services *********************************************** add proxy route for [MS-API] : /api/v1.0/products/:productKey/apis -> http://localhost:9002/products/:productKey/apis add proxy route for [MS-Product] : /api/v1.0/products -> http://localhost:9001/products add proxy route for [MS-Auth] : /api/v1.0/auth -> http://localhost:9003
  11. 11. API Gateway/Proxy : Middleware • Pluggable Policy-based + Script-based – Authentication (JWT Token-based) – Versioning – Logging – Composition – …
  12. 12. Launcher for MS • Required Scenarios – Launching in Developer’s PC • Source code is already cloned – just build/launch it • Clone from git, build, and launch • Download from artifact repository and launch – Just connect to existing remote instance – Launching in Docker • get docker image from docker registry • Launch it as container in docker host
  13. 13. Launcher for MS Developer’s Machine Whitebase jar/js (file system) MS-A Instance git jar/js (file system) MS-B Instance Artifact repository jar/js (file system) MS-C Instance Local docker MS-D Instance Docker Image Registry remote docker MS-E Instance HA Proxy HA Proxy clone wget remote machine MS-F Instance
  14. 14. Launcher for MS : launch mode • Supports various launch modes service launcher local launcher docker launcher local Docker host remote Docker host Docker Image repository File system artifact Repository git To be supported
  15. 15. Launcher for MS : Configuration • Simple YAML MS-Auth: path: "/auth" targetAddress: "http://localhost:9003" useBasePath: true launch: mode: "local" # none|local|docker local: workingDir: "/Users/xxx/git/ms-auth” command: "npm start” showLog: true docker: host: "192.168.1.9:2375" image: ”ms-auth@1.0.2"
  16. 16. Requirement for MSs • After cloning from source repository, every MS should be able to run with single command without any other setting (for example, use embedded tomcat) • Each MS should generate DDL to populate required tables on given database (generally ORM can do it for you) • Although a MS can use whitebase to talk with other MS, we don’t recommend it (it feels like a circular dependency)
  17. 17. MS-A Container Whitebase + Service Discovery + Inter-Service Call Whitebase UI UI MS-A HA Proxy HA Proxy HA Proxy Service Registry Service Agent MS-A Container MS-A HA Proxy Service Agent MS-B Container MS-B Service Agent MS-B Container MS-B Service Agent
  18. 18. Current Status & Roadmap • Whitebase is in early stage – Not proved in the production environment yet (we’re focusing on the development environment now) – Many middleware/launching features is under developing – Many things could be changed and added • Currently only our team use it • Soon we will provide it as a part of our MSA tool suite to other organizations in our company • And Whitebase is going to be OSS in the near future! (Please send a feedback to me if you want)
  19. 19. Send a feedback var you = {}; if (you.like||you.dislike||you.suggest||you.request) { var id = "jaewoo.ahn"; var domain = "sk.com"; mail.send(String.format("{0}@{1}", id, domain )); }

×