Docker is a useful technology for packaging and deploying software to production environments, but it also introduces a different set of complexities that need to be understood. In this episode Itamar Turner-Trauring shares best practices for running Python workloads in production using Docker. He also explains some of the security implications to be aware of and digs into ways that you can optimize your build process to cut down on wasted developer time. If you are using Docker, thinking about using it, or just heard of it recently then it is worth your time to listen and learn about some of the cases you might not have considered.
Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? Check out Linode at linode.com/podcastinit or use the code podcastinit2020 and get a $20 credit to try out their fast and reliable Linux virtual servers. They’ve got lightning fast networking and SSD servers with plenty of power and storage to run whatever you want to experiment on.
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
- To connect with the startups that are shaping the future and take advantage of the opportunities that they provide, check out Angel List where you can invest in innovative business, find a job, or post a position of your own. Sign up today at pythonpodcast.com/angel and help support this show.
- You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
- Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected])
- To help other people find the show please leave a review on iTunes and tell your friends and co-workers
- Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
- Your host as usual is Tobias Macey and today I’m interviewing Itamar Turner-Trauring about what you need to know about running Python workloads in Docker
- How did you get introduced to Python?
- For anyone who is unfamiliar with it, can you describe what Docker is and the benefits that it can provide?
- What was your motivation for dedicating so much time and energy to the specific area of using Docker for Python production usage?
- What are some of the common issues that developers and operations engineers run into when dealing with Docker and its build system?
- What are some of the issues that are specific to Python that you have run into when using Docker?
- How does the ecosystem for Python in containers compare to other languages that you are familiar with?
- What are some of the security issues that engineers are likely to run into when using some of the advice and pre-existing containers that are publicly available?
- One of the issues that you call out is the speed of container builds. What are some of the contributing factors that lead to such slow packaging times?
- Can you talk through some of the aspects of multi-layer packages and useful ways to take proper advantage of them?
- There have been some recent projects that attempt to work around the shortcomings of the Dockerfile itself. What are your thoughts on that overall effort and any specific tools that you have experimented with?
- When is Docker the wrong choice for a production environment?
- What are some useful alternatives to Docker, for Python specifically and for software distribution in general that you have had good luck with?
Keep In Touch
- Itamar’s Best Practices Guide
- GitLab CI
- Heresy In The Church Of Docker
- 40 Years of DSL Disasters (Slides)
- Docker Layers
- Alpine Linuxhttps://alpinelinux.org
- Heroku Buildpacks
- Itamar’s Docker Template
- Hashicorp Packer
- Solaris Zones
- BSD Jails