SlideShare a Scribd company logo
1 of 46
How Open Source
Software Embiggens
Salesforce.com
Ian Varley
Principal Member of Technical Staff
@thefutureian
Safe harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the
assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make.
All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth,
earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements
concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new
products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our
Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature
market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our
service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further
information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year
and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC
Filings section of the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on
time or at all. Customers who purchase our services should make the purchase decisions
based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Who am I?
• Ian Varley
• 4 years at Salesforce.com
• Core Database Team, Big Data Team
• @thefutureian
Show of hands...
• Use OSS?
• Contribute to OSS?
• Write their own OSS projects?
Developers at Salesforce spend all day in open source software…
Salesforce engineers work on an OSS stack ...
• Linux (Ubuntu, RHL)
• Java
• Eclipse (+ IntelliJ, vim, emacs)
• Guava, Apache Commons, more
• JUnit, Mockito, Selenium
• Git (+ p4)
• Memcached
What’s so great about open
source software anyway?
A rising tide ... … lifts all boats.
It’s a win-win situation.
• Everyone gets more out than they put in
• You have control over your own destiny
• You can attract the industry’s best minds
– The smartest devs seem to gravitate towards open source
– So if you raised your hand before, give yourself a pat on the back.
So… what do we use?
Servlet Container
• Servlet containers handle routing HTTP requests to code.
– Started w/ commercial product
– Feature: “steal” work from overloaded servers
– (Code name: Hamburglar)
• But! Show stopper bug, and no way to fix it ...
Solution: Jetty
• http://www.eclipse.org/jetty/
• Year-long migration process
• Tricky with 10+ years of legacy code!
• Now running Jetty (almost) everywhere.
Search Indexing
• Indexer takes text (e.g. chatter posts, etc.), makes it searchable.
– Original implementation: Lucene (forked)
– But, scale keeps increasing!
– Bottleneck: single-writer QFS on a SAN
– Needed solution to scale horizontally
Solution: Solr
• Horizontally scalable, REST interface
• Query / index on same host, no more SAN
• New features, core library is (latest) Lucene
• We’ve also contributed some small fixes, and contracted a big fix to allow handling
indexers with many cores (10K+!).
Contributing is a win / win.
Message Queue
• Decouple calling code from its execution.
– Originally: 10-15 devs had rolled their own
– Centralized on a transactional queue (Vijay)
– Commercial product, deeply coupled to DB
– OK until a mysterious, unsolvable error.
– 3 years of back and forth!
– Eventually rewrote our layer to work around it.
– Scale challenges: 50 -> 500 queues
– CPU contention at head of queue
Solution: QPID
• Apache project, good reputation
• Separate tier from the DB
• Ran into bugs… and fixed them.
• 40% memory savings on client (QPID-4873; thanks Helen Kwong & Brian Toal)
Open source lets us bring our
experts to help everybody.
Build: Ant
• Build tools help get you from “code written” to “code running”.
– Used Apache Ant for years
– But, as the # of devs has grown …
– It’s become more difficult with a large, complex code base.
Solution: Maven
• Moving core build to Apache Maven
• Goal is a more modular and decoupled build structure
• Declarative dependencies FTW
• OSGi: Apache Felix
Plus: Jenkins
• Salesforce core uses home-grown “autobuilds”
• But for new projects outside core, set up builds as needed
• Additional automation on top of Jenkins for local builds
Deployment: Home Grown
• Deployment tools let you get code out to servers.
– Salesforce has always used home-grown tool, “ReleaseRunner”
– Required for Salesforce's extremely rigorous security model
– But as we scale out, manual methods aren’t cutting it
Solution: Puppet, Salt, Razor, Rundeck
• Get code out to lots of servers with little manual involvement.
– Razor: automated machine inventory
– Puppet: deployment of bits and configuration
– Salt, Rundeck: service orchestration for restarts
All of this still very much WIP… Salesforce.com is an industry leader in security, and is leading the way in
using tools like Puppet in an enterprise-class, multi-tenant environment.
Metric Collection: Home Grown
• Getting information about server health and performance
– Home-grown agent software
– Limited to only one app (Salesforce core)
– Metrics collected and pulled by central cluster
Metric Collection: Kafka
• Kafka is a high throughput distributed messaging system
– Written & open sourced by LinkedIn
– Used in a system (code-named Ajna)
– Pushes metrics out of prod, rather than pulling
– Intra-pod queue for local consumption
– Centralized pipeline to DMZ
Batch Processing
• Salesforce == RDBMS
• No great approach for batch processing
• Especially on sets that don’t fit in memory
• Working with data that doesn't fit into the standard
relational model is hard
Solution: Hadoop
• Map/Reduce: ship computations to your data instead vice versa
– Walter Macklem (Platform CTO); Codename: Gridforce
– +HDFS (distributed file storage)
– +Pig (a higher level language)
– Features: recommendations, search relevance, machine learning
– Log export pilot ...
(Ask your CSR/CSM/AM to
get nominated for the pilot!)
Big Data
• Relational databases are powerful … but …
– The model is so rich, it’s prohibitive for really large data
– RDBMS has strict scalability limits per object
– Hard to scale out because, runs on big iron
So we asked:
• What if we could store vast numbers of records, but with fewer capabilities and
assumptions? Scale horizontally, but with the same safety guarantees?
Big Data: HBase
• Horizontally scalable NoSQL database.
– Fewer capabilities (no joins, transactions)
– Scales by adding machines
– Fault tolerant (on HDFS)
– Features? Initially, audit & compliance, event tracking
– Eventually, a lot more: really big objects
– Got a lot of field history? Join the FHR retention pilot! (Talk to your CSM)
• This is my team, so I could talk for hours...
OK, that’s cool. But, does
salesforce.com contribute new
projects?
Historically: no, not many.But, this
is changing.
Aura: UI Framework
• Basis for new generation of Salesforce UI
– High performance client-server architecture
– Event-driven, MVC architecture
– https://github.com/forcedotcom/aura
Phoenix: a SQL Skin for HBase
• “We put the SQL back in NoSQL”
– A proper subset of SQL
– Familiar interface, scalable storage
– Unlike Hive, uses the HBase client API
– Blazing fast; queries in milliseconds
– Very broad contribution since we opened it
– Accepted in the Apache Incubator in 2013
– Included in Hortonworks Hadoop distribution in 2014
Mobile SDK
• All SDK dev for Salesforce done in open source
– https://github.com/forcedotcom/SalesforceMobileSDK-iOS
– https://github.com/forcedotcom/SalesforceMobileSDK-Android
– Also: heavy use of Apache Cordova, to blend web & native components
Lots more!
• So far, we’ve only been talking about Salesforce core.
– Many Salesforce companies use tons of Open Source:
– Heroku - https://github.com/heroku
– Radian6, Data.com, ExactTarget - you name it, we probably use it somewhere
• And lots of open source stuff on the platform, too!
– http://boards.developerforce.com/t5/Salesforce-Labs-Open-Source/bd-p/labs
• You can search github for Apex & Salesforce
Salesforce.com isn’t just an OSS
user.We’re an OSS pusher.
Committers on dozens of big projects
• Salesforce actively supports a lot of people who primarily contribute to open source
projects (not just a side thing).
– Postgres: Tom Lane (Project Lead)
– Ruby: Matz (Project Lead)
– Maven: Jason Van Zyl (Project Lead)
– HBase: Lars Hofhansl (PMC, release manager); Jesse Yates
– Phoenix: James Taylor (Project Lead)
– Aura: Doug Chasman (Project Lead)
– Pig: Prashant Kommereddi
Is Open Source right for
everything? No.
It’s great for …
• Core components
• Databases
• Common algorithms
• Reusable UI libraries & abstractions
• And any case where “the source isn’t the secret sauce”.
It’s not great for …
• Code entangled with your business model
• Code you didn’t write with a plan to open up
• Software that’s “all things to all people”
• Getting other people to do your work
• But, these are kind of anti-patterns anyway, right … ?
Most return on investment is from
open sourcing “the interesting
bits”, rather than the whole stack.
And embracing the Open Source
approach, particularly in the last 3
years, has been a sea change.
In conclusion…
In contributing, we all gain.
Look for more OSS involvement from Salesforce in the future!
Follow us
• Ian Varley (@thefutureian)
• @salesforceeng
• @salesforcewit
How Open Source Embiggens Salesforce.com

More Related Content

What's hot

Tailoring the DITA Suit to Fit
Tailoring the DITA Suit to FitTailoring the DITA Suit to Fit
Tailoring the DITA Suit to Fit
Salesforce Engineering
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)
Netcetera
 

What's hot (20)

Salesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinarSalesforce API Series: Release Management with the Metadata API webinar
Salesforce API Series: Release Management with the Metadata API webinar
 
Automating Deployment Between Orgs Using Git & Continuous Integration
Automating Deployment Between Orgs Using Git & Continuous IntegrationAutomating Deployment Between Orgs Using Git & Continuous Integration
Automating Deployment Between Orgs Using Git & Continuous Integration
 
Salesforce's Trusted Enterprise Platform and Apache Phoenix
Salesforce's Trusted Enterprise Platform and Apache PhoenixSalesforce's Trusted Enterprise Platform and Apache Phoenix
Salesforce's Trusted Enterprise Platform and Apache Phoenix
 
Declarative Network Configuration
Declarative Network Configuration Declarative Network Configuration
Declarative Network Configuration
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
 
Design patterns for salesforce app decomposition
Design patterns for salesforce app decompositionDesign patterns for salesforce app decomposition
Design patterns for salesforce app decomposition
 
Agile at Salesforce From theory to practice, how to be agile at scale
Agile at Salesforce From theory to practice, how to be agile at scaleAgile at Salesforce From theory to practice, how to be agile at scale
Agile at Salesforce From theory to practice, how to be agile at scale
 
Tailoring the DITA Suit to Fit
Tailoring the DITA Suit to FitTailoring the DITA Suit to Fit
Tailoring the DITA Suit to Fit
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
 
The Cloud: Releasing Software into Controlled Chaos
The Cloud: Releasing Software into Controlled ChaosThe Cloud: Releasing Software into Controlled Chaos
The Cloud: Releasing Software into Controlled Chaos
 
Under the Hood of Sandbox Templates
Under the Hood of Sandbox TemplatesUnder the Hood of Sandbox Templates
Under the Hood of Sandbox Templates
 
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
 
Operationalizing Big Data as a Service
Operationalizing Big Data as a ServiceOperationalizing Big Data as a Service
Operationalizing Big Data as a Service
 
Manage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkManage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance Framework
 
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
 
Managing Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox ArchitectureManaging Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox Architecture
 
How to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.comHow to Setup Continuous Integration With Git, Jenkins, and Force.com
How to Setup Continuous Integration With Git, Jenkins, and Force.com
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)
 

Viewers also liked

DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...
DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...
DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...
Department for Work and Pensions
 
Extradordinary Assembly ICCFM
Extradordinary Assembly ICCFMExtradordinary Assembly ICCFM
Extradordinary Assembly ICCFM
ICCFM
 

Viewers also liked (19)

презентация (сергей коныгин)
презентация (сергей коныгин)презентация (сергей коныгин)
презентация (сергей коныгин)
 
Ficha
FichaFicha
Ficha
 
днп 4
днп 4днп 4
днп 4
 
Intelligent hedging and portfolio optimisation summit for the energy
Intelligent hedging and portfolio optimisation summit for the energy Intelligent hedging and portfolio optimisation summit for the energy
Intelligent hedging and portfolio optimisation summit for the energy
 
презентация михаила макарова 2
презентация михаила макарова 2презентация михаила макарова 2
презентация михаила макарова 2
 
презентация станислав половицкий
презентация станислав половицкийпрезентация станислав половицкий
презентация станислав половицкий
 
Cuestionario resuelto
Cuestionario resueltoCuestionario resuelto
Cuestionario resuelto
 
[BoardgameVN] Luật chơi Patchwork
[BoardgameVN] Luật chơi Patchwork[BoardgameVN] Luật chơi Patchwork
[BoardgameVN] Luật chơi Patchwork
 
[BoardgameVN] Luật chơi Rút khỉ
[BoardgameVN] Luật chơi Rút khỉ [BoardgameVN] Luật chơi Rút khỉ
[BoardgameVN] Luật chơi Rút khỉ
 
Emergency Medicine Events Register
Emergency Medicine Events RegisterEmergency Medicine Events Register
Emergency Medicine Events Register
 
DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...
DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...
DWP supplier event 23 May 2014 National Employer Service Team Sunita Singal a...
 
Hbase Backups: Backups in the Enterprise
Hbase Backups: Backups in the EnterpriseHbase Backups: Backups in the Enterprise
Hbase Backups: Backups in the Enterprise
 
Ver r 2015 clinical reviews amelia island (1)
Ver r 2015 clinical reviews amelia island (1)Ver r 2015 clinical reviews amelia island (1)
Ver r 2015 clinical reviews amelia island (1)
 
Extradordinary Assembly ICCFM
Extradordinary Assembly ICCFMExtradordinary Assembly ICCFM
Extradordinary Assembly ICCFM
 
DWP SME conference (11 March 2014) - The benefits of doing business with SMEs...
DWP SME conference (11 March 2014) - The benefits of doing business with SMEs...DWP SME conference (11 March 2014) - The benefits of doing business with SMEs...
DWP SME conference (11 March 2014) - The benefits of doing business with SMEs...
 
Clasificacion de buques
Clasificacion de buquesClasificacion de buques
Clasificacion de buques
 
Amazing national standards race 2015
Amazing national standards race 2015Amazing national standards race 2015
Amazing national standards race 2015
 
About PROsheet at Co-Edo
About PROsheet at Co-EdoAbout PROsheet at Co-Edo
About PROsheet at Co-Edo
 
Budgeting
BudgetingBudgeting
Budgeting
 

Similar to How Open Source Embiggens Salesforce.com

Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
John Stevenson
 
Ultra-scale e-Commerce Transaction Services with Lean Middleware
Ultra-scale e-Commerce Transaction Services with Lean Middleware Ultra-scale e-Commerce Transaction Services with Lean Middleware
Ultra-scale e-Commerce Transaction Services with Lean Middleware
WSO2
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
hmalphettes
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
hmalphettes
 
Cisco webex zend con2010 presentation
Cisco webex zend con2010 presentationCisco webex zend con2010 presentation
Cisco webex zend con2010 presentation
Enterprise PHP Center
 
Cisco webex zend con2010 presentation
Cisco webex zend con2010 presentationCisco webex zend con2010 presentation
Cisco webex zend con2010 presentation
Enterprise PHP Center
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
Sanjeev Sharma
 

Similar to How Open Source Embiggens Salesforce.com (20)

Open Source at Salesforce.com
Open Source at Salesforce.comOpen Source at Salesforce.com
Open Source at Salesforce.com
 
High Scale Relational Storage at Salesforce Built with Apache HBase and Apach...
High Scale Relational Storage at Salesforce Built with Apache HBase and Apach...High Scale Relational Storage at Salesforce Built with Apache HBase and Apach...
High Scale Relational Storage at Salesforce Built with Apache HBase and Apach...
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
 
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_SparkSunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
Sunshine consulting mopuru babu cv_java_j2_ee_spring_bigdata_scala_Spark
 
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_SparkSunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
Sunshine consulting Mopuru Babu CV_Java_J2ee_Spring_Bigdata_Scala_Spark
 
DeepeshRehi
DeepeshRehiDeepeshRehi
DeepeshRehi
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Ultra-scale e-Commerce Transaction Services with Lean Middleware
Ultra-scale e-Commerce Transaction Services with Lean Middleware Ultra-scale e-Commerce Transaction Services with Lean Middleware
Ultra-scale e-Commerce Transaction Services with Lean Middleware
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It!
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It!
 
Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It! Boost Performance with Scala – Learn From Those Who’ve Done It!
Boost Performance with Scala – Learn From Those Who’ve Done It!
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
 
London DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devopsLondon DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devops
 
Cisco webex zend con2010 presentation
Cisco webex zend con2010 presentationCisco webex zend con2010 presentation
Cisco webex zend con2010 presentation
 
Cisco webex zend con2010 presentation
Cisco webex zend con2010 presentationCisco webex zend con2010 presentation
Cisco webex zend con2010 presentation
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
 

More from Salesforce Engineering

More from Salesforce Engineering (20)

Locker Service Ready Lightning Components With Webpack
Locker Service Ready Lightning Components With WebpackLocker Service Ready Lightning Components With Webpack
Locker Service Ready Lightning Components With Webpack
 
Scaling HBase for Big Data
Scaling HBase for Big DataScaling HBase for Big Data
Scaling HBase for Big Data
 
Techniques to Effectively Monitor the Performance of Customers in the Cloud
Techniques to Effectively Monitor the Performance of Customers in the CloudTechniques to Effectively Monitor the Performance of Customers in the Cloud
Techniques to Effectively Monitor the Performance of Customers in the Cloud
 
Predictive System Performance Data Analysis
Predictive System Performance Data AnalysisPredictive System Performance Data Analysis
Predictive System Performance Data Analysis
 
Apache HBase State of the Project
Apache HBase State of the ProjectApache HBase State of the Project
Apache HBase State of the Project
 
Hit the Trail with Trailhead
Hit the Trail with TrailheadHit the Trail with Trailhead
Hit the Trail with Trailhead
 
HBase/PHOENIX @ Scale
HBase/PHOENIX @ ScaleHBase/PHOENIX @ Scale
HBase/PHOENIX @ Scale
 
Scaling up data science applications
Scaling up data science applicationsScaling up data science applications
Scaling up data science applications
 
Containers and Security for DevOps
Containers and Security for DevOpsContainers and Security for DevOps
Containers and Security for DevOps
 
Aspect Oriented Programming: Hidden Toolkit That You Already Have
Aspect Oriented Programming: Hidden Toolkit That You Already HaveAspect Oriented Programming: Hidden Toolkit That You Already Have
Aspect Oriented Programming: Hidden Toolkit That You Already Have
 
Monitoring @ Scale in Salesforce
Monitoring @ Scale in SalesforceMonitoring @ Scale in Salesforce
Monitoring @ Scale in Salesforce
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
 
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache CalciteA Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
 
Implementing a Content Strategy Is Like Running 100 Miles
Implementing a Content Strategy Is Like Running 100 MilesImplementing a Content Strategy Is Like Running 100 Miles
Implementing a Content Strategy Is Like Running 100 Miles
 
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
 
Koober Preduction IO Presentation
Koober Preduction IO PresentationKoober Preduction IO Presentation
Koober Preduction IO Presentation
 
Finding Security Issues Fast!
Finding Security Issues Fast!Finding Security Issues Fast!
Finding Security Issues Fast!
 
Microservices
MicroservicesMicroservices
Microservices
 
Global State Management of Micro Services
Global State Management of Micro ServicesGlobal State Management of Micro Services
Global State Management of Micro Services
 
The Future of Hbase
The Future of HbaseThe Future of Hbase
The Future of Hbase
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

How Open Source Embiggens Salesforce.com

  • 1. How Open Source Software Embiggens Salesforce.com Ian Varley Principal Member of Technical Staff @thefutureian
  • 2. Safe harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3. Who am I? • Ian Varley • 4 years at Salesforce.com • Core Database Team, Big Data Team • @thefutureian
  • 4. Show of hands... • Use OSS? • Contribute to OSS? • Write their own OSS projects?
  • 5. Developers at Salesforce spend all day in open source software…
  • 6. Salesforce engineers work on an OSS stack ... • Linux (Ubuntu, RHL) • Java • Eclipse (+ IntelliJ, vim, emacs) • Guava, Apache Commons, more • JUnit, Mockito, Selenium • Git (+ p4) • Memcached
  • 7. What’s so great about open source software anyway?
  • 8. A rising tide ... … lifts all boats.
  • 9. It’s a win-win situation. • Everyone gets more out than they put in • You have control over your own destiny • You can attract the industry’s best minds – The smartest devs seem to gravitate towards open source – So if you raised your hand before, give yourself a pat on the back.
  • 10. So… what do we use?
  • 11. Servlet Container • Servlet containers handle routing HTTP requests to code. – Started w/ commercial product – Feature: “steal” work from overloaded servers – (Code name: Hamburglar) • But! Show stopper bug, and no way to fix it ...
  • 12. Solution: Jetty • http://www.eclipse.org/jetty/ • Year-long migration process • Tricky with 10+ years of legacy code! • Now running Jetty (almost) everywhere.
  • 13. Search Indexing • Indexer takes text (e.g. chatter posts, etc.), makes it searchable. – Original implementation: Lucene (forked) – But, scale keeps increasing! – Bottleneck: single-writer QFS on a SAN – Needed solution to scale horizontally
  • 14. Solution: Solr • Horizontally scalable, REST interface • Query / index on same host, no more SAN • New features, core library is (latest) Lucene • We’ve also contributed some small fixes, and contracted a big fix to allow handling indexers with many cores (10K+!).
  • 15. Contributing is a win / win.
  • 16. Message Queue • Decouple calling code from its execution. – Originally: 10-15 devs had rolled their own – Centralized on a transactional queue (Vijay) – Commercial product, deeply coupled to DB – OK until a mysterious, unsolvable error. – 3 years of back and forth! – Eventually rewrote our layer to work around it. – Scale challenges: 50 -> 500 queues – CPU contention at head of queue
  • 17. Solution: QPID • Apache project, good reputation • Separate tier from the DB • Ran into bugs… and fixed them. • 40% memory savings on client (QPID-4873; thanks Helen Kwong & Brian Toal)
  • 18. Open source lets us bring our experts to help everybody.
  • 19. Build: Ant • Build tools help get you from “code written” to “code running”. – Used Apache Ant for years – But, as the # of devs has grown … – It’s become more difficult with a large, complex code base.
  • 20. Solution: Maven • Moving core build to Apache Maven • Goal is a more modular and decoupled build structure • Declarative dependencies FTW • OSGi: Apache Felix
  • 21. Plus: Jenkins • Salesforce core uses home-grown “autobuilds” • But for new projects outside core, set up builds as needed • Additional automation on top of Jenkins for local builds
  • 22. Deployment: Home Grown • Deployment tools let you get code out to servers. – Salesforce has always used home-grown tool, “ReleaseRunner” – Required for Salesforce's extremely rigorous security model – But as we scale out, manual methods aren’t cutting it
  • 23. Solution: Puppet, Salt, Razor, Rundeck • Get code out to lots of servers with little manual involvement. – Razor: automated machine inventory – Puppet: deployment of bits and configuration – Salt, Rundeck: service orchestration for restarts All of this still very much WIP… Salesforce.com is an industry leader in security, and is leading the way in using tools like Puppet in an enterprise-class, multi-tenant environment.
  • 24. Metric Collection: Home Grown • Getting information about server health and performance – Home-grown agent software – Limited to only one app (Salesforce core) – Metrics collected and pulled by central cluster
  • 25. Metric Collection: Kafka • Kafka is a high throughput distributed messaging system – Written & open sourced by LinkedIn – Used in a system (code-named Ajna) – Pushes metrics out of prod, rather than pulling – Intra-pod queue for local consumption – Centralized pipeline to DMZ
  • 26. Batch Processing • Salesforce == RDBMS • No great approach for batch processing • Especially on sets that don’t fit in memory • Working with data that doesn't fit into the standard relational model is hard
  • 27. Solution: Hadoop • Map/Reduce: ship computations to your data instead vice versa – Walter Macklem (Platform CTO); Codename: Gridforce – +HDFS (distributed file storage) – +Pig (a higher level language) – Features: recommendations, search relevance, machine learning – Log export pilot ... (Ask your CSR/CSM/AM to get nominated for the pilot!)
  • 28. Big Data • Relational databases are powerful … but … – The model is so rich, it’s prohibitive for really large data – RDBMS has strict scalability limits per object – Hard to scale out because, runs on big iron So we asked: • What if we could store vast numbers of records, but with fewer capabilities and assumptions? Scale horizontally, but with the same safety guarantees?
  • 29. Big Data: HBase • Horizontally scalable NoSQL database. – Fewer capabilities (no joins, transactions) – Scales by adding machines – Fault tolerant (on HDFS) – Features? Initially, audit & compliance, event tracking – Eventually, a lot more: really big objects – Got a lot of field history? Join the FHR retention pilot! (Talk to your CSM) • This is my team, so I could talk for hours...
  • 30. OK, that’s cool. But, does salesforce.com contribute new projects?
  • 31. Historically: no, not many.But, this is changing.
  • 32. Aura: UI Framework • Basis for new generation of Salesforce UI – High performance client-server architecture – Event-driven, MVC architecture – https://github.com/forcedotcom/aura
  • 33. Phoenix: a SQL Skin for HBase • “We put the SQL back in NoSQL” – A proper subset of SQL – Familiar interface, scalable storage – Unlike Hive, uses the HBase client API – Blazing fast; queries in milliseconds – Very broad contribution since we opened it – Accepted in the Apache Incubator in 2013 – Included in Hortonworks Hadoop distribution in 2014
  • 34. Mobile SDK • All SDK dev for Salesforce done in open source – https://github.com/forcedotcom/SalesforceMobileSDK-iOS – https://github.com/forcedotcom/SalesforceMobileSDK-Android – Also: heavy use of Apache Cordova, to blend web & native components
  • 35. Lots more! • So far, we’ve only been talking about Salesforce core. – Many Salesforce companies use tons of Open Source: – Heroku - https://github.com/heroku – Radian6, Data.com, ExactTarget - you name it, we probably use it somewhere • And lots of open source stuff on the platform, too! – http://boards.developerforce.com/t5/Salesforce-Labs-Open-Source/bd-p/labs • You can search github for Apex & Salesforce
  • 36. Salesforce.com isn’t just an OSS user.We’re an OSS pusher.
  • 37. Committers on dozens of big projects • Salesforce actively supports a lot of people who primarily contribute to open source projects (not just a side thing). – Postgres: Tom Lane (Project Lead) – Ruby: Matz (Project Lead) – Maven: Jason Van Zyl (Project Lead) – HBase: Lars Hofhansl (PMC, release manager); Jesse Yates – Phoenix: James Taylor (Project Lead) – Aura: Doug Chasman (Project Lead) – Pig: Prashant Kommereddi
  • 38. Is Open Source right for everything? No.
  • 39. It’s great for … • Core components • Databases • Common algorithms • Reusable UI libraries & abstractions • And any case where “the source isn’t the secret sauce”.
  • 40. It’s not great for … • Code entangled with your business model • Code you didn’t write with a plan to open up • Software that’s “all things to all people” • Getting other people to do your work • But, these are kind of anti-patterns anyway, right … ?
  • 41. Most return on investment is from open sourcing “the interesting bits”, rather than the whole stack.
  • 42. And embracing the Open Source approach, particularly in the last 3 years, has been a sea change.
  • 44. In contributing, we all gain. Look for more OSS involvement from Salesforce in the future!
  • 45. Follow us • Ian Varley (@thefutureian) • @salesforceeng • @salesforcewit