SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Managing OSS in
the Docker Era
Agenda
▷ Overview of the Docker platform
▷ New OSS governance challenges
▷ OSS governance solutions
▷ Automating compliance for Docker
What is Docker?
▷ A software platform that allows you to package an
application with all of its dependencies into a
standardized unit for software development and
deployment.
▷ The concept is borrowed from shipping containers,
which define a standard to ship goods globally.
Build Ship Run
Development Deployment
Why Docker now?
▷ Provides workflow, tools and a repository system to
make it very easy to create deploy self-contained
applications in a lightweight container
▷ Open source under a permissive license and well-
integrated with most popular open source tools used
for software development and deployment
▷ Built for the Cloud
▷ Riding on top of the virtualization wave
In most cases, applications
interact directly with the OS so
there is little or no overhead
from the Docker Engine.
Docker Containers vs. Virtual Machines
Virtual Machines Containers
Docker basics - terminology
▷ Container - a runtime instance of a docker image.
▷ Image - an ordered collection of root filesystem
changes and execution parameters for use within a
running container.
▷ Layer - a “slice” of the container filesystem; one layer
is created by each Dockerfile instruction.
▷ Dockerfile - a text script that contains the commands
you execute to build a Docker image.
▷ Registry - a repository of images. It can be public or
private. This is a web service.
Docker images and containers
Dockerfile
Base image file
FROM xxx
ADD xyz
RUN foo
CMD bar
Running
container
Docker
“build”
Docker
“run”
Image file
At runtime, the container sees files
from the top layer down.
The orange file "masks" the red file
at the same path in lower layer. Red
file is present in lower layer but not
visible.
Docker layers
Dockerfile
FROM xxx
ADD xyz
COPY baz
RUN foo
CMD bar
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Each Dockerfile
instruction line creates
a new layer.
The FROM xxx base image
and its layers become
the bottom layers (0 to 3)
New layers (4-6) built
from the Dockerfile
become the top layers
New OSS governance challenges
▷ By design Docker crosses traditional boundaries
between development and distribution/deployment
▷ Traditional control points for
distribution/deployment may not apply
○ Packaging a product for distribution
○ DevOps processes for deployment (internal or Cloud)
▷ Reuse of base images from the public Docker Hub is
very common in order to get a quick start
Issues - Component traceability
▷ Creating a Docker image is similar to a traditional
build process, but
○ Components may be pulled from any mix of public and
private repos
○ Artifacts from Dockerfile instructions may be hidden
inside the image
○ There is no build log
▷ Once an image is built there is no easy way to trace a
Dockerfile back to the layers it created
Issues - Public Docker images
▷ Current Docker usage often starts with public images
from Docker Hub
▷ Unlike a standard Linux Distro, these images are
designed to be as small as possible and may be missing:
○ License and copyright notices
○ Copies of the corresponding source for Redistribution
▷ When you ship or deploy an image you are responsible for
compliance for all layers included in that image
Issues - Private Docker images
▷ Dockerfile instructions to install or update packages
may pull code from unexpected locations:
○ Internal or public repositories
○ Complexity compounded by dependencies
▷ There is no audit trail for what you installed with
Dockerfile instructions (i.e. no build log)
▷ When you ship or deploy an image you are responsible for
compliance for all layers included in that image
Key OSS governance questions
▷ Which OSS components are included in each Docker
image and what are their licenses?
▷ What are my Attribution obligations?
▷ What are my Redistribution obligations?
○ You will be distributing Copyleft-licensed Linux user
space packages in Docker images
○ Much more complex than with a standard Linux Distro
▷ How do I organize compliance by product/application?
Compliance issues
Product
Software BOM
Attribution
Notice
Source Code
Redistribution
OSS Governance
OSS Governance - Risks
▷ Your risk level for OSS compliance depends on
use case(s):
○ Internal development --> Low
○ Internal deployment --> Medium
○ Cloud deployment to customers --> Higher
○ Product distribution to customers --> Highest
▷ New risks related to security vulnerabilities
○ Similar component traceability challenges
▷ Rear-view software audits are no longer practical
○ More complex by an order of magnitude
○ Thousands of software components is common
○ Rate of software updates is much higher
▷ The scope of the challenge depends on:
○ The controls applied by the team that produces a
Docker image,
○ and by the team that created its base FROM image,
○ all the way down to the original root filesystem.
OSS Governance - Audits
OSS Governance solutions
▷ Update development processes
▷ Update compliance processes
▷ Update provisioning controls
▷ Instrument Docker build processes
Update development processes
▷ Update development process standards
○ Define specific standards for building and deploying
Docker images
○ Apply comparable standards to any Docker images
from a supplier
▷ Consider that when you distribute Docker images, you
have effectively become a Linux Distro supplier
○ Or more precisely a supplier of multiple Distros
○ Best case will be to minimize the size and number of
these Distros
Update compliance processes
▷ Define how Attribution notices will be provided with:
○ Cloud deployment to customers
○ Product distribution to customers
▷ Define how source code for Copyleft-licensed
component-versions will be collected
▷ Define expectations for supplier-provided Docker
images (including from OSS projects)
Update provisioning controls
▷ Only use public or third-party Docker images with
clear provenance and documented components
▷ Consider building your own base images
○ Limit components to those you need
○ Control the update/refresh cycle
▷ Set clear standards for how components are
provisioned inside each image
Instrument Docker build processes
▷ Capture origin and license for components as they are
added or updated during the image build
○ Use verbose logging for image builds (default)
○ Collect copies of all components as installed or ADDed
○ Document each Dockerfile instruction including
why/how components are provisioned
▷ Keep as much provenance data as possible within each
image
○ Do not remove existing notices or licenses
○ Use MAINTAINER and LABEL Dockerfile tags
Summary
▷ Docker is a powerful new open source technology
○ Accelerates development to deployment
○ Especially well-suited for the Cloud
○ Extremely rapid adoption
▷ Like any new technology, it requires adopters to
update and adapt policies, processes and tools
○ First understand the new form of old risks
○ Update policies, processes and tools before you use
Docker for product deployment or distribution
○ The Docker community will likely provide solutions for
the missing tools sooner than later
Thanks!
Any questions?
Resources
▷ Why Docker?
http://blog.codeship.com/why-docker/
▷ Introduction to Docker (Twitter)
https://www.youtube.com/watch?v=4W2YY-qBla0
▷ When and How to Use Docker https://youtu.
be/OgiyiuqqOuk
▷ Contain Yourself (Harvard CS50 course)
https://live.cs50.net/docker
Credits
Special thanks to the people who made these awesome free resources:
▷ Presentation template by SlidesCarnival
▷ Photographs by Unsplash
▷ Images from the Noun Project
○ Shipping container by Zahi Asa
○ Polaroid by Michael Stüker
○ Server by Viktor Minuvi
○ Layers by David Swanson
○ Spreadsheet by Hello Many
○ Checklist by Prasad Ghone
○ Check List by Julynn B.
○ Box by Mourad Mokrane

Mais conteúdo relacionado

Mais procurados

Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep DiveWill Kinard
 
Introduction of Docker and Docker Compose
Introduction of Docker and Docker ComposeIntroduction of Docker and Docker Compose
Introduction of Docker and Docker ComposeDr. Ketan Parmar
 
Start your adventure with docker
Start your adventure with dockerStart your adventure with docker
Start your adventure with dockerSagar Dash
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016Patrick Chanezon
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
DockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTRDockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTRDocker, Inc.
 
Docker introduction
Docker introductionDocker introduction
Docker introductionGourav Varma
 
DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...
DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...
DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...Docker, Inc.
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard FontanaBlack Duck by Synopsys
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...All Things Open
 
A Tour of Open Source on the Mainframe
A Tour of Open Source on the MainframeA Tour of Open Source on the Mainframe
A Tour of Open Source on the MainframeAll Things Open
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Lucas Jellema
 

Mais procurados (20)

Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep Dive
 
Introduction of Docker and Docker Compose
Introduction of Docker and Docker ComposeIntroduction of Docker and Docker Compose
Introduction of Docker and Docker Compose
 
Docker & Daily DevOps
Docker & Daily DevOpsDocker & Daily DevOps
Docker & Daily DevOps
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker basics
Docker basicsDocker basics
Docker basics
 
Start your adventure with docker
Start your adventure with dockerStart your adventure with docker
Start your adventure with docker
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
DockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTRDockerCon SF 2015: DHE/DTR
DockerCon SF 2015: DHE/DTR
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Learning Docker with Thomas
Learning Docker with ThomasLearning Docker with Thomas
Learning Docker with Thomas
 
DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...
DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...
DockerCon EU 2015: Docker and PCI-DSS - Lessons learned in a security sensiti...
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
Containers for Lawyers Richard Fontana
Containers for Lawyers  Richard FontanaContainers for Lawyers  Richard Fontana
Containers for Lawyers Richard Fontana
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
A Tour of Open Source on the Mainframe
A Tour of Open Source on the MainframeA Tour of Open Source on the Mainframe
A Tour of Open Source on the Mainframe
 
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...
 
Docker Container Introduction
Docker Container IntroductionDocker Container Introduction
Docker Container Introduction
 

Destaque

Identifying third party software with ScanCode
Identifying third party software with ScanCodeIdentifying third party software with ScanCode
Identifying third party software with ScanCodenexB Inc.
 
Managing Software Inventories & Automating Open Source Software Compliance
Managing Software Inventories & Automating Open Source Software ComplianceManaging Software Inventories & Automating Open Source Software Compliance
Managing Software Inventories & Automating Open Source Software CompliancenexB Inc.
 
Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016
Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016
Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016Mindtrek
 
Beyond the GPL
Beyond the GPLBeyond the GPL
Beyond the GPLMatt Ryan
 
SFO15-TR7: OSS License Compliance
 SFO15-TR7: OSS License Compliance SFO15-TR7: OSS License Compliance
SFO15-TR7: OSS License ComplianceLinaro
 
Best practice recommendations for utilizing open source software (from a lega...
Best practice recommendations for utilizing open source software (from a lega...Best practice recommendations for utilizing open source software (from a lega...
Best practice recommendations for utilizing open source software (from a lega...Rogue Wave Software
 
Performing an audit - Open source compliance seminar
Performing an audit - Open source compliance seminar Performing an audit - Open source compliance seminar
Performing an audit - Open source compliance seminar Rogue Wave Software
 
Managing OSS license obligations
Managing OSS license obligationsManaging OSS license obligations
Managing OSS license obligationsnexB Inc.
 
The GPL: What It Means (And What It Doesn't) - WC Udaipur
The GPL: What It Means (And What It Doesn't) - WC UdaipurThe GPL: What It Means (And What It Doesn't) - WC Udaipur
The GPL: What It Means (And What It Doesn't) - WC UdaipurNancy Thanki
 
Software audit for acquisition due diligence with nexB
Software audit for acquisition due diligence with nexBSoftware audit for acquisition due diligence with nexB
Software audit for acquisition due diligence with nexBnexB Inc.
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesIresha Rubasinghe
 
Introduction To Open Source Licenses
Introduction To Open Source LicensesIntroduction To Open Source Licenses
Introduction To Open Source LicensesHarley Pascua
 
Why I Don't Use The GPL
Why I Don't Use The GPLWhy I Don't Use The GPL
Why I Don't Use The GPLShane Curcuru
 

Destaque (16)

Identifying third party software with ScanCode
Identifying third party software with ScanCodeIdentifying third party software with ScanCode
Identifying third party software with ScanCode
 
Managing Software Inventories & Automating Open Source Software Compliance
Managing Software Inventories & Automating Open Source Software ComplianceManaging Software Inventories & Automating Open Source Software Compliance
Managing Software Inventories & Automating Open Source Software Compliance
 
Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016
Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016
Martin von Willebrand - Collaborative Open Source Compliance - Mindtrek 2016
 
GNUGPL
GNUGPLGNUGPL
GNUGPL
 
Beyond the GPL
Beyond the GPLBeyond the GPL
Beyond the GPL
 
SFO15-TR7: OSS License Compliance
 SFO15-TR7: OSS License Compliance SFO15-TR7: OSS License Compliance
SFO15-TR7: OSS License Compliance
 
Copyright
CopyrightCopyright
Copyright
 
Best practice recommendations for utilizing open source software (from a lega...
Best practice recommendations for utilizing open source software (from a lega...Best practice recommendations for utilizing open source software (from a lega...
Best practice recommendations for utilizing open source software (from a lega...
 
Performing an audit - Open source compliance seminar
Performing an audit - Open source compliance seminar Performing an audit - Open source compliance seminar
Performing an audit - Open source compliance seminar
 
Managing OSS license obligations
Managing OSS license obligationsManaging OSS license obligations
Managing OSS license obligations
 
The GPL: What It Means (And What It Doesn't) - WC Udaipur
The GPL: What It Means (And What It Doesn't) - WC UdaipurThe GPL: What It Means (And What It Doesn't) - WC Udaipur
The GPL: What It Means (And What It Doesn't) - WC Udaipur
 
Software audit for acquisition due diligence with nexB
Software audit for acquisition due diligence with nexBSoftware audit for acquisition due diligence with nexB
Software audit for acquisition due diligence with nexB
 
Guide to Open Source Compliance
Guide to Open Source ComplianceGuide to Open Source Compliance
Guide to Open Source Compliance
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and Differences
 
Introduction To Open Source Licenses
Introduction To Open Source LicensesIntroduction To Open Source Licenses
Introduction To Open Source Licenses
 
Why I Don't Use The GPL
Why I Don't Use The GPLWhy I Don't Use The GPL
Why I Don't Use The GPL
 

Semelhante a Managing Open Source software in the Docker era

Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
Scanning Docker Images with ScanCode.io
Scanning Docker Images with ScanCode.ioScanning Docker Images with ScanCode.io
Scanning Docker Images with ScanCode.ioMichael Herzog
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101Naukri.com
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web DevelopersBADR
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web DevelopersAmr Fawzy
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture materialAnkit Gupta
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDr Ganesh Iyer
 
Docker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOpsDocker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOpsZohar Elkayam
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for RealistsOracle Developers
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realistsKarthik Gaekwad
 
"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)DataArt
 

Semelhante a Managing Open Source software in the Docker era (20)

Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker
DockerDocker
Docker
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Scanning Docker Images with ScanCode.io
Scanning Docker Images with ScanCode.ioScanning Docker Images with ScanCode.io
Scanning Docker Images with ScanCode.io
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Docker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOpsDocker Concepts for Oracle/MySQL DBAs and DevOps
Docker Concepts for Oracle/MySQL DBAs and DevOps
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)
 
Docker best Practices
Docker best PracticesDocker best Practices
Docker best Practices
 

Mais de nexB Inc.

Open source governance with Dejacode
Open source governance with DejacodeOpen source governance with Dejacode
Open source governance with DejacodenexB Inc.
 
Open source software governance with DejaCode
Open source software governance with DejaCodeOpen source software governance with DejaCode
Open source software governance with DejaCodenexB Inc.
 
Rightsizing Open Source Software Identification
Rightsizing Open Source Software IdentificationRightsizing Open Source Software Identification
Rightsizing Open Source Software IdentificationnexB Inc.
 
How to Manage Open Source requirements with AboutCode
How to Manage Open Source requirements with AboutCodeHow to Manage Open Source requirements with AboutCode
How to Manage Open Source requirements with AboutCodenexB Inc.
 
Managing Open Source Software License Compliance with DejaCode
Managing Open Source Software License Compliance with DejaCodeManaging Open Source Software License Compliance with DejaCode
Managing Open Source Software License Compliance with DejaCodenexB Inc.
 
Managing Open Source Software in the GitHub Era
Managing Open Source Software in the GitHub EraManaging Open Source Software in the GitHub Era
Managing Open Source Software in the GitHub EranexB Inc.
 
nexB Software Audit M&A: What to expect as a Seller
nexB Software Audit M&A: What to expect as a SellernexB Software Audit M&A: What to expect as a Seller
nexB Software Audit M&A: What to expect as a SellernexB Inc.
 
nexB - FOSS Introduction
nexB - FOSS IntroductionnexB - FOSS Introduction
nexB - FOSS IntroductionnexB Inc.
 
Managing Open Source Software Supply Chains
Managing Open Source Software Supply ChainsManaging Open Source Software Supply Chains
Managing Open Source Software Supply ChainsnexB Inc.
 
nexB - Software audit for product release
nexB - Software audit for product releasenexB - Software audit for product release
nexB - Software audit for product releasenexB Inc.
 
nexB: Software Audit for Acquisition Due Diligence
nexB: Software Audit for Acquisition Due DiligencenexB: Software Audit for Acquisition Due Diligence
nexB: Software Audit for Acquisition Due DiligencenexB Inc.
 

Mais de nexB Inc. (11)

Open source governance with Dejacode
Open source governance with DejacodeOpen source governance with Dejacode
Open source governance with Dejacode
 
Open source software governance with DejaCode
Open source software governance with DejaCodeOpen source software governance with DejaCode
Open source software governance with DejaCode
 
Rightsizing Open Source Software Identification
Rightsizing Open Source Software IdentificationRightsizing Open Source Software Identification
Rightsizing Open Source Software Identification
 
How to Manage Open Source requirements with AboutCode
How to Manage Open Source requirements with AboutCodeHow to Manage Open Source requirements with AboutCode
How to Manage Open Source requirements with AboutCode
 
Managing Open Source Software License Compliance with DejaCode
Managing Open Source Software License Compliance with DejaCodeManaging Open Source Software License Compliance with DejaCode
Managing Open Source Software License Compliance with DejaCode
 
Managing Open Source Software in the GitHub Era
Managing Open Source Software in the GitHub EraManaging Open Source Software in the GitHub Era
Managing Open Source Software in the GitHub Era
 
nexB Software Audit M&A: What to expect as a Seller
nexB Software Audit M&A: What to expect as a SellernexB Software Audit M&A: What to expect as a Seller
nexB Software Audit M&A: What to expect as a Seller
 
nexB - FOSS Introduction
nexB - FOSS IntroductionnexB - FOSS Introduction
nexB - FOSS Introduction
 
Managing Open Source Software Supply Chains
Managing Open Source Software Supply ChainsManaging Open Source Software Supply Chains
Managing Open Source Software Supply Chains
 
nexB - Software audit for product release
nexB - Software audit for product releasenexB - Software audit for product release
nexB - Software audit for product release
 
nexB: Software Audit for Acquisition Due Diligence
nexB: Software Audit for Acquisition Due DiligencenexB: Software Audit for Acquisition Due Diligence
nexB: Software Audit for Acquisition Due Diligence
 

Último

KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxWorkforce Group
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...amitlee9823
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMANIlamathiKannappan
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 DelhiCall Girls in Delhi
 
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...lizamodels9
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdftbatkhuu1
 
A305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdfA305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdftbatkhuu1
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insightsseri bangash
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaShree Krishna Exports
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 

Último (20)

KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
 
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
Call Girls In Holiday Inn Express Gurugram➥99902@11544 ( Best price)100% Genu...
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdf
 
A305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdfA305_A2_file_Batkhuu progress report.pdf
A305_A2_file_Batkhuu progress report.pdf
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insights
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in India
 
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through CartoonsForklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 

Managing Open Source software in the Docker era

  • 1. Managing OSS in the Docker Era
  • 2. Agenda ▷ Overview of the Docker platform ▷ New OSS governance challenges ▷ OSS governance solutions ▷ Automating compliance for Docker
  • 3. What is Docker? ▷ A software platform that allows you to package an application with all of its dependencies into a standardized unit for software development and deployment. ▷ The concept is borrowed from shipping containers, which define a standard to ship goods globally. Build Ship Run Development Deployment
  • 4. Why Docker now? ▷ Provides workflow, tools and a repository system to make it very easy to create deploy self-contained applications in a lightweight container ▷ Open source under a permissive license and well- integrated with most popular open source tools used for software development and deployment ▷ Built for the Cloud ▷ Riding on top of the virtualization wave
  • 5. In most cases, applications interact directly with the OS so there is little or no overhead from the Docker Engine. Docker Containers vs. Virtual Machines Virtual Machines Containers
  • 6. Docker basics - terminology ▷ Container - a runtime instance of a docker image. ▷ Image - an ordered collection of root filesystem changes and execution parameters for use within a running container. ▷ Layer - a “slice” of the container filesystem; one layer is created by each Dockerfile instruction. ▷ Dockerfile - a text script that contains the commands you execute to build a Docker image. ▷ Registry - a repository of images. It can be public or private. This is a web service.
  • 7. Docker images and containers Dockerfile Base image file FROM xxx ADD xyz RUN foo CMD bar Running container Docker “build” Docker “run” Image file
  • 8. At runtime, the container sees files from the top layer down. The orange file "masks" the red file at the same path in lower layer. Red file is present in lower layer but not visible. Docker layers Dockerfile FROM xxx ADD xyz COPY baz RUN foo CMD bar 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Each Dockerfile instruction line creates a new layer. The FROM xxx base image and its layers become the bottom layers (0 to 3) New layers (4-6) built from the Dockerfile become the top layers
  • 9. New OSS governance challenges ▷ By design Docker crosses traditional boundaries between development and distribution/deployment ▷ Traditional control points for distribution/deployment may not apply ○ Packaging a product for distribution ○ DevOps processes for deployment (internal or Cloud) ▷ Reuse of base images from the public Docker Hub is very common in order to get a quick start
  • 10. Issues - Component traceability ▷ Creating a Docker image is similar to a traditional build process, but ○ Components may be pulled from any mix of public and private repos ○ Artifacts from Dockerfile instructions may be hidden inside the image ○ There is no build log ▷ Once an image is built there is no easy way to trace a Dockerfile back to the layers it created
  • 11. Issues - Public Docker images ▷ Current Docker usage often starts with public images from Docker Hub ▷ Unlike a standard Linux Distro, these images are designed to be as small as possible and may be missing: ○ License and copyright notices ○ Copies of the corresponding source for Redistribution ▷ When you ship or deploy an image you are responsible for compliance for all layers included in that image
  • 12. Issues - Private Docker images ▷ Dockerfile instructions to install or update packages may pull code from unexpected locations: ○ Internal or public repositories ○ Complexity compounded by dependencies ▷ There is no audit trail for what you installed with Dockerfile instructions (i.e. no build log) ▷ When you ship or deploy an image you are responsible for compliance for all layers included in that image
  • 13. Key OSS governance questions ▷ Which OSS components are included in each Docker image and what are their licenses? ▷ What are my Attribution obligations? ▷ What are my Redistribution obligations? ○ You will be distributing Copyleft-licensed Linux user space packages in Docker images ○ Much more complex than with a standard Linux Distro ▷ How do I organize compliance by product/application?
  • 16. OSS Governance - Risks ▷ Your risk level for OSS compliance depends on use case(s): ○ Internal development --> Low ○ Internal deployment --> Medium ○ Cloud deployment to customers --> Higher ○ Product distribution to customers --> Highest ▷ New risks related to security vulnerabilities ○ Similar component traceability challenges
  • 17. ▷ Rear-view software audits are no longer practical ○ More complex by an order of magnitude ○ Thousands of software components is common ○ Rate of software updates is much higher ▷ The scope of the challenge depends on: ○ The controls applied by the team that produces a Docker image, ○ and by the team that created its base FROM image, ○ all the way down to the original root filesystem. OSS Governance - Audits
  • 18. OSS Governance solutions ▷ Update development processes ▷ Update compliance processes ▷ Update provisioning controls ▷ Instrument Docker build processes
  • 19. Update development processes ▷ Update development process standards ○ Define specific standards for building and deploying Docker images ○ Apply comparable standards to any Docker images from a supplier ▷ Consider that when you distribute Docker images, you have effectively become a Linux Distro supplier ○ Or more precisely a supplier of multiple Distros ○ Best case will be to minimize the size and number of these Distros
  • 20. Update compliance processes ▷ Define how Attribution notices will be provided with: ○ Cloud deployment to customers ○ Product distribution to customers ▷ Define how source code for Copyleft-licensed component-versions will be collected ▷ Define expectations for supplier-provided Docker images (including from OSS projects)
  • 21. Update provisioning controls ▷ Only use public or third-party Docker images with clear provenance and documented components ▷ Consider building your own base images ○ Limit components to those you need ○ Control the update/refresh cycle ▷ Set clear standards for how components are provisioned inside each image
  • 22. Instrument Docker build processes ▷ Capture origin and license for components as they are added or updated during the image build ○ Use verbose logging for image builds (default) ○ Collect copies of all components as installed or ADDed ○ Document each Dockerfile instruction including why/how components are provisioned ▷ Keep as much provenance data as possible within each image ○ Do not remove existing notices or licenses ○ Use MAINTAINER and LABEL Dockerfile tags
  • 23. Summary ▷ Docker is a powerful new open source technology ○ Accelerates development to deployment ○ Especially well-suited for the Cloud ○ Extremely rapid adoption ▷ Like any new technology, it requires adopters to update and adapt policies, processes and tools ○ First understand the new form of old risks ○ Update policies, processes and tools before you use Docker for product deployment or distribution ○ The Docker community will likely provide solutions for the missing tools sooner than later
  • 25. Resources ▷ Why Docker? http://blog.codeship.com/why-docker/ ▷ Introduction to Docker (Twitter) https://www.youtube.com/watch?v=4W2YY-qBla0 ▷ When and How to Use Docker https://youtu. be/OgiyiuqqOuk ▷ Contain Yourself (Harvard CS50 course) https://live.cs50.net/docker
  • 26. Credits Special thanks to the people who made these awesome free resources: ▷ Presentation template by SlidesCarnival ▷ Photographs by Unsplash ▷ Images from the Noun Project ○ Shipping container by Zahi Asa ○ Polaroid by Michael Stüker ○ Server by Viktor Minuvi ○ Layers by David Swanson ○ Spreadsheet by Hello Many ○ Checklist by Prasad Ghone ○ Check List by Julynn B. ○ Box by Mourad Mokrane