SlideShare une entreprise Scribd logo
1  sur  17
Git & Continuous Deployment
Continuous Deployment
• The idea of pushing features as soon as it is
  “ready”
  – Potential of multiple deploys each day
  – Release features to customers faster
  – Reduces the number of features in a deploy
     • Problems in smaller deploys generally cause smaller
       problems
  – Requires better tools and architecture
A Proposed Workflow

Ready to deploy code
A Proposed Workflow

Ready to deploy code




 Listens for changes
A Proposed Workflow

Ready to deploy code
                         Code Change Triggers Build




 Listens for changes
A Proposed Workflow

Ready to deploy code
                            Code Change Triggers Build




 Listens for changes
                       Successful build triggers deploy script
We Already Have These


                           Code Change Triggers Build




Listens for changes
                      Successful build triggers deploy script
Code Isn’t Always Ready to Deploy
                       SVN requires tradeoffs to work with CD
                       1. Use SVN branching and merging…you’ll
                          pay in merge hell
Ready to deploy code   2. Only develop on trunk, but only commit
                          when your code is production ready . Not
                          reasonable!
Code Isn’t Always Ready to Deploy
                       SVN requires tradeoffs to work with CD
                       1. Use SVN branching and merging…you’ll
                          pay in merge hell
Ready to deploy code   2. Only develop on trunk, but only commit
                          when your code is production ready . Not
                          reasonable!



                          Git ties in perfectly for CD
                          • Excels at branching and merging
                          However…
                          1. 2nd Class Citizen on Windows
                          2. You have to learn how to use it…and
                             you’ll probably screw something up at
                             least once.
                          3. No decent tools to work with many
                             repos in 1 project...at least not on
                             windows
A Git Development Model
      Master

      Test

      Dev



1. A repo has a branch for each environment
  –     i.e. cre_data_tier would have 1 repo with 3 branches
2. The repo and branches are cloned onto your local
   machine
  –     every clone has a complete copy of the repo
3. Developers would only branch from and merge into Dev
Adding a New Feature
    Master

    Test

    Dev


  new-feature




1. Developer branches off Dev and commits to that
   branch.
But Wait! There’s a Production Bug!
    Master

    Test

    Dev
                hot-fix

  new-feature




1. Developer goes back to Dev and makes another
   branch.
But Wait! There’s a Production Bug!
          Master

          Test

          Dev
                          hot-fix

     new-feature

1.    The fix is merged into Dev.
2.    Assuming it is ok on Dev, The test admin merges the fix into Test.
3.    Assuming it is ok on Test, the production admin merges into
      Master.
     1.     If there are a lot of features waiting to be released to Test or Master
            the admin would “cherry-pick” the commit they want.
Disaster Averted…back to work
     Master

     Test

     Dev
                 hot-fix

   new-feature

• The developer can pickup where they left off with the
  new-feature branch
• Merge the finished feature into Dev
• It propagates down to Master
  No incomplete code goes into the deployment lines
A Proposed Workflow

Ready to deploy code
                            Code Change Triggers Build




 Listens for changes
                       Successful build triggers deploy script
Why?
• Why would we want to do continuous
  deployment, or why use Git?
  – Why?
    • Why?
       – Why?
          » Why?
Tools Needed
• A script to handle a multi-repo project
     – One branch command branches all repos, etc.
• An automated deploy script
• A way to tie commits to features and where they are in the deployment
  process (Ready for release, in Testing, etc)
     – If the admin needs to cherry pick a task he needs to know what commit goes with it.
     – If the admin is going to deploy whatever is ready, he needs to know what is ready.
• A central Git Repo
     – We could use a 3rd party(GitHub, etc) or deploy our own.
•   For continuous production deploys, we would need a clustered environment (no
    down time on deploy)
     – Then we would want clusters on Test and Dev too
• Most importantly, we need time to build and refine the processes and
  toolset….it will be a bumpy ride to begin with

Contenu connexe

Tendances

Open Source Collaboration With Git And Git Hub
Open Source Collaboration With Git And Git HubOpen Source Collaboration With Git And Git Hub
Open Source Collaboration With Git And Git Hub
Nick Quaranto
 
Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 
Git Workflow With Gitflow
Git Workflow With GitflowGit Workflow With Gitflow
Git Workflow With Gitflow
Josh Dvir
 

Tendances (20)

Git Ready! Workflows
Git Ready! WorkflowsGit Ready! Workflows
Git Ready! Workflows
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
Open Source Collaboration With Git And Git Hub
Open Source Collaboration With Git And Git HubOpen Source Collaboration With Git And Git Hub
Open Source Collaboration With Git And Git Hub
 
Branching Strategies For Git and Subversion
Branching Strategies For Git and SubversionBranching Strategies For Git and Subversion
Branching Strategies For Git and Subversion
 
Git introduction for Beginners
Git introduction for BeginnersGit introduction for Beginners
Git introduction for Beginners
 
Git essentials
Git essentialsGit essentials
Git essentials
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Trunk-Based Development
Trunk-Based DevelopmentTrunk-Based Development
Trunk-Based Development
 
Git workflows
Git workflowsGit workflows
Git workflows
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
 
Continuous Integration with Puppet
Continuous Integration with PuppetContinuous Integration with Puppet
Continuous Integration with Puppet
 
Git
GitGit
Git
 
My Git workflow
My Git workflowMy Git workflow
My Git workflow
 
Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching Strategy
 
Git Workflow With Gitflow
Git Workflow With GitflowGit Workflow With Gitflow
Git Workflow With Gitflow
 
Continuous integration in games development
Continuous integration in games developmentContinuous integration in games development
Continuous integration in games development
 
Git
GitGit
Git
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 

En vedette

Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
Mediacurrent
 

En vedette (7)

Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
Git Branching for Agile Teams
Git Branching for Agile TeamsGit Branching for Agile Teams
Git Branching for Agile Teams
 
Git workflows
Git workflowsGit workflows
Git workflows
 
git flow
git flowgit flow
git flow
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful Teams
 

Similaire à Git in Continuous Deployment

40 square's git workflow
40 square's git workflow40 square's git workflow
40 square's git workflow
Ruben Tan
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 

Similaire à Git in Continuous Deployment (20)

Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
Source control - what you need to know
Source control - what you need to knowSource control - what you need to know
Source control - what you need to know
 
40 square's git workflow
40 square's git workflow40 square's git workflow
40 square's git workflow
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
3DC Intro to Git Workshop
3DC Intro to Git Workshop3DC Intro to Git Workshop
3DC Intro to Git Workshop
 
Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020
 
Developer 1: Workflows And Code Management
Developer 1: Workflows And Code ManagementDeveloper 1: Workflows And Code Management
Developer 1: Workflows And Code Management
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and Economics
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
Development Environment Tips
Development Environment TipsDevelopment Environment Tips
Development Environment Tips
 
Topic production code
Topic production codeTopic production code
Topic production code
 

Dernier

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Git in Continuous Deployment

  • 1. Git & Continuous Deployment
  • 2. Continuous Deployment • The idea of pushing features as soon as it is “ready” – Potential of multiple deploys each day – Release features to customers faster – Reduces the number of features in a deploy • Problems in smaller deploys generally cause smaller problems – Requires better tools and architecture
  • 3. A Proposed Workflow Ready to deploy code
  • 4. A Proposed Workflow Ready to deploy code Listens for changes
  • 5. A Proposed Workflow Ready to deploy code Code Change Triggers Build Listens for changes
  • 6. A Proposed Workflow Ready to deploy code Code Change Triggers Build Listens for changes Successful build triggers deploy script
  • 7. We Already Have These Code Change Triggers Build Listens for changes Successful build triggers deploy script
  • 8. Code Isn’t Always Ready to Deploy SVN requires tradeoffs to work with CD 1. Use SVN branching and merging…you’ll pay in merge hell Ready to deploy code 2. Only develop on trunk, but only commit when your code is production ready . Not reasonable!
  • 9. Code Isn’t Always Ready to Deploy SVN requires tradeoffs to work with CD 1. Use SVN branching and merging…you’ll pay in merge hell Ready to deploy code 2. Only develop on trunk, but only commit when your code is production ready . Not reasonable! Git ties in perfectly for CD • Excels at branching and merging However… 1. 2nd Class Citizen on Windows 2. You have to learn how to use it…and you’ll probably screw something up at least once. 3. No decent tools to work with many repos in 1 project...at least not on windows
  • 10. A Git Development Model Master Test Dev 1. A repo has a branch for each environment – i.e. cre_data_tier would have 1 repo with 3 branches 2. The repo and branches are cloned onto your local machine – every clone has a complete copy of the repo 3. Developers would only branch from and merge into Dev
  • 11. Adding a New Feature Master Test Dev new-feature 1. Developer branches off Dev and commits to that branch.
  • 12. But Wait! There’s a Production Bug! Master Test Dev hot-fix new-feature 1. Developer goes back to Dev and makes another branch.
  • 13. But Wait! There’s a Production Bug! Master Test Dev hot-fix new-feature 1. The fix is merged into Dev. 2. Assuming it is ok on Dev, The test admin merges the fix into Test. 3. Assuming it is ok on Test, the production admin merges into Master. 1. If there are a lot of features waiting to be released to Test or Master the admin would “cherry-pick” the commit they want.
  • 14. Disaster Averted…back to work Master Test Dev hot-fix new-feature • The developer can pickup where they left off with the new-feature branch • Merge the finished feature into Dev • It propagates down to Master No incomplete code goes into the deployment lines
  • 15. A Proposed Workflow Ready to deploy code Code Change Triggers Build Listens for changes Successful build triggers deploy script
  • 16. Why? • Why would we want to do continuous deployment, or why use Git? – Why? • Why? – Why? » Why?
  • 17. Tools Needed • A script to handle a multi-repo project – One branch command branches all repos, etc. • An automated deploy script • A way to tie commits to features and where they are in the deployment process (Ready for release, in Testing, etc) – If the admin needs to cherry pick a task he needs to know what commit goes with it. – If the admin is going to deploy whatever is ready, he needs to know what is ready. • A central Git Repo – We could use a 3rd party(GitHub, etc) or deploy our own. • For continuous production deploys, we would need a clustered environment (no down time on deploy) – Then we would want clusters on Test and Dev too • Most importantly, we need time to build and refine the processes and toolset….it will be a bumpy ride to begin with