SlideShare a Scribd company logo
Auto-Cascading
Security Updates
Through Docker Images
Andrey Falko
Salesforce Infrastructure
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.
Forward-Looking Statements
The problem
Security Researcher
Vulnerability
Code Patch Distribution Package
Public Disclosure
OS Base Image Java Base Image Application Image
Python Base Image Application Image
Application Image
Application ImageRuby Base Image
The problem
Security Researcher
Vulnerability
Code Patch Distribution Package
Public Disclosure
OS Base Image Java Base Image Application Image
Python Base Image Application Image
Application Image
Application ImageRuby Base Image
The problem
Security Researcher
Vulnerability
Code Patch Distribution Package
Public Disclosure
OS Base Image Java Base Image Application Image
Python Base Image Application Image
Application Image
Application ImageRuby Base Image
MANUAL
Our Solution
How do you automatically keep all of these images up-to-date?
Create Pull Request to every child image
Developer review and merge
Our Solution
We run tests for our pull requests
Pull request pipeline
Path to production
Our Solution: Dockerfile Image Update
Command line tool invoked as Docker container
# dockerfile-image-update parent <PARENT-IMG> <VERSION-TAG> <IMG_TAG_STORE-GIT-REPO>
Command Line
● PARENT-IMG - Base image whose children we want to update
● VERSION-TAG - Docker tag that we intend children to be updated to
● IMG_TAG_STORE-GIT-REPO - Git repository where you want to persist intended outcome
Our Solution: Dockerfile Image Update
Command line tool invoked as Docker container
# dockerfile-image-update parent <PARENT-IMG> <VERSION-TAG> <IMG_TAG_STORE-GIT-REPO>
Command Line
● PARENT-IMG - Base image whose children we want to update
● VERSION-TAG - Docker tag that we intend children to be updated to
● IMG_TAG_STORE-GIT-REPO - Git repository where you want to persist intended outcome
Our Solution: Dockerfile Image Update
Command line tool invoked as Docker container
# dockerfile-image-update parent centos_jdk 8 version-persistence-repo
Command Line
Example:
We open sourced it: https://github.com/salesforce/dockerfile-image-update
Our Solution
Why do we need to track image versions?
# dockerfile-image-update all <IMG_TAG_STORE-GIT-REPO>
Command Line
● Scans all images in IMG_TAG_STORE and updates child images
● Run nightly for all images
○ Ensures no one bypassed CI system
○ Developer race conditions
○ Github can’t fork a fork
Our Solution
Why do we need to track image versions?
# dockerfile-image-update all <IMG_TAG_STORE-GIT-REPO>
Command Line
● Scans all images in IMG_TAG_STORE and updates child images
● Run nightly for all images
○ Ensures no one bypassed CI system
○ Developer race conditions
○ Github can’t fork a fork
Software that writes code
The Result
The Result
I had an uninterrupted vacation in Florida
The Result
● Hundreds of docker images are patched using this tool
● Hundreds of developers migrated services to major OS and language versions safely
In all seriousness...
Future Improvements
● Users and Contributors Welcome!
○ https://github.com/salesforce/dockerfile-image-update
● Feature wishlist:
○ Auto-merge option
○ Maven spotify docker plugin support
○ Update versions in docker-compose and kubernetes pod.yaml
○ Expand the tool to other packaging formats beyond just Docker
What we can do better
Future Improvements
● Users and Contributors Welcome!
○ https://github.com/salesforce/dockerfile-image-update
● Feature wishlist:
○ Auto-merge option
○ Maven spotify docker plugin support
○ Update versions in docker-compose and kubernetes pod.yaml
○ Expand the tool to other packaging formats beyond just Docker
What we can do better
Future Improvements
● Users and Contributors Welcome!
○ https://github.com/salesforce/dockerfile-image-update
● Feature wishlist:
○ Auto-merge option
○ Maven spotify docker plugin support
○ Update versions in docker-compose and kubernetes pod.yaml
○ Expand the tool to other packaging formats beyond just Docker
What we can do better
Future Improvements
● Users and Contributors Welcome!
○ https://github.com/salesforce/dockerfile-image-update
● Feature wishlist:
○ Auto-merge option
○ Maven spotify docker plugin support
○ Update versions in docker-compose and kubernetes pod.yaml
○ Expand the tool to other packaging formats beyond just Docker
What we can do better
Thank you!
Wouldn’t be possible without these Engineers
● Former Salesforce intern wrote initial version
○ Min Ho Park
● Helped with design, fixes, and production support
○ Justin Harringa
○ Nelson Wolf
○ Jinesh Doshi
https://github.com/salesforce/dockerfile-image-update

More Related Content

What's hot

Teams progress presenation
Teams progress presenationTeams progress presenation
Teams progress presenation
Oleg Seriaga
 
IBM Rational Rhapsody support for Microsoft Visual Studio 2015
IBM Rational Rhapsody support for Microsoft Visual Studio 2015IBM Rational Rhapsody support for Microsoft Visual Studio 2015
IBM Rational Rhapsody support for Microsoft Visual Studio 2015
Frank Braun
 
Salesforce.com API Series: Service Cloud Console Deep Dive
Salesforce.com API Series: Service Cloud Console Deep DiveSalesforce.com API Series: Service Cloud Console Deep Dive
Salesforce.com API Series: Service Cloud Console Deep Dive
Salesforce Developers
 
Salesforce Winter 14 Release - Summary
Salesforce Winter 14 Release  - Summary Salesforce Winter 14 Release  - Summary
Salesforce Winter 14 Release - Summary
Roy Gilad
 
Summer '13 Developer Preview Webinar
Summer '13 Developer Preview WebinarSummer '13 Developer Preview Webinar
Summer '13 Developer Preview Webinar
Salesforce Developers
 
AngularJS App In Two Weeks
AngularJS App In Two WeeksAngularJS App In Two Weeks
AngularJS App In Two Weeks
Peter Chittum
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
Abhinav Gupta
 
Resume_Lakshmi Chaitanya_Technical Specialist_Thirdware Solutions
Resume_Lakshmi Chaitanya_Technical Specialist_Thirdware SolutionsResume_Lakshmi Chaitanya_Technical Specialist_Thirdware Solutions
Resume_Lakshmi Chaitanya_Technical Specialist_Thirdware Solutions
Lakshmi Chaitanya Arikela
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
Salesforce Developers
 
Continuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projectsContinuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projects
Aldo Fernandez
 
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Salesforce Partners
 
Team Development on Force.com with Github and Ant
Team Development on Force.com with Github and AntTeam Development on Force.com with Github and Ant
Team Development on Force.com with Github and Ant
Salesforce Developers
 
Scaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetScaling Continuous Integration for Puppet
Scaling Continuous Integration for Puppet
Salesforce Engineering
 
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETBuild Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Salesforce Developers
 
Max Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMax Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & Quality
Meet Magento Italy
 
Resume_Arindom-March-3rd
Resume_Arindom-March-3rdResume_Arindom-March-3rd
Resume_Arindom-March-3rd
Arindom Biswas
 
Manage Org Changes Using the Force.com Migration Tool and Git
Manage Org Changes Using the Force.com Migration Tool and GitManage Org Changes Using the Force.com Migration Tool and Git
Manage Org Changes Using the Force.com Migration Tool and Git
Salesforce Developers
 
Building End To End Lightning Apps - Dreamforce 2014
Building End To End Lightning Apps - Dreamforce 2014Building End To End Lightning Apps - Dreamforce 2014
Building End To End Lightning Apps - Dreamforce 2014
Raja Rao DV
 
Resume - Varghese John
Resume - Varghese JohnResume - Varghese John
Resume - Varghese John
Varghese John
 
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 Developers
 

What's hot (20)

Teams progress presenation
Teams progress presenationTeams progress presenation
Teams progress presenation
 
IBM Rational Rhapsody support for Microsoft Visual Studio 2015
IBM Rational Rhapsody support for Microsoft Visual Studio 2015IBM Rational Rhapsody support for Microsoft Visual Studio 2015
IBM Rational Rhapsody support for Microsoft Visual Studio 2015
 
Salesforce.com API Series: Service Cloud Console Deep Dive
Salesforce.com API Series: Service Cloud Console Deep DiveSalesforce.com API Series: Service Cloud Console Deep Dive
Salesforce.com API Series: Service Cloud Console Deep Dive
 
Salesforce Winter 14 Release - Summary
Salesforce Winter 14 Release  - Summary Salesforce Winter 14 Release  - Summary
Salesforce Winter 14 Release - Summary
 
Summer '13 Developer Preview Webinar
Summer '13 Developer Preview WebinarSummer '13 Developer Preview Webinar
Summer '13 Developer Preview Webinar
 
AngularJS App In Two Weeks
AngularJS App In Two WeeksAngularJS App In Two Weeks
AngularJS App In Two Weeks
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
 
Resume_Lakshmi Chaitanya_Technical Specialist_Thirdware Solutions
Resume_Lakshmi Chaitanya_Technical Specialist_Thirdware SolutionsResume_Lakshmi Chaitanya_Technical Specialist_Thirdware Solutions
Resume_Lakshmi Chaitanya_Technical Specialist_Thirdware Solutions
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
 
Continuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projectsContinuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projects
 
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
 
Team Development on Force.com with Github and Ant
Team Development on Force.com with Github and AntTeam Development on Force.com with Github and Ant
Team Development on Force.com with Github and Ant
 
Scaling Continuous Integration for Puppet
Scaling Continuous Integration for PuppetScaling Continuous Integration for Puppet
Scaling Continuous Integration for Puppet
 
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NETBuild Customer Centric Applications Using the Salesforce Toolkits for .NET
Build Customer Centric Applications Using the Salesforce Toolkits for .NET
 
Max Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMax Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & Quality
 
Resume_Arindom-March-3rd
Resume_Arindom-March-3rdResume_Arindom-March-3rd
Resume_Arindom-March-3rd
 
Manage Org Changes Using the Force.com Migration Tool and Git
Manage Org Changes Using the Force.com Migration Tool and GitManage Org Changes Using the Force.com Migration Tool and Git
Manage Org Changes Using the Force.com Migration Tool and Git
 
Building End To End Lightning Apps - Dreamforce 2014
Building End To End Lightning Apps - Dreamforce 2014Building End To End Lightning Apps - Dreamforce 2014
Building End To End Lightning Apps - Dreamforce 2014
 
Resume - Varghese John
Resume - Varghese JohnResume - Varghese John
Resume - Varghese John
 
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
 

Similar to Srecon18americas lightning talk: Auto-Cascading Security Updates Through Docker Images

Heroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & servicesHeroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & services
John Stevenson
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Salesforce Admins
 
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
Doug Ayers
 
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.comUsing Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Salesforce Developers
 
Simplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module developmentSimplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module development
Salesforce Developers
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
Salesforce Developers
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013
John Stevenson
 
Lightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René WinkelmeyerLightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René Winkelmeyer
CzechDreamin
 
Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)
Salesforce Partners
 
#Df17 Recap Series Build Apps Faster with the Salesforce Platform
#Df17 Recap Series Build Apps Faster with the Salesforce Platform #Df17 Recap Series Build Apps Faster with the Salesforce Platform
#Df17 Recap Series Build Apps Faster with the Salesforce Platform
Salesforce Developers
 
Salesforce DX Pilot Product Overview
Salesforce DX Pilot Product OverviewSalesforce DX Pilot Product Overview
Salesforce DX Pilot Product Overview
Salesforce Partners
 
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
Andrey Falko
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
Salesforce Developers
 
Introduction to Heroku
Introduction to HerokuIntroduction to Heroku
Introduction to Heroku
Salesforce Developers
 
Spring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSpring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview Webinar
Salesforce Developers
 
Dreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to HerokuDreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to Heroku
John Stevenson
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Salesforce Developers
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
Salesforce Developers
 
Packaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App DistributionPackaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App Distribution
dreamforce2006
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 

Similar to Srecon18americas lightning talk: Auto-Cascading Security Updates Through Docker Images (20)

Heroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & servicesHeroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & services
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
 
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
 
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.comUsing Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
 
Simplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module developmentSimplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module development
 
Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013
 
Lightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René WinkelmeyerLightning Web Components - A new era, René Winkelmeyer
Lightning Web Components - A new era, René Winkelmeyer
 
Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)Reusable Build Scripts for Managed Package Development (October 14, 2014)
Reusable Build Scripts for Managed Package Development (October 14, 2014)
 
#Df17 Recap Series Build Apps Faster with the Salesforce Platform
#Df17 Recap Series Build Apps Faster with the Salesforce Platform #Df17 Recap Series Build Apps Faster with the Salesforce Platform
#Df17 Recap Series Build Apps Faster with the Salesforce Platform
 
Salesforce DX Pilot Product Overview
Salesforce DX Pilot Product OverviewSalesforce DX Pilot Product Overview
Salesforce DX Pilot Product Overview
 
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
San Francisco Jenkins Area Meetup October 2016: Self-service secure test and ...
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
 
Introduction to Heroku
Introduction to HerokuIntroduction to Heroku
Introduction to Heroku
 
Spring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview WebinarSpring '14 Release Developer Preview Webinar
Spring '14 Release Developer Preview Webinar
 
Dreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to HerokuDreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to Heroku
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.com
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
 
Packaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App DistributionPackaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App Distribution
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 

Recently uploaded

Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
manji sharman06
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
VictoriaMetrics
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
Building the Ideal CI-CD Pipeline_ Achieving Visual Perfection
Building the Ideal CI-CD Pipeline_ Achieving Visual PerfectionBuilding the Ideal CI-CD Pipeline_ Achieving Visual Perfection
Building the Ideal CI-CD Pipeline_ Achieving Visual Perfection
Applitools
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
servicesNitor
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
mohitd6
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
Call Girls Bangalore🔥7023059433🔥Best Profile Escorts in Bangalore Available 24/7
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
What’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 UpdateWhat’s New in VictoriaLogs - Q2 2024 Update
What’s New in VictoriaLogs - Q2 2024 Update
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
Building the Ideal CI-CD Pipeline_ Achieving Visual Perfection
Building the Ideal CI-CD Pipeline_ Achieving Visual PerfectionBuilding the Ideal CI-CD Pipeline_ Achieving Visual Perfection
Building the Ideal CI-CD Pipeline_ Achieving Visual Perfection
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
 
The Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdfThe Role of DevOps in Digital Transformation.pdf
The Role of DevOps in Digital Transformation.pdf
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
 

Srecon18americas lightning talk: Auto-Cascading Security Updates Through Docker Images

  • 1. Auto-Cascading Security Updates Through Docker Images Andrey Falko Salesforce Infrastructure
  • 2. 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. Forward-Looking Statements
  • 3. The problem Security Researcher Vulnerability Code Patch Distribution Package Public Disclosure OS Base Image Java Base Image Application Image Python Base Image Application Image Application Image Application ImageRuby Base Image
  • 4. The problem Security Researcher Vulnerability Code Patch Distribution Package Public Disclosure OS Base Image Java Base Image Application Image Python Base Image Application Image Application Image Application ImageRuby Base Image
  • 5. The problem Security Researcher Vulnerability Code Patch Distribution Package Public Disclosure OS Base Image Java Base Image Application Image Python Base Image Application Image Application Image Application ImageRuby Base Image MANUAL
  • 6. Our Solution How do you automatically keep all of these images up-to-date? Create Pull Request to every child image
  • 7. Developer review and merge Our Solution We run tests for our pull requests Pull request pipeline Path to production
  • 8. Our Solution: Dockerfile Image Update Command line tool invoked as Docker container # dockerfile-image-update parent <PARENT-IMG> <VERSION-TAG> <IMG_TAG_STORE-GIT-REPO> Command Line ● PARENT-IMG - Base image whose children we want to update ● VERSION-TAG - Docker tag that we intend children to be updated to ● IMG_TAG_STORE-GIT-REPO - Git repository where you want to persist intended outcome
  • 9. Our Solution: Dockerfile Image Update Command line tool invoked as Docker container # dockerfile-image-update parent <PARENT-IMG> <VERSION-TAG> <IMG_TAG_STORE-GIT-REPO> Command Line ● PARENT-IMG - Base image whose children we want to update ● VERSION-TAG - Docker tag that we intend children to be updated to ● IMG_TAG_STORE-GIT-REPO - Git repository where you want to persist intended outcome
  • 10. Our Solution: Dockerfile Image Update Command line tool invoked as Docker container # dockerfile-image-update parent centos_jdk 8 version-persistence-repo Command Line Example: We open sourced it: https://github.com/salesforce/dockerfile-image-update
  • 11. Our Solution Why do we need to track image versions? # dockerfile-image-update all <IMG_TAG_STORE-GIT-REPO> Command Line ● Scans all images in IMG_TAG_STORE and updates child images ● Run nightly for all images ○ Ensures no one bypassed CI system ○ Developer race conditions ○ Github can’t fork a fork
  • 12. Our Solution Why do we need to track image versions? # dockerfile-image-update all <IMG_TAG_STORE-GIT-REPO> Command Line ● Scans all images in IMG_TAG_STORE and updates child images ● Run nightly for all images ○ Ensures no one bypassed CI system ○ Developer race conditions ○ Github can’t fork a fork
  • 13. Software that writes code The Result
  • 14. The Result I had an uninterrupted vacation in Florida
  • 15. The Result ● Hundreds of docker images are patched using this tool ● Hundreds of developers migrated services to major OS and language versions safely In all seriousness...
  • 16. Future Improvements ● Users and Contributors Welcome! ○ https://github.com/salesforce/dockerfile-image-update ● Feature wishlist: ○ Auto-merge option ○ Maven spotify docker plugin support ○ Update versions in docker-compose and kubernetes pod.yaml ○ Expand the tool to other packaging formats beyond just Docker What we can do better
  • 17. Future Improvements ● Users and Contributors Welcome! ○ https://github.com/salesforce/dockerfile-image-update ● Feature wishlist: ○ Auto-merge option ○ Maven spotify docker plugin support ○ Update versions in docker-compose and kubernetes pod.yaml ○ Expand the tool to other packaging formats beyond just Docker What we can do better
  • 18. Future Improvements ● Users and Contributors Welcome! ○ https://github.com/salesforce/dockerfile-image-update ● Feature wishlist: ○ Auto-merge option ○ Maven spotify docker plugin support ○ Update versions in docker-compose and kubernetes pod.yaml ○ Expand the tool to other packaging formats beyond just Docker What we can do better
  • 19. Future Improvements ● Users and Contributors Welcome! ○ https://github.com/salesforce/dockerfile-image-update ● Feature wishlist: ○ Auto-merge option ○ Maven spotify docker plugin support ○ Update versions in docker-compose and kubernetes pod.yaml ○ Expand the tool to other packaging formats beyond just Docker What we can do better
  • 20. Thank you! Wouldn’t be possible without these Engineers ● Former Salesforce intern wrote initial version ○ Min Ho Park ● Helped with design, fixes, and production support ○ Justin Harringa ○ Nelson Wolf ○ Jinesh Doshi