STRAP is one of the most important projects that ARCsoft is working on. To deploy applications onto STRAP, we use a user-friendly web application named Strapper. Today, I will show you a quick demo of how we can have an application up and running with just a few clicks using Strapper.
Last week Archie and I presented our work on the STRAP project at the BCNet Connect 2023 conference in Vancouver. As last week was the end of Archie’s co-op terms with us, this was a great way to cap off all his hard work with the ARCsoft team since joining us in December 2022.
In moving to self-hosting STRAP (sort of–where we host the Strapper
application on platform) we have run into an issue where we rely on a file in
local storage which we can’t furnish any other way. We don’t want to at this
time make a change to the deployment manifest, but we may need to effect the
change multiple times, so we want something reusable: enter kubectl patch
.
Up until now, using local storage for Terraform state has served STRAP development well: it’s the simplest to set up and, should you ever need to, it’s easy to pick apart. It’s completely adequate for many uses–if you have local storage, and you don’t need to share the state between multiple editors, then there is no advantage to storing Terraform state remotely. But Strapper doesn’t meet those criteria anymore so we need to go remote.
Django is a very popular web framework known by many Python developers. RCS ARC Software Team decided to use this framework as the main technology to develop multiple web applications, which will eventually serve the need of researchers, faculty members and employees in the University of Victoria. All of these applications have some identical functionalities such as authenticating users by HTTP request headers, displaying separated pages for normal users and admin users, and providing an about page for web developers. These similar functionalities force developers to rewrite the same code everytime they start a new project. This is obviously a time-consuming and boring process.
My goal in this project is to convert a Flask skeleton code into Django.