Modularity in the cloud. A case study



Similar documents
Continuous Automated Deployment with

Lessons learned from a large scale OSGi web app. Jago de Vreede Paul Bakker

HADOOP BIG DATA DEVELOPER TRAINING AGENDA

Developing Plugins for Cloud Scale

Postgres Plus Cloud Database!

Jenkins Slave Cloud with Apache Mesos. Klaus Azesberger Reinhard Kiesswetter Infonova GmbH

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

Cloud3DView: Gamifying Data Center Management

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Apache Sling A REST-based Web Application Framework Carsten Ziegeler cziegeler@apache.org ApacheCon NA 2014

ITG Software Engineering

Zabbix for Hybrid Cloud Management

ur skills.com

TECHNOLOGY WHITE PAPER Jun 2012

Automated Application Provisioning for Cloud

How to choose the right PaaS Platform?

Introduction to Amazon EC2 Running IBM

ArcGIS for Server in the Cloud

Building a Continuous Integration Pipeline with Docker

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

Cloud Computing project Report

Alcatel-Lucent IMS Application Server

One Click deployment on the Cloud

Amazon Elastic Beanstalk

Cloud computing - Architecting in the cloud

AWS Account Setup and Services Overview

Deep Dive: Infrastructure as Code

MongoDB Developer and Administrator Certification Course Agenda

Developing modular Java applications

Urbancode Deploy Overview

Alfresco Enterprise on AWS: Reference Architecture

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Operations and Monitoring with Spring

Big Data & Data Science Course Example using MapReduce. Presented by Juan C. Vega

TECHNOLOGY WHITE PAPER Jan 2016

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

NextRow - AEM Training Program Course Catalog

IBM Infrastructure Suite for z/vm and Linux

Building Multi-Site & Ultra-Large Scale Cloud with Openstack Cascading

VMware vsphere: [V5.5] Admin Training

Enterprise-level EE: Uptime, Speed, and Scale

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

.NET UI Load Balancing & Failover

Last time. Today. IaaS Providers. Amazon Web Services, overview

Sparx Systems Enterprise Architect Cloud-based repository hosting

XpoLog Competitive Comparison Sheet

Oracle im Open Source Kontext Abgrenzung GlassFish vs. JBoss und wozu noch WebLogic?

Storage and Disaster Recovery

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

AdWhirl Open Source Server Setup Instructions

An Introduction to Cloud Computing Concepts

Cloud Models and Platforms

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

High-Availability in the Cloud Architectural Best Practices

Apache Jakarta Tomcat

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

Deploy Your First CF App on Azure with Template and Service Broker. Thomas Shao, Rita Zhang, Bin Xia Microsoft Azure Team

Nuxeo, an open source platform for content-centric business applications. Stéfane Fermigier, Nuxeo Laurent Doguin, Nuxeo

Savanna Hadoop on. OpenStack. Savanna Technical Lead

McAfee Agent Handler

DevOps. Josh Preston Solutions Architect Stardate

Providing Load Balancing and Fault Tolerance in the OSGi Service Platform

Online Backup Guide for the Amazon Cloud: How to Setup your Online Backup Service using Vembu StoreGrid Backup Virtual Appliance on the Amazon Cloud

Scalable Architecture on Amazon AWS Cloud

OpenStack Introduction. November 4, 2015

My experience writing a DR service for CloudStack. Alena Prokharchyk

DocDokuPLM Innovative PLM solution

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

Big Data Use Case. How Rackspace is using Private Cloud for Big Data. Bryan Thompson. May 8th, 2013

When flexibility met simplicity: The friendship of OpenStack and Ansible

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

"Build and Test in the Cloud "

Equinox Framework: A Happier OSGi R6 Implementation

Cloud Powered Mobile Apps with Azure

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Database Services for CERN

OpenStack Manila Shared File Services for the Cloud

5.1 Features Denver CO 80202

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Oracle Database Public Cloud Services

Why IBM WebSphere Application Server V8.0?

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

Overview and Deployment Guide. Sophos UTM on AWS

Gyrex 0.10 Release Review

Deploying and Managing SolrCloud in the Cloud ApacheCon, April 8, 2014 Timothy Potter. Search Discover Analyze

Developing High-Performance, Scalable, cost effective storage solutions with Intel Cloud Edition Lustre* and Amazon Web Services

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Is it time for a Connector-less Approach to Cloud Integration?!

/ Cloud Computing. Recitation 5 September 29 th & October 1 st 2015

Transcription:

Modularity in the cloud A case study

Paul Bakker Architect at Luminis Technologies @pbakker

The case Educational system focussed on personalized learning Used in high schools in The Netherlands Expand to other countries in the near future

Cross device HTML 5 + JS A RESTful web services m d a OSGi services t u Apache Felix Mongo S3

Amdatu: OSGi Cloud components JAX-RS Apache Licensed open source project MONGO DB BlobStores Multi-tenancy Search OpenSocial...

Some numbers 190 bundles in a deployment 120 PulseOn bundles

Deployment Load Balancer Load Balancer PulseOn nodeload PulseOn node PulseOn node School A PulseOn node PulseOn node PulseOn node School B Mongo Mongo Mongo Mongo Mongo Mongo

Availability zones Load Balancer PulseOn node PulseOn node PulseOn node PulseOn node PulseOn node PulseOn node Mongo Mongo Mongo Mongo Mongo Mongo Availability Zone 1 Availability Zone 2

Horizontal scalability Horizontal scaling requires stateless nodes HTML5 clients need less server side state Any state should go to some kind of store

Auto scaling Considerable higher loads during school hours Enough capacity Without paying for idle servers at night...

Cluster per school Load Balancer small node Always use a load balancer because we don t want downtime during scaling

Early morning... Load Balancer small node

Early morning... Load Balancer small node large node large node

End of the day... Load Balancer small node large node large node

End of the day... Load Balancer small node

But how do we install our software on a node?

Provisioning servers

User Interface ace screenshot REST API Shell scripting

Provisioning servers AWS Auto Scaling 1. Start Load Balancer Node 2. register 3. register 4. provision Apache ACE deployment package

./as- create- launch- config demo - - image- id ami- 0ee8e07a - - instance- type m1.small - - region eu- west- 1 - - group sg- ce1420ba - - user- data- file userdata.txt./as- create- auto- scaling- group demo - - launch- configuration demo - - min- size 1 - - max- size 1 - - availability- zones eu- west- 1a - - load- balancers demo - - tag "k=name,v=demo,p=true"

Build releases CI server 1. GIT tag -runbundles: org.apache.felix.http.jetty;version=2.2.0,\ org.apache.felix.gogo.command;version=0.10.0,\ org.apache.felix.gogo.runtime;version=0.10.0,\ org.apache.felix.gogo.shell;version=0.10.0,\ osgi.cmpn;version='(4.2.0,4.2.1]',\ org.amdatu.security.tokenprovider.api;version=latest,\ org.amdatu.security.tokenprovider.impl;version=latest,\ org.amdatu.web.rest.doc,\ com.lopexs.arl.opensocial.config;version=latest,\ jackson-core-asl,\ 4. Distribution 2. Baseline 3. Publish Apache ACE 5. Provision Release OBR Targets

How do we know which bundles to update?

Semantic versioning is usually about package versions Export-Package: org.apache.felix.dm;version="3.1.0"

Semantic versioning demystified 1.0.0.x major.minor.micro(.qualifier) Major: Backward incompatible change Minor: Backward compatible change Micro: Implementation change Qualifier: Label, e.g. build number

Semantic versioning on bundles Bundle-Version: 1.0.0 Important for deployment!

Baselining Bytecode analysis Compare build with latest release Check if version numbers should be bumped

Continuous deployment CI server 1. GIT tag -runbundles: org.apache.felix.http.jetty;version=2.2.0,\ org.apache.felix.gogo.command;version=0.10.0,\ org.apache.felix.gogo.runtime;version=0.10.0,\ org.apache.felix.gogo.shell;version=0.10.0,\ osgi.cmpn;version='(4.2.0,4.2.1]',\ org.amdatu.security.tokenprovider.api;version=latest,\ org.amdatu.security.tokenprovider.impl;version=latest,\ org.amdatu.web.rest.doc,\ com.lopexs.arl.opensocial.config;version=latest,\ jackson-core-asl,\ 4. Distribution 2. Baseline 3. Publish Apache ACE 5. Provision Release OBR Snapshot OBR CD server

How does this fit other applications? Works in the The architecture fits most modern web cloud (but not a requirement) applications Tooling and frameworks are now mature enough

amdatu.org

Recommended reading ;)

There is more... Tomorrow 11.00 Two hour introduction to OSGi

There is more... Cloud provisioning http://ace.apache.org/ Cloud OSGi services http://www.amdatu.org/ Eclipse OSGi plugin http://bndtools.org/ That s us http://luminis.eu/

Merci Mahalo Dank U Danke Grazie Obrigado Takk Gracias Thank you