continuous integration for salesforce1 platform

32
CONTINUOUS INTEGRATION ON THE SALESFORCE1 PLATFORM Kevin Gee Director of Product Management TechSophy, Inc.

Upload: techsophy-inc

Post on 24-Jun-2015

292 views

Category:

Software


1 download

DESCRIPTION

AutoRABIT automates the process of building, testing, and deploying software on the Salesforce1 Platform. It includes powerful metadata management and automation tools. These tools can be used alone or as part of a complete Continuous Integration & Deployment procesess

TRANSCRIPT

Page 1: Continuous Integration for Salesforce1 Platform

CONTINUOUS INTEGRATION ON THE SALESFORCE1 PLATFORM

Kevin GeeDirector of Product Management

TechSophy, Inc.

Page 2: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

The Problem

• Too many administrators• Lack of coordination• Changes made directly in production• Mostly manual steps for deployment• Manual testing with limited test coverage• Multiple production orgs with no common

code

…SLOW RELEASE VELOCITY

Page 3: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Manual Process with Slow Release Velocity

Manual Release Process

Quarterly release

17 member deployment team

11 day deployment time

40 page deployment process

Page 4: Continuous Integration for Salesforce1 Platform

DEMO: SANDBOX TO PRODUCTIONWITH CONTINUOUS DEPLOYMENT

Page 5: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

24X Increase in Release Velocity

Manual Release Process Continuous Deployment

Quarterly release 2X weekly

17 member deployment team 3 member deployment team

11 day deployment time 1 day deployment time

40 page deployment process 4 page deployment process

Page 6: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Manual Build Process

Longer Manual Test Cycle

Longer Manual Deployment

Process

More Changes in Build

Page 7: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Accelerated Build Process

Longer Manual Test Cycle

Longer Manual Deployment

Process

More Changes in Build

Automate Testing

Automate Deployment

Fewer Changes per Build

Page 8: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Continuous Deployment

Version Control Build Test Track Deploy

Changes can go from Dev to Production using automated pipeline

Philosophy is automate and coordinate as much as possible

Plan

Page 9: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Continuous Deployment

Version Control Build Test Track Deploy

Changes can go from Dev to Production using automated pipeline

Plan

Page 10: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

First Step: Change Management

• Change Management Team– Functional Leaders– Business Analysts– Technical Architects– Power Users

• Release Management Strategy– What is allowed in each branch– Who is allowed to make changes where

Page 11: Continuous Integration for Salesforce1 Platform

Production

Test

Feature A

Feature B

Feature C

Dev Dev Dev Dev Dev Dev DevDev

Feature Team A

Feature Team B Feature Team C

BranchingStrategy

Tests

Tests

Tests

Release Management Strategy

Page 12: Continuous Integration for Salesforce1 Platform

Production

Test

Feature A

Feature B

Feature C

Dev Dev Dev Dev Dev Dev DevDev

Feature Team A

Feature Team B Feature Team C

BranchingStrategy

Tests

Tests

Tests

Release Management Strategy

Page 13: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Version Control Demo

Version Control Build Test Track Deploy

• Changes can be rolled back• Changes are grouped by branch to minimize

conflicts• Treat metadata as code

Plan

Page 14: Continuous Integration for Salesforce1 Platform

Production

Trunk(Test Org)

Feature A

Feature B

Use Version Control Tool to Implement Branching Strategy

Page 15: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Automated Build Demo

Version Control Build Test Track Deploy

Build on commitScheduled builds

Manual builds

Plan

Page 16: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Automated Builds

Page 17: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Automated Testing Demo

Version Control Build Test Track Deploy

Changes get promoted when they pass automated tests

Plan

• Unit test• Functional Test• User Acceptance Test

Page 18: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Reporting

Version Control Build Test Track Deploy

Reporting and Dashboard forTeam and Key Decision makers

Plan

Page 19: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Dashboard

Page 20: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Automated Deployment Demo

Version Control Build Test Track Deploy

Deploy vertically from Sandbox to ProductionDeploy horizontally from Sandbox to Sandbox

Plan

Page 21: Continuous Integration for Salesforce1 Platform

HOW DO WE GET THERE FROM HERE?

Page 22: Continuous Integration for Salesforce1 Platform

Level Build Process Environments and Deployment

Testing Reporting

Level 4 • All build issues addressed through automation

• Continuous deployment to production• Feature sandboxes• Automated provisioning

• 100% code coverage• All testing automated• Code tested against large

number of potential configurations

• Real-time visibility

Level 3 • Triggered builds• Code, meta-data,

documentation, requirements subject to version control

• Separate Dev, Test, and Prod environments• Single button

deployment

• Very high test coverage• Test interaction between

code, meta-data, and data• Users create automated

test scripts

• Report trend analysis

Level 2 • Build on commit• Dependencies

managed

• Standardized deployment process• Full Sandbox• Selective Promote,

Change sets• Some automated

deployment

• Automated daily functional tests

• On-demand reporting

Level 1 • Source control utilized• Automated build

process

• Documented deployment process• Defined branching

strategy

• Large amounts of testing done at build

• Reports visible to entire team

Level 0 • Manual or semi-manual build process

• Changes made directly to Production

• Manual or no testing • Status visible only to individual developer

Page 23: Continuous Integration for Salesforce1 Platform

Level Build Process Environments and Deployment

Testing Reporting

Level 4 • All build issues addressed through automation

• Continuous deployment to production• Feature sandboxes• Automated provisioning

• 100% code coverage• All testing automated• Code tested against large

number of potential configurations

• Real-time visibility

Level 3 • Triggered builds• Code, meta-data,

documentation, requirements subject to version control

• Separate Dev, Test, and Prod environments• Single button

deployment

• Very high test coverage• Test interaction between

code, meta-data, and data• Users create automated

test scripts

• Report trend analysis

Level 2 • Build on commit• Dependencies

managed

• Standardized deployment process• Full Sandbox• Selective Promote,

Change sets• Some automated

deployment

• Automated daily functional tests

• On-demand reporting

Level 1 • Source control utilized• Automated build

process

• Documented deployment process• Defined branching

strategy

• Large amounts of testing done at build

• Reports visible to entire team

Level 0 • Manual or semi-manual build process

• Changes made directly to Production

• Manual or no testing • Status visible only to individual developer

Page 24: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Single Org Manual Process

• Single Production Org• Multiple Admins• Manual Build Process

• Change Management• Version Control,

Central Repository• Automate Testing

Page 25: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Multiple Org Manual Process

• Multiple Production Orgs

• Multiple Admins• Manual Build Process• Desire to Consolidate

• Change Management• Version Control,

Central Repository• Automate Testing

Page 26: Continuous Integration for Salesforce1 Platform

Initial Stateof System

The Challenge is Greater when Migrating Changes between Very Different Orgs

Change B Metadata B

Change AMetadata A

Page 27: Continuous Integration for Salesforce1 Platform

Initial Stateof System

The Challenge is Greater when Migrating Changes between Very Different Orgs

Change B Metadata B

Change AMetadata A

Page 28: Continuous Integration for Salesforce1 Platform

Initial Stateof System

The Challenge is Greater when Migrating Changes between Very Different Orgs

Change B Metadata B

Change AMetadata A

THERE ARE KNOWN SOLUTIONS TO THIS

PROBLEM

Page 29: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Multiple Org Manual Process

• Multiple Production Orgs

• Multiple Admins• Manual Build Process• Desire to Consolidate

• Change Management• Version Control, Central

Repository• Automate Testing• Designate One Org as

Trunk• Gradually add other

Features to Trunk• Migrate Users and Data

when Trunk meets Requirements

Page 30: Continuous Integration for Salesforce1 Platform

Trunk

Test

Feature A

Feature B

Feature C

Dev Dev Dev Dev Dev Dev DevDev

Feature Team A

Feature Team B Feature Team C

BranchingStrategy

Tests

Tests

Tests

Release Management Strategy:Gradually Migrate Features from Other Orgs into Trunk

Org C

Page 31: Continuous Integration for Salesforce1 Platform

Release Management Streamlined Confidential AutoRABIT (Rapid Automated Build Install & Test)

Continuous Deployment

Manual Release Process Continuous Deployment

Quarterly release 2X weekly

17 member deployment team 3 member deployment team

11 day deployment time 1 day deployment time

40 page deployment process 4 page deployment process

Version Control Build Test Track DeployPlan

24X Improvement in Release Velocity vs Manual Deployment

Page 32: Continuous Integration for Salesforce1 Platform

Q&A

#[email protected]