SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Implementing blue-green deployments with Bamboo
Overview of blue-green deployment followed by group discussion
Twitter: @dkcwd
First a little background….
Purpose of the session
During the July 2016 Sydney Atlassian DevOps meetup there was a request from group members
to discuss blue-green deployments using Bamboo and Bitbucket.
We’re here to discuss blue-green deployment, sharing knowledge on what can work well and
discuss strategies for automating blue-green deployments.
This session will focus on a subset of the Atlassian tools however, we will discuss other tools too.
The session should:
 provide an overview of how to manage blue-green deployment with Bamboo
 encourage you to get started with your own automated blue-green deployments
Reminder about this session
We may have people of all levels of experience in this session.
The initial slides should align us with a common understanding of
blue-green deployment so we can explore the topic as a group.
When we begin the wider discussion please feel free to share your
knowledge and experience with the group and ask questions too.
What is blue-green deployment?
?
Blue-green deployment overview
Blue-green deployment is a strategy for reducing risk when making
changes which are due to be promoted into the production
environment.
Successful implementation should result in a reduction of risk and
friction for all involved in the deployment process.
So….let’s talk about what that looks like.
Overview
Prior to promoting changes to a production environment, a separate
“parallel” stack of resources is created.
This can allow near seamless switching between the stacks if
behavior is in line with expectations.
Overview
The ”current” production stack is referred to as blue and the “new”
stack which has been created is referred to as green.
Ok, that sounds expensive….is it?
Potentially!
We’re talking about creating a clone of production environment resources.
It makes sense to assess whether it is the right approach for your SDLC.
Understand the cost of downtime as well as the cost of duplicating your stack.
Frictionless deployments sound great however “bill shock” is quite the opposite.
Let’s continue…
Overview
If behavior of the green stack is in line with expectations then the
green stack should be promoted as “blue” with close to zero
downtime.
If behavior is not in line with expectations then the switch should not
take place.
If a “rollback” is required, it should be timely and low risk.
Overview
If a green stack is promoted to blue in a cloud environment, the
previous blue stack should probably be decommissioned.
Otherwise there will be some very unhappy CFOs….
Importance of environment boundaries
Persistent data stores and message queues are likely to be considered
non-disposable and may require more complex strategy….
Importance of environment boundaries
Centralised data writing strategies may be required to reduce risk of corruption.
Let’s look at some common blue-green deployment patterns.
Blue-green deploy patterns
There is no one size fits all approach however it’s good to be aware
of 2 patterns:
1. DNS cutover
2. Direct interaction with load balancers
DNS cutover
Gradually filter user traffic from blue to green stack using DNS
settings configured with a short time to live (TTL).
Monitor and if necessary ”rollback” so all traffic is diverted to the
blue stack.
The key questions are, “how long does it take to switch over and
how long to rollback?”
Direct interaction with load balancers
Avoid potential issues with DNS TTL and propagation.
Potentially leverage an additional internal load balancer to allow
further testing.
Ok so now we are aligned on that, let’s recap what Bamboo is for.
A quick reminder of what Bamboo is for….
Build, Test, Deploy
Build
Most front end application clients are composed from a variety of files and rely on assets such as
images, JavaScript, CSS.
A build process will typically involve creating an ”artefact”.
An “artefact” could be a .zip file containing an optimized version of the application.
It could also be one of more files which will be useful for a more complex process.
Build, Test, Deploy
Test
In this step the ”artefact” may be tested using one or more appropriate test methodologies.
If the tests pass then this should mean the artefact is “deployable”.
Note that there may be a number of additional steps which you may need to go through to
verify whether the artefact is actually “deployable” and once you are aware of those steps the
next step could be to automate them!
Build, Test, Deploy
Deploy
In this step the tested ”artefact” is deployed using an appropriate strategy.
If the deployment process fails for any reason, ideally it will be easy to “roll back” until another
attempt can be made.
If you are already familiar with these concepts then you should find it relatively easy to begin
working with Bamboo following the documentation.
New build plans
There are options to create a new
plan from scratch or clone one.
Making changes to a build plan
To edit a plan you will need to
select “Configure plan”….
Configuring tasks related to a build
Each step can be configured
using widgets or inline scripts….
Configuring tasks related to a build
*If checking out multiple repositories
use a specific “Checkout Directory”
* Why? Because it makes it easier to use inline scripts such as: cd example-application/stack/php-api/src/ && php composer.phar install –vvv
Can we do blue-green deployment with it?
Almost anything is possible with time…
Consider leveraging build scripts create stacks plus artefacts for
deployment then use a mixture of additional deployment and build tasks.
Consider leveraging existing add-ons in the Bamboo ecosystem or making
calls from Bamboo scripts to external APIs.
There are plenty of different tools out there to choose from including
some which have specific blue-green workflows.
An interesting platform to investigate…
https://fabric8.io/
Let’s discuss blue-green deployment strategy….
(group discussion)
So where to from here?
Great question!
Research whether blue-green is right for your SDLC and if so, start experimenting…
Some useful links for additional reading, in particular, investigate how to use a “serverless” approach to trigger changes.
http://martinfowler.com/bliki/BlueGreenDeployment.html
https://www.thoughtworks.com/insights/blog/implementing-blue-green-deployments-aws
https://botleg.com/stories/blue-green-deployment-with-docker/
http://dan.bravender.net/2014/8/24/Simple_0-Downtime_Blue_Green_Deployments.html
https://marketplace.atlassian.com/plugins/org.gaptap.bamboo.cloudfoundry.cloudfoundry-plugin/server/overview
https://www.youtube.com/watch?v=aX54mhZbN58
http://fbrnc.net/blog/2016/05/green-blue-deployments-with-aws-lambda-and-cloudformation
Enjoy and share what you do….
I’m on Twitter: @dkcwd
LinkedIn: https://au.linkedin.com/in/daveclarkprofile

Weitere ähnliche Inhalte

Was ist angesagt?

Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
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
Amazon Web Services
 

Was ist angesagt? (20)

Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
Introduction to devops
Introduction to devopsIntroduction to devops
Introduction to devops
 
Docker
DockerDocker
Docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS
 
Intro to Amazon ECS
Intro to Amazon ECSIntro to Amazon ECS
Intro to Amazon ECS
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
 
Docker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker SlidesDocker Birthday #3 - Intro to Docker Slides
Docker Birthday #3 - Intro to Docker Slides
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
Git interview questions | Edureka
Git interview questions | EdurekaGit interview questions | Edureka
Git interview questions | Edureka
 
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
 

Andere mochten auch

T3DD12 community extension
T3DD12  community extensionT3DD12  community extension
T3DD12 community extension
AOE
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Matthew Cobby
 

Andere mochten auch (13)

An introduction to Atlassian Bitbucket Pipelines
An introduction to Atlassian Bitbucket PipelinesAn introduction to Atlassian Bitbucket Pipelines
An introduction to Atlassian Bitbucket Pipelines
 
Continuous integration using atlassian bamboo
Continuous integration using atlassian bambooContinuous integration using atlassian bamboo
Continuous integration using atlassian bamboo
 
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
 
T3DD12 community extension
T3DD12  community extensionT3DD12  community extension
T3DD12 community extension
 
Awesome New Bamboo Plugin Capabilities
Awesome New Bamboo Plugin CapabilitiesAwesome New Bamboo Plugin Capabilities
Awesome New Bamboo Plugin Capabilities
 
Atlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewAtlassian Bamboo Feature Overview
Atlassian Bamboo Feature Overview
 
Implementation of the Continuous Integration based on Atlassian Bamboo
 Implementation of the Continuous Integration based on Atlassian Bamboo Implementation of the Continuous Integration based on Atlassian Bamboo
Implementation of the Continuous Integration based on Atlassian Bamboo
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
 
Continuous Deployment with Bamboo and Deployit
Continuous Deployment with Bamboo and DeployitContinuous Deployment with Bamboo and Deployit
Continuous Deployment with Bamboo and Deployit
 
AWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro TipsAWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro Tips
 
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
Introduction to Git(BitBucket) , Continuous Integration (Bamboo) & Confluence
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 

Ähnlich wie Implementing blue-green deployment with Atlassian Bamboo

Ähnlich wie Implementing blue-green deployment with Atlassian Bamboo (20)

HLayer / Cloud Native Best Practices
HLayer / Cloud Native Best PracticesHLayer / Cloud Native Best Practices
HLayer / Cloud Native Best Practices
 
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for TeamsScaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Agile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystemAgile architectures in a modern cloud-native ecosystem
Agile architectures in a modern cloud-native ecosystem
 
Agile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemAgile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native Ecosystem
 
Docker Geneva Meetup - Introduction to Docker
Docker Geneva Meetup - Introduction to DockerDocker Geneva Meetup - Introduction to Docker
Docker Geneva Meetup - Introduction to Docker
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
 
Plone Futures
Plone FuturesPlone Futures
Plone Futures
 
Is everything we used to do wrong?
Is everything we used to do wrong?Is everything we used to do wrong?
Is everything we used to do wrong?
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days Ireland
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Plugin style EA
Plugin style EAPlugin style EA
Plugin style EA
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit Test
 
The Future of GlusterFS and Gluster.org
The Future of GlusterFS and Gluster.orgThe Future of GlusterFS and Gluster.org
The Future of GlusterFS and Gluster.org
 
Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdf
 
The Perfect Neos Project Setup
The Perfect Neos Project SetupThe Perfect Neos Project Setup
The Perfect Neos Project Setup
 
1 - Introduction of Azure DevOps
1 - Introduction of Azure DevOps1 - Introduction of Azure DevOps
1 - Introduction of Azure DevOps
 
The Perfect Couple
The Perfect CoupleThe Perfect Couple
The Perfect Couple
 
Micro services may not be the best idea
Micro services may not be the best ideaMicro services may not be the best idea
Micro services may not be the best idea
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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...
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 

Implementing blue-green deployment with Atlassian Bamboo

  • 1. Implementing blue-green deployments with Bamboo Overview of blue-green deployment followed by group discussion Twitter: @dkcwd
  • 2. First a little background….
  • 3. Purpose of the session During the July 2016 Sydney Atlassian DevOps meetup there was a request from group members to discuss blue-green deployments using Bamboo and Bitbucket. We’re here to discuss blue-green deployment, sharing knowledge on what can work well and discuss strategies for automating blue-green deployments. This session will focus on a subset of the Atlassian tools however, we will discuss other tools too. The session should:  provide an overview of how to manage blue-green deployment with Bamboo  encourage you to get started with your own automated blue-green deployments
  • 4. Reminder about this session We may have people of all levels of experience in this session. The initial slides should align us with a common understanding of blue-green deployment so we can explore the topic as a group. When we begin the wider discussion please feel free to share your knowledge and experience with the group and ask questions too.
  • 5. What is blue-green deployment? ?
  • 6. Blue-green deployment overview Blue-green deployment is a strategy for reducing risk when making changes which are due to be promoted into the production environment. Successful implementation should result in a reduction of risk and friction for all involved in the deployment process. So….let’s talk about what that looks like.
  • 7. Overview Prior to promoting changes to a production environment, a separate “parallel” stack of resources is created. This can allow near seamless switching between the stacks if behavior is in line with expectations.
  • 8. Overview The ”current” production stack is referred to as blue and the “new” stack which has been created is referred to as green.
  • 9. Ok, that sounds expensive….is it? Potentially! We’re talking about creating a clone of production environment resources. It makes sense to assess whether it is the right approach for your SDLC. Understand the cost of downtime as well as the cost of duplicating your stack. Frictionless deployments sound great however “bill shock” is quite the opposite. Let’s continue…
  • 10. Overview If behavior of the green stack is in line with expectations then the green stack should be promoted as “blue” with close to zero downtime. If behavior is not in line with expectations then the switch should not take place. If a “rollback” is required, it should be timely and low risk.
  • 11. Overview If a green stack is promoted to blue in a cloud environment, the previous blue stack should probably be decommissioned. Otherwise there will be some very unhappy CFOs….
  • 12. Importance of environment boundaries Persistent data stores and message queues are likely to be considered non-disposable and may require more complex strategy….
  • 13. Importance of environment boundaries Centralised data writing strategies may be required to reduce risk of corruption. Let’s look at some common blue-green deployment patterns.
  • 14. Blue-green deploy patterns There is no one size fits all approach however it’s good to be aware of 2 patterns: 1. DNS cutover 2. Direct interaction with load balancers
  • 15. DNS cutover Gradually filter user traffic from blue to green stack using DNS settings configured with a short time to live (TTL). Monitor and if necessary ”rollback” so all traffic is diverted to the blue stack. The key questions are, “how long does it take to switch over and how long to rollback?”
  • 16. Direct interaction with load balancers Avoid potential issues with DNS TTL and propagation. Potentially leverage an additional internal load balancer to allow further testing. Ok so now we are aligned on that, let’s recap what Bamboo is for.
  • 17. A quick reminder of what Bamboo is for….
  • 18. Build, Test, Deploy Build Most front end application clients are composed from a variety of files and rely on assets such as images, JavaScript, CSS. A build process will typically involve creating an ”artefact”. An “artefact” could be a .zip file containing an optimized version of the application. It could also be one of more files which will be useful for a more complex process.
  • 19. Build, Test, Deploy Test In this step the ”artefact” may be tested using one or more appropriate test methodologies. If the tests pass then this should mean the artefact is “deployable”. Note that there may be a number of additional steps which you may need to go through to verify whether the artefact is actually “deployable” and once you are aware of those steps the next step could be to automate them!
  • 20. Build, Test, Deploy Deploy In this step the tested ”artefact” is deployed using an appropriate strategy. If the deployment process fails for any reason, ideally it will be easy to “roll back” until another attempt can be made. If you are already familiar with these concepts then you should find it relatively easy to begin working with Bamboo following the documentation.
  • 21. New build plans There are options to create a new plan from scratch or clone one.
  • 22. Making changes to a build plan To edit a plan you will need to select “Configure plan”….
  • 23. Configuring tasks related to a build Each step can be configured using widgets or inline scripts….
  • 24. Configuring tasks related to a build *If checking out multiple repositories use a specific “Checkout Directory” * Why? Because it makes it easier to use inline scripts such as: cd example-application/stack/php-api/src/ && php composer.phar install –vvv
  • 25. Can we do blue-green deployment with it?
  • 26. Almost anything is possible with time… Consider leveraging build scripts create stacks plus artefacts for deployment then use a mixture of additional deployment and build tasks. Consider leveraging existing add-ons in the Bamboo ecosystem or making calls from Bamboo scripts to external APIs. There are plenty of different tools out there to choose from including some which have specific blue-green workflows.
  • 27. An interesting platform to investigate… https://fabric8.io/
  • 28. Let’s discuss blue-green deployment strategy…. (group discussion)
  • 29. So where to from here? Great question! Research whether blue-green is right for your SDLC and if so, start experimenting… Some useful links for additional reading, in particular, investigate how to use a “serverless” approach to trigger changes. http://martinfowler.com/bliki/BlueGreenDeployment.html https://www.thoughtworks.com/insights/blog/implementing-blue-green-deployments-aws https://botleg.com/stories/blue-green-deployment-with-docker/ http://dan.bravender.net/2014/8/24/Simple_0-Downtime_Blue_Green_Deployments.html https://marketplace.atlassian.com/plugins/org.gaptap.bamboo.cloudfoundry.cloudfoundry-plugin/server/overview https://www.youtube.com/watch?v=aX54mhZbN58 http://fbrnc.net/blog/2016/05/green-blue-deployments-with-aws-lambda-and-cloudformation
  • 30. Enjoy and share what you do…. I’m on Twitter: @dkcwd LinkedIn: https://au.linkedin.com/in/daveclarkprofile