SlideShare a Scribd company logo
1 of 22
Bamboo Plugins
               And Remote Agents




Brydie McCoy
Me
 Brydie McCoy

 5 years on Bamboo

 Mainly Java, but not
 exclusive

 Written many plugin points
 and plugins
Bamboo Concepts
Agents
                                Machine B
                                Remote Agent


                                Remote Agent
          Machine A
Bamboo Server

                 Remote Agent
 Local Agent
                                               Amazon Elastic
 Local Agent                                      Cloud
 Local Agent                                      Elastic Agent


                                                  Elastic Agent


                                                  Elastic Agent
Tasks
Terminolgy
                 User                                    Developer

                 Plan                     Chain, TopLevelPlan, Build (legacy)

                Stage                                    ChainStage

                  Job                         Job, Buildable, Build (legacy)

             Plan Branch                                ChainBranch

 Build/Plan Result/Build Result                   ChainResultSummary

            Stage Result                             ChainStageResult

              Job Result                          BuildResultsSummary

+ “Plan” is the common interface for all Jobs, Chains and Branches
+ Immutable versions of most of these classes.
Bamboo Is not for
    everyone.
CI is complex

Lack of resources and and expertise

You don’t want us writing support for your
systems

Bamboo would become bloated.
Yet.


Bamboo is a plugin platform

Fill holes in the market

Fill holes in your team
Available Plugin
    points in Bamboo
Build Agent Requirement Filter Module       Report Module
Build Complete Action Module                Web Repository Viewer Module
Build Processor Module                      XWork Plugin Module
Build Processor Server Module               Capability Type Module
Build Trigger Condition Module              Index Reader Module
Command Decorator Module                    Plan Deletion Interceptor Action Module
Custom Build Definition Transformer Module   Post Build Index Writer Module
Post-Build Completed Action Module          Post Chain Index Writer Module
Post-Chain Action Module                    Event Listeners (33 events to lock into?)
Post-Job Action Module                      Component Import Plugin Module
Post-Stage Action Module                    Component Plugin Module
Pre-Build Action Module                     Module Type Plugin Module
Pre-Build Queued Action                     Servlet Context Listener Plugin Module
Pre-Chain Action Module                     Servlet Context Parameter Plugin Module
Pre-Job Action Module                       Servlet Filter Plugin Module
Pre-Stage Action Module                     Servlet Plugin Module
Restart Failed Stage Action Module          Template Context Item Plugin Module
Resume Manual Stage Action Module           Web Item Plugin Module
Stop On Manual Stage Action Module          Web Panel Plugin Module
Source Repository Module                    Web Panel Renderer Plugin Module
Task Plugin Module                          Web Resource Plugin Module
Trigger Reason Module                       Web Resource Transformer Plugin Module
Notification Condition Module                Web Section Plugin Module
Notification Recipient Module                REST plugin module type
Notification Type Module                     Gadget plugin module type
Additional Build Configuration Module
Build Process
    Build is Triggered        Trigger Reason
                              Trigger Condition

 Changes retrieved for all
      repositories
                              Source Repository



  Allocate Build Number
Creation and persistence of
    Database Objects
Creation of Build Contexts



                              Pre Chain
  Begin Chain Execution
                              Action



     Branch Merging




    Stage Execution
         Logic



       Branch Push




                              Post Chain
 Finalise Chain Execution
                              Action


     Chain Execution
       Complete
Requirements + Capabalties
                                           Failed Stage Restarted                     Calculated                  Pre Build Queued Action
                                           Manual Stage Resumed Action        Jobs Places on JMS queue
        Execute Next Stage                                                                                        Build Agent Requirement Fileter
                                           Pre Stage Action                                                       Capability Type

                                           Pre Job                                       Job
                                                                                        Queue
      Trigger all jobs for stage           Action



                                                                                     Wait For Job
          Job Execution
                                                                                     Completeion
              Logic



           Finalise Stage                 Post Stage
                                          Action                                     Process Job
               State                                                                                       Build Processor Server
                                                                                        Result


                                                                         No
         Did the last stage
                                    Yes                                                Save Job
                                                                                                           Post Build Index Writer
                fail?                                                              to DB and Index


           No
                                                                                   Tell chain the Job       Post Job
                                    Yes        Stop on Manual Stage
                                                                                        is finished          Action
           Have we hit a
           manual stage


           No
                                                                                   Post Job Events         Post Build Complete Action
                                   No
Yes       Is there another
            stage to run?



                                                                                    Are All Jobs In
                                                                                    Stage Finished?
Job
              Queue                                    Agent
           Prepare build
            directories



         Retrieve artifacts
                                 Source Repository

                                                      Process
           from server




           Prepare Job            Pre Build Action



        Run Regular Task          Task
                                  Command Decorator
                                  Source Repository
Yes

         Did task Succeed?
       Is there Another Task?


                   No

          Run Finalising          Task
              Task                Command Decorator
                                  Source Repository
Yes

       Is there Another Task?



                   No

       Calculate Build State
                                  Build Processor
      Send Artifacts to Server



        Send Results Back
            To Server
Remote Agents
   Taking Storm

Customers have too many builds

Customers need multiple OS, platforms or
devices

On Demand - Remote is the only option
Whats available?
        Not Available              Available

•Database
  •Bandana
  •ActiveMQ             •Build Working Directory
•File System            •Passed Artifacts
  •Lucene Index         •Checkout out code
•Other Plans            •Products of previous tasks
•Previous Jobs          •Job Configuration
•Historical data
•Managers
Tasks
TaskDefinition
TaskConfiguration
TaskContext




BuildContext.getBuildResult.getTaskResults().
SavingTaskData




BuildContext.getBuildResult.getTaskR
esults().
CustomDataMap

More Related Content

What's hot

Cluster api - koss 2019
Cluster api - koss 2019Cluster api - koss 2019
Cluster api - koss 2019Esther Kim
 
Shrikant Bhongade - Dot Net Resume
Shrikant Bhongade - Dot Net ResumeShrikant Bhongade - Dot Net Resume
Shrikant Bhongade - Dot Net ResumeShrikant Bhongade
 
Md riyazuddin network engineer cv_2016
Md riyazuddin network engineer cv_2016Md riyazuddin network engineer cv_2016
Md riyazuddin network engineer cv_2016Md Riyazuddin
 
Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...
Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...
Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...Microsoft
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...Edureka!
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)Ian Choi
 
Anil purswani Resume
Anil purswani ResumeAnil purswani Resume
Anil purswani ResumeAnil Purswani
 
Resume joseph gregory java
Resume   joseph gregory javaResume   joseph gregory java
Resume joseph gregory javaJoseph Gregory
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionHao Fan
 
EPM Automate - Automating Enterprise Performance Management Cloud Solutions
EPM Automate - Automating Enterprise Performance Management Cloud SolutionsEPM Automate - Automating Enterprise Performance Management Cloud Solutions
EPM Automate - Automating Enterprise Performance Management Cloud SolutionsAlithya
 
Enterprise container platform verrazzano
Enterprise container platform verrazzanoEnterprise container platform verrazzano
Enterprise container platform verrazzanoMichel Schildmeijer
 
Wintel & Windows Server support Profile
Wintel & Windows Server support ProfileWintel & Windows Server support Profile
Wintel & Windows Server support ProfileKuldeep Pathak
 
VMware の Tanzu の OSS の TUNA ???
VMware の Tanzu の OSS の TUNA ???VMware の Tanzu の OSS の TUNA ???
VMware の Tanzu の OSS の TUNA ???Hirotaka Sato
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAmazon Web Services
 
DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines Abdul_Mujeeb
 
Workday overview sigmora
Workday overview sigmoraWorkday overview sigmora
Workday overview sigmorabgadicha
 
Google cloud functions
Google cloud functionsGoogle cloud functions
Google cloud functionsPéter Nagy
 

What's hot (20)

Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Cluster api - koss 2019
Cluster api - koss 2019Cluster api - koss 2019
Cluster api - koss 2019
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Shrikant Bhongade - Dot Net Resume
Shrikant Bhongade - Dot Net ResumeShrikant Bhongade - Dot Net Resume
Shrikant Bhongade - Dot Net Resume
 
Md riyazuddin network engineer cv_2016
Md riyazuddin network engineer cv_2016Md riyazuddin network engineer cv_2016
Md riyazuddin network engineer cv_2016
 
Oracle hyperion financial management
Oracle hyperion financial managementOracle hyperion financial management
Oracle hyperion financial management
 
Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...
Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...
Microsoft Solves BYOD Using Microsoft System Center Configuration Manager and...
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
Anil purswani Resume
Anil purswani ResumeAnil purswani Resume
Anil purswani Resume
 
Resume joseph gregory java
Resume   joseph gregory javaResume   joseph gregory java
Resume joseph gregory java
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
EPM Automate - Automating Enterprise Performance Management Cloud Solutions
EPM Automate - Automating Enterprise Performance Management Cloud SolutionsEPM Automate - Automating Enterprise Performance Management Cloud Solutions
EPM Automate - Automating Enterprise Performance Management Cloud Solutions
 
Enterprise container platform verrazzano
Enterprise container platform verrazzanoEnterprise container platform verrazzano
Enterprise container platform verrazzano
 
Wintel & Windows Server support Profile
Wintel & Windows Server support ProfileWintel & Windows Server support Profile
Wintel & Windows Server support Profile
 
VMware の Tanzu の OSS の TUNA ???
VMware の Tanzu の OSS の TUNA ???VMware の Tanzu の OSS の TUNA ???
VMware の Tanzu の OSS の TUNA ???
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
 
DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines DevSecOps Basics with Azure Pipelines
DevSecOps Basics with Azure Pipelines
 
Workday overview sigmora
Workday overview sigmoraWorkday overview sigmora
Workday overview sigmora
 
Google cloud functions
Google cloud functionsGoogle cloud functions
Google cloud functions
 

Similar to Developing for Remote Bamboo Agents, AtlasCamp US 2012

Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...manssandstrom
 
Extending Workflow Foundation With Custom Activities
Extending Workflow Foundation With Custom ActivitiesExtending Workflow Foundation With Custom Activities
Extending Workflow Foundation With Custom Activitiesrsnarayanan
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxDarren Sim
 
Selenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A TimeSelenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A TimeAnand Ramdeo
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprisebenbrowning
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextXavier Warzee
 
Spring batch showCase
Spring batch showCaseSpring batch showCase
Spring batch showCasetaher abdo
 
Make the code work for you with #git
Make the code work for you with #gitMake the code work for you with #git
Make the code work for you with #gitTomáš Jukin
 
Software Testen mit Visual Studio Lab Management
Software Testen mit Visual Studio Lab ManagementSoftware Testen mit Visual Studio Lab Management
Software Testen mit Visual Studio Lab ManagementNico Orschel
 
MEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftMEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftLee Stott
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introductionSven Peters
 
Introduction to RamLog
Introduction to RamLogIntroduction to RamLog
Introduction to RamLogCorrieTaljaard
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesSanjeev Sharma
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructurezslmarketing
 

Similar to Developing for Remote Bamboo Agents, AtlasCamp US 2012 (20)

Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
 
Extending Workflow Foundation With Custom Activities
Extending Workflow Foundation With Custom ActivitiesExtending Workflow Foundation With Custom Activities
Extending Workflow Foundation With Custom Activities
 
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft AjaxThe Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
The Web Development Eco-system with VSTS, ASP.NET 2.0 & Microsoft Ajax
 
Selenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A TimeSelenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A Time
 
Java Batch
Java BatchJava Batch
Java Batch
 
Java Starting
Java StartingJava Starting
Java Starting
 
When Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the EnterpriseWhen Two Worlds Collide: Java and Ruby in the Enterprise
When Two Worlds Collide: Java and Ruby in the Enterprise
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Efficient Android Threading
Efficient Android ThreadingEfficient Android Threading
Efficient Android Threading
 
Adopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy ContextAdopting Agile Tools & Methods In A Legacy Context
Adopting Agile Tools & Methods In A Legacy Context
 
Spring batch showCase
Spring batch showCaseSpring batch showCase
Spring batch showCase
 
Porting Java App To Cloud
Porting Java App To CloudPorting Java App To Cloud
Porting Java App To Cloud
 
Make the code work for you with #git
Make the code work for you with #gitMake the code work for you with #git
Make the code work for you with #git
 
Software Testen mit Visual Studio Lab Management
Software Testen mit Visual Studio Lab ManagementSoftware Testen mit Visual Studio Lab Management
Software Testen mit Visual Studio Lab Management
 
MEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop MicrosoftMEW22 22nd Machine Evaluation Workshop Microsoft
MEW22 22nd Machine Evaluation Workshop Microsoft
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
Introduction to RamLog
Introduction to RamLogIntroduction to RamLog
Introduction to RamLog
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and Chellenges
 
camunda fox BPMN framework
camunda fox BPMN frameworkcamunda fox BPMN framework
camunda fox BPMN framework
 
Modernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructureModernize your-java ee-app-server-infrastructure
Modernize your-java ee-app-server-infrastructure
 

More from Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 

More from Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Developing for Remote Bamboo Agents, AtlasCamp US 2012

  • 1. Bamboo Plugins And Remote Agents Brydie McCoy
  • 2. Me Brydie McCoy 5 years on Bamboo Mainly Java, but not exclusive Written many plugin points and plugins
  • 3.
  • 5. Agents Machine B Remote Agent Remote Agent Machine A Bamboo Server Remote Agent Local Agent Amazon Elastic Local Agent Cloud Local Agent Elastic Agent Elastic Agent Elastic Agent
  • 7. Terminolgy User Developer Plan Chain, TopLevelPlan, Build (legacy) Stage ChainStage Job Job, Buildable, Build (legacy) Plan Branch ChainBranch Build/Plan Result/Build Result ChainResultSummary Stage Result ChainStageResult Job Result BuildResultsSummary + “Plan” is the common interface for all Jobs, Chains and Branches + Immutable versions of most of these classes.
  • 8. Bamboo Is not for everyone. CI is complex Lack of resources and and expertise You don’t want us writing support for your systems Bamboo would become bloated.
  • 9. Yet. Bamboo is a plugin platform Fill holes in the market Fill holes in your team
  • 10. Available Plugin points in Bamboo Build Agent Requirement Filter Module Report Module Build Complete Action Module Web Repository Viewer Module Build Processor Module XWork Plugin Module Build Processor Server Module Capability Type Module Build Trigger Condition Module Index Reader Module Command Decorator Module Plan Deletion Interceptor Action Module Custom Build Definition Transformer Module Post Build Index Writer Module Post-Build Completed Action Module Post Chain Index Writer Module Post-Chain Action Module Event Listeners (33 events to lock into?) Post-Job Action Module Component Import Plugin Module Post-Stage Action Module Component Plugin Module Pre-Build Action Module Module Type Plugin Module Pre-Build Queued Action Servlet Context Listener Plugin Module Pre-Chain Action Module Servlet Context Parameter Plugin Module Pre-Job Action Module Servlet Filter Plugin Module Pre-Stage Action Module Servlet Plugin Module Restart Failed Stage Action Module Template Context Item Plugin Module Resume Manual Stage Action Module Web Item Plugin Module Stop On Manual Stage Action Module Web Panel Plugin Module Source Repository Module Web Panel Renderer Plugin Module Task Plugin Module Web Resource Plugin Module Trigger Reason Module Web Resource Transformer Plugin Module Notification Condition Module Web Section Plugin Module Notification Recipient Module REST plugin module type Notification Type Module Gadget plugin module type Additional Build Configuration Module
  • 11. Build Process Build is Triggered Trigger Reason Trigger Condition Changes retrieved for all repositories Source Repository Allocate Build Number Creation and persistence of Database Objects Creation of Build Contexts Pre Chain Begin Chain Execution Action Branch Merging Stage Execution Logic Branch Push Post Chain Finalise Chain Execution Action Chain Execution Complete
  • 12. Requirements + Capabalties Failed Stage Restarted Calculated Pre Build Queued Action Manual Stage Resumed Action Jobs Places on JMS queue Execute Next Stage Build Agent Requirement Fileter Pre Stage Action Capability Type Pre Job Job Queue Trigger all jobs for stage Action Wait For Job Job Execution Completeion Logic Finalise Stage Post Stage Action Process Job State Build Processor Server Result No Did the last stage Yes Save Job Post Build Index Writer fail? to DB and Index No Tell chain the Job Post Job Yes Stop on Manual Stage is finished Action Have we hit a manual stage No Post Job Events Post Build Complete Action No Yes Is there another stage to run? Are All Jobs In Stage Finished?
  • 13. Job Queue Agent Prepare build directories Retrieve artifacts Source Repository Process from server Prepare Job Pre Build Action Run Regular Task Task Command Decorator Source Repository Yes Did task Succeed? Is there Another Task? No Run Finalising Task Task Command Decorator Source Repository Yes Is there Another Task? No Calculate Build State Build Processor Send Artifacts to Server Send Results Back To Server
  • 14. Remote Agents Taking Storm Customers have too many builds Customers need multiple OS, platforms or devices On Demand - Remote is the only option
  • 15. Whats available? Not Available Available •Database •Bandana •ActiveMQ •Build Working Directory •File System •Passed Artifacts •Lucene Index •Checkout out code •Other Plans •Products of previous tasks •Previous Jobs •Job Configuration •Historical data •Managers
  • 16. Tasks
  • 19.

Editor's Notes

  1. \n
  2. Who I Am. Why You should listen to\n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n