Upload
salesforce-developers
View
554
Download
0
Embed Size (px)
Citation preview
Git into the Flow
Ike DeLorenzo (product manager) & Mark Pundsack (engineering manager) [email protected] & [email protected]
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 Apps without 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
*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 survey 2Enroll in a session 1
End