SlideShare a Scribd company logo
Open Source Dev
Containers with DevPod
Rich Burroughs
FOSSY Portland, 2023
I’ve been involved in open source communities for 30 years
● Creator and host of the Kube Cuddle podcast, where I
interview people from the Kubernetes community
● I worked in Ops/infrastructure/SRE for 20+ years
● I have seen some things
Hi, my name is Rich Burroughs
Rich Burroughs
Staff Developer Advocate
Loft Labs
Proprietary software used/mentioned in this talk
● macOS, Google Slides
● Microsoft VS Code, Jetbrains IDEs
● GitHub Codespaces, Gitpod
Why dev containers?
I was doing DevOps before DevOps was cool.
● I worked at a small startup with a payments product
● I was embedded with a team of application developers
● They wrote services in Java and several other languages
● I did manual deploys, configured services, troubleshooted problems
What happened when a new dev was hired?
1. They were handed a laptop
2. They went to a Wiki page with lots of instructions
3. They installed a bunch of prerequisite tools
4. They downloaded the source for all the apps they worked with
5. They built all the apps from source
6. They tried to run the services locally
7. They usually had to figure out some port conflicts, resources, etc.
Another issue is dependencies
● Developers sometimes have to manage dependencies for multiple versions
of their languages, and multiple languages
● The fact that tools like nvm, pyenv, rvm, etc. are so common shows what a
problem this is
● Ruby has rvm, rbenv, Bundler, and more
What did we learn from Infrastructure as Code?
● It’s self-documenting
● It doesn’t get stale like a Wiki page
● Helps with onboarding
Can we do dev environments as code?
Codespaces is great, but…
● It’s proprietary
● It’s a managed service
● Free version limits hours (about 30 a week) and storage
Dev Containers standard
● Created initially by Microsoft
● Open standard
● Almost everything you need to develop is in the container
● Configuration is defined in the devcontainer.json file
DevPod is…
● Open source
○ Mozilla Public License 2.0
● Client only
○ Ships as a lightweight desktop app for macOS, Linux, and Windows
○ There’s also a CLI
○ Nothing to install on the server
○ You can change where you run dev containers on the fly
● Unopinionated
○ We want you to be able to use DevPod with any infrastructure you have
Uses the Dev Container standard
Providers
DevPod uses the concept of providers, similar to Terraform.
Providers define how DevPod creates and manages the infrastructure to run the
dev containers.
Non-machine providers
● Docker (local or remote)
● Kubernetes (uses a kube context)
● SSH (runs containers on the target host)
Machine providers
● AWS, GCP, Azure
● Digital Ocean, Civo Cloud
Provisioning Process
1. Initialize provider
2. Optional: Create Machine (VM)
to host your dev environment
3. Create Dev Container
4. Launch and connect IDE
Dev Container
Machine
Provider
Agent
Agent
Hello World!
http://127.0.0.1:9000
Dev Container Agent
Port-Forwarding
SSH Remote
Connection
Community providers
You can use providers built by other community members.
Some that have been shared include:
● Cloudbit
● Flow
● Hetzner
● OVH Cloud
● Scaleaway
Custom providers
● You can write your own provider with a few lines of code
● They live in a provider.yaml file
● You can run them from your filesystem
● More info about developing providers is in the docs
DevPod manages the infrastructure
● You can set an inactivity timeout per provider
● When a machine has no active workspaces running it will sleep
● When all workspaces for a machine are gone, it will be deleted
Other topics - see the docs
● You can reuse local Git and Docker credentials with a credentials helper
● You can prebuild the dev container
● DevPod also works with vim/Neovim
Demo time
More resources
● DevPod website: https://devpod.sh
● DevPod GitHub: https://github.com/loft-sh/devpod
● DevPod and Colima tutorial:
https://loft.sh/blog/dev-containers-with-colima-and-devpod/
● Development Containers standard: https://containers.dev
● Loft Community Slack #devpod channel: https://slack.loft.sh
Thank you
● FOSSY organizers and volunteers
● Container Days - Josh Berkus
● DevPod maintainers, contributors, and community
● Thank you for watching
Slides

More Related Content

What's hot

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
Yajushi Srivastava
 
Docker compose
Docker composeDocker compose
Docker compose
Felipe Ruhland
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
roundman
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
fazalraja
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
Sparkbit
 
OpenShift Enterprise
OpenShift EnterpriseOpenShift Enterprise
OpenShift Enterprise
Ali Sadeghi Ardestani
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
Sreenivas Makam
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Crevise Technologies
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
Jessica Lucci
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
Imesh Gunaratne
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
Paras Jain
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
ssuser1490e8
 
Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad
Docker, Inc.
 
Docker basics
Docker basicsDocker basics
Docker basics
AmanSoni129
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
Opsta
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
Docker, Inc.
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for Beginners
Oktay Esgul
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
Dmitry Skaredov
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
Kingston Smiler
 

What's hot (20)

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
 
Docker compose
Docker composeDocker compose
Docker compose
 
OpenShift Overview
OpenShift OverviewOpenShift Overview
OpenShift Overview
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
OpenShift Enterprise
OpenShift EnterpriseOpenShift Enterprise
OpenShift Enterprise
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad
 
Docker basics
Docker basicsDocker basics
Docker basics
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
 
Docker Networking Deep Dive
Docker Networking Deep DiveDocker Networking Deep Dive
Docker Networking Deep Dive
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for Beginners
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
 

Similar to Open Source Dev Containers with DevPod - Rich Burroughs.pdf

Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
Lalatendu Mohanty
 
Docker for dev
Docker for devDocker for dev
Docker for dev
Erik Talboom
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
Anvay Patil
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
Codefresh
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainPuja Abbassi
 
Containers not just for production nov8
Containers not just for production nov8Containers not just for production nov8
Containers not just for production nov8
HARITHA HARI
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Lalatendu Mohanty
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
DevOps.com
 
Azure ai on premises with docker
Azure ai on premises with  dockerAzure ai on premises with  docker
Azure ai on premises with docker
Vishwas N
 
Development-Environment Up & Running with Docker
Development-Environment Up & Running with DockerDevelopment-Environment Up & Running with Docker
Development-Environment Up & Running with Docker
Michael Wellner
 
Run automated tests in Docker
Run automated tests in DockerRun automated tests in Docker
Run automated tests in Docker
Oleksandr Metelytsia
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
Matthias Luebken
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
Takayoshi Tanaka
 
Introduction to Containers
Introduction to ContainersIntroduction to Containers
Introduction to Containers
Dharmit Shah
 
R meetup 20161011v2
R meetup 20161011v2R meetup 20161011v2
R meetup 20161011v2
Niels Ole Dam
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
DynamicInfraDays
 
node_js.pptx
node_js.pptxnode_js.pptx
node_js.pptx
dipen55
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
sparkfabrik
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
DrupalDay
 

Similar to Open Source Dev Containers with DevPod - Rich Burroughs.pdf (20)

Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
 
Containers not just for production nov8
Containers not just for production nov8Containers not just for production nov8
Containers not just for production nov8
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
Azure ai on premises with docker
Azure ai on premises with  dockerAzure ai on premises with  docker
Azure ai on premises with docker
 
Development-Environment Up & Running with Docker
Development-Environment Up & Running with DockerDevelopment-Environment Up & Running with Docker
Development-Environment Up & Running with Docker
 
Run automated tests in Docker
Run automated tests in DockerRun automated tests in Docker
Run automated tests in Docker
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
 
Introduction to Containers
Introduction to ContainersIntroduction to Containers
Introduction to Containers
 
R meetup 20161011v2
R meetup 20161011v2R meetup 20161011v2
R meetup 20161011v2
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
node_js.pptx
node_js.pptxnode_js.pptx
node_js.pptx
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 

Recently uploaded

Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

Open Source Dev Containers with DevPod - Rich Burroughs.pdf

  • 1. Open Source Dev Containers with DevPod Rich Burroughs FOSSY Portland, 2023
  • 2. I’ve been involved in open source communities for 30 years ● Creator and host of the Kube Cuddle podcast, where I interview people from the Kubernetes community ● I worked in Ops/infrastructure/SRE for 20+ years ● I have seen some things Hi, my name is Rich Burroughs Rich Burroughs Staff Developer Advocate Loft Labs
  • 3. Proprietary software used/mentioned in this talk ● macOS, Google Slides ● Microsoft VS Code, Jetbrains IDEs ● GitHub Codespaces, Gitpod
  • 5.
  • 6.
  • 7. I was doing DevOps before DevOps was cool. ● I worked at a small startup with a payments product ● I was embedded with a team of application developers ● They wrote services in Java and several other languages ● I did manual deploys, configured services, troubleshooted problems
  • 8. What happened when a new dev was hired? 1. They were handed a laptop 2. They went to a Wiki page with lots of instructions 3. They installed a bunch of prerequisite tools 4. They downloaded the source for all the apps they worked with 5. They built all the apps from source 6. They tried to run the services locally 7. They usually had to figure out some port conflicts, resources, etc.
  • 9.
  • 10. Another issue is dependencies ● Developers sometimes have to manage dependencies for multiple versions of their languages, and multiple languages ● The fact that tools like nvm, pyenv, rvm, etc. are so common shows what a problem this is ● Ruby has rvm, rbenv, Bundler, and more
  • 11.
  • 12. What did we learn from Infrastructure as Code? ● It’s self-documenting ● It doesn’t get stale like a Wiki page ● Helps with onboarding
  • 13. Can we do dev environments as code?
  • 14.
  • 15. Codespaces is great, but… ● It’s proprietary ● It’s a managed service ● Free version limits hours (about 30 a week) and storage
  • 16. Dev Containers standard ● Created initially by Microsoft ● Open standard ● Almost everything you need to develop is in the container ● Configuration is defined in the devcontainer.json file
  • 17.
  • 18.
  • 19. DevPod is… ● Open source ○ Mozilla Public License 2.0 ● Client only ○ Ships as a lightweight desktop app for macOS, Linux, and Windows ○ There’s also a CLI ○ Nothing to install on the server ○ You can change where you run dev containers on the fly ● Unopinionated ○ We want you to be able to use DevPod with any infrastructure you have
  • 20. Uses the Dev Container standard
  • 21. Providers DevPod uses the concept of providers, similar to Terraform. Providers define how DevPod creates and manages the infrastructure to run the dev containers.
  • 22. Non-machine providers ● Docker (local or remote) ● Kubernetes (uses a kube context) ● SSH (runs containers on the target host)
  • 23. Machine providers ● AWS, GCP, Azure ● Digital Ocean, Civo Cloud
  • 24. Provisioning Process 1. Initialize provider 2. Optional: Create Machine (VM) to host your dev environment 3. Create Dev Container 4. Launch and connect IDE Dev Container Machine Provider Agent Agent
  • 25. Hello World! http://127.0.0.1:9000 Dev Container Agent Port-Forwarding SSH Remote Connection
  • 26. Community providers You can use providers built by other community members. Some that have been shared include: ● Cloudbit ● Flow ● Hetzner ● OVH Cloud ● Scaleaway
  • 27. Custom providers ● You can write your own provider with a few lines of code ● They live in a provider.yaml file ● You can run them from your filesystem ● More info about developing providers is in the docs
  • 28.
  • 29. DevPod manages the infrastructure ● You can set an inactivity timeout per provider ● When a machine has no active workspaces running it will sleep ● When all workspaces for a machine are gone, it will be deleted
  • 30. Other topics - see the docs ● You can reuse local Git and Docker credentials with a credentials helper ● You can prebuild the dev container ● DevPod also works with vim/Neovim
  • 32. More resources ● DevPod website: https://devpod.sh ● DevPod GitHub: https://github.com/loft-sh/devpod ● DevPod and Colima tutorial: https://loft.sh/blog/dev-containers-with-colima-and-devpod/ ● Development Containers standard: https://containers.dev ● Loft Community Slack #devpod channel: https://slack.loft.sh
  • 33. Thank you ● FOSSY organizers and volunteers ● Container Days - Josh Berkus ● DevPod maintainers, contributors, and community ● Thank you for watching