continuous integration in genentech & roche development

29
Continuous Integration in Genentech & Roche development Two different approaches for SFDC development process Radoslaw Krawiec, Roche, SFDC Specialist Software Development Lukasz Kaczmarek, Roche, SFDC Senior Specialist Software Development

Upload: salesforce-developers

Post on 20-May-2015

209 views

Category:

Technology


0 download

DESCRIPTION

Join us as we discuss how Continuous Integration is implemented in Roche where over 60 Salesforce developers work in over 20 projects on multiple, dedicated sandboxes. We use standard mechanisms, such as SVN, Bamboo deployments and test execution, common integration sandbox, and dedicated Salesforce Orgs for developers. Furthermore, we create custom tools based on Heroku/Metadata API that handle org-independent Apex Job scheduling, Apex deployment script execution, change tracking, and automatic package creation.

TRANSCRIPT

Page 1: Continuous Integration in Genentech & Roche Development

Continuous Integration in Genentech & Roche developmentContinuous Integration in Genentech & Roche development

Two different approaches for SFDC development process

Radoslaw Krawiec, Roche, SFDC Specialist Software Development

Lukasz Kaczmarek, Roche, SFDC Senior Specialist Software Development

Page 2: Continuous Integration in Genentech & Roche Development

Radoslaw KrawiecRadoslaw Krawiec

SFDC Specialist Software DevelopmentSFDC Specialist Software Development

Page 3: Continuous Integration in Genentech & Roche Development

Lukasz KaczmarekLukasz Kaczmarek

SFDC Senior Specialist Software DevelopmentSFDC Senior Specialist Software Development

Page 4: Continuous Integration in Genentech & Roche Development

Agenda

• Roche and Genentech Overview

• Roche and Genentech Environments

• Deployment Process Differences

• Continuous Integration

• OrgStats

• External Job Scheduler

• Static Code Analyzer

Page 5: Continuous Integration in Genentech & Roche Development

All about Roche & Genentech

„Doing now what patients need next”

http://www.roche.comhttp://www.gene.com

Page 6: Continuous Integration in Genentech & Roche Development

All about Roche & Genentech

Pharmaceuticals

Diagnostics

http://www.roche.comhttp://www.gene.com

Page 7: Continuous Integration in Genentech & Roche Development

All about Roche & Genentech

Pharmaceuticals

http://www.roche.comhttp://www.gene.com

Page 8: Continuous Integration in Genentech & Roche Development

All about Roche & Genentech

Diagnostics

http://www.roche.comhttp://www.gene.com

Page 9: Continuous Integration in Genentech & Roche Development

Genentech environment

Second biggest SFDC implementation

Approximately 40 projects and modules in Production

Development of 10 projects in a time

40 developers on 3 different continents 

20 million characters of Apex Code in dev sandbox

3500 Apex Classes

1500 VF pages

Page 10: Continuous Integration in Genentech & Roche Development

Genentech environment

850 Custom Objects (+130 Custom Settings)

400 Triggers

400 Custom Tabs

200 profiles

4 000 internal users 

20 000 external user

Page 11: Continuous Integration in Genentech & Roche Development

Roche environment

Seven SFDC production organizations (e.g. Europe, Asia, Latin America).

They have in total:

25 full sandboxes, 27 config. sandboxes, 150 dev. sandboxes

Approximately 15 projects in Production

Development of 7 projects in a time

50 developers located in 4 countries (90% in Poland)

19 million characters of Apex Code

4200 Apex Classes

1860 VF pages

Page 12: Continuous Integration in Genentech & Roche Development

Roche environment

Seven SFDC production organizations (e.g. Europe, Asia, etc).

They have in total:

1200 Custom Objects (+65 Custom Settings)

760 Triggers

290 Custom Tabs

110 profiles

26 000 active users

Page 13: Continuous Integration in Genentech & Roche Development

Deployment process

GenentechGenentech

RocheRoche

multi-time zone workno dedicated sandboxes for developers

! conflict management

multi-time zone workdedicated developer sandboxes

! conflict management

installation procedure documents

ANT packages manual configuration

custom apps

Subversion control (Jira, Fisheye, Crucible)

Continuous Integration

Selenium manual steps

custom apps

Page 14: Continuous Integration in Genentech & Roche Development

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

Page 15: Continuous Integration in Genentech & Roche Development

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

Page 16: Continuous Integration in Genentech & Roche Development

Selenium manual steps

Page 17: Continuous Integration in Genentech & Roche Development

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

Page 18: Continuous Integration in Genentech & Roche Development

OrgStats

Repository Synchronization

Repository Synchronization

Change ScannerChange Scanner

Search / OverviewSearch / Overview

Package BuilderPackage Builder

Code ComparisonCode Comparison

Conflict DetectionConflict Detection

Development environments

Development environments

Administrative Tool for assisting deployments

OrgStats tools

Salesforce SOAP/REST API

Salesforce SOAP/REST API

SalesforceOrg I

SalesforceOrg II

Page 19: Continuous Integration in Genentech & Roche Development

Orgstats

Name (wildcards) Type Modification date User Label Content

Choose one or more items

Compare with other orgs Download Add label View Static code analysis

Find by criteriaFind by criteria

SelectSelect

ProcessProcess

Search feature

Page 20: Continuous Integration in Genentech & Roche Development
Page 21: Continuous Integration in Genentech & Roche Development

Static code analyzer

Package.xmlPackage.xml

Static Code Analyzer

(Java app on Heroku)

Static Code Analyzer

(Java app on Heroku)

OrgStatsOrgStats

Analyze Results (PDF/HTML)

Analyze Results (PDF/HTML)

Input file

Apex/VF Page parser

Apex/VF Page parser

Rules Set engine

Rules Set engine

Salesforce ORG

Get metadata components

Retrieved metadata components

Metadata components body

Code parsed to XML nodes

Output report file

Tool for checking coding standards

Page 22: Continuous Integration in Genentech & Roche Development

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

Page 23: Continuous Integration in Genentech & Roche Development

External Job Scheduler

REST service

REST service

Job registration service

Apex Job IApex Job I

Apex Job IIApex Job II

Apex Job IApex Job I

External Job Scheduler

External Job Scheduler

Salesforce Org I

Salesforce Org I

Salesforce Org II

Salesforce Org II

Avoiding Bamboo build problems through external job callouts

Page 24: Continuous Integration in Genentech & Roche Development

Lukasz KaczmarekLukasz Kaczmarek

[email protected]

Radoslaw KrawiecRadoslaw Krawiec

[email protected]

Page 25: Continuous Integration in Genentech & Roche Development
Page 26: Continuous Integration in Genentech & Roche Development

Slide parts

Page 27: Continuous Integration in Genentech & Roche Development

Slide parts

Page 28: Continuous Integration in Genentech & Roche Development

Slide parts

Page 29: Continuous Integration in Genentech & Roche Development

Slide parts