Your SlideShare is downloading. ×
0
Building a scalable multi-tenanted Cloud-native               Application Server                     using            Tomc...
Building a scalable            multi-tenanted Cloud-native                 Application Server                        using...
About the Presenters• Afkham Azeez   –   PMC member Apache Axis, Committer Synapse & Web Services   –   Member, Apache Sof...
Agenda•   Overall Architecture•   Elastic Load Balancer•   AppServer•   Logging•   Data & storage•   Metering & billing
Cloud Nativity
Overall ArchitectureClients   ELB            AS1          AS2        AS3                  ASn                             ...
Elastic Load Balancer- Based on Apache Synapse & Apache Tribes
Highlevel Architecture
Service Cluster Aware Load Balancing
Practical Example
Configuration
Proxy Port to Real Port Mapping
Proxy Port to Real Port Mapping
Synapse Message Flow
Membership Channels
AppServer- Based on Apache Tomcat, Apache Tribes & Apache                     Axis2
Features• Webapp hosting  • Uses embedded Tomcat• Services hosting  •   Axis2 AAR services  •   JAXWS services  •   Data s...
Tomcat
Tomcat•   Stuck thread detection valve•   Multi-tenant access log•   Webapp lazy loader valve•   Tenant-aware Tomcat realm...
Clients Tenant Identification &Tenant Context Creation     Access Log Valve     Lazy Loader ValveStuck Thread Detector Val...
Management Console
Management Console
Tomcat Sample Webapp
Tenant-aware Session Manager
User & Role Management
web.xml - Integrating Identity into             WebAppsAutomatically ties into Identity Managementinfrastructure
SaaS Mode• One webapp shared amongst all tenants• One webapp shared amongst selected tenants
Axis2
Messaging                            Messaging Engine                      In         TransportsClient                    ...
Multi-tenant Message Receiver
Axis2 Configuration & Contexts
Tenants & Super Tenant                Tenant: foo.comSuper Tenant                  Tenant: bar.com
Pluggable Deployers                        Deployment Engine                                                POJOWebapp    ...
Pluggable Deployers                           Tenant: foo.comSuper Tenant                           Tenant: bar.com
Ghost Artifact Deployer• Lazy loading deployment artifacts• Load the tenant configuration & only the  required artifact• U...
Ghost Artifact Deployer - PerformanceInitial Response Time (ms)                                 Number of artifacts
Deployment Synchronizer
Tenant-aware Security Manager• Main security manager delegates security  verifications to tenant level security managers• ...
Logging
Distributed Logging• Every service and custom applications logs are  captured by the log4j/commons loggings  settings• Log...
MT-Logging Deployment Architecture
Log Viewer – Stratos Manager {Super-Tenant}
Log Viewer – Stratos Data Services Server {Tenant User}
AppServer Logs
Data & Storage
WSO2 Cloud Data Solutions• WSO2 Data Server  •   Carbonized Cassandra Cluster  •   Database cluster  •   Carbonized HDFS C...
Polyglot Data Architecture
Metering & Billing
Metering• Each services collects     •   Number of service calls     •   Request/response bandwidth     •   Registry bandw...
Throttling• Restrict tenants from using more than the  allocated resources, depending on the usage  plan    • Number of us...
Usage Metering/Throttling• Number of users• Incoming and outgoing bandwidths• Request Response count
Billing• Scheduled invoice generation• Ability to view past invoices and the  current(interim) invoice• Securely pay the i...
Recap• Attributes essential for an AppServer running  on the Cloud  – Elasticity, user management, data, logging,    meter...
QUESTIONS?
Thank You!
Building a multi-tenanted Cloud-native AppServer
Upcoming SlideShare
Loading in...5
×

Building a multi-tenanted Cloud-native AppServer

2,266

Published on

Apache Tomcat is one of most popular & widely used Application Servers, and Apache Axis2 is one of most widely used Java Web services servers. Apache Synapse is one of the popular, high performant ESBs widely used in the industry.

In this session, we will look at how we combine these great projects from the ASF into building a scalable, elastic,multi-tenanted Application Server, which allows you to deploy cloud-native webapps on the Cloud, and benefit from all the advantages that Cloud Computing brings in. We will also see how easy it is to deploy any standard webapp on the Cloud, and seamlessly integrate with the authentication, authorization & management infrastructure provided by the underlying Platform-as-a-Service (PaaS).

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,266
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
78
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Shankar will take over from here
  • Transcript of "Building a multi-tenanted Cloud-native AppServer"

    1. 1. Building a scalable multi-tenanted Cloud-native Application Server using Tomcat, Axis2 & Synapse
    2. 2. Building a scalable multi-tenanted Cloud-native Application Server using Tomcat, Axis2 & Synapse Afkham Azeez Selvaratnam Uthaiyashankarazeez@{apache.org , wso2.com} shankar@{apache.org, wso2.com} WSO2 Inc WSO2 Inc
    3. 3. About the Presenters• Afkham Azeez – PMC member Apache Axis, Committer Synapse & Web Services – Member, Apache Software Foundation – Co-author, Axis2 Web Services – Director of Architecture, WSO2 Inc – Blog: http://blog.afkham.org• Selvaratnam Uthaiyashankar – PMC member Apache Axis & committer Web Services – Member, Apache Software Foundation – Senior Manager & Senior Architect, WSO2 Inc © WSO2 2011
    4. 4. Agenda• Overall Architecture• Elastic Load Balancer• AppServer• Logging• Data & storage• Metering & billing
    5. 5. Cloud Nativity
    6. 6. Overall ArchitectureClients ELB AS1 AS2 AS3 ASn Application Server - Elastic Cluster
    7. 7. Elastic Load Balancer- Based on Apache Synapse & Apache Tribes
    8. 8. Highlevel Architecture
    9. 9. Service Cluster Aware Load Balancing
    10. 10. Practical Example
    11. 11. Configuration
    12. 12. Proxy Port to Real Port Mapping
    13. 13. Proxy Port to Real Port Mapping
    14. 14. Synapse Message Flow
    15. 15. Membership Channels
    16. 16. AppServer- Based on Apache Tomcat, Apache Tribes & Apache Axis2
    17. 17. Features• Webapp hosting • Uses embedded Tomcat• Services hosting • Axis2 AAR services • JAXWS services • Data services • etc…
    18. 18. Tomcat
    19. 19. Tomcat• Stuck thread detection valve• Multi-tenant access log• Webapp lazy loader valve• Tenant-aware Tomcat realm• Tenant-aware management console• Tenant-aware webapp contexts• Tenant-aware session manager
    20. 20. Clients Tenant Identification &Tenant Context Creation Access Log Valve Lazy Loader ValveStuck Thread Detector Valve Request Interception WebApp
    21. 21. Management Console
    22. 22. Management Console
    23. 23. Tomcat Sample Webapp
    24. 24. Tenant-aware Session Manager
    25. 25. User & Role Management
    26. 26. web.xml - Integrating Identity into WebAppsAutomatically ties into Identity Managementinfrastructure
    27. 27. SaaS Mode• One webapp shared amongst all tenants• One webapp shared amongst selected tenants
    28. 28. Axis2
    29. 29. Messaging Messaging Engine In TransportsClient Out Message Service Receiver Impl In Fault Out Fault
    30. 30. Multi-tenant Message Receiver
    31. 31. Axis2 Configuration & Contexts
    32. 32. Tenants & Super Tenant Tenant: foo.comSuper Tenant Tenant: bar.com
    33. 33. Pluggable Deployers Deployment Engine POJOWebapp Services Data JAXWS Services Services
    34. 34. Pluggable Deployers Tenant: foo.comSuper Tenant Tenant: bar.com
    35. 35. Ghost Artifact Deployer• Lazy loading deployment artifacts• Load the tenant configuration & only the required artifact• Unload artifacts & tenants after a period of inactivity
    36. 36. Ghost Artifact Deployer - PerformanceInitial Response Time (ms) Number of artifacts
    37. 37. Deployment Synchronizer
    38. 38. Tenant-aware Security Manager• Main security manager delegates security verifications to tenant level security managers• Different tenants can have different security policies• Security policies are tied to the multi-tenancy package assigned to the tenant
    39. 39. Logging
    40. 40. Distributed Logging• Every service and custom applications logs are captured by the log4j/commons loggings settings• Logs are partitioned & stored by tenant• Logs are sent to the Manager service via syslog• Logs are then viewable / downloadable by tenant admins
    41. 41. MT-Logging Deployment Architecture
    42. 42. Log Viewer – Stratos Manager {Super-Tenant}
    43. 43. Log Viewer – Stratos Data Services Server {Tenant User}
    44. 44. AppServer Logs
    45. 45. Data & Storage
    46. 46. WSO2 Cloud Data Solutions• WSO2 Data Server • Carbonized Cassandra Cluster • Database cluster • Carbonized HDFS Cluster• <Data> PaaS Offerings • Apache Cassandra as a Service • Relational Database as a Service • HDFS as a Service• We are also planning MapReduce as a Service as Future work.
    47. 47. Polyglot Data Architecture
    48. 48. Metering & Billing
    49. 49. Metering• Each services collects • Number of service calls • Request/response bandwidth • Registry bandwidth (upload, download) • Total registry space usage• Send above to BAM publishers, which sends the data to the BAM Service• BAM summarizes periodically• Summarized data will be centrally accessible
    50. 50. Throttling• Restrict tenants from using more than the allocated resources, depending on the usage plan • Number of users per tenant • Storage space • Number of requests to webapps, services etc
    51. 51. Usage Metering/Throttling• Number of users• Incoming and outgoing bandwidths• Request Response count
    52. 52. Billing• Scheduled invoice generation• Ability to view past invoices and the current(interim) invoice• Securely pay the invoice via Paypal• Notifies the customer via email on received payments• Notifies the super-admin on customers exceeding the credit limit• Presents a summary view to the super-admin
    53. 53. Recap• Attributes essential for an AppServer running on the Cloud – Elasticity, user management, data, logging, metering, throttling, billing• How Tomcat, Axis2 & Synapse were used to build a cloud-native AppServer
    54. 54. QUESTIONS?
    55. 55. Thank You!
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×