2. Microservices Architecture
A method of developing software applications 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.
7. Vision for Microservices Server (MSS)
• Lightweight & fast runtime
• Use Java annotations as a way of defining microservices APIs as well as
metrics
• Support well known & widely used methods such as JAXRS annotations
• Provide simple ways to develop & deploy microservices
• Built-in Metrics & Analytics APIs with out of the box integration with WSO2
Data Analytics Server (DAS)
• To be used in the WSO2 platform as a way of replacing all admin services as
well as defining other microservices for inter-component interactions
8. Microservices Server Implementation
• Based on the new Carbon 5.0 kernel
• Transport is based on Netty 4.0
• Supports streaming
• Close to 10x faster than CXF based JAXRS implementation used in
WSO2 AppServer
• 5MB pack size
• Starts within 300ms
• ~25MB memory consumption for the MSS framework
9. Download
• MSS 1.0.0-alpha release is available at
https://github.com/wso2/product-mss/releases
• Refer to the getting started guide in GitHub
• A good place to start is the samples
– https://github.com/wso2/product-mss/tree/v1.0.0-alpha/samples
10. Core Features in MSS
• Quick & simple development model using simple annotations
• 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 generating microservices projects
starting from a Swagger API definition
• Comprehensive samples demonstrating how to develop microservices
application
28. Security
• Security is done via a central server issuing JWT
tokens
• The JWTSecurityInterceptor verifies the
signature, expiry & claims in the tokens
30. • 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 Runtime
40. Pet Store Sample – deployment view
Store
FEStore
FE
Store
FE
Admin
FE
Kubernetes Node 1 Kubernetes Node 2
Security Security
File
server
File
server
Redis
Sentinel
Redis
Sentinel
Redis
Master
Redis
Slave
Pet
Pet
Transaction
Transaction
Transaction
pods
pods
pods
pods
pods
pods
pods
pods
pods
pods
pods pods
pods
pods
pods
S A S T R P F
Kubernetes Services
41. 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)
42. Code
• Netty based transport https://github.com/wso2/carbon-
transports
• MSS https://github.com/wso2/product-mss
43. Recap
• A brief look at Microservices Architecture (MSA)
• WSO2 Microservices Server
– Development model & programming model
– Deployment model
– Tooling
– Comparison with other frameworks out there