Using OSGi as a Cloud Platform



Similar documents
Cloud computing - Architecting in the cloud

Building Hyper-Scale Platform-as-a-Service Microservices with Microsoft Azure. Patriek van Dorp and Alex Thissen

Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.

C Examcollection.Premium.Exam.34q

SOA REFERENCE ARCHITECTURE: WEB TIER

Cloud Service Model. Selecting a cloud service model. Different cloud service models within the enterprise

Sentinet for Windows Azure SENTINET

Low-cost Open Data As-a-Service in the Cloud

Architecture. Reda Bendraou

Scalable Architecture on Amazon AWS Cloud

MIT Tech Talk, May 2013 Justin Richer, The MITRE Corporation

Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania

Service Oriented Architecture (SOA) An Introduction

DESIGN OF A PLATFORM OF VIRTUAL SERVICE CONTAINERS FOR SERVICE ORIENTED CLOUD COMPUTING. Carlos de Alfonso Andrés García Vicente Hernández

Automated Control in a Cloud Computing Infrastructure

The Primer: Nuts and Bolts of Federated Identity Management

Deploying ArcGIS for Server Using Esri Managed Services

2) Xen Hypervisor 3) UEC

Cloud Computing & Service Oriented Architecture An Overview

Cloud Computing Technology

Developing modular Java applications

Service-Oriented Architectures

In Memory Accelerator for MongoDB

Sistemi Operativi e Reti. Cloud Computing

Course 10978A Introduction to Azure for Developers

Outlook. Corporate Research and Technologies, Munich, Germany. 20 th May 2010

How To Cloud Compute At The Cloud At The Cyclone Center For Cnc

Integration in the cloud - IPaaS with Fuse technology. Charles Moulliard Apache Committer

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

SWIFT. Page:1. Openstack Swift. Object Store Cloud built from the grounds up. David Hadas Swift ATC. HRL 2012 IBM Corporation

ArcGIS for Server: In the Cloud

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

White Paper. Cloud Native Advantage: Multi-Tenant, Shared Container PaaS. Version 1.1 (June 19, 2012)

Scalable Application. Mikalai Alimenkou

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Service-oriented architecture in e-commerce applications

Vess A2000 Series HA Surveillance with Milestone XProtect VMS Version 1.0

It s All About Cloud Key Concepts, Players, Platforms And Technologies

RFP 133 Cloud Computing

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

Service Oriented Architecture 1 COMPILED BY BJ

Service Oriented Architecture

Distribution transparency. Degree of transparency. Openness of distributed systems

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Mobile Application Development Platform Comparison

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

Unit 10b: Introduction to Cloud Computing

CLOUD COMPUTING. When It's smarter to rent than to buy

IaaS Federation. Contrail project. IaaS Federation! Objectives and Challenges! & SLA management in Federations 5/23/11

perspective Microservices A New Application Paradigm Abstract

NetflixOSS A Cloud Native Architecture

The future of middleware: enterprise application integration and Fuse

Cloud Essentials for Architects using OpenStack

Storage Made Easy Enterprise File Share and Sync (EFSS) Cloud Control Gateway Architecture

Cloud Computing. Benefits and Risks. Bill Wells, CISSP, CISM, CISA, CRISC, CIPP/IT

IBM EXAM QUESTIONS & ANSWERS

The High Availability and Resiliency of the Pertino Cloud Network Engine

Customer Bank Account Management System Technical Specification Document

Cloud Computing Submitted By : Fahim Ilyas ( ) Submitted To : Martin Johnson Submitted On: 31 st May, 2009

MS 10978A Introduction to Azure for Developers

CLOUD TECH SOLUTION AT INTEL INFORMATION TECHNOLOGY ICApp Platform as a Service

Beyond the SOA/BPM frontiers Towards a complete open cooperative environment

SOA and Cloud in practice - An Example Case Study

How To Compare Cloud Computing To Cloud Platforms And Cloud Computing

Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION

IaaS Cloud Architectures: Virtualized Data Centers to Federated Cloud Infrastructures

Amazon Elastic Beanstalk

Application Containers

IBM WebSphere Application Server Family

TECHNOLOGY WHITE PAPER Jun 2012

LinuxWorld Conference & Expo Server Farms and XML Web Services

Sentinet for BizTalk Server SENTINET

Multi-Datacenter Replication

Achieve Economic Synergies by Managing Your Human Capital In The Cloud

Moving to the Cloud. Sam Hornstein Jetline Jason Nokes President, Distributor Central Garrett Ausfeldt Starline

Federated single sign-on (SSO) and identity management. Secure mobile access. Social identity integration. Automated user provisioning.

Alfresco Enterprise on AWS: Reference Architecture

Cloud Computing Architecture: A Survey

ENABLING GLOBAL HADOOP WITH EMC ELASTIC CLOUD STORAGE

An enterprise- grade cloud management platform that enables on- demand, self- service IT operating models for Global 2000 enterprises

Developing Service-Oriented Architecture Applications with OSGi

IT Exam Training online / Bootcamp

Efficient Monitoring of OSGi Applications

Federation of Cloud Computing Infrastructure

How To Understand Cloud Computing

Transcription:

Jan S. Rellermeyer IBM Austin Research Lab 24 October 2012 Using OSGi as a Cloud Platform

The Cloud - Challenges Cloud Computing is the economies of scale E.g., system of engagements Image: Pixomar / FreeDigitalPhotos.net Traditional software stacks usually do not scale well Often designed for vertical scalability. If they were not designed to scale horizontally, they don t. Monolithic software cannot be expected to be elastic. 2

The Cloud - Challenges Cloud Computing is outsourcing Computation by the hour Focus on the software, no longer control the platform Problem: Dependability Amazon EC2: 22 minutes of connection issues on 03/15 in the US-EAST-1 zone due to router configuration problems http://news.ycombinator.com/item?id=3707590 Microsoft Azure: ½ day partial service outage on 02/29 due to leap day bug http://blogs.msdn.com/b/windowsazure/archive/2012/03/09/summary-of-windows-azure-service-disruption-on-feb-29th-2012.aspx Zoho: 3h45 full outage on 02/20 through a power failure at an Equinix data center. Full recovery took another 6 hours. http://www.zoho.com/general/blog/our-friday-outage-and-actions-we-are-taking.html Image: twobee / FreeDigitalPhotos.net You need to design for failure?!? Availability is a software issue, not a platform issue 3

The Problem Both vertical scalability and redundancy (design for failure) require a distributed systems approach Distribution adds complexity and its own failure models. Example: Kerberos, Distributed File Systems Modular systems are easier to design Focus on functional partitioning and composition, not communication Well-designed modular systems can be turned into distributed systems Let s bring OSGi to the cloud Let s see what is already in OSGi Image: Danilo Rizzuti / FreeDigitalPhotos.net 4

Modularity Declaratively Self-Contained A module is self-contained with regard to its own content and its declared dependencies Encapsulated A module exposes its content solely through well-defined interfaces Decomposed modules are created by segregating a larger problem into smaller sub-problem so that a module ideally only deals with a single, not further separable concern and the content of the module is highly cohesive. Composable modules are created for reuse in different applications and can be composed into new applications. Declared dependencies and declared interfaces put constraints on the validity of compositions. Ideally, the degree of coupling between modules is low so that composition is facilitated and not prohibited. Substitutable two modules (or sets of modules) providing the same interfaces can be exchanged for one another. Localized Behavior modules are designed to behave locally, i.e., the effect of the code is restricted to the content of the module or its declared dependencies. A module should not make any assumptions about its dependents other than the ones expressed through the declared dependencies. 5 Image: Danilo Rizzuti / FreeDigitalPhotos.net

Modularity in OSGi Package dependencies = tight coupling Services = loose coupling Module A Module C Module B How far can we get in terms of dependability with plain loose coupling? => now components can fail independently. 6

Parrot Talk to the parrot Parrot repeats what it has heard Problem: Parrots are inherently unreliable Solution: Design for microreboots Person Parrot ConfigAdmin Image: Arvind Balaraman / FreeDigitalPhotos.net 7 Failure model: single component fails

State and Identity ConfigAdmin gives each service an identity Can be set through the PID Each individual service can have state Managing the state through the ConfigAdmin by attaching it to the identity By value for a small amount of state By reference for a large state Image: twobee / FreeDigitalPhotos.net 8

Distributed System: Remote Service Admin And now for something completely different. Remote Service Admin: Mechanism Expose this local service Import this remote service Topology Manager: Magic Which service from where, Image: OSGi Alliance 9

Parrot - Version 2.0 Person listens to Parrot (poll) Parrot autonomously fetches the most popular terms from Twitter Person Parrot Parrot registers itself manages and monitors Dependability Service Image: Arvind Balaraman / FreeDigitalPhotos.net 10 Failure model: entire node fails

Dependability as a Service Manage the available resources in the cloud deployment. As a sensor and as an actor Manage the identity of reliable services in the cloud deployment. Act when a reliable service experiences a failure. Image: digitalart / FreeDigitalPhotos.net Prototype based on Remote Services for OSGi (was: R-OSGi), Zookeeper, optionally a keyvalue store Remote Services for OSGi can re-bind service proxies Using it on my Eucalyptus cloud as well as external providers Interesting implications: Hot Spares 11

OSGi as a Cloud Platform Instance creation is likely to remain vendor-specific REST API provides access to the running instance Can be easily integrated into languages other than Java. Examples: GET POST GET GET http://my_host/framework/bundles/representations http://my_host/framework/bundles http://my_host/framework/bundle/5/state http://my_host/framework/services/representations/(objectclass=org.osgi.*) This is work in progress (RFC 182) http://www.osgi.org/download/osgi-early-draft-2012-10.pdf 12

OSGi as a Cloud Platform 13

Architecture Framework Instance Framework Instance REST WebSocket Framework Instance http://mycloud.com:8080/instances/20132 14

HTTP Service++ State of the art Component A Component B Component C Pluggable web applications Elastic web portal Bundle A Bundle B Bundle C 15

Authentication and User Management UserAdmin is flexible enough to represent different concepts User Identity through OpenID Authorization through OAuth Image: Salvatore Vuono / FreeDigitalPhotos.net Most cloud-implementations would be read-only though. 16

Other possible services Key-Value Store BlockStorage Message Queue Problem: common abstraction? What is the consistency model of my key-value-store? equivalent to /dev/null? ACID? Can I read my own writes? Image: Renjith Krishnan / FreeDigitalPhotos.net 17

Conclusions Modularity as in OSGi solves a major issue with architecting elastic applications for the cloud. It helps to structure applications in a more flexible way. It enables platform support for making software more dependable. Existing standards like ConfigAdmin, RemoteServiceAdmin, UserAdmin can be used with no or little modifications Other standards like HttpService are not yet fit for the cloud and need to be reworked. The REST API is an important addition for bootstrapping cloud deployments. What would you like to see in the cloud? 18