SlideShare a Scribd company logo
Continuous Automated
Deployment with
Who are we
Director at Luminis Technologies
Member at the Apache Software Foundation
@m4rr5
Marcel Offermans
Jan Willem Janssen
Software Architect at Luminis Technologies
committer and PMC member of Apache ACE
@j_w_janssen
Agenda
•Traditional Continuous Integration
•From EAR to bundles
•Versioning and baselining
•ACE basics
•Build env. setup with ACE
•Demo
Typical CI workflow
(D)VCS CI EAR/WAR Target
?
Maven,!
scp, ftp, nfs,
smb, …
without OSGi and ACE
Monolithic to Modular
•Single, big, monolithic
application

•Versioned whenever
“something” changes
•On every change the
whole application has
to be redeployed
•Many, small modules
that can be combined
to form applications
•Modules versioned
independently
•Only modules that
changed need to be
redeployed
What to version?
So we know their contents has changed
So we know the interface contract has changed
our focus here is on bundle versions,
because they tell us what to update
Bundles
Exported Packages
Semantic Versioning
• Major: Backward incompatible change!
• Minor: Backward compatible change!
• Micro: Implementation change!
• Qualifier: Label, e.g. build number
major.minor.micro(.qualifier)
1.0.0.abc
tells us what has changed
Baselining
•Compares build with latest release
•Checks if version numbers should be bumped
•Uses byte code analysis
-­‐baseline:  *  
-­‐removeheaders:  Bnd-­‐LastModified,Tool,Created-­‐By
Eclipse with Bndtools
Baselining
•Bnd annotations
•@ProviderType

A  type  that  is  provided  by  the  
implementor  of  the  contract.  
•@ConsumerType

A  type  that  is  typically  implemented  by  
the  consumer  of  the  contract.
Eclipse with Bndtools
demo
Apache ACE
•Software distribution framework
•Manage installation/upgrade of targets
•bundles
•configurations
•etc
ACE basics
target
target
target
network
provisioning.
server
component.
repository
client
management.
agent
management.
agent
management.
agent
ACE basics
Store&Repository
Ar-fact Distribu-onFeature
License'Repository
Distribu1on Target
•group artifacts into features and distributions
to make them manageable
•IKEA catalogue
Organising artifacts
Ar#fact Distribu#onFeature
Ar#fact
Ar#fact
Ar#fact
Ar#fact
Ar#fact
Feature
Feature
Feature
Distribu#on
Target
Target
Target
Target
Target
Apache ACE
demo
CI workflow
(D)VCS CI Bundles Target
Snapshots
Releases
OBR ACE
with OSGi & ACE
Build env. with ACE
Snapshots
Releases
Bundles from
build
A 1.0.1.SNAPSHOT
Workspace
B 1.0.1.SNAPSHOT
C 1.0.1.SNAPSHOT
Snapshot Repository
A 1.0.0
B 1.0.0
C 1.0.0
Release Repository
A 1.0.1.SNAPSHOT
B 1.0.1.SNAPSHOT
C 1.0.1.SNAPSHOT
Versioning bundles
from a build
Assume only bundle A changed since the release
1.0.1.SNAPSHOT > 1.0.1
even though they have the
same version, not all
snapshots are equal
even if nothing changed,
you still end up with a new
snapshot bundle
A 1.0.1.20131023
Workspace
B 1.0.1.20131023
C 1.0.1.20131023
A 1.0.1.20131024
B 1.0.1.20131024
C 1.0.1.20131024
Snapshot Repository
A 1.0.0
B 1.0.0
C 1.0.0
Release Repository
Versioning bundles
from a build
Assume only bundle A changed since the release
1.0.1.20131022 > 1.0.1
even though they have a
different version, they
might still be equal
even if nothing changed,
you still end up with a new
bundle
Versioning bundles
from a build
Assume only bundle A changed since the release
A 1.0.1
Workspace
B 1.0.0
C 1.0.0
A 1.0.0.CDS001
Snapshot Repository
B 1.0.0
C 1.0.0
A 1.0.0
B 1.0.0
C 1.0.0
Release Repository
1.0.0.CDS001 < 1.0.1
the bundle gets a new
qualifier if it has changed
if nothing changed, nothing
new is deployed
What do we need?
CI!
Script that places bundles in the OBR
ACE

Server with snapshot and release
OBR
Target!
Management agent configured to the
ACE instance
GoGo shell
•“Standard” OSGi shell (RFC-147)
•Powerful and extensible
•Available from Apache Felix
•ACE provides commands to interact with its
client API and OBRs
Script
echo “Define repositories”	
sourceindex = (repo:index ../release)	
sourcerepo = (repo:repo R5 $sourceindex)	
targetrepo = (repo:repo OBR "http://localhost:8084/obr/repository.xml")	
releaserepo = (repo:repo OBR "http://localhost:8083/obr/repository.xml")	
!
echo "Deploying bundles"	
deployed = repo:cd $releaserepo $sourcerepo $targetrepo	
!
echo "Create workspace"	
workspace = (ace:cw)	
!
echo "For each bundle"	
each $deployed {	
echo "Get metadata from bundle"	
identity = $it getIdentity	
version = $it getVersion	
name = "$identity - $version"	
url = $it getUrl	
mimetype = $it getMimetype	
echo "Bundle exists?"	
Setup
Define
repositories
Deploy bundles
Create
workspace
Get metadata
from bundle
Bundle
For each
bundle
yes
next bundle
done
!
echo "For each bundle"	
each $deployed {	
echo "Get metadata from bundle"	
identity = $it getIdentity	
version = $it getVersion	
name = "$identity - $version"	
url = $it getUrl	
mimetype = $it getMimetype	
echo "Bundle exists?"	
if { (coll:first 

($workspace la "(&(Bundle-SymbolicName=$identity)	
(Bundle-Version=$version))")) } { 	
echo "$name already exists"	
} { 	
echo "Create artifact for bundle"	
$workspace ca [ 	
	 artifactName="$name" 	
	 url="$url" 	
	 mimetype="$mimetype" 	
	 Bundle-SymbolicName="$identity" 	
	 Bundle-Version="$version" 	
]	
} 	
}	
!
echo "Commit workspace"	
$workspace commit	
exit 0
Get metadata
from bundle
Create artifact for
bundle
Bundle
exists?
Commit
workspace
Quit
For each
bundle
no
yes
next bundle
done
Example
•Amdatu showcase in local git repo
•post-­‐commit or post-­‐receive hook
•Jenkins
•post build step to deploy to ACE
•ACE
•deploys artifacts to targets
Demo
• With the Amdatu Showcase (extended)
demo
Cloud OSGi services!
http://www.amdatu.org/
Eclipse OSGi plugin!
http://bndtools.org/ !
Provisioning Server!
http://ace.apache.org/!
That’s us!
http://luminis.eu/
Demo code!
bitbucket.org/amdatu/showcase/
Takk
Grazie
Thank!
you
Obrigado
Mahalo
DankeDank U
Merci
Gracias

More Related Content

PPTX
AWS API Framework Overview
PPTX
Amazon API Gateway
PDF
Core Concepts
PPTX
Serverless Pune Meetup 1
PPTX
Serverless Pune meetup 3
PPTX
Serverless with Kubernetes
PPTX
Docker best practices
PDF
CI&CD on AWS - Meetup Roma Oct 2016
AWS API Framework Overview
Amazon API Gateway
Core Concepts
Serverless Pune Meetup 1
Serverless Pune meetup 3
Serverless with Kubernetes
Docker best practices
CI&CD on AWS - Meetup Roma Oct 2016

What's hot (14)

PDF
Microservices & API Gateways
PPTX
Continuous delivery and deployment on AWS
PDF
Docker Paris #29
PDF
Write less (code) and build more with serverless
PDF
Apache Kafka Core Concepts
PPTX
DevCon 2018 - 5 ways to use AWS with Alfresco
PPTX
Architecting for Continuous Delivery
PDF
AWS Code{Commit,Deploy,Pipeline} (June 2016)
PDF
Aws Technical Day 2015 - Amazon API Gateway
PPTX
Introduction of tomcat
PPTX
Alfresco Process Services extension project - Alfresco DevCon 2018
PDF
GUIハンズオンをCLIでやってみた
PPTX
Developing Java Applications in AWS
PDF
aws lambda & api gateway
Microservices & API Gateways
Continuous delivery and deployment on AWS
Docker Paris #29
Write less (code) and build more with serverless
Apache Kafka Core Concepts
DevCon 2018 - 5 ways to use AWS with Alfresco
Architecting for Continuous Delivery
AWS Code{Commit,Deploy,Pipeline} (June 2016)
Aws Technical Day 2015 - Amazon API Gateway
Introduction of tomcat
Alfresco Process Services extension project - Alfresco DevCon 2018
GUIハンズオンをCLIでやってみた
Developing Java Applications in AWS
aws lambda & api gateway
Ad

Viewers also liked (10)

PPTX
Rest assured
PPTX
Javascript like objects and JSON processing in VBA
PPTX
BDD for APIs
PPTX
Evaluating and Testing Web APIs
PDF
API Best Practices Webinar: Metrics - What to Measure
PPTX
REST API testing with SpecFlow
PDF
How to Automate API Testing
PPTX
API Best Practices
PDF
Unit testing best practices
PPTX
Unit Testing Concepts and Best Practices
Rest assured
Javascript like objects and JSON processing in VBA
BDD for APIs
Evaluating and Testing Web APIs
API Best Practices Webinar: Metrics - What to Measure
REST API testing with SpecFlow
How to Automate API Testing
API Best Practices
Unit testing best practices
Unit Testing Concepts and Best Practices
Ad

Similar to Continuous Automated Deployment with Apache ACE (20)

PDF
Continuous Automated Deployment with Apache Ace - Jago de Vreede, Marcel Offe...
PPT
Presentation 1 open source tools in continuous integration environment v1.0
PPTX
Version Control and Continuous Integration
PPTX
Maven, Archiva, Subversion and Team City
PDF
Deploying software at Scale
PDF
Brada -semantic-versioning-tool
PDF
OSGi Community Event 2010 - Automated Semantic Versioning for OSGi Bundles
PPT
Managing Change
ODP
Software Build processes and Git
PDF
Deployment Tactics
PPT
Java Build Tools
PDF
Use Case: Building OSGi Enterprise Applications (QCon 14)
PDF
Building Modular Enterprise Applications - C Ziegeler
PPTX
Continuous Delivery - Automate & Build Better Software with Travis CI
PDF
Continuous Integration at Mollie
PDF
Apache Continuum Build, Test, and Release
PDF
Care and Feeding of Large Web Applications
PPT
Configuration Management
PDF
Continuous integration and delivery for java based web applications
Continuous Automated Deployment with Apache Ace - Jago de Vreede, Marcel Offe...
Presentation 1 open source tools in continuous integration environment v1.0
Version Control and Continuous Integration
Maven, Archiva, Subversion and Team City
Deploying software at Scale
Brada -semantic-versioning-tool
OSGi Community Event 2010 - Automated Semantic Versioning for OSGi Bundles
Managing Change
Software Build processes and Git
Deployment Tactics
Java Build Tools
Use Case: Building OSGi Enterprise Applications (QCon 14)
Building Modular Enterprise Applications - C Ziegeler
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Integration at Mollie
Apache Continuum Build, Test, and Release
Care and Feeding of Large Web Applications
Configuration Management
Continuous integration and delivery for java based web applications

Recently uploaded (20)

PDF
top salesforce developer skills in 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Nekopoi APK 2025 free lastest update
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
history of c programming in notes for students .pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
top salesforce developer skills in 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Odoo POS Development Services by CandidRoot Solutions
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Wondershare Filmora 15 Crack With Activation Key [2025
CHAPTER 2 - PM Management and IT Context
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Understanding Forklifts - TECH EHS Solution
Nekopoi APK 2025 free lastest update
How Creative Agencies Leverage Project Management Software.pdf
Softaken Excel to vCard Converter Software.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
history of c programming in notes for students .pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
How to Migrate SBCGlobal Email to Yahoo Easily
2025 Textile ERP Trends: SAP, Odoo & Oracle
Design an Analysis of Algorithms I-SECS-1021-03
VVF-Customer-Presentation2025-Ver1.9.pptx

Continuous Automated Deployment with Apache ACE