Git into the Flow
​ Ike DeLorenzo (product manager) & Mark Pundsack (engineering manager)
​ ike@heroku.com & mp@heroku.com
Ultimate Continuous Delivery Workflow on Heroku
On “Continuous Delivery”
A modern way to move small, manageable, testable changes
from development to production
Continuous Delivery
​ A software development, product, and business philosophy
If Agile software development was the
opening act to a great performance,
Continuous Delivery is the headliner …
connecting business strategy with business
results. It will help you increase reliability,
reduce risks, and decrease costs.
Forrester Research
“Continuous Delivery Is Reshaping The Future Of ALM” (2015)
​ Continuous Integration:
​  Build and automated-test new software after each small code change
​  Enabled by: Circle, Travis, Jenkins, Codeship
Continuous Delivery:
​  Deploy (or “ship”) software to users after each small change.
​  Enabled by: Heroku (Pipelines), ALM vendors, homegrown solutions
Complementary techniques for rapid product development
Continuous Integration and Continuous Delivery
It’s all about supporting natural business workflow
​ Previously siloed dev tools and project teams are now tightly integrated
Traditionally Now
DevTools •  Separate, siloed tools
•  Manual flow between stages
•  Discontinuous flow or large blocks of work
•  Linked, integrated tools
•  Automatic flow between stages
•  Continuous flow of small blocks of
work
DevOps •  Larger siloed teams (eng, ops, design, PM)
•  Periodic communication
•  One smaller unified team
•  Frequent/constant communication
Meet the players:
Heroku,
GitHub,
and Git
The technologies and concepts, and the goal.
Git interest and adoption
​ Surging by all measures, and with good reason
Search term
trends
Growth
vs. alternatives
Questions on
Stack Overflow
Job listings
Modern code storage, versioning, basic workflow support
•  “Repository” or “repo” is base code storage object.
•  “Distributed”: everyone has a copy of the full historical “repo”
•  “Branches” for features (simple and fast)
•  “Merge” feature branches into “master” codebase (also easy)
•  Large developer user base makes it a de-facto standard.
​ Open-source “distributed” version control
Git
​ Git-based product & “social-coding” network
GitHub
Extends Git in meaningful ways
•  “Pull requests” code review for branches
•  Nice web-based UX, and now desktop UX
•  CI (Travis, Circle) integrations, CD integrations (Heroku )
•  Team-oriented, Organization-oriented
•  Large developer user base (9 MM) makes it a de-facto
standard.
•  It is the largest host of source code in the world.
Extends Git and GitHub in meaningful ways
•  `$ git push heroku master`, our original deploy interface
•  Deploy (automatically) on GitHub push
•  Create Review Apps for “Pull requests”
•  Nice web-based UX: test, track, manage deployments
•  Team-oriented, Organization-oriented
•  Large developer user base makes it a de-facto standard.
​ PaaS with Salesforce Integration
Heroku
Heroku Flow
​ Continous delivery with pipelines
Demo:
Software development & delivery
A best-practices workflow for developers, using Git/GitHub and Heroku
Yes, testing and code review advantages are important
(ok, let’s quickly recap a couple, e.g.) ….
Testing is rapid, efficient, and progressively exhaustive with a pipeline
Better testing = Better software
where who code tests
Developer
environment
Developer Branch Human evaluation,
Some automated tests,
Local data
Pipeline:
Review apps
Full team Branch Human evaluation,
Some automated tests,
Sanitized data
Pipeline:
Staging app
Full team Production Human evaluation,
Full automated tests,
Sanitized data
Pipeline:
Production
app
Real world
users
Production Real user evaluation,
Full automated tests,
Production data
Opening up code review to the whole product team
with Review Appswithout Review Apps
… but continuous delivery is really about transforming
the way we build software
•  Lowers risk for innovation, features, and fixes
•  Allows for frequent market feedback: better product-market fit
•  Empowers the team itself, and conserves human labor
•  Yields better quality software, released faster
•  Provides for more timely, predictable releases
Questions?
Ike : ike@heroku.com
Mark: mp@heroku.com
Or ask us on Twitter: @heroku
*Credits
Heroku flow feature set
​ With great thanks to all of the Heroku “DevEx” Developer Experience engineering team led by
​ Mark Pundsack
​ Andy Appleton
​ Guðmundur Bjarni Ólafsson
​ Hector Simpson
Share Your Feedback, and Win a GoPro!
3
Earn a GoPro prize entry for
each completed survey
Tap the bell to take a
survey2Enroll in a session1
​ End

Git into the Flow, with the Ultimate Continuous Delivery Workflow on Heroku

  • 1.
    Git into theFlow ​ Ike DeLorenzo (product manager) & Mark Pundsack (engineering manager) ​ ike@heroku.com & mp@heroku.com Ultimate Continuous Delivery Workflow on Heroku
  • 2.
    On “Continuous Delivery” Amodern way to move small, manageable, testable changes from development to production
  • 3.
    Continuous Delivery ​ A softwaredevelopment, product, and business philosophy If Agile software development was the opening act to a great performance, Continuous Delivery is the headliner … connecting business strategy with business results. It will help you increase reliability, reduce risks, and decrease costs. Forrester Research “Continuous Delivery Is Reshaping The Future Of ALM” (2015)
  • 4.
    ​ Continuous Integration: ​  Buildand automated-test new software after each small code change ​  Enabled by: Circle, Travis, Jenkins, Codeship Continuous Delivery: ​  Deploy (or “ship”) software to users after each small change. ​  Enabled by: Heroku (Pipelines), ALM vendors, homegrown solutions Complementary techniques for rapid product development Continuous Integration and Continuous Delivery
  • 5.
    It’s all aboutsupporting natural business workflow ​ Previously siloed dev tools and project teams are now tightly integrated Traditionally Now DevTools •  Separate, siloed tools •  Manual flow between stages •  Discontinuous flow or large blocks of work •  Linked, integrated tools •  Automatic flow between stages •  Continuous flow of small blocks of work DevOps •  Larger siloed teams (eng, ops, design, PM) •  Periodic communication •  One smaller unified team •  Frequent/constant communication
  • 6.
    Meet the players: Heroku, GitHub, andGit The technologies and concepts, and the goal.
  • 7.
    Git interest andadoption ​ Surging by all measures, and with good reason Search term trends Growth vs. alternatives Questions on Stack Overflow Job listings
  • 8.
    Modern code storage,versioning, basic workflow support •  “Repository” or “repo” is base code storage object. •  “Distributed”: everyone has a copy of the full historical “repo” •  “Branches” for features (simple and fast) •  “Merge” feature branches into “master” codebase (also easy) •  Large developer user base makes it a de-facto standard. ​ Open-source “distributed” version control Git
  • 9.
    ​ Git-based product &“social-coding” network GitHub Extends Git in meaningful ways •  “Pull requests” code review for branches •  Nice web-based UX, and now desktop UX •  CI (Travis, Circle) integrations, CD integrations (Heroku ) •  Team-oriented, Organization-oriented •  Large developer user base (9 MM) makes it a de-facto standard. •  It is the largest host of source code in the world.
  • 10.
    Extends Git andGitHub in meaningful ways •  `$ git push heroku master`, our original deploy interface •  Deploy (automatically) on GitHub push •  Create Review Apps for “Pull requests” •  Nice web-based UX: test, track, manage deployments •  Team-oriented, Organization-oriented •  Large developer user base makes it a de-facto standard. ​ PaaS with Salesforce Integration Heroku
  • 11.
  • 12.
    Demo: Software development &delivery A best-practices workflow for developers, using Git/GitHub and Heroku
  • 13.
    Yes, testing andcode review advantages are important (ok, let’s quickly recap a couple, e.g.) ….
  • 14.
    Testing is rapid,efficient, and progressively exhaustive with a pipeline Better testing = Better software where who code tests Developer environment Developer Branch Human evaluation, Some automated tests, Local data Pipeline: Review apps Full team Branch Human evaluation, Some automated tests, Sanitized data Pipeline: Staging app Full team Production Human evaluation, Full automated tests, Sanitized data Pipeline: Production app Real world users Production Real user evaluation, Full automated tests, Production data
  • 15.
    Opening up codereview to the whole product team with Review Appswithout Review Apps
  • 16.
    … but continuousdelivery is really about transforming the way we build software •  Lowers risk for innovation, features, and fixes •  Allows for frequent market feedback: better product-market fit •  Empowers the team itself, and conserves human labor •  Yields better quality software, released faster •  Provides for more timely, predictable releases
  • 17.
    Questions? Ike : ike@heroku.com Mark:mp@heroku.com Or ask us on Twitter: @heroku
  • 18.
    *Credits Heroku flow featureset ​ With great thanks to all of the Heroku “DevEx” Developer Experience engineering team led by ​ Mark Pundsack ​ Andy Appleton ​ Guðmundur Bjarni Ólafsson ​ Hector Simpson
  • 19.
    Share Your Feedback,and Win a GoPro! 3 Earn a GoPro prize entry for each completed survey Tap the bell to take a survey2Enroll in a session1
  • 20.