#531: Talk Python in Production
Have you ever thought about getting your small product into production, but are worried about the cost of the big cloud providers? Or maybe you think your current cloud service is over-architected and costing you too much? Well, in this episode, we interview Michael Kennedy, author of "Talk Python in Production," a new book that guides you through deploying web apps at scale with right-sized engineering.
Episode sponsors
Seer: AI Debugging, Code talkpython26
Agntcy
Talk Python Courses
Links from the show
Christopher Trudeau - guest host: www.linkedin.com
Michael's personal site: mkennedy.codes
Talk Python in Production Book: talkpython.fm
glances: github.com
btop: github.com
Uptimekuma: uptimekuma.org
Coolify: coolify.io
Talk Python Blog: talkpython.fm
Hetzner (€20 credit with link): hetzner.cloud
OpalStack: www.opalstack.com
Bunny.net CDN: bunny.net
Galleries from the book: github.com
Pandoc: pandoc.org
Docker: www.docker.com
Watch this episode on YouTube: youtube.com
Episode #531 deep-dive: talkpython.fm/531
Episode transcripts: talkpython.fm
Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong
---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython
Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython
Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy
Michael Kennedy: Managing Your Own Python Infrastructure
<p>How do you deploy your Python application without getting locked into an expensive cloud-based service? This week on the show, Michael Kennedy from the Talk Python podcast returns to discuss his new book, “Talk Python in Production.”</p>
<p>Michael runs multiple Python applications online, including a training site, blog, and two podcasts. While searching for the best solution for hosting his business, he documented his findings in a book. We talk about containerizing Python applications, generating static sites, preparing for traffic spikes, and avoiding cloud service lock-in.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/speed-python-concurrency/">Speed Up Python With Concurrency</a></p>
<p>Learn what concurrency means in Python and why you might want to use it. You’ll see a simple, non-concurrent approach and then look into why you’d want threading, asyncio, or multiprocessing.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:01:28 – Welcome back!</li>
<li>00:03:05 – Is this your first book?</li>
<li>00:04:13 – A book that reads like a blog</li>
<li>00:06:15 – Incentives to keep you locked in</li>
<li>00:09:20 – Following the journey of the Talk Python sites</li>
<li>00:11:47 – Audio reader briefs</li>
<li>00:15:19 – Discussing Dev Ops as a topic</li>
<li>00:18:31 – Background of developing for the web</li>
<li>00:20:14 – Stack-Native vs Cloud-Native</li>
<li>00:24:40 – Using Quart web framework</li>
<li>00:25:50 – Embracing Docker</li>
<li>00:32:39 – Sharing a single powerful machine allows for individual peaks</li>
<li>00:37:04 – Video Course Spotlight</li>
<li>00:38:30 – Minimal cloud lock-in</li>
<li>00:40:04 – Using OrbStack for local builds and testing</li>
<li>00:42:07 – Coolify as a Docker host</li>
<li>00:47:14 – Moving away from Google analytics and a GDPR rant</li>
<li>00:50:43 – Diving deep into web tech of ngnix, SSL, and CDNs</li>
<li>00:54:33 – Talking about the prices for hosting</li>
<li>00:59:09 – Creating static sites</li>
<li>01:06:22 – Invitation to come back to discuss AI and agents</li>
<li>01:10:06 – What are you excited about in the world of Python?</li>
<li>01:16:19 – What do you want to learn next?</li>
<li>01:17:34 – What’s the best way to follow your work online?</li>
<li>01:19:40 – Thanks and goodbye</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://talkpython.fm/books/python-in-production">Talk Python in Production Book</a></li>
<li><a href="https://quart.palletsprojects.com/en/latest/index.html">Quart documentation: Documentation</a></li>
<li><a href="https://www.docker.com/">Docker: Accelerated Container Application Development</a></li>
<li><a href="https://cloudnews.tech/south-korea-loses-its-government-cloud-after-a-fire-no-backups-or-recovery-plan/">South Korea Loses Its Government “Cloud” After a Fire: No Backups or Recovery Plan</a></li>
<li><a href="https://orbstack.dev/">OrbStack: Fast, light, simple Docker & Linux</a></li>
<li><a href="https://coolify.io/">Coolify</a></li>
<li><a href="https://blog.cara.app/blog/finances-and-future-of-cara">Finances & the Future of Cara: Artist Social & Portfolio Platform</a></li>
<li><a href="https://github.com/awesome-selfhosted/awesome-selfhosted">awesome-selfhosted: A list of Free Software network services and web applications which can be hosted on your own servers</a></li>
<li><a href="https://umami.is/">Umami: Modern analytics platform</a></li>
<li><a href="https://github.com/mikeckennedy/umami-python">umami-python: Umami Analytics Client for Python by Michael Kennedy</a></li>
<li><a href="https://gohugo.io/">Hugo: The world’s fastest framework for building websites</a></li>
<li><a href="https://github.com/mikeckennedy">mikeckennedy - Michael Kennedy: GitHub</a></li>
<li><a href="https://mkennedy.codes/">Michael Kennedy’s Thoughts on Technology</a></li>
<li><a href="https://mikeckennedy.gumroad.com/l/talk-python-in-production-book/3s9o1s3">Talk Python in Production Book - Link With Discount Code</a></li>
</ul>
<p>Michael’s Recommended Hosting Locations:</p>
<ul>
<li><a href="https://www.digitalocean.com/">DigitalOcean - Cloud Infrastructure for Developers</a></li>
<li><a href="https://www.hetzner.com/">Hetzner - Dedicated Server, Cloud & Hosting aus Deutschland</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/deploy-python-script-web-flask/">Deploy Your Python Script on the Web With Flask</a></li>
<li><a href="https://realpython.com/courses/speed-python-concurrency/">Speed Up Python With Concurrency</a></li>
<li><a href="https://realpython.com/courses/create-scalable-flask-web-app/">Creating a Scalable Flask Web Application From Scratch</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
Interview w/ Michael Kennedy (part 2)
🌎 Michael On The Web
Twitter
Talk Python To Me Podcast
Talk Python Training
✨ Sponsor: DeepSource
Thanks to DeepSource for supporting the show!
DeepSource continuously analyzes source code changes using static analysis to find and fix issues categorized as security, performance, anti-patterns and bug-risks. It integrates with GitHub/GitLab/Bitbucket and runs analysis on every commit and pull request, discovers and fixes potential issues before they make it to production.
Generally available analyzers: Python, Go and Ruby
Plust it's Free to use for open-source repositories and small teams. Check it out and let them know we sent you: deepsource.io/devtea
📮 Ask a Question
If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.
🧡 Leave a Review
If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.
Interview w/ Michael Kennedy (Part 1)
🌎 Michael On The Web
Twitter
Talk Python To Me Podcast
Talk Python Training
✨ Sponsor: Linode
Thank you to long time sponsor and friends of the show Linode for sponsoring today's episode!
Simplify your cloud infrastructure with Linode’s Linux virtual machines and develop, deploy, and scale your modern applications faster and easier.
Listeners of Developer Tea can now enjoy $100 in free credit! You can find all the details at linode.com/developertea.
📮 Ask a Question
If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.
🧡 Leave a Review
If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.
5 Years Podcasting Python With Michael Kennedy: Growth, GIL, Async, and More
<p>Why is Python pulling in so many new programmers? Maybe some of that growth is from Python being a full-spectrum language. This week on the show we have Michael Kennedy, the host of the podcast “Talk Python to Me”. Michael reflects on five years of podcasting about Python, and many of the changes he has seen in the Python landscape.</p>
<p>We discuss several stories about the different ways Python is being used, and how that is drawing in many new programmers. Michael covers some potential Python stumbling blocks of Async, the Python Global Interpreter Lock (GIL), building desktop apps, and type checking. We also talk about how podcasts can act as a form of language immersion.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/editing-excel-python-openpyxl/">Editing Excel Spreadsheets in Python With openpyxl</a> </p>
<p>In this course, you’ll learn how to handle spreadsheets in Python using the openpyxl package. You’ll learn how to manipulate Excel spreadsheets, extract information from spreadsheets, create simple or more complex spreadsheets, including adding styles, charts, and so on.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:01:34 – Changes in the Python landscape over the last 5 years</li>
<li>00:08:09 – Changing the perspective from scripts to applications</li>
<li>00:10:48 – Python as a full-spectrum language </li>
<li>00:17:13 – What are the areas of growth for Python</li>
<li>00:22:09 – Stories highlights from Talk Python</li>
<li>00:27:48 – Stack Overflow Developer Surveys</li>
<li>00:33:22 – Enterprise use and contributions to Python</li>
<li>00:38:04 – Video Course Spotlight</li>
<li>00:39:20 – A monk learns Python and OpenCV</li>
<li>00:48:18 – Things that have been hard to do in Python</li>
<li>00:52:07 – How is the GIL part of the problem?</li>
<li>00:56:37 – Leave a review, it will help the show, Thanks! </li>
<li>00:57:04 – More on Async in Python</li>
<li>01:03:38 – Recent courses developed</li>
<li>01:10:05 – Who listens to a Python podcast?</li>
<li>01:13:06 – What are you excited about in the world of Python?</li>
<li>01:17:46 – What do you want to learn next?</li>
<li>01:23:17 – What is something you thought you knew about Python, but were wrong about it?</li>
<li>01:26:58 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://talkpython.fm/home">Talk Python To Me</a></li>
<li><a href="https://www.theregister.com/2020/08/26/british_ai_planets/">Brit uni’s AI algorithm clocks 50 exoplanets hidden in Kepler space ‘scope archives</a></li>
<li><a href="https://warwick.ac.uk/newsandevents/pressreleases/fifty_new_planets">Fifty new planets confirmed in machine learning first</a></li>
<li><a href="https://youtu.be/4kU0skUZTIw">Apple MainStage: Nine Inch Nails – YouTube</a></li>
<li><a href="https://insights.stackoverflow.com/trends?tags=java%2Cc%2Cc%2B%2B%2Cpython%2Cc%23%2Cvb.net%2Cjavascript%2Cassembly%2Cphp%2Cperl%2Cruby%2Cswift%2Cr%2Cobjective-c">Stack Overflow Trends: See how technologies have trended over time</a></li>
<li><a href="https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-wanted">Stack Overflow: Most Loved, Dreaded, and Wanted Languages</a></li>
<li><a href="https://talkpython.fm/episodes/show/54/enterprise-software-with-python">Enterprise Software with Python: Mahmoud Hashemi - Talk Python Ep54</a></li>
<li><a href="https://talkpython.fm/episodes/show/230/python-in-digital-humanities-research">Python in digital humanities research: Cornelis van Lit - Talk Python Ep230</a></li>
<li><a href="https://www.python.org/dev/peps/pep-0554/">PEP 554 – Multiple Interpreters in the Stdlib</a></li>
<li><a href="https://talkpython.fm/episodes/show/144/machine-learning-at-the-large-hadron-collider">Machine Learning at the Large Hadron Collider: Talk Python Ep144</a></li>
<li><a href="https://talkpython.fm/episodes/show/29/python-at-the-large-hadron-collider-and-cern">Python at the Large Hadron Collider and CERN: Talk Python Ep29</a></li>
<li><a href="https://blogs.oracle.com/smb/10-of-the-costliest-spreadsheet-boo-boos-in-history">12 of the Biggest Spreadsheet Fails in History: Oracle Blog</a></li>
<li><a href="https://fastapi.tiangolo.com">FastAPI: Modern, fast (high-performance), web framework for building APIs with Python</a></li>
<li><a href="https://www.starlette.io">Starlette: Lightweight ASGI framework/toolkit</a></li>
<li><a href="https://github.com/alex-sherman/unsync">Unsync: Unsynchronize asyncio by using an ambient event loop in a separate thread</a></li>
<li><a href="https://realpython.com/courses/python-type-checking/">Python Type Checking: Real Python Video Course</a></li>
<li><a href="https://pydantic-docs.helpmanual.io">pydanctic: Data validation and settings management using Python type annotations</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/python-3-concurrency-asyncio-module/">Hands-On Python 3 Concurrency With the asyncio Module</a></li>
<li><a href="https://realpython.com/courses/python-type-checking/">Python Type Checking</a></li>
<li><a href="https://realpython.com/courses/editing-excel-python-openpyxl/">Editing Excel Spreadsheets in Python With openpyxl</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
#226: Building Flask APIs for data scientists
See the full show notes for this episode on the website at talkpython.fm/226
#224: 12 lessons from 100 days of web
See the full show notes for this episode on the website at talkpython.fm/224
Python's Tale (Interview)
We partnered with Red Hat to promote Season 3 of Command Line Heroes — an original podcast from Red Hat, hosted by Saron Yitbarek, about the people who transform technology from the command line up. It’s an awesome show and we’re huge fans of Saron and the team behind the podcast, so we wanted to share it with you.
Learn more and subscribe at redhat.com/commandlineheroes.
Join the discussion
Changelog++ members support our work, get closer to the metal, and make the ads disappear. Join today!
Featuring:
Emily Morehouse – Website, GitHub, LinkedIn, X
Michael Kennedy – Website, GitHub, LinkedIn, X
Diane Mueller – Website, GitHub, X
Saron Yitbarek – Website, GitHub, X
Show Notes:
Check the show notes and transcript for more details.
A benevolent dictator for life steps down and changes the course of the Python language forever. Guido van Rossum’s “Transfer of Power” memo brings attention to the way programming languages evolve.
In this episode, Emily Morehouse makes the connection between Python’s technical extensibility and its inclusive community. Michael Kennedy explains how Python is both easy to learn and powerful enough to build YouTube and Instagram. And Diane Mueller highlights how the Python community took the lead on so many inclusive practices that are spreading in tech—including the rise of community-led decision-making.
Sometimes, a benevolent dictator can get a language started. But Python shows it’s communities that make languages thrive.
Something missing or broken? PRs welcome!
#215: The software powering Talk Python courses and podcast
See the full show notes for this episode on the website at talkpython.fm/215