continuous integration in genentech & roche development

Post on 20-May-2015

198 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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

Radoslaw KrawiecRadoslaw Krawiec

SFDC Specialist Software DevelopmentSFDC Specialist Software Development

Lukasz KaczmarekLukasz Kaczmarek

SFDC Senior Specialist Software DevelopmentSFDC Senior Specialist Software Development

Agenda

• Roche and Genentech Overview

• Roche and Genentech Environments

• Deployment Process Differences

• Continuous Integration

• OrgStats

• External Job Scheduler

• Static Code Analyzer

All about Roche & Genentech

„Doing now what patients need next”

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

All about Roche & Genentech

Pharmaceuticals

Diagnostics

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

All about Roche & Genentech

Pharmaceuticals

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

All about Roche & Genentech

Diagnostics

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

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

Genentech environment

850 Custom Objects (+130 Custom Settings)

400 Triggers

400 Custom Tabs

200 profiles

4 000 internal users 

20 000 external user

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

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

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

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

Selenium manual steps

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

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

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

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

Continuous IntegrationProcess setup and structure

Development Quality check Validation and deployment

DEV

DEVSVNSVN

DEV

SeleniumSelenium

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

Lukasz KaczmarekLukasz Kaczmarek

lukasz.kaczmarek@roche.com

Radoslaw KrawiecRadoslaw Krawiec

radoslaw.krawiec@roche.com

Slide parts

Slide parts

Slide parts

Slide parts

top related