Building Cloud Native Software Navigating the waters of a cloudy infrastructure Paul Fremantle CTO and Co-Founder, WSO2 VP, Apache Synapse ASF

Slides:



Advertisements
Similar presentations
Hello i am so and so, title/role and a little background on myself (i.e. former microsoft employee or anything interesting) set context for what going.
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)
Cloud Computing Brandon Hixon Jonathan Moore. Cloud Computing Brandon Hixon What is Cloud Computing? How does it work? Jonathan Moore What are the key.
PaaS Design and Architecture: A Deep Dive into Apache Stratos Samisa Abeysinghe VP Delivery, WSO2 Member Apache Software Foundation 10 th June 2014.
WSO2 Identity Server Road Map
Making Tomcat Multi-tenant, Elastic, Billed and Metered Paul Fremantle CTO and Co-Founder, WSO2 VP, Apache Synapse ASF
“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.
Lift-and- Shift Cloud First Dev. And TestHybrid SaaS for Sale Windows Azure PaaS IaaS+ Windows CEAP Private PaaS Be sure to grab all parts of graphic before.
OSGi as a Framework for Building a Product Line: Experience and Best Practices Ruwan Linton & Afkham Azeez
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
FI-WARE – Future Internet Core Platform FI-WARE Cloud Hosting July 2011 High-level description.
2009 Software as a service Platform as a service Infrastructure as a service Service platform Cloud platform Cloud computing Grid computing Private.
 Who we are  Amdatu  Platform  Projects  Demo  Q&A.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 4.
M.A.Doman Model for enabling the delivery of computing as a SERVICE.
Introducing the WSO2 Platform Leading you to a Connected Business
Platform as a Service (PaaS)
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Plan Introduction What is Cloud Computing?
Cloud Computing Source:
Opensource for Cloud Deployments – Risk – Reward – Reality
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
FIORANO SERVICE BUS The Cloud Enablement Platform
1 Building SaaS for SMEs on WSO2 PaaS Kathiravelu Pradeeban - Software Engineer Muhammed Shariq - Software Engineer Nov 2011.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Introduction To Windows Azure Cloud
M.A.Doman Short video intro Model for enabling the delivery of computing as a SERVICE.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Microsoft Virtual Academy.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Overview of Cloud Computing Sven Rosvall ACCU
Cloud Use Cases, Required Standards, and Roadmaps Excerpts From Cloud Computing Use Cases White Paper
C O R P O R A T E T E C H N O L O G Y Siemens AG Software & Engineering Usage of Enterprise OSGi inside Siemens:  Siemens Communications, Enterprise Systems.
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
For Testbeds TM. Secure, multi-tenant cloud orchestration platform –Turnkey platform for delivering IaaS clouds –Hypervisor agnostic –Massively scalable,
Techcello Provides SaaS Lifecycle Management Solution to “SaaS-ify” Your Application Efficiently on the Powerful Microsoft Azure Cloud Platform MICROSOFT.
By Nicole Rowland. What is Cloud Computing?  Cloud computing means that infrastructure, applications, and business processes can be delivered to you.
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.
Enterprise Cloud Computing
Cloud Computing is a Nebulous Subject Or how I learned to love VDF on Amazon.
© 2004 IBM Corporation ICSOC2004 Panel Discussion: Grid Systems: What is needed from web service standards? Jeffrey Frey IBM.
PaaS for the new Cloud Era Asanka Abeysinghe Vice President, Solutions Architecture - WSO2,Inc QCon San Francisco
Web Technologies Lecture 13 Introduction to cloud computing.
Lecture III: Challenges for software engineering with the cloud CS 4593 Cloud-Oriented Big Data and Software Engineering.
Information Systems in Organizations 5.2 Cloud Computing.
noun ; Software Defined Enterprise/SDE/ The enterprise who leverages software to flank their traditional business offerings, or to create entirely new.
Enabling the Cloud OS Today  New high-density Web Sites with elastic cloud scaling and complete dev-ops experiences  New rich IaaS experience for self-service.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
Submitted to :- Neeraj Raheja Submitted by :- Ghelib A. Shuaib (Asst. Professor) Roll No : Class :- M.Tech(CSE) 2 nd Year.
Alfresco on Azure Shah Rahman Founder and CEO, CloudlyIO.
© 2012 Eucalyptus Systems, Inc. Cloud Computing Introduction Eucalyptus Education Services 2.
Agenda  What is Cloud Computing?  Milestone of Cloud Computing  Common Attributes of Cloud Computing  Cloud Service Layers  Cloud Implementation.
Platform as a Service (PaaS)
Deploying Web Application
Platform as a Service (PaaS)
Architectural Overview Of Cloud Computing
Join the Lean Wave Asanka Abeysinghe
StratusLab Final Periodic Review
StratusLab Final Periodic Review
Windows Azure Cloud Visit – Ravindra verma.
Change Deployment in ServiceN w
Introduction to Cloud Computing
Cloud Computing: Concepts
Agenda Need of Cloud Computing What is Cloud Computing
OpenStack Summit Berlin – November 14, 2018
06 | SQL Server and the Cloud
Presentation transcript:

Building Cloud Native Software Navigating the waters of a cloudy infrastructure Paul Fremantle CTO and Co-Founder, WSO2 VP, Apache Synapse ASF

One view of Cloud Applications today VM App VM App

What’s wrong with this picture?

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

So how do you get into the water?

Elasticity

Why do people choose Cloud? Usually provisioning time is much more important than elasticity Some companies take 3-6 months to provision an application

Self-Service Provision your company / dept Provision your application Provision integration Provision users Provision a portal Provision storage Provision queues Etc

How do you effectively provision systems? They should be multi-tenant Why? –Per instance cost is very small Unless the instance is used –Better shared resources –Infinitely simpler management

So far (Elastic) Self-Service Multi-tenant

Elasticity Yes you can (sometimes) rely on the IaaS –E.g. Amazon But ultimately we will want to provide more intelligent elasticity –E.g. Coach/Business/Private Jet –Or based on market pricing –Or…… Elasticity requires the underlying code to be “distributed”

So….. You have an elastic, self-service, multi- tenant runtime What next?

Money (aka Metering and Billing)

Metering For many businesses, internal billing hasn’t been successful –That will have to change! Metering is very important –And overall system, service and tenant monitoring

Monolithic is back!!!! And, no, that isn’t good!

Wiring! You’ve heard plenty about wiring from Tuscany Wiring is really important in any large application Dynamic wiring for the Cloud

Dynamic Discovery

Discovering other services? Registry – for long term metadata WS-Discovery – for “who is where now?” –“aka Discovery Proxy” Probe (types, scope) ProbeMatch <- UUID Resolve(UUID) ResolveMatch <- Transport Address

Incremental deployment and test Co-deploy version next to –Implies versioned Test in place Partially switch 5% of live traffic over Monitor CPU and Memory usage –And billing! Switch the rest over Revert

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

A case study – “Stratos” A full middleware platform Based on OSGi Self-service Multi-tenant, Elastic, Metered and Billed Partial versioning, dynamic discovery Distributed but not yet endlessly scalable Available under the Apache License –Heavily based on Apache projects Tomcat, Axis2, Synapse, ODE, Shindig, Abdera, Commons, etc Looking at Cassandra, QPid, etc

Carbon

Home page

First steps Identity (and hence Multi-Tenancy) –Every domain/tenant has its own single-sign on and identity manager –Based on LDAP – which is inherently multi- tenant –Supporting SAML2, OpenId, OAuth, XACML, Infocard, WS-Trust

Next step – Registry/Repository Added a tenant id column to every database in our registry/repository schema Used to store: –Permissions –Metadata / Configuration –Code –The works

Next step Security management –Using Java and OSGi security managers to isolate tenants –Come hear my talk on making Tomcat Multi- tenant tomorrow!

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

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

Distributed Our distribution 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

Versioning and incremental behaviour OSGi We have a simple deployment model (CAR) –Each CAR consists of stuff Webapps, ESB flows, BPEL, Registry entries, etc Simple XML syntax is used to wrap everything as OSGi Each Bundle has a version

Dynamic Wiring A complete Governance Registry per tenant Supports WS-Discovery seamlessly –i.e. supports both long-lived metadata and presence Not finished yet

Quick demo

Still to do Lots –Multi-tenant services Log, Cache, Data, … –Better support for incremental deployment and test –Better support for coach/business/private jet –Extreme scale

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

Summary Cloud Native attributes distinguish code that just floats on top of the cloud from applications that live in the cloud This actually applies to Infrastructure (IaaS), Platform (PaaS) and Applications (SaaS) Stratos is an example of a making an OSGi system Cloud Native Read my blog entry on this: –