I've recently came across a new interesting challenge.
One of the app I'm working on is an old app written in 2016 using Python 2.7. It's basically a website/web platform where people can do stuff.
The platform is going to be discontinued soon, but needs to process data for the next 5-8 years nevertheless. The business context led to the decision of disabling new sign-ups and only allow existing users to sign in, so that they can access their data for years to come.
Not only the project is being discontinued, but the staff behind it too. Resources are scarce to say the least.
The goal now is to keep the platform in an operational condition, without making any changes to it. (or, as little as possible)
As you probably know, Python 2 is completely outdated and support is being dropped on many tools, such as pip
which will drop support in January 2021, 6 months from now.
The challenge at hand here is to find a way to keep such a project in operational condition and keep it running for all those years to come.
But, I know it will eventually break. At some point, running pip install
will not work anymore, whether due to pip itself or one of the thousands of the project's dependencies.
I've spent a good deal of time on this challenge already, and eventually chose to keep our current hosting provider for now (fully managed).
I also considered making a Docker instance so that the whole infrastructure gets "frozen", but even though I'm not sure the underlying provider (AWS, etc.) wouldn't deprecate such instances within 5-8 years of time and force us to move it to something different, which may lead to issues when reinstalling everything years later, with a different staff unfamiliar with the project.
Of course, rewriting the whole app is not an option, due to time/budget constraints. Also, the project being discontinued, it'd really not make any sense, financially wise.
So, I'm not asking for a magical solution. But I'm interested in similar experiences and feedback about what to do and not to do from peers who've known such a challenge. Would love to hear your story!
Docker, or some kind of containerization in general, would be my first thought too. I don't get what you mean by "deprecating such instances."
You wouldn't need to run pip or any other updates regularly. The only scenario where you would need to update anything is when you must apply some security patch.