Welcome to the second episode of Architecture Deep Dive with Oleksii Petrov! In today’s podcast, our guest — Vitaliy Kharytonskiy, Solution Architect, Prom.ua. n this episode, Vitaliу from Prom.ua dives deep into the architecture behind one of Ukraine’s largest e-commerce platforms. He shares insights on managing 243 PostgreSQL databases, why they chose self-hosted infrastructure, and how they scale with PgBouncer. Tune in for a detailed look at connection pooling, Kubernetes, and production lessons learned. Link to Vitalii’s presentation: "Spin-up pgbouncer for fun and profit" 🔗 https://fwdays.com/en/event/devops-fwdays-2025/review/spin-up-pgbouncer-for-fun-and-profit What you should subscribe to: – More interesting content for developers: https://fwdays.com/en/events – Fwdays Twitter: https://twitter.com/fwdays – Oleksii Petrov's Telegram channel: https://t.me/OleksiiTheArchitect – Oleksii Petrov's LinkedIn: https://www.linkedin.com/in/alexhelkar/ Timestamps: 00:00 - Intro 01:14 - Vitalii’s role at Prom.ua and introduction to Prom.ua platform 04:00 - What's the scale of prom.ua? How many databases do you have? 05:48 - Why did you choose self-hosted infrastructure over cloud? 08:19 - What's your typical PostgreSQL deployment configuration? 09:35 - What's the driver for having 243 PostgreSQL Databases? Is it Microservices/SOA concerns? 11:11 - Is it possible to run such an infrastructure without PgBouncer? 12:48 - Why do we need a database proxy and what's PostgreSQL's connection model? 17:54 - What are the three pooling modes of PgBouncer? 19:40 - Do we have any limitations in Transaction Pool Mode? 21:35 - Why not just use application-level pooling? 24:15 - How do you prevent PgBouncer connection starvation across services? 25:27 - Do you use PgBouncer's built-in authentication and why? 26:09 - What are the trade-offs of PGBouncer being single-threaded? 27:17 - Architecture evolution journey from Basic to Kubernetes 29:44 - Walkthough the current PostgresSQL and PGBouncer architecture at Prom.ua. 33:15 - Did you consider using PgBouncer as both an app-level and reverse proxy to the database? 34:08 - How do you structure your PgBouncer pod when using sidecar containers? 39:09 - What is the health check strategy for PgBouncer? 40:38 - What’s the best way to work with the clients_waiting metric in PgBouncer? 42:12 - Do you have autoscaling setup for PgBouncer? 43:05 - What are the key metrics to monitor for PgBouncer? 44:36 - Why use a custom DNS layer instead of relying on cloud DNS? 47:35 - Is built-in health checks implementation planned in PgBouncer? 48:30 - Do you see any development or evolution in the PgBouncer project? 49:12 - What PgBouncer log do you parse and why? 50:20 - How do you debug issues with PgBouncer? 51:23 - Can you share any stories about production incidents with PgBouncer? 52:08 - How do you handle PgBouncer Config Reloads Without Restarts? 52:45 - Final Thoughts & Advice from Vitaliy 53:57 - Don’t forget to subscribe and like!
Інформація
- Шоу
- ЧастотаЩомісяця
- Опубліковано30 липня 2025 р. о 08:42 UTC
- Тривалість54 хв
- КатегоріяНе відверті