Making Tomcat Multi-tenant, Elastic, Billed and Metered Paul Fremantle CTO and Co-Founder, WSO2 VP, Apache Synapse ASF

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

Cloud computing is used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication.
Enterprise Architecture Firm Architecture World ‘10 SOA on Demand Ulf Fildebrandt Chief Development Architect SOA Infrastructure SAP AG.
Building a scalable multi-tenanted Application Server on the Cloud using Tomcat, Axis2 & Synapse Senaka Fernando (senaka at apache.org)
PaaS Design and Architecture: A Deep Dive into Apache Stratos Samisa Abeysinghe VP Delivery, WSO2 Member Apache Software Foundation 10 th June 2014.
A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
“It’s going to take a month to get a proof of concept going.” “I know VMM, but don’t know how it works with SPF and the Portal” “I know Azure, but.
Security in the Cloud: Can You Trust What You Can’t Touch? Rob Johnson Security Architect, Cloud Engineering Unisys Corp.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
 Who we are  Amdatu  Platform  Projects  Demo  Q&A.
Authenticating REST/Mobile clients using LDAP and OERealm
Introducing the WSO2 Platform Leading you to a Connected Business
Adaptive Server Farms for the Data Center Contact: Ron Sheen Fujitsu Siemens Computers, Inc Sever Blade Summit, Getting the.
Understanding and Managing WebSphere V5
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Google App Engine Google APIs OAuth Facebook Graph API
Plan Introduction What is Cloud Computing?
Module 1: Installing Active Directory Domain Services
Opensource for Cloud Deployments – Risk – Reward – Reality
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
1 Building SaaS for SMEs on WSO2 PaaS Kathiravelu Pradeeban - Software Engineer Muhammed Shariq - Software Engineer Nov 2011.
A Cloud is a type of parallel and distributed system consisting of a collection of inter- connected and virtualized computers that are dynamically provisioned.
Promoting Open Source Software Through Cloud Deployment: Library à la Carte, Heroku, and OSU Michael B. Klein Digital Applications Librarian
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
Monitoring Latency Sensitive Enterprise Applications on the Cloud Shankar Narayanan Ashiwan Sivakumar.
1 NETE4631 Using Google Web Services and Using Microsoft Cloud Services Lecture Notes #7.
Maintaining File Services. Shadow Copies of Shared Folders Automatically retains copies of files on a server from specific points in time Prevents administrators.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Microsoft Virtual Academy.
Cloud Computing By: Carley Paxton. What is Cloud Computing? CloudCloud computing is the next stage in the Internet's evolution, providing the means through.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
CON Software-Defined Networking in a Hybrid, Open Data Center Krishna Srinivasan Senior Principal Product Strategy Manager Oracle Virtual Networking.
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
CAS Lightning Talk Jasig-Sakai 2012 Tuesday June 12th 2012 Atlanta, GA Andrew Petro - Unicon, Inc.
Looking Ahead to Carbon 5 and Stratos 2 and Beyond By Afkham Azeez, Amila Suriarachchi.
Building a scalable multi-tenanted Cloud-native Application Server using Tomcat, Axis2 & Synapse.
Building Cloud Native Software Navigating the waters of a cloudy infrastructure Paul Fremantle CTO and Co-Founder, WSO2 VP, Apache Synapse ASF
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
AUTOMATING DAAS DESKTOPS WITH CITRIX CORTEX Tony Sanchez WW Alliances Solutions Architecture Citrix Systems Inc SESSION CODE: CLI415 (c) 2011 Microsoft.
Enterprise Cloud Computing
A multi-tenant Architecture for Apache Axis2. Afkham Azeez wso2.com} WSO2 Inc Senaka Fernando
Enabling Cloud Native Security with Multi-Tenant UAA
Creating SmartArt 1.Create a slide and select Insert > SmartArt. 2.Choose a SmartArt design and type your text. (Choose any format to start. You can change.
Auto-scaling Axis2 Web Services on Amazon EC2 By Afkham Azeez.
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
Web Technologies Lecture 13 Introduction to cloud computing.
WSO2 Identity Server 4.0 Fall WSO2 Carbon Enterprise Middleware Platform 2.
Inspirirani ljudima. Ugasite mobitele. Hvala.. Paolo Pialorsi Senior Consultant PiaSys ( Publishing apps for SharePoint 2013 on Microsoft.
Business Objects XIr2 Windows NT Authentication Single Sign-on 18 August 2006.
© 2012 Eucalyptus Systems, Inc. Cloud Computing Introduction Eucalyptus Education Services 2.
Brian Lauge Pedersen Senior DataCenter Technology Specialist Microsoft Danmark.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Open Source for Interoperability Paul Fremantle VP, Apache Synapse Member, ASF CTO and Co-Founder, WSO2.
Oracle Java Cloud Service Oracle Develop July 2013.
Architecting Enterprise Workloads on AWS Mike Pfeiffer.
Deploying Web Application
Backdooring enemies with a Proxy …..
Architectural Overview Of Cloud Computing
Join the Lean Wave Asanka Abeysinghe
Google App Engine Mandeep Singh (37926)
StratusLab Final Periodic Review
StratusLab Final Periodic Review
Power BI Security Best Practices
Building and Running an Enterprise-grade Serverless Platform on Kubernetes Quinton Hoole, Technical VP Ying Huang, Sr. Architect US R&D, Huawei.
Amazon AWS Solution Architect Associate Exam Dumps For Full Exam Info Visit This Link:
Managing Clouds with VMM
HC Hyper-V Module GUI Portal VPS Templates Web Console
Cloud Computing: Concepts
Presentation transcript:

Making Tomcat Multi-tenant, Elastic, Billed and Metered Paul Fremantle CTO and Co-Founder, WSO2 VP, Apache Synapse ASF Afhkam Azeez Lead Architect, Stratos Axis2, Synapse PMC ASF Member And also big thanks to Shankar, Amila, Srinath, Isuru, Senaka and the whole team

Paul Fremantle Working in Apache since 2002 Apache Member CTO and Co-Founder of WSO2 VP, Apache Synapse I play the Tin Whistle (in case you hadn’t noticed

Ok I lied a bit This is about “Using Tomcat to run multi- tenanted, metered, elastic webapps” We didn’t embed this into Tomcat code If you want to leave now, I won’t be offended!

“Cloud Native” Self-service Distributed and Elastic Multi-tenant Metered and Billed Dynamically wired Versionable, incrementally deployable and testable

Can I run Tomcat on the Cloud? Yes of course There is at least one company selling supported AMI images of Tomcat What does that get me? –Saves me creating an AMI Can we do better? Yes!

Cloud computing in one page The Big Picture Infrastructure as a Service –Servers, storage & networking –For infrastructure specialists Platform as a Service –Middleware and Core Services –For developers, integrators, architects Software as a Service –Applications –For end-users

© WSO Enterprise IT in

© WSO Enterprise IT in

Stratos Application Server

What can I do with Stratos App Server? Deploy WAR files Manage sessions –Monitor –Expire Reload / Stop

A webapp, running in the cloud

Quick demo

Not just webapps – services too Supports deploying code as services –JAX-WS –Axis2 services –POJO –Spring-based POJO services

Uses Tomcat Running on Tomcat under OSGi Multi-tenant Metered Elastic

How? How do we multi-tenant? How do we meter? How do we scale (elasticity)?

What Multi-tenancy ? Many Parties shared same set of resources, while giving each an his own space

Challenges of Multi-tenancy Security and Data Isolation Allocation of resources Configuration, Management Programming Model

Multi-tenanting Tomcat s/sample/ s/sample/ Uses a valve to direct the request to the right tenant WAR files already have separate classloaders –And session isolation Each tenant can only load code from their tenants deployed WARs For services we also restrict classloading using Java Security We apply security policies to stop webapps opening ports, modifying local files, calling OSGi Services –We intend to enhance this to support limited access to services

Multi-tenanting Axis2

Every tenant has access to an Identity Service

Identity Every domain/tenant has its own single-sign on and identity manager Based on LDAP – which is inherently multi- tenant –Each tenant has their own LDAP partition Supporting SAML2, OpenId, OAuth, XACML, Infocard, WS-Trust

Simply enabling security Example Security Constraint FORM Example Form-Based Authentication Area /login.jsp /login-error.jsp admin

Single sign-on We already support SAML2 based single-sign on for Administration –So if you want, you can use a SAML2 Relying Party in your webapp, that works –We can recommend one too OpenSAML2 Not yet automatically supported for webapps –We plan to add this

Elasticity Elastic Load Balancer –Apache Synapse Always done load balancing Now has full transparent HTTP support Has “Autoscale” mediators –Based on Azeez’s Master’s thesis Priority Execution support and throttling (Business Class) –Underlying Cloud API We have based on Amazon/Eucalyptus/Ubuntu API Adding support for vmWare underneath

Overall plan

Apache Tribes

Distributed Our distribution/clustering model is based on Apache Tribes Adjusted Tribes to support WKA model In a large cloud (e.g. Amazon) you cannot rely on subnet communications between nodes Nominate two Well Known Addresses –Tribes contacts the WKA and uses that the bootstrap the fabric

Performance Overhead of Multi-tenancy

Metering

Super tenant metering

Billing and Metering A generic multi-tenanted metering and billing module Written as OSGi Uses Drools to implement service levels –E.g. 10 users, 100Mb transfer/month, 15 deployed services for free level of subscription Can be used to meter real business events –How many sales transactions / month

Programming Model Sub-tenant programming model –“Normal” –Suited to fit within a tenant Super-tenant model –How to write one app for all tenants –i.e. how to write multi-tenant apps –Different but similar Neither is complete yet

Data Is a pain Most webapps use JDBC-based data sources –Very hard to “multi-tenant” We are looking at two options: –Multi-tenanted JBDC driver –Multi-tenant NoSQL (e.g. Cassandra) In Amazon environment you can start up RDS –But you pay for time not usage

Cache Uses JSR107 cache = CarbonContext.getCurrentContext().getCache(); cache.put(key, value); value = cache.get(key); CarbonContext is our general model for building a sub-tenant multi-tenant programming model –A set of standard stuff that works in an MT environment –Isolation and security

What else do you need? Multi-tenant enabled: –Log –Cache (done) –Billing –Identity –Authorization –JMS/Queue/Topics –Registry/Repository/Config access –Managed Service Requester (HTTP, SOAP) JAXWS/JAXRS/Commons HTTPClient

Summary Cloud Native attributes distinguish code that just floats on top of the cloud from applications that live in the cloud Stratos is an example of a making Tomcat Cloud Native Not complete…. But that would be boring anyway!