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

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

Embed Size (px)

Citation preview

Continuous Delivery with Perforce Helix

Sven Erik KnopSenior Technical Specialist

2

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

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

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

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

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

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

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

Continuous Delivery Demo

9

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

11

Demo scenario

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

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

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

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

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

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

17

Three Key Habits for successful Continuous Delivery Collaboration Visibility Version Everything