wso2con 2015 usa: introducing microservices server

Post on 13-Apr-2017

871 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduc)on  to    WSO2    Microservices  Server  

A5ham  Azeez  Director,  Architecture  WSO2  Inc.  

Microservices  Architecture  

A  method  of  developing  soAware  applica)ons  as  a  

suite  of  independently  deployable,  small,  modular  

services  in  which  each  service  runs  a  unique  process  

and  communicates  through  a  well-­‐defined,  

lightweight  mechanism  to  serve  a  business  goal.  

   Microservices  

Source:  hEp://mar)nfowler.com/ar)cles/microservices.html  

The  Scale  Cube  

Source:  hEp://microservices.io/ar)cles/scalecube.html  

   

Inner  &  Outer  Architecture  

hEp://blogs.gartner.com/gary-­‐olliffe/2015/01/30/microservices-­‐guts-­‐on-­‐the-­‐outside/  

   Polyglot  Persistence  

Source:  hEp://mar)nfowler.com/ar)cles/microservices.html  

   Vision  for  Microservices  Server  (MSS)    •  Lightweight  &  fast  run)me  

•  Use  Java  annota)ons  as  a  way  of  defining  microservices  APIs  as  well  as  

metrics  

•  Support  well  known  &  widely  used  methods  such  as  JAXRS  annota)ons  

•  Provide  simple  ways  to  develop  &  deploy  microservices  

•  Built-­‐in  Metrics  &  Analy)cs  APIs  with  out  of  the  box  integra)on  with  WSO2  

Data  Analy)cs  Server  (DAS)  

•  To  be  used  in  the  WSO2  pla]orm  as  a  way  of  replacing  all  admin  services  as  

well  as  defining  other  microservices  for  inter-­‐component  interac)ons  

 

     

   

 Microservices  Server  ImplementaGon  •  Based  on  the  new  Carbon  5.0  kernel  •  Transport  is  based  on  NeEy  4.0  

•  Supports  streaming  

•  Close  to  10x  faster  than  CXF  based  JAXRS  implementa)on  used  in  

WSO2  AppServer  

•  5MB  pack  size  

•  Starts  within  300ms  

•  ~25MB  memory  consump)on  for  the  MSS  framework  

 

 

     

   

Download  

•  MSS  1.0.0-­‐alpha  release  is  available  at  hEps://github.com/wso2/product-­‐mss/releases  

•  Refer  to  the  gecng  started  guide  in  GitHub  •  A  good  place  to  start  is  the  samples  

–  hEps://github.com/wso2/product-­‐mss/tree/v1.0.0-­‐alpha/samples  

Core  Features  in  MSS  •  Quick  &  simple  development  model  using  simple  annota)ons  •  Lightweight  &  high  performance  •  Custom  interceptors    •  JWT  based  security  •  Metrics  gathering  &  publishing  •  Tracing  of  requests  using  a  unique  message  ID  •  Streaming  input  &  streaming  output  support  •  WSO2  DevStudio  based  tooling  for  genera)ng  microservices  projects  

star)ng  from  a  Swagger  API  defini)on  •  Comprehensive  samples  demonstra)ng  how  to  develop  microservices  

applica)on  

 MSS  –  Flow  &  Thread  Model  

 MSS  -­‐  Performance  Comparison  Throughput  

 MSS  -­‐  Memory  ConsumpGon  Comparison  Memory  Consump1on  (MB)  

Developer  Experience  &    Programming  Model  

Maven  pom.xml  

StockQuote  Microservice  

Main  Class  

Build  it!  

mvn  clean  install  

Run  it!  

java  –jar  stockquote-­‐*.jar  

Tooling  (Swagger  -­‐>  Code)  Swagger  API  Defini)on  

MSS  Code  

1

2

3

Request  Streaming  

AnalyGcs  &  Monitoring  

•  Supports  annota)ons  – Timed  –  measures  execu)on  )me  

– Metered  –  measures  rate  of  events  

– Counted  –  Counts  the  total  invoca)ons  – HTTPMonitoring  –  monitors  HTTP  requests  

AnalyGcs  &  Monitoring  

AnalyGcs  &  Monitoring  

Metrics  Output  to  Console  

JMX  Metrics  

AnalyGcs  &  Monitoring  

Security  

•  Security  is  done  via  a  central  server  issuing  JWT  tokens    

•  The  JWTSecurityInterceptor  verifies    the  signature,  expiry  &  claims  in  the  tokens  

Security  

•  java  -­‐jar  /opt/stockquote-­‐1.0.0.jar  

•  Drop  microservice  jar  file  into      MSS_HOME/repository/deployment/server/mss    

•  Very  convenient  to  use  Docker  containers  managed  by  Kubernetes  

Microservices  RunGme  

Deployment  Op)ons  

*  

Docker  Filesystem  

StockQuote  Service  -­‐  Dockefile  

Kubernetes  –  ReplicaGon  Controller  

Kubernetes  -­‐  Service  

Kubernetes  UI  

Pet  Store  Sample  -­‐  admin  

Pet  Store  Sample  -­‐  store  

Pet  Store  Sample  

Pet  

Transac)on  

Redis  

Security  

File  server  

Admin  FE  

Store  FE   DAS  

Service  calls  

Data  Publishing  

Pet  Store  Sample  –  deployment  view  

Store  FE  Store  

FE  

Store  FE  

Admin  FE  

Kubernetes  Node  1   Kubernetes  Node  2  

Security   Security  

File  server   File  server  

Redis  Sen)nel  

Redis  Sen)nel  

Redis  Master  

Redis  Slave  

Pet  Pet  

Transac)on  Transac)on  

Transac)on  

pods  pods  

pods  

pods  

pods  

pods  

pods  

pods  

pods  

pods  

pods   pods  

pods  

pods  

pods  

S A S T R P F

Kubernetes  Services  

Pricing  

•  For  MSS  product  (full  server)  &  MSS  lite  (executable  jar),  pricing  is  same  as  WSO2  AS  based  on  the  number  of  JVMs.  

•  For  container  based  deployments,  it  will  be  the  same  as  for  any  container  based  deployment  of  WSO2  products  (to  be  announced)  

Code  • NeEy  based  transport  

hEps://github.com/wso2/carbon-­‐transports  

• MSS  hEps://github.com/wso2/product-­‐mss  

 

     

   

Recap  

•  A  brief  look  at  Microservices  Architecture  (MSA)  •  WSO2  Microservices  Server  

–  Development  model  &  programming  model  –  Deployment  model  –  Tooling  –  Comparison  with  other  frameworks  out  there  

Thank  You  

top related