Top Banner
Continuous Delivery with Perforce Helix Sven Erik Knop Senior Technical Specialist
17

Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & Better

Feb 18, 2017

Download

Technology

Perforce
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

Continuous Delivery with Perforce Helix

Sven Erik KnopSenior Technical Specialist

Page 2: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

2

Agenda Overview of Continuous Delivery Best practices for success Common Tools and Technologies Demo

Page 3: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

3

Can’t we just do what we currently do only faster?

Lack of communication between teams Each team uses a different data repository Environments can be substantially different Software deployed in different ways for each environment

Dev QAPre

Production Production

Page 4: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

4

Continuous Delivery Deliver working product to users as quickly as possible Every change (check-in) leads to a potential release Give business the option to release

– what, when, to whom A change in process, and cultureContinuous Delivery

4

P I P E L I N E Reqs Dev Test Integrate Deploy

Page 5: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

C O O R D I N A T E A S S E T S(code, scripts, artwork, binaries, etc.)

C O O R D I N A T E T E A M S(design, dev, release, devops, etc.)

P I P E L I N E

Best practices for successTeam Collaboration Flexible Workflow Complete Visibility

Detailed HistoryUniversal SecurityVersion Everything

Page 6: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

6

Perforce enables Continuous Delivery

Developer Collaboration

Swarm

Design Collaboration

Commons

DevelopmentAnalytics

Insights

Perforce Version Management

100s of Terabytes Globally Distributed DVCS Any File Type

DEV

DEV

HQ

MFG

End-to-end Collaboration

Unified Asset Versioning

P I P E L I N E Reqs Dev Test Integrate Deploy

Page 7: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

7

Common Terminology and ToolsTerm Description Related tools

Artifact Any type of file associated with a product. Could be code, artwork, design documents, binary build output plus many others.

Version control

Trunk based development

Artifacts always checked into trunk. Software can be released from branches or directly from trunk.

Version control

Continuous Integration

The practice of building and testing code each time code is checked in and integrated. Necessary for Continuous Delivery.

Jenkins, TeamCity, Bamboo, Electric Commander, Circle CI, Travis CI

Infrastructure as code

Environment and server configuration is defined as code, commonly in a tool specific DSL. Configurations are applied to servers to build environments.

Puppet, Chef, Ansible, Salt, CFEngine

Deployment Automation

Tools that enable applications to be modeled along with environments for deployment. The models are then used to deploy applications. Can be used in conjunction with infrastructure as code.

IBM UrbanCode Deploy, Nolio, Electric Flow,Puppet, Chef, Ansible, Salt, CFEngine

7

Page 8: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

8

Tools Usage in Continuous DeliveryDev QA Pre

Production Production

Auto Auto Manual

Version Control

Version Control

Version Control

Version Control

Continuous Integration

Infrastructure as code

Infrastructure as code

Infrastructure as code

Deployment Automation

Deployment Automation

Deployment Automation

Test Automation

Test Automation Test Automation

Page 9: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

Continuous Delivery Demo

9

Page 10: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

10

Demo environment

VM stores• Helix P4D for code and artifacts• Helix Swarm for review • Jenkins for pipeline

Docker image for Jpetstore is deployed to QA and Production environments

Page 11: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

11

Demo scenario

Edit the slider to include two more photos and deliver to production using the Continuous Delivery pipeline

Page 12: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

12

Our pipeline

• Application checked out, built and checked back in and labeled

• Artifacts retrieved from Perforce and build into docker container and checked back in

• Docker container deployed to QA for testing

• Docker container deployed to production for testing

Auto Auto Manual

Page 13: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

13

Versioning pipeline artifactsPerforce can store data of any type and size. In this demo scenario

• Application Source• SQL Scripts• Graphics Files• Build Artifacts• Deployment images• Environment Definitions• Infrastructure as code

Page 14: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

14

Developer workflow Working with files is optimized for Continuous Delivery

• Select stream to work from and start working• Sync only the content needed for a task• Code committed to trunk

Page 15: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

15

Continuous code reviews• Pre and post-commit code

(& doc) reviews across lifecycle

• Inline conversations and diffs

• Built-in hooks for pre-flight testing and deployment

• Dashboard for continuous delivery across multiple projects

• Across Git and Perforce

Page 16: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

16

Successful Implementation of a Continuous Delivery Pipeline

High velocity build, test and deploy lifecycle Increased developer onus, unbreakable builds No room for “it works on my machine” Builds tested on production like environments Deployment to internal or external users

Integrate Build Test Deploy Release

Version Control

Page 17: Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & Better

17

Three Key Habits for successful Continuous Delivery Collaboration Visibility Version Everything