SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
Axel Fontaine
 
Introduction of tomcat
Introduction of tomcatIntroduction of tomcat
Introduction of tomcat
Kalkey
 

La actualidad más candente (19)

Docker best practices
Docker best practicesDocker best practices
Docker best practices
 
Build and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API GatewayBuild and Manage Your APIs with Amazon API Gateway
Build and Manage Your APIs with Amazon API Gateway
 
CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016
 
Microservices & API Gateways
Microservices & API Gateways Microservices & API Gateways
Microservices & API Gateways
 
Continuous delivery and deployment on AWS
Continuous delivery and deployment on AWSContinuous delivery and deployment on AWS
Continuous delivery and deployment on AWS
 
Docker Paris #29
Docker Paris #29Docker Paris #29
Docker Paris #29
 
Write less (code) and build more with serverless
Write less (code) and build more with serverlessWrite less (code) and build more with serverless
Write less (code) and build more with serverless
 
Apache Kafka Core Concepts
Apache Kafka Core ConceptsApache Kafka Core Concepts
Apache Kafka Core Concepts
 
DevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with AlfrescoDevCon 2018 - 5 ways to use AWS with Alfresco
DevCon 2018 - 5 ways to use AWS with Alfresco
 
Architecting for Continuous Delivery
Architecting for Continuous DeliveryArchitecting for Continuous Delivery
Architecting for Continuous Delivery
 
AWS Code{Commit,Deploy,Pipeline} (June 2016)
 AWS Code{Commit,Deploy,Pipeline} (June 2016) AWS Code{Commit,Deploy,Pipeline} (June 2016)
AWS Code{Commit,Deploy,Pipeline} (June 2016)
 
Aws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API GatewayAws Technical Day 2015 - Amazon API Gateway
Aws Technical Day 2015 - Amazon API Gateway
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWSAccelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 
Introduction of tomcat
Introduction of tomcatIntroduction of tomcat
Introduction of tomcat
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018
 
GUIハンズオンをCLIでやってみた
GUIハンズオンをCLIでやってみたGUIハンズオンをCLIでやってみた
GUIハンズオンをCLIでやってみた
 
Developing Java Applications in AWS
Developing Java Applications in AWSDeveloping Java Applications in AWS
Developing Java Applications in AWS
 
aws lambda & api gateway
aws lambda & api gatewayaws lambda & api gateway
aws lambda & api gateway
 

Destacado

Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIs
SmartBear
 
Unit testing best practices
Unit testing best practicesUnit testing best practices
Unit testing best practices
nickokiss
 

Destacado (10)

Rest assured
Rest assuredRest assured
Rest assured
 
Javascript like objects and JSON processing in VBA
Javascript like objects and JSON processing in VBAJavascript like objects and JSON processing in VBA
Javascript like objects and JSON processing in VBA
 
BDD for APIs
BDD for APIsBDD for APIs
BDD for APIs
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIs
 
API Best Practices Webinar: Metrics - What to Measure
API Best Practices Webinar:  Metrics - What to MeasureAPI Best Practices Webinar:  Metrics - What to Measure
API Best Practices Webinar: Metrics - What to Measure
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
 
Unit testing best practices
Unit testing best practicesUnit testing best practices
Unit testing best practices
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best Practices
 

Similar a Continuous Automated Deployment with Apache ACE

Similar a Continuous Automated Deployment with Apache ACE (20)

Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
 
eCAP Developer Walkthru
eCAP Developer WalkthrueCAP Developer Walkthru
eCAP Developer Walkthru
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014Dockerize your Symfony application - Symfony Live NYC 2014
Dockerize your Symfony application - Symfony Live NYC 2014
 
AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)
 
Containerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to KubernetesContainerizing a REST API and Deploying to Kubernetes
Containerizing a REST API and Deploying to Kubernetes
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App Deployment
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalkDistribua, gerencie e escale suas aplicações com o aws elastic beanstalk
Distribua, gerencie e escale suas aplicações com o aws elastic beanstalk
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Can I Contain This?
Can I Contain This?Can I Contain This?
Can I Contain This?
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
Extending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.jsExtending Build to the Client: A Maven User's Guide to Grunt.js
Extending Build to the Client: A Maven User's Guide to Grunt.js
 
Deep Dive into AWS Fargate
Deep Dive into AWS FargateDeep Dive into AWS Fargate
Deep Dive into AWS Fargate
 
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Continuous Automated Deployment with Apache ACE