2021-05-02, 13:30–13:55, General Track 1
Loading python code from a remote location during runtime opens new world of opportunities (and challenges).
As we all know, python is a very versatile language. You can do a lot with python, from ‘scripting’ to ‘software development’, it can be interpreted and also compiled as most of us know .pyc files and some of us know .pyd files.
Another thing that can be done using python is ‘webImport’ or ‘http import’, it means importing a python module from the web. Using code that comes from a remote source can open us a new domain of possibilities, and a totally new domain of problems, risks and challenges.
In JPMorgan we have the Athena project, it has a huge python code base, probably the largest in the world. The athena ‘special’ python interpreter imports code from an object store and enables us to do many things:
· A very fast way to update many services out there, as you just need to update the “public location”
· You do not have to create ‘large updates’ and push all the changes coming from different teams to production, if one developer is done, he can just push his own code to production without waiting for the ‘release time’. Even though the code base is large, updates are very fast
· Code could be updated after the artifact\container is ‘sealed’
· The code base\program can be very large, ignoring the size of the artifact
· Fixes and pushes to production can be very fast
· New tests can check the code computability of both the coming and the previous releases (for an instance, on git, if you store the tests in the same repo as the code, it will be very hard for you to write a test case, show that’s is failing on the released version, and prove that it passes on the fix you made)
· Requires investment
· Loading modules can sometimes be slower than loading from disk
· Need to find a solution for code inconsistencies
· Code could be updated after the binaries\container is ‘sealed’ (this might change the behavior)
· Requires good testing it order to be stable
On my talk ill discuss this and maybe more