wso2conus 2015 - introduction to wso2 microservices server (mss)

Post on 11-Apr-2017

1.743 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to WSO2 Microservices Server

Afkham AzeezDirector, ArchitectureWSO2 Inc.

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.

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

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

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

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

MSS – Flow & Thread Model

MSS - Performance ComparisonThroughput

MSS - Memory Consumption ComparisonMemory Consumption (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 Definition

MSS Code

1

2

3

Request Streaming

Analytics & Monitoring

• Supports annotations– Timed – measures execution time

–Metered – measures rate of events

–Counted – Counts the total invocations

–HTTPMonitoring – monitors HTTP requests

Analytics & Monitoring

Analytics & Monitoring

Metrics Output to Console

JMX Metrics

Analytics & 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 Runtime

Deployment Options

*

Docker Filesystem

StockQuote Service - Dockefile

Kubernetes – Replication Controller

Kubernetes - Service

Kubernetes UI

Pet Store Sample - admin

Pet Store Sample - store

Pet Store Sample

Pet

Transaction

Redis

Security

File server

Admin FE

Store FE DAS

Service calls

Data Publishing

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

PetPet

TransactionTransaction

Transaction

podspods

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)

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