Developer Stories: How to Upgrade to a Moving Target Without Disturbing Users or Your Sanity
2020-02-04, 14:00–14:50, B.2.015

A Tale of Upgrading From MongoDB-based Pulp 2 to PostgreSQL-based Pulp 3 in Katello

Whether you are a developer, system administrator, or simply a consumer of software, upgrades can be a painful experience. When was the last time your prescribed hour-long upgrade turned into a full-day endeavor? Have you been procrastinating upgrading your project’s EOL’d backend service for fear of breaking APIs? In the Katello project, we certainly have experienced these issues ourselves. After learning lessons the hard way when upgrading our backend service Pulp years ago, we’ve created a plan and are currently executing our latest upgrade to Pulp 3 now. The upgrade could be painful if we’re not careful. How can we switch to an in-development service with completely new concepts and APIs in a way that is easy for developers but still produces stable releases?

In this presentation, I will share a development story that covers prior mistakes we made and the lessons learned, the planning and architecture of incrementally introducing Pulp 3, and how we’ve maintained clear communication across the Katello and Pulp 3 teams to keep our efforts aligned.
This talk’s audience isn’t limited to developers alone; anyone in configuration management, system administration, or management fields should find it relatable as well.


The topics that will be covered are as follows: * Introduction to Foreman, Katello, and Pulp for context * What is so great about Pulp 3 that’s driving our upgrade plans? * What is our final plan to migrate from Pulp 2 to Pulp 3? * How does the upstream community affect this plan? * Why is it bad to migrate to Pulp 3 all at once? * What have our day-to-day challenges been during the migration and how have we handled it?