Upload
wso2
View
146
Download
1
Embed Size (px)
Citation preview
Introduction to the WSO2 Carbon
Platform
Paul Fremantle CTO & CO Founder, WSO2
Sameera Jayasoma Architect, WSO2
WSO2
• Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards and Open Source. Primary contributors to Apache Web Services projects started in 2001
• Producing entire middleware platform 100% open source under Apache license
• Business model is to sell comprehensive support & maintenance for our products
• Technology OEM’d by IBM, Progress, Software AG, Alcatel, EMC, and CA
• Venture funded by Intel Capital and Quest Software.
• Global corporation with offices in Palo Alto, USA Portsmouth, UK & Colombo, Sri Lanka
• 250+ employees and growing.
WSO2 Carbon Platform
What is Carbon?
Carbon is a modular server runtime based on Java and OSGi
Built on top of Carbon are a set of middleware servers (App Server, ESB, Identity, API Manager, etc)
Carbon includes a set of re-usable core components:
• Clustering, User Management, Logging, JMX, ...
When WSO2 had four products: Web Services App Server
ESB BPS Data Services
Each was written by different teams Not enough re-use Needed a proper modular framework
What motivated this?
Benefits to WSO2 development
Agile Development • Small product teams focus on their own area • Re-use core Cloud-enablement • All the products get the same cloud
enablement, multi-tenancy, clustering, etc • Same code runs on the cloud as on-prem Best of Breed • Each product gets enhancements to the core
Benefits to customers
Flexible deployment and architecture • Fit to your architecture Robust architecture • Proven at high scale Easy to extend • Well defined approach to create Carbon components
(first class extensions) Consistent deployment • The same CAR files work on-prem, cloud images and
on StratosLive Consistent Management and Operations • Adding new servers and function is smooth
OSGi
Originally created in 1999 to create a component runtime for Java in embedded devices (e.g. in-car)
In 2003 Eclipse chose OSGi to manage components
Provides a module system for Java: • Better control than packages • Versioning • Dynamic loading
Features in Carbon
Eclipse p2
• Manages the packaging of OSGi bundles into features
• Supports deploying, undeploying, checkpoints
• Advanced features included shared repositories
p2 in Eclipse
Feature Provisioning
p2 in Carbon
WSO2 Carbon Kernel
• Carbon kernel is the framework, foundation, the model behind the Carbon platform.
• Carbon kernel has introduced a composable server architecture through which we have composed a number of products. o Product is merely a set of components/features which runs on the
Carbon kernel. o You get to mix and match these components and build your own
product that matches with your requirements o If you require data service feature in your ESB, connect to our online
feature repository and install the data services feature.
Composable Server Architecture
Consistency of config / operations
• Any Carbon based product will have this directory structure.
• If you are familiar with installing, configuring and operating Application Server, same knowledge applies to other products.
• Same theory applies to the web-based management console as well.
Carbon Application (C-App)
WSO2 Developer Studio 3.2
Minification
Image credit (c) Adam Fremantle 1961
Iden%ty Server minified • Requirement: run WSO2 IS on exis4ng hardware in-‐store
• 1Gb machine with less than 256Mb free
• Minified deployment • Used Carbon/OSGi to remove unnecessary services • Ran all scenarios in 96Mb heap • Met customer requirements with just 128Mb heap!
Scenario 96Mb 256Mb
Deployment Std Min Std Min
STS OOM 166 147 185
SAML2 OOM 499 140 609
OAuth OOM 786 OOM 827
XACML OOM 874 305 929
Raspberry Pi Cluster WSO2 Con London 2013 • Eben Upton keynote
• Decided to run our mobile app on a Pi Cluster
• Each Pi has: • 700Mhz ARM • 512Mb RAM
• For WSO2Con we ran an 8-‐Pi cluster • Using minified Carbon • 256Mb heap size
• 350 tps across 8 Pis • ~ 44 tps / Pi
Layered Scaling
Server Profiles
• Enables a product to run in multiple modes/profiles • A profiles of a product describes the runtime behaviour. • Each profile contains only the required set of
components • E.g. A single API Manager distribution can play
following roles. API Publisher API Subscriber API Gateway
Auth Server
• One download, multiple servers. e.g. sh wso2carbon.sh -Dprofile=profile_name
Deployment Synchronization
Clustering
Selected Customers
WSO2 engagement model
QuickStart Development Support Development Services Production Support
Turnkey Solutions WSO2 Mobile Services Solution
WSO2 FIX Gateway Solution
WSO2 SAP Gateway Solution
Q&A?
Thank You!!!