SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Jenkins User Conference       San Francisco, Sept 30 2012   #jenkinsconf


       Testing Salesforce at Cloud Scale


                     Thomas Kim
                     @tksfz


                     Greg Wester
                     @gwestr
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Agenda

    •  History of CI at Salesforce
    •  Adding elasticity with public clouds
    •  Reducing cycle time with Jenkins-CI
    •  Jenkins Everywhere
Jenkins User Conference         San Francisco, Sept 30 2012   #jenkinsconf



   Continuous Testing at Salesforce

    •  Multi-million line code base
    •  Several major branches
    •  200,000 tests
         o    Mostly in-appserver functional tests
    •  ~3000 hours serialized runtime
    •  Autobuilds - home-grown system
    •  2000 VM's
    •  Hundreds of changelists per day (Perforce)
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Luna
Jenkins User Conference    San Francisco, Sept 30 2012      #jenkinsconf



   Autobuild System Design



                                    Autobuild Runner
                                     Autobuild Runner
       luna                            Autobuild Runner
                 luna db                 Autobuild Runner
       web




                                     Assignment Runner




                    p4
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Test Failure Correlation

   - Changelists are batched together
   - Tests that fail are re-executed against the
     skipped changelists
Jenkins User Conference                   San Francisco, Sept 30 2012        #jenkinsconf



   VM Provisioning

                                                              VMware
                                                           infrastructure


                                                 Autobuild Runner
luna                                              Autobuild Runner
                                                    Autobuild Runner
web         luna db                                   Autobuild Runner


                                                        VMware API




                      Assignment Runner
                                                                 VM Pool Manager



       p4
Jenkins User Conference                San Francisco, Sept 30 2012         #jenkinsconf



   Autobuilds in the Cloud

                                                                EC2


                                                  Autobuild Runner
   luna                                            Autobuild Runner
                                                     Autobuild Runner
   web         luna db                                 Autobuild Runner


                                                           AWS API




                         Assignment Runner
                                                                     EC2 Poolboy



          p4
Jenkins User Conference       San Francisco, Sept 30 2012   #jenkinsconf



   VM Provisioning Part II

    •    Static allocation

    •    Dynamic allocation

    •    Predictive allocation

    •    Elastic allocation
Jenkins User Conference       San Francisco, Sept 30 2012   #jenkinsconf



   Selenium

  •    Spawns a 2nd VM running Windows
  •    RemoteWebDriver -> IE6,7,8,9; Firefox;
       Chrome; Safari
  •    Selenium Browser Compatibility suite
  •    35,000 UI tests; some Selenium1 debt
  •    Tricky trifecta:
       o    Chrome releases every 6 weeks
       o    Firefox releases every 6 weeks; 3 week stagger
       o    Selenium library updates
  •    Selenium committer on staff (Jim Evans)
Jenkins User Conference       San Francisco, Sept 30 2012   #jenkinsconf



   Great coverage at great cost

  •    Multimillion dollar HA test infrastructure
  •    Cycle time is 6 hours per changelist
  •    [Automated] Continuous delivery not possible
  •    Some manual "sign off" at release boundary
  •    "Butterfly effect" changelists
       o    which tests to run before pushing code?
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Salesforce + Jenkins =
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Jenkins Satellite Builds

  •  Automated installer for automation
  •  Shelve a changelist -> queue for CI run
  •  Run static analysis, coverage reports
  •  Faster cycle time, "release ready" mainline
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Linking src/main and src/test
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Linking src/main and src/test (2)
Jenkins User Conference         San Francisco, Sept 30 2012   #jenkinsconf



   Future: Jenkins everywhere
    •    Code base is rapidly modularizing
         o    Jenkins CI continuously delivering jars
    •    Jenkins as a Service
         o    Option A: Cloudbees hosted
         o    Option B: ad hoc "swarm"
         o    Option C: Salesforce R&D hosted
    •    Jenkins for metrics:
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   We invented Testing at Scale
Jenkins User Conference         San Francisco, Sept 30 2012   #jenkinsconf



   We're not close to done
    •    Smarter VM provisioning
    •    Build-anything platforms hard to test
    •    Pixel perfect UI test framework
    •    Headless browser testing (PhantomJS)
    •    In memory computing for tests (high cost)
    •    Massively parallel testing on Intel Atom HW
         o    low cost, low power, natural isolation
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Q&A
    •  Follow @gwestr on Twitter
    •  Follow @tksfz on Twitter
Jenkins User Conference   San Francisco, Sept 30 2012   #jenkinsconf



   Thank You To Our Sponsors

Contenu connexe

Tendances

Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportSencha
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Moataz Nabil
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridMoataz Nabil
 
Web Application Testing with Selenium
Web Application Testing with Selenium Web Application Testing with Selenium
Web Application Testing with Selenium Sargis Sargsyan
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMoataz Nabil
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps worldMoataz Nabil
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsBinary Studio
 
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudCloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudClever Moe
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to ProtractorFlorian Fesseler
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Clever Moe
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesManoj Kumar Kumar
 
The wild wild west of Selenium Capabilities
The wild wild west of Selenium CapabilitiesThe wild wild west of Selenium Capabilities
The wild wild west of Selenium CapabilitiesAdi Ofri
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerSauce Labs
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkNitin Sharma
 
Visual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersVisual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersSteve Lange
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationSTARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationClever Moe
 
Continuous Integration In The Cloud Final (1)
Continuous Integration In The Cloud Final (1)Continuous Integration In The Cloud Final (1)
Continuous Integration In The Cloud Final (1)Alexis Williams
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationClever Moe
 

Tendances (20)

Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium Grid
 
Web Application Testing with Selenium
Web Application Testing with Selenium Web Application Testing with Selenium
Web Application Testing with Selenium
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applications
 
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudCloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
 
Introduction to Protractor
Introduction to ProtractorIntroduction to Protractor
Introduction to Protractor
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha Test
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and Kubernetes
 
The wild wild west of Selenium Capabilities
The wild wild west of Selenium CapabilitiesThe wild wild west of Selenium Capabilities
The wild wild west of Selenium Capabilities
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting Framework
 
Visual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersVisual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for Developers
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationSTARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
 
Continuous Integration In The Cloud Final (1)
Continuous Integration In The Cloud Final (1)Continuous Integration In The Cloud Final (1)
Continuous Integration In The Cloud Final (1)
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation
 

En vedette

Salesforce Testing Resume
Salesforce Testing ResumeSalesforce Testing Resume
Salesforce Testing ResumeSowmya J
 
Performance Monitoring and Testing in the Salesforce Cloud
Performance Monitoring and Testing in the Salesforce CloudPerformance Monitoring and Testing in the Salesforce Cloud
Performance Monitoring and Testing in the Salesforce CloudSalesforce Developers
 
Performance Measurement and Monitoring for Salesforce Web & Mobile Apps
Performance Measurement and Monitoring for Salesforce Web & Mobile AppsPerformance Measurement and Monitoring for Salesforce Web & Mobile Apps
Performance Measurement and Monitoring for Salesforce Web & Mobile AppsSalesforce Developers
 
5 Types of USER ACCEPTANCE TESTING (UAT)
5 Types of USER ACCEPTANCE TESTING (UAT)5 Types of USER ACCEPTANCE TESTING (UAT)
5 Types of USER ACCEPTANCE TESTING (UAT)Usersnap
 
Keynote for Salesforce Users Group
Keynote for Salesforce Users GroupKeynote for Salesforce Users Group
Keynote for Salesforce Users GroupAlex Cowan
 
Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013Puppet
 
Envision Your Destination, Create Your Solution with Salesforce NPSP
Envision Your Destination, Create Your Solution with Salesforce NPSPEnvision Your Destination, Create Your Solution with Salesforce NPSP
Envision Your Destination, Create Your Solution with Salesforce NPSPGlobal Tech & Resources
 
Techniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleTechniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleSalesforce Developers
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITVishnu Raju Datla
 
Best Practices for Integrating with Your ERP
Best Practices for Integrating with Your ERPBest Practices for Integrating with Your ERP
Best Practices for Integrating with Your ERPdreamforce2006
 
Salesforce selenium-saucelabs-webinar-april-2014
Salesforce selenium-saucelabs-webinar-april-2014Salesforce selenium-saucelabs-webinar-april-2014
Salesforce selenium-saucelabs-webinar-april-2014Sauce Labs
 
鄧白氏 天新 強強聯手 20131205
鄧白氏 天新 強強聯手 20131205鄧白氏 天新 強強聯手 20131205
鄧白氏 天新 強強聯手 20131205許 銘驊
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & SalesforceAbhinav Gupta
 
Salesforce Solution For Software Industry
Salesforce Solution For Software IndustrySalesforce Solution For Software Industry
Salesforce Solution For Software Industrykdwangxi
 
Leading the Insurance Industry with On-Demand CRM
Leading the Insurance Industry with On-Demand CRMLeading the Insurance Industry with On-Demand CRM
Leading the Insurance Industry with On-Demand CRMdreamforce2006
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkinsVinay H G
 
Salesforce Adoption and Best Practices
Salesforce Adoption and Best PracticesSalesforce Adoption and Best Practices
Salesforce Adoption and Best Practicesvraopolisetti
 
Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features Michael Gill
 
Communities bdm days apac
Communities bdm days apacCommunities bdm days apac
Communities bdm days apacChris Thomas
 

En vedette (20)

Best Practices for Testing in salesforce.com
Best Practices for Testing in salesforce.comBest Practices for Testing in salesforce.com
Best Practices for Testing in salesforce.com
 
Salesforce Testing Resume
Salesforce Testing ResumeSalesforce Testing Resume
Salesforce Testing Resume
 
Performance Monitoring and Testing in the Salesforce Cloud
Performance Monitoring and Testing in the Salesforce CloudPerformance Monitoring and Testing in the Salesforce Cloud
Performance Monitoring and Testing in the Salesforce Cloud
 
Performance Measurement and Monitoring for Salesforce Web & Mobile Apps
Performance Measurement and Monitoring for Salesforce Web & Mobile AppsPerformance Measurement and Monitoring for Salesforce Web & Mobile Apps
Performance Measurement and Monitoring for Salesforce Web & Mobile Apps
 
5 Types of USER ACCEPTANCE TESTING (UAT)
5 Types of USER ACCEPTANCE TESTING (UAT)5 Types of USER ACCEPTANCE TESTING (UAT)
5 Types of USER ACCEPTANCE TESTING (UAT)
 
Keynote for Salesforce Users Group
Keynote for Salesforce Users GroupKeynote for Salesforce Users Group
Keynote for Salesforce Users Group
 
Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013Vagrant + Rouster at salesforce.com - PuppetConf 2013
Vagrant + Rouster at salesforce.com - PuppetConf 2013
 
Envision Your Destination, Create Your Solution with Salesforce NPSP
Envision Your Destination, Create Your Solution with Salesforce NPSPEnvision Your Destination, Create Your Solution with Salesforce NPSP
Envision Your Destination, Create Your Solution with Salesforce NPSP
 
Techniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleTechniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development Cycle
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABIT
 
Best Practices for Integrating with Your ERP
Best Practices for Integrating with Your ERPBest Practices for Integrating with Your ERP
Best Practices for Integrating with Your ERP
 
Salesforce selenium-saucelabs-webinar-april-2014
Salesforce selenium-saucelabs-webinar-april-2014Salesforce selenium-saucelabs-webinar-april-2014
Salesforce selenium-saucelabs-webinar-april-2014
 
鄧白氏 天新 強強聯手 20131205
鄧白氏 天新 強強聯手 20131205鄧白氏 天新 強強聯手 20131205
鄧白氏 天新 強強聯手 20131205
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
 
Salesforce Solution For Software Industry
Salesforce Solution For Software IndustrySalesforce Solution For Software Industry
Salesforce Solution For Software Industry
 
Leading the Insurance Industry with On-Demand CRM
Leading the Insurance Industry with On-Demand CRMLeading the Insurance Industry with On-Demand CRM
Leading the Insurance Industry with On-Demand CRM
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Salesforce Adoption and Best Practices
Salesforce Adoption and Best PracticesSalesforce Adoption and Best Practices
Salesforce Adoption and Best Practices
 
Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features
 
Communities bdm days apac
Communities bdm days apacCommunities bdm days apac
Communities bdm days apac
 

Similaire à Testing Salesforce at Cloud Scale

JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...CloudBees
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkinsmrooney7828
 
DockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at LyftDockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at LyftDocker, Inc.
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Jenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San FranciscoJenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San FranciscoKohsuke Kawaguchi
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downSteve Mactaggart
 
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014Chris Hilton
 
Super Charged Configuration As Code
Super Charged Configuration As CodeSuper Charged Configuration As Code
Super Charged Configuration As CodeAlan Beale
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsNigel Charman
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteCoreOS
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew Bayer
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Anton Arhipov
 
Architect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureArchitect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureDavide Benvegnù
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
Immutable infrastructure tsap_v2
Immutable infrastructure tsap_v2Immutable infrastructure tsap_v2
Immutable infrastructure tsap_v2Volodymyr Tsap
 
Jenkins User Conference 2014
Jenkins User Conference 2014Jenkins User Conference 2014
Jenkins User Conference 2014Dan Cundiff
 

Similaire à Testing Salesforce at Cloud Scale (20)

How to train your Jenkins?
How to train your Jenkins?How to train your Jenkins?
How to train your Jenkins?
 
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
JUC Europe 2015: From Virtual Machines to Containers: Achieving Continuous In...
 
From Virtual Machines to Containers
From Virtual Machines to ContainersFrom Virtual Machines to Containers
From Virtual Machines to Containers
 
Best Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical JenkinsBest Practices for Mission-Critical Jenkins
Best Practices for Mission-Critical Jenkins
 
DockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at LyftDockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at Lyft
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Jenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San FranciscoJenkins User Conference 2012 San Francisco
Jenkins User Conference 2012 San Francisco
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Jenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way downJenkins as a Service - Code all the way down
Jenkins as a Service - Code all the way down
 
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
 
Super Charged Configuration As Code
Super Charged Configuration As CodeSuper Charged Configuration As Code
Super Charged Configuration As Code
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012
 
Architect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureArchitect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft Azure
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Immutable infrastructure tsap_v2
Immutable infrastructure tsap_v2Immutable infrastructure tsap_v2
Immutable infrastructure tsap_v2
 
Jenkins User Conference 2014
Jenkins User Conference 2014Jenkins User Conference 2014
Jenkins User Conference 2014
 

Dernier

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Dernier (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Testing Salesforce at Cloud Scale

  • 1. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Testing Salesforce at Cloud Scale Thomas Kim @tksfz Greg Wester @gwestr
  • 2. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Agenda •  History of CI at Salesforce •  Adding elasticity with public clouds •  Reducing cycle time with Jenkins-CI •  Jenkins Everywhere
  • 3. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Continuous Testing at Salesforce •  Multi-million line code base •  Several major branches •  200,000 tests o  Mostly in-appserver functional tests •  ~3000 hours serialized runtime •  Autobuilds - home-grown system •  2000 VM's •  Hundreds of changelists per day (Perforce)
  • 4. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Luna
  • 5. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Autobuild System Design Autobuild Runner Autobuild Runner luna Autobuild Runner luna db Autobuild Runner web Assignment Runner p4
  • 6. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Test Failure Correlation - Changelists are batched together - Tests that fail are re-executed against the skipped changelists
  • 7. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf VM Provisioning VMware infrastructure Autobuild Runner luna Autobuild Runner Autobuild Runner web luna db Autobuild Runner VMware API Assignment Runner VM Pool Manager p4
  • 8. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Autobuilds in the Cloud EC2 Autobuild Runner luna Autobuild Runner Autobuild Runner web luna db Autobuild Runner AWS API Assignment Runner EC2 Poolboy p4
  • 9. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf VM Provisioning Part II •  Static allocation •  Dynamic allocation •  Predictive allocation •  Elastic allocation
  • 10. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Selenium •  Spawns a 2nd VM running Windows •  RemoteWebDriver -> IE6,7,8,9; Firefox; Chrome; Safari •  Selenium Browser Compatibility suite •  35,000 UI tests; some Selenium1 debt •  Tricky trifecta: o  Chrome releases every 6 weeks o  Firefox releases every 6 weeks; 3 week stagger o  Selenium library updates •  Selenium committer on staff (Jim Evans)
  • 11. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Great coverage at great cost •  Multimillion dollar HA test infrastructure •  Cycle time is 6 hours per changelist •  [Automated] Continuous delivery not possible •  Some manual "sign off" at release boundary •  "Butterfly effect" changelists o  which tests to run before pushing code?
  • 12. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Salesforce + Jenkins =
  • 13. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Jenkins Satellite Builds •  Automated installer for automation •  Shelve a changelist -> queue for CI run •  Run static analysis, coverage reports •  Faster cycle time, "release ready" mainline
  • 14. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf
  • 15. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf
  • 16. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Linking src/main and src/test
  • 17. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Linking src/main and src/test (2)
  • 18. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Future: Jenkins everywhere •  Code base is rapidly modularizing o  Jenkins CI continuously delivering jars •  Jenkins as a Service o  Option A: Cloudbees hosted o  Option B: ad hoc "swarm" o  Option C: Salesforce R&D hosted •  Jenkins for metrics:
  • 19. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf We invented Testing at Scale
  • 20. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf We're not close to done •  Smarter VM provisioning •  Build-anything platforms hard to test •  Pixel perfect UI test framework •  Headless browser testing (PhantomJS) •  In memory computing for tests (high cost) •  Massively parallel testing on Intel Atom HW o  low cost, low power, natural isolation
  • 21. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Q&A •  Follow @gwestr on Twitter •  Follow @tksfz on Twitter
  • 22. Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Thank You To Our Sponsors