SlideShare a Scribd company logo
1 of 47
Air Plugins
Extending and customizing
uDeploy (IBM UrbanCode Deploy)
and uBuild (IBM UrbanCode Build)
IBM Corporation ©2013
Presenting Today
Matt: Lead Developer Eric: Consulting
IBM Corporation ©2013
Out of the box integrations – a good start
IBM Corporation ©2013
But your team is unique
So our integrations are “Plug-ins”
IBM Corporation ©2013
Why Plugin-ins?
Make Integrating Easy
IBM Corporation ©2013
Why Plugin-ins?
Wrap existing scripts
IBM Corporation ©2013
Why Plugin-ins?
Custom Fit
IBM Corporation ©2013
The Plan
 Plugin Basics
 Finding and Uploading Plugins
 The Anatomy of a Plugin
 Basic Plugin Authoring
 Tools for Bidirectional Integrations
IBM Corporation ©2013
The Plan
 Plugin Basics
 Finding and Uploading Plugins
 The Anatomy of a Plugin
 Basic Plugin Authoring
 Tools for Bidirectional Integrations
IBM Corporation ©2013
What is a Plugin?
 A package that provides new automation capabilities
 Format is a zip file containing:
- Description of ‘steps’
- Description of inputs to those steps
- Scripts or code that execute those steps
- Upgrade rules
 uBuild & uDeploy share a plugin architecture: Air
IBM Corporation ©2013
The Plan
 Plugin Basics
 Finding and Uploading Plugins
 The Anatomy of a Plugin
 Basic Plugin Authoring
 Tools for Bidirectional Integrations
Getting Plugins
IBM Corporation ©2013
1) Go to Plugins.urbancode.com.
IBM Corporation ©2013
2) Download some plugins
IBM Corporation ©2013
3) Load them via the browser
IBM Corporation ©2013
New steps are immediately available
IBM Corporation ©2013
Plugin -> Agent
How: Pulled automatically
When: As it gets used
- This first execution will appear to take longer as plugin
transport time is rolled into the step.
IBM Corporation ©2013
The Plan
 Plugin Basics
 Finding and Uploading Plugins
 The Anatomy of a Plugin
 Basic Plugin Authoring
 Tools for Bidirectional Integrations
IBM Corporation ©2013
The Anatomy of an Air Plugin
 Definition: What steps, input and how to invoke
 Upgrade Rules
 Info.xml: Versioning
 Payload: Scripts, libraries and tools that accomplish
the plugin’s goals
 Packaging: Wrap contents in a zip file
IBM Corporation ©2013
Plugin Definition
 Expressed in the plugin.xml
 Definition of properties (settings) used by various
levels of the plugin
 Lists the steps the plugin makes available and
which commands or scripts to execute
IBM Corporation ©2013
Upgrade Definition
 Supports upgrading from one plugin version to the
next
 Required when:
- Adding or renaming steps or properties
IBM Corporation ©2013
Payload
 Everything that makes the integration “go”
IBM Corporation ©2013
The Plan
 Plugin Basics
 Finding and Uploading Plugins
 The Anatomy of a Plugin
 Basic Plugin Authoring
 Tools for Bidirectional Integrations
IBM Corporation ©2013
Example: Atlassian Jira
Plugin.xml header:
IBM Corporation ©2013
Example: Atlassian Jira
Plugins contain one or more steps. Each has:
- A description (what is it)
- Properties (inputs)
- Post-processing (how do we know if it passed?)
- A command (how to make it go)
IBM Corporation ©2013
Example: Atlassian Jira
Step properties look like this:
IBM Corporation ©2013
Example: Atlassian Jira - Properties
IBM Corporation ©2013
Example: Atlassian Jira - Properties
IBM Corporation ©2013
Example: Atlassian Jira - Properties
IBM Corporation ©2013
Example: Atlassian Jira – Post-Processing
<post-processing>
<![CDATA[
if (properties.get("exitCode") != 0){
properties.put( "Status”, "Failure”);
} else {
properties.put("Status", "Success");
}
]]>
</post-processing>
IBM Corporation ©2013
Post Processing Fanciness
 Look for all instances of “Downloading file x” in the
log, and create a property listing all ‘x’.
scanner.register("Downloading file .*",
function(lineNumber, line) {
line = line.substring("Downloading file '".length);
line = line.substring(0, line.length-1)
var changedFiles = properties.get("changedFiles");
if (changedFiles == null) {
changedFiles = "";
}
changedFiles = changedFiles+line+"n";
properties.put("changedFiles", changedFiles);
});
scanner.scan();
IBM Corporation ©2013
Commands
<command program="${GROOVY_HOME}/bin/groovy">
<arg file="replace_tokens.groovy"/>
<arg file="${PLUGIN_INPUT_PROPS}"/>
<arg file="${PLUGIN_OUTPUT_PROPS}"/>
</command>
Args may be: value, file or path.
IBM Corporation ©2013
Payloads: Example script
 Cross platform un-tar
IBM Corporation ©2013
Payloads: Example script (setup)
final def workDir = new File('.').canonicalFile
final def props = new Properties();
def inputPropsFile = new File(args[0]);
inputPropsStream = new FileInputStream(inputPropsFile);
props.load(inputPropsStream);
def dirOffset = props['dir']?:'.'
def tarball = props['tarball'];
def compression = props['compression'];
def overwrite = Boolean.valueOf(props['overwrite']);
IBM Corporation ©2013
Payloads: Example script (execution)
def ant = new AntBuilder()
if (overwrite) {
ant.untar(
dest:dirOffset,
failOnEmptyArchive: 'true',
compression: compression,
overwrite: 'true',
src: tarball)
}
else {
ant.untar(
dest:dirOffset,
failOnEmptyArchive: 'true',
compression: compression,
overwrite: 'false',
src: tarball)
}
You don’t have to use Groovy
IBM Corporation ©2013
Why do we?
 Steps can run any script you write. Why does
Urbancode usually use Groovy?
- Groovy is on every agent
- Groovy cross platform
- Groovy is very good at XML
- Groovy is fun to learn, concise and effective
 Other good choices:
- Perl, Ruby, VBScript, Python
- Etc, etc, etc
IBM Corporation ©2013
Common plugin strategies
 Construct a command line call
 Web services
 Wrap existing shell & perl scripts
 Exploit utilities installed with the agent (Ant)
IBM Corporation ©2013
The Plan
 Plugin Basics
 Finding and Uploading Plugins
 The Anatomy of a Plugin
 Basic Plugin Authoring
 Tools for Bidirectional Integrations
IBM Corporation ©2013
uDeploy
 Post-processing
- Easily capture deployment information
 Rest services API
- 2 Wrappers: Command line and Java.
IBM Corporation ©2013
uBuild
 Web services accept metrics
- Construct an XML message
- Post to web message
IBM Corporation ©2013
uBuild
 Web services accept metrics
- Construct an XML message
- Post to web message
String url =
baseUrl +
"rest/buildlife/${buildLifeId}/testcoverage?reportName=${name}”
ProtocolSocketFactory socketFactory = new OpenSSLProtocolSocketFactory()
Protocol https = new Protocol("https", socketFactory, 443)
Protocol.registerProtocol("https", https)
PostMethod postMethod = new PostMethod(url)
if (authToken) {
postMethod.setRequestHeader("Authorization-Token", authToken)
postMethod.setRequestHeader("Content-Type", "application/xml")
}
postMethod.setRequestEntity(new StringRequestEntity(xml));
HttpClient client = new HttpClient()
def responseCode = client.executeMethod(postMethod)
IBM Corporation ©2013
uBuild
 Web services accept metrics
- Construct an XML message
- Post to web message
 Easiest to work from examples
IBM Corporation ©2013
In Summary
 Plugins extend Urbancode product’s automation
 They get you a custom fit
 Get them from plugins.urbancode.com
 Creating your own isn’t too hard
IBM Corporation ©2013
Additional Resources on Plugins
 Plugins.urbancode.com
- Plenty of examples
 Online Docs
- Schemas and additional how-to reference.
- Process flows
Q&A
eminick@us.ibm.com
Slideshare.net/Urbancode

More Related Content

What's hot

IBM UrbanCode Deploy Quick Start Service Offering
IBM UrbanCode Deploy Quick Start Service OfferingIBM UrbanCode Deploy Quick Start Service Offering
IBM UrbanCode Deploy Quick Start Service OfferingIBM Rational software
 
Introduction to IBM UrbanCode Deploy and Release
Introduction to IBM UrbanCode Deploy and ReleaseIntroduction to IBM UrbanCode Deploy and Release
Introduction to IBM UrbanCode Deploy and ReleaseRob Cuddy
 
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixAdopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixIBM UrbanCode Products
 
Securing the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode DeploySecuring the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode DeployIBM UrbanCode Products
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsIBM UrbanCode Products
 
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeContinuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeIBM UrbanCode Products
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...IBM UrbanCode Products
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesIBM UrbanCode Products
 
UrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsUrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsIBM UrbanCode Products
 
Integrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineIntegrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineRichard Irving
 
devops online training in hyderabad
devops online training in hyderabaddevops online training in hyderabad
devops online training in hyderabadDIGITALSAI1
 
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps IBM UrbanCode Products
 
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps:  Standardizing Chaotic Culture at NBCUniversalEfficient DevOps:  Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversalIBM UrbanCode Products
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudIBM UrbanCode Products
 
Elevating your Continuous Delivery Strategy Above the Rolling Clouds
Elevating your Continuous Delivery Strategy Above the Rolling CloudsElevating your Continuous Delivery Strategy Above the Rolling Clouds
Elevating your Continuous Delivery Strategy Above the Rolling CloudsMichael Elder
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...Sanjeev Sharma
 
IBM Bluemix hands on
IBM Bluemix hands onIBM Bluemix hands on
IBM Bluemix hands onFelipe Freire
 
Urban code deploy helps with traditional websphere app server migration
Urban code deploy helps with traditional websphere app server migrationUrban code deploy helps with traditional websphere app server migration
Urban code deploy helps with traditional websphere app server migrationLaurel Dickson-Bull
 
Microservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentationMicroservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentationCarlos Ferreira
 

What's hot (20)

IBM UrbanCode Deploy Quick Start Service Offering
IBM UrbanCode Deploy Quick Start Service OfferingIBM UrbanCode Deploy Quick Start Service Offering
IBM UrbanCode Deploy Quick Start Service Offering
 
Death to Manual Deployments
Death to Manual DeploymentsDeath to Manual Deployments
Death to Manual Deployments
 
Introduction to IBM UrbanCode Deploy and Release
Introduction to IBM UrbanCode Deploy and ReleaseIntroduction to IBM UrbanCode Deploy and Release
Introduction to IBM UrbanCode Deploy and Release
 
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with BluemixAdopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
Adopting DevOps in a Hybrid Cloud Featuring UrbanCode Deploy with Bluemix
 
Securing the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode DeploySecuring the Automation of Application Deployment with UrbanCode Deploy
Securing the Automation of Application Deployment with UrbanCode Deploy
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCodeContinuous Application Delivery to WebSphere - Featuring IBM UrbanCode
Continuous Application Delivery to WebSphere - Featuring IBM UrbanCode
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
 
UrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the DotsUrbanCode Deploy and Docker Containers Connect the Dots
UrbanCode Deploy and Docker Containers Connect the Dots
 
Integrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineIntegrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipeline
 
devops online training in hyderabad
devops online training in hyderabaddevops online training in hyderabad
devops online training in hyderabad
 
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
 
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps:  Standardizing Chaotic Culture at NBCUniversalEfficient DevOps:  Standardizing Chaotic Culture at NBCUniversal
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to Cloud
 
Elevating your Continuous Delivery Strategy Above the Rolling Clouds
Elevating your Continuous Delivery Strategy Above the Rolling CloudsElevating your Continuous Delivery Strategy Above the Rolling Clouds
Elevating your Continuous Delivery Strategy Above the Rolling Clouds
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
 
IBM Bluemix hands on
IBM Bluemix hands onIBM Bluemix hands on
IBM Bluemix hands on
 
Urban code deploy helps with traditional websphere app server migration
Urban code deploy helps with traditional websphere app server migrationUrban code deploy helps with traditional websphere app server migration
Urban code deploy helps with traditional websphere app server migration
 
Microservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentationMicroservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentation
 

Similar to Extending uBuild and uDeploy with Plugins

Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Amazon Web Services
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterpriseTodd Kaplinger
 
1040 ibm worklight delivering agility to mobile cloud deployments
1040 ibm worklight  delivering agility to mobile cloud deployments1040 ibm worklight  delivering agility to mobile cloud deployments
1040 ibm worklight delivering agility to mobile cloud deploymentsTodd Kaplinger
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 
Breaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesBreaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesAmazon Web Services
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateAmazon Web Services
 
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
RTC/CLM 5.0 Adoption Paths: Deploying in 16 StepsStéphane Leroy
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
 
Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018
Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018
Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018Amazon Web Services
 
RTC/CLM 2012 Adoption Paths : Deploying in 16 Steps
RTC/CLM 2012 Adoption Paths : Deploying in 16 StepsRTC/CLM 2012 Adoption Paths : Deploying in 16 Steps
RTC/CLM 2012 Adoption Paths : Deploying in 16 StepsStéphane Leroy
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integrationTrevor Dolby
 
Check Point automatizace a orchestrace
Check Point automatizace a orchestraceCheck Point automatizace a orchestrace
Check Point automatizace a orchestraceMarketingArrowECS_CZ
 
Building CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless ApplicationsBuilding CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless ApplicationsAmazon Web Services
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM ICF CIRCUIT
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...Amazon Web Services
 
Connect 2013 show101 making ibm traveler high available_part2_extending and s...
Connect 2013 show101 making ibm traveler high available_part2_extending and s...Connect 2013 show101 making ibm traveler high available_part2_extending and s...
Connect 2013 show101 making ibm traveler high available_part2_extending and s...a8us
 

Similar to Extending uBuild and uDeploy with Plugins (20)

Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
Mythical Mysfits: Monolith to Microservices with Docker and Fargate - MAD305 ...
 
2109 mobile cloud integrating your mobile workloads with the enterprise
2109 mobile cloud  integrating your mobile workloads with the enterprise2109 mobile cloud  integrating your mobile workloads with the enterprise
2109 mobile cloud integrating your mobile workloads with the enterprise
 
1040 ibm worklight delivering agility to mobile cloud deployments
1040 ibm worklight  delivering agility to mobile cloud deployments1040 ibm worklight  delivering agility to mobile cloud deployments
1040 ibm worklight delivering agility to mobile cloud deployments
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
 
Breaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesBreaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container Services
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and Fargate
 
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
 
Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018
Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018
Advanced Container Automation, Security, and Monitoring - AWS Summit Sydney 2018
 
RTC/CLM 2012 Adoption Paths : Deploying in 16 Steps
RTC/CLM 2012 Adoption Paths : Deploying in 16 StepsRTC/CLM 2012 Adoption Paths : Deploying in 16 Steps
RTC/CLM 2012 Adoption Paths : Deploying in 16 Steps
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration
 
Check Point automatizace a orchestrace
Check Point automatizace a orchestraceCheck Point automatizace a orchestrace
Check Point automatizace a orchestrace
 
Building CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless ApplicationsBuilding CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless Applications
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
 
Connect 2013 show101 making ibm traveler high available_part2_extending and s...
Connect 2013 show101 making ibm traveler high available_part2_extending and s...Connect 2013 show101 making ibm traveler high available_part2_extending and s...
Connect 2013 show101 making ibm traveler high available_part2_extending and s...
 

More from IBM UrbanCode Products

Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9IBM UrbanCode Products
 
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewIBM UrbanCode Products
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureIBM UrbanCode Products
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at ScaleIBM UrbanCode Products
 
Continuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCodeContinuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCodeIBM UrbanCode Products
 
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption RoadmapGet Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption RoadmapIBM UrbanCode Products
 
Building a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't EvilBuilding a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't EvilIBM UrbanCode Products
 
DevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesDevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesIBM UrbanCode Products
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployContinuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployIBM UrbanCode Products
 
Creating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilCreating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilIBM UrbanCode Products
 
Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015IBM UrbanCode Products
 
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
Using Lean Thinking to Identify and Address Delivery Pipeline BottlenecksUsing Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
Using Lean Thinking to Identify and Address Delivery Pipeline BottlenecksIBM UrbanCode Products
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesIBM UrbanCode Products
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMIBM UrbanCode Products
 
Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...IBM UrbanCode Products
 

More from IBM UrbanCode Products (20)

Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
 
What's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode DeployWhat's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode Deploy
 
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production Failure
 
The Future of DevOps and UrbanCode
The Future of DevOps and UrbanCodeThe Future of DevOps and UrbanCode
The Future of DevOps and UrbanCode
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
Leading the Transformation:  Applying DevOps and Agile Principles at ScaleLeading the Transformation:  Applying DevOps and Agile Principles at Scale
Leading the Transformation: Applying DevOps and Agile Principles at Scale
 
Continuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCodeContinuous Delivery in the Enterprise - with IBM UrbanCode
Continuous Delivery in the Enterprise - with IBM UrbanCode
 
Adopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed ITAdopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed IT
 
A True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOpsA True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOps
 
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption RoadmapGet Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
 
Building a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't EvilBuilding a DevOps Team that Isn't Evil
Building a DevOps Team that Isn't Evil
 
DevOps and the Case for ROI to Executives
DevOps and the Case for ROI to ExecutivesDevOps and the Case for ROI to Executives
DevOps and the Case for ROI to Executives
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode DeployContinuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
 
Creating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't EvilCreating a DevOps Team that Isn't Evil
Creating a DevOps Team that Isn't Evil
 
Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015Release and Deploy Sessions at IBM InterConnect 2015
Release and Deploy Sessions at IBM InterConnect 2015
 
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
Using Lean Thinking to Identify and Address Delivery Pipeline BottlenecksUsing Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for Databases
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBM
 
Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...Leading DevOps Application Release and Deployment - Best Practices for Organi...
Leading DevOps Application Release and Deployment - Best Practices for Organi...
 
How to Build a DevOps Toolchain
How to Build a DevOps ToolchainHow to Build a DevOps Toolchain
How to Build a DevOps Toolchain
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Extending uBuild and uDeploy with Plugins

  • 1. Air Plugins Extending and customizing uDeploy (IBM UrbanCode Deploy) and uBuild (IBM UrbanCode Build)
  • 2. IBM Corporation ©2013 Presenting Today Matt: Lead Developer Eric: Consulting
  • 3. IBM Corporation ©2013 Out of the box integrations – a good start
  • 4. IBM Corporation ©2013 But your team is unique
  • 5. So our integrations are “Plug-ins”
  • 6. IBM Corporation ©2013 Why Plugin-ins? Make Integrating Easy
  • 7. IBM Corporation ©2013 Why Plugin-ins? Wrap existing scripts
  • 8. IBM Corporation ©2013 Why Plugin-ins? Custom Fit
  • 9. IBM Corporation ©2013 The Plan  Plugin Basics  Finding and Uploading Plugins  The Anatomy of a Plugin  Basic Plugin Authoring  Tools for Bidirectional Integrations
  • 10. IBM Corporation ©2013 The Plan  Plugin Basics  Finding and Uploading Plugins  The Anatomy of a Plugin  Basic Plugin Authoring  Tools for Bidirectional Integrations
  • 11. IBM Corporation ©2013 What is a Plugin?  A package that provides new automation capabilities  Format is a zip file containing: - Description of ‘steps’ - Description of inputs to those steps - Scripts or code that execute those steps - Upgrade rules  uBuild & uDeploy share a plugin architecture: Air
  • 12. IBM Corporation ©2013 The Plan  Plugin Basics  Finding and Uploading Plugins  The Anatomy of a Plugin  Basic Plugin Authoring  Tools for Bidirectional Integrations
  • 14. IBM Corporation ©2013 1) Go to Plugins.urbancode.com.
  • 15. IBM Corporation ©2013 2) Download some plugins
  • 16. IBM Corporation ©2013 3) Load them via the browser
  • 17. IBM Corporation ©2013 New steps are immediately available
  • 18. IBM Corporation ©2013 Plugin -> Agent How: Pulled automatically When: As it gets used - This first execution will appear to take longer as plugin transport time is rolled into the step.
  • 19. IBM Corporation ©2013 The Plan  Plugin Basics  Finding and Uploading Plugins  The Anatomy of a Plugin  Basic Plugin Authoring  Tools for Bidirectional Integrations
  • 20. IBM Corporation ©2013 The Anatomy of an Air Plugin  Definition: What steps, input and how to invoke  Upgrade Rules  Info.xml: Versioning  Payload: Scripts, libraries and tools that accomplish the plugin’s goals  Packaging: Wrap contents in a zip file
  • 21. IBM Corporation ©2013 Plugin Definition  Expressed in the plugin.xml  Definition of properties (settings) used by various levels of the plugin  Lists the steps the plugin makes available and which commands or scripts to execute
  • 22. IBM Corporation ©2013 Upgrade Definition  Supports upgrading from one plugin version to the next  Required when: - Adding or renaming steps or properties
  • 23. IBM Corporation ©2013 Payload  Everything that makes the integration “go”
  • 24. IBM Corporation ©2013 The Plan  Plugin Basics  Finding and Uploading Plugins  The Anatomy of a Plugin  Basic Plugin Authoring  Tools for Bidirectional Integrations
  • 25. IBM Corporation ©2013 Example: Atlassian Jira Plugin.xml header:
  • 26. IBM Corporation ©2013 Example: Atlassian Jira Plugins contain one or more steps. Each has: - A description (what is it) - Properties (inputs) - Post-processing (how do we know if it passed?) - A command (how to make it go)
  • 27. IBM Corporation ©2013 Example: Atlassian Jira Step properties look like this:
  • 28. IBM Corporation ©2013 Example: Atlassian Jira - Properties
  • 29. IBM Corporation ©2013 Example: Atlassian Jira - Properties
  • 30. IBM Corporation ©2013 Example: Atlassian Jira - Properties
  • 31. IBM Corporation ©2013 Example: Atlassian Jira – Post-Processing <post-processing> <![CDATA[ if (properties.get("exitCode") != 0){ properties.put( "Status”, "Failure”); } else { properties.put("Status", "Success"); } ]]> </post-processing>
  • 32. IBM Corporation ©2013 Post Processing Fanciness  Look for all instances of “Downloading file x” in the log, and create a property listing all ‘x’. scanner.register("Downloading file .*", function(lineNumber, line) { line = line.substring("Downloading file '".length); line = line.substring(0, line.length-1) var changedFiles = properties.get("changedFiles"); if (changedFiles == null) { changedFiles = ""; } changedFiles = changedFiles+line+"n"; properties.put("changedFiles", changedFiles); }); scanner.scan();
  • 33. IBM Corporation ©2013 Commands <command program="${GROOVY_HOME}/bin/groovy"> <arg file="replace_tokens.groovy"/> <arg file="${PLUGIN_INPUT_PROPS}"/> <arg file="${PLUGIN_OUTPUT_PROPS}"/> </command> Args may be: value, file or path.
  • 34. IBM Corporation ©2013 Payloads: Example script  Cross platform un-tar
  • 35. IBM Corporation ©2013 Payloads: Example script (setup) final def workDir = new File('.').canonicalFile final def props = new Properties(); def inputPropsFile = new File(args[0]); inputPropsStream = new FileInputStream(inputPropsFile); props.load(inputPropsStream); def dirOffset = props['dir']?:'.' def tarball = props['tarball']; def compression = props['compression']; def overwrite = Boolean.valueOf(props['overwrite']);
  • 36. IBM Corporation ©2013 Payloads: Example script (execution) def ant = new AntBuilder() if (overwrite) { ant.untar( dest:dirOffset, failOnEmptyArchive: 'true', compression: compression, overwrite: 'true', src: tarball) } else { ant.untar( dest:dirOffset, failOnEmptyArchive: 'true', compression: compression, overwrite: 'false', src: tarball) }
  • 37. You don’t have to use Groovy
  • 38. IBM Corporation ©2013 Why do we?  Steps can run any script you write. Why does Urbancode usually use Groovy? - Groovy is on every agent - Groovy cross platform - Groovy is very good at XML - Groovy is fun to learn, concise and effective  Other good choices: - Perl, Ruby, VBScript, Python - Etc, etc, etc
  • 39. IBM Corporation ©2013 Common plugin strategies  Construct a command line call  Web services  Wrap existing shell & perl scripts  Exploit utilities installed with the agent (Ant)
  • 40. IBM Corporation ©2013 The Plan  Plugin Basics  Finding and Uploading Plugins  The Anatomy of a Plugin  Basic Plugin Authoring  Tools for Bidirectional Integrations
  • 41. IBM Corporation ©2013 uDeploy  Post-processing - Easily capture deployment information  Rest services API - 2 Wrappers: Command line and Java.
  • 42. IBM Corporation ©2013 uBuild  Web services accept metrics - Construct an XML message - Post to web message
  • 43. IBM Corporation ©2013 uBuild  Web services accept metrics - Construct an XML message - Post to web message String url = baseUrl + "rest/buildlife/${buildLifeId}/testcoverage?reportName=${name}” ProtocolSocketFactory socketFactory = new OpenSSLProtocolSocketFactory() Protocol https = new Protocol("https", socketFactory, 443) Protocol.registerProtocol("https", https) PostMethod postMethod = new PostMethod(url) if (authToken) { postMethod.setRequestHeader("Authorization-Token", authToken) postMethod.setRequestHeader("Content-Type", "application/xml") } postMethod.setRequestEntity(new StringRequestEntity(xml)); HttpClient client = new HttpClient() def responseCode = client.executeMethod(postMethod)
  • 44. IBM Corporation ©2013 uBuild  Web services accept metrics - Construct an XML message - Post to web message  Easiest to work from examples
  • 45. IBM Corporation ©2013 In Summary  Plugins extend Urbancode product’s automation  They get you a custom fit  Get them from plugins.urbancode.com  Creating your own isn’t too hard
  • 46. IBM Corporation ©2013 Additional Resources on Plugins  Plugins.urbancode.com - Plenty of examples  Online Docs - Schemas and additional how-to reference. - Process flows

Editor's Notes

  1. Simple interface. Just need what’s unique to your stuff