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.
Driving Behavioral Change for Information Management through Data-Driven Gree...
Continuous Integration in Genentech & Roche Development
1. 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
4. Agenda
• Roche and Genentech Overview
• Roche and Genentech Environments
• Deployment Process Differences
• Continuous Integration
• OrgStats
• External Job Scheduler
• Static Code Analyzer
5. All about Roche & Genentech
„Doing now what patients need next”
http://www.roche.com
http://www.gene.com
6. All about Roche & Genentech
Pharmaceuticals
Diagnostics
http://www.roche.com
http://www.gene.com
7. All about Roche & Genentech
Pharmaceuticals
http://www.roche.com
http://www.gene.com
8. All about Roche & Genentech
Diagnostics
http://www.roche.com
http://www.gene.com
9. 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
11. 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
12. 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
13. Deployment process
Genentech
Genentech
ANT packages
manual configuration
multi-time zone work
no dedicated sandboxes
for developers
conflict management
!
!
custom apps
Subversion control (Jira, Fisheye, Crucible)
Roche
Roche
multi-time zone work
installation procedure
documents
Continuous Integration
dedicated developer
sandboxes
Selenium manual steps
conflict management
custom apps
18. OrgStats
Administrative Tool for assisting deployments
Development
environments
OrgStats tools
Change Scanner
Change Scanner
Salesforce
Org I
Salesforce
Org II
Salesforce
Salesforce
SOAP/REST API
SOAP/REST API
Package Builder
Package Builder
Search / /Overview
Search Overview
Conflict Detection
Conflict Detection
Repository
Repository
Synchronization
Synchronization
Code Comparison
Code Comparison
19. Orgstats
Search feature
Find by criteria
Find by criteria
Select
Select
Process
Process
Name (wildcards)
Type
Modification date
User
Label
Content
Choose one or more items
Compare with other orgs
Download
Add label
View
Static code analysis
20.
21. Static code analyzer
Tool for checking coding standards
Package.xml
Package.xml
Input file
OrgStats
OrgStats
Metadata
components
body
Static Code
Static Code
Analyzer
Analyzer
(Java app on Heroku)
(Java app on Heroku)
Get metadata
components
Retrieved
metadata
components
Salesforce ORG
Output
report file
Analyze Results
Analyze Results
(PDF/HTML)
(PDF/HTML)
Apex/VF Page
Apex/VF Page
parser
parser
Rules Set
Rules Set
engine
engine
Code
parsed
to XML
nodes
23. External Job Scheduler
Avoiding Bamboo build problems through external job callouts
Salesforce
Salesforce
Org I I
Org
Apex Job I I
Apex Job
Apex Job II
Apex Job II
REST
service
Job registration
service
Salesforce
Salesforce
Org II
Org II
Apex Job I I
Apex Job
REST
service
External Job
External Job
Scheduler
Scheduler