Hello again! It's been a while since the last update to SnekLog but I can assure you, development continues! It's been a crazy year, but the last few months have given me a little bit of free time to devote to SnekLog and I finally managed to make some of the substantial changes I had planned for a while. While these changes may not be the most exciting for you since over 90% of them are under-the-hood, they lay the groundwork for some major changes I have planned such as an UI refresh, QR code integration, a new user "Dashboard" and a handful of other exciting things. Finally, with changes this significant, in spite of my best testing, there is a chance you may run into some issues. However, I will be closely monitoring the status of the application over the next couple of days to quickly catch and resolve any errors you run into. Please feel free to send me a message directly using the 'Feedback' button at the bottom of SnekLog if you have any issues to report as well.
With all of that said, let's dive into the changes and I hope you enjoy. As always, thank you for using SnekLog!
Previously, SnekLog was powered by three different servers. One that handled the application itself, one for the documentation and introduction website, and the third that handled the database as well as the uploaded pictures. This was fine initially, but I wanted to migrate to something that was more robust and reliable, and also something that I could scale more easily while also taking advantage of some of the skills I have gained over the past couple of years. Now, the backend is five servers total, with a handful of auxiliary services.
The new version of SnekLog is powered by 2 servers just for the app itself, which both talk to a load-balancer which ensures that traffic is evenly distributed. As an added bonus, the load-balancer is capable of redirecting users to a "Maintenace Mode" page when I pull SnekLog down for updating or other patching, which is a lot nicer than looking at a generic HTTP error page.
After the upgrades to the app servers, the database server no longer handles any of the uploaded pictures and they are now uploaded to an S3 storage bucket. This change allows the database to handle less traffic and also lets me make for reliable preparations for scaling up the database server if/when needed.
Finally, I also spun up an extra server to just handle monitoring and control of the entire back-end. This allows me to take advantage of more advanced security and monitoring tools. I now receive alerts much faster than I did previously and I have much better tools at my disposal for digging through log files to try and root any bugs that may crop up. It also allows me to make excellent use of automation tools like Ansible. Previously, updating SnekLog was a bit of a chore that I had to do carefully which took a good bit of time. With the new architecture, I also built a handful of "Manager" scripts that allow me to push updates to all the application instances with a single command that executes in just a few seconds.
This is only the beginnings of major changes that should come in the not-too-distant future. I have plans on building a "Dashboard" of sorts that will basically be an "at a glance" of all the tasks you need to do for the day and I am already working on a major UI revamp that should make the app both look better and be easier to use.