"It will be easy" - The Trials of Updating a Product from Python 2 to 3
summary
A production Python 2 API and server get ported to Python 3 and moved from WebPie to CherryPy, deployed CherryPy behind Nginx with proxy headers fixed for real client IPs, database work uses MySQLdb with care around cursor types (buffered vs dict cursor) and parameterized execute calls, and external tests use RunScope API monitoring to ensure zero regressions. Migration takes about 4.5 weeks, adds WebSocket support, produces 30% faster average API responses and new Python and iOS SDKs.
AI-written summary · about
chapters (19)
- 0:00Intro
- 1:03Background
- 9:07Choosing a Framework
- 12:38Boring vs Boring
- 15:16Why Upgrade
- 17:47Runscope
- 26:53String
- 28:56Deployment
- 30:09Reverse Proxy
- 31:37Legacy System
- 35:38Any Questions
- 36:29Do I feel like this refactor upgrade met our goals
- 37:49Was our source tree large
- 38:45Was our source tree small
- 39:33Has it been easier to add new features
- 40:26What I would have done differently
- 41:01We met our goals
- 41:40Using an ORM
- 42:49Summary
related talks
26mPython 2 is dead! Drag your old code into the modern age
27mHow We Migrated 3.8 Million Lines of Python 2 Without Interrupting Deve...
36mA Python Takeover
43mPython 3: ten years later
24mJourney to migrate python2 projects to 3
31mFighting the Good Fight: Python 3 in your organization
41mPorting a Project from Python 2 to 3
39mA scalable blueprint for product customization with Python 3
