Labs - Python3 Upgrade for EvoCloud

Posted August 25th, 2020

Major Server Update Rollout August 25th-28th

We are rolling out an enormous code update this week to our entire municipal website platform.
This will be the largest code deployment we have ever done.
This upgrade has been in development for close to a year. We will aim for minimal downtime during deployment, but customers may see intermittent temporary service issues.

Upgrading our Platform to Python 3

Our Programming Team has been hard at work for about a year upgrading every single application in our stack to use Python 3.
Python is the programming language that we use for the application and front-end servers of our CMS and other applications.
We had a lot of Python 2.7 code in the system, and that code is no longer going to be supported by Amazon AWS.
This required our team to go through EVERY single small application in the overall system, and update the code.
In doing the upgrade, we are also upgrading all of the libraries that we use for things like image manipulation.
We are seeing a performance increase on the test servers running the new code, which has us excited for a potential performance boost.
We will need actual load on the servers to test performance benefits, so we are deploying to our smallest service clouds first.

Additional Server Upgrades

In addition to the Python and library updates, we are also upgrading all of our servers that are Python 3 compatible.
This includes a new NGINX caching setup in front of our hosting servers, which will boost our website hosting speed with new caching strategies.
The Linux Operating system is getting an upgrade to Linux2 on the new application servers as well.
The Django framework that we use for our application code is also getting an upgrade as well.
All of these upgrades are working and tested in a development environment now, but we do anticipate some minor bugs when we launch just because Python 3 handles some data differently.

Deployment and Bug Fixes

We monitor our cloud servers for bugs with monitoring software, so after deployment if an error does happen in a website, page, or application - it will alert our team and we will respond quickly.

What This Means for the Future of Our Applications

Our team has really been handcuffed with all of this behind-the-scenes upgrade work for the last year.
One of the tragic things is that even with the upgrade deployed, our system will look the exact same.
All of the work was done to the engine that is under the hood, so our customers may not be able to appreciate the upgrade other than a performance boost.

However......

With this upgrade behind us, our team can focus on the many new applications features that our customers have been asking for.
We have many improvements planned for our applications, and some new suites of applications that we will also now be able to work on.
The updated code is much faster to modify and improve, so you should see improvements roll out more quickly soon.