 So hi everyone, I would like to ask you to quickly sort out sit down and please be quiet because I have only half a vocal chord and I'm sick So everyone can hear me Now that's out of the way, my name is Radka. I'm gonna tell you about the Valkyria project Valkyria It's a silly bunny It's reincarnated Valkyria She's a powerful warrior that helps Protect communities from spam and helps with other community management tasks. So The first deployment was an Raspberry Pi and The code was optimized for it so this is basically a Chatbot for Discord and it's running all the time. It's talking to some APIs and The code was loaded all the configuration and user data and everything on startup. All the work was done in memory and Then it was dumped back into the slowpoke storage because Raspberry Pi has only memory card MicroSD and That was done on separate thread. It was okay, but eventually it wasn't enough Valkyria kept growing and growing until she consumed all of Raspberry Pi's processing power and memory and We had to move on to more powerful VPS and Raspberry Pi optimized code on normal machine didn't quite work well so it was causing just issues and And it was getting more and more expensive Because it was vertically scaled So eventually I had to rewrite it from scratch Functionality was mostly the same just some minor improvements in features So we went from mono to Docknet core on Linux at that point it was 2.0 quite recently actually and From file storage to my SQL This is what the CPU usage looked like after that rewrite And there were some issues that I managed to forget or introduce for example, I forgot one of the most important Things when you're working with database I forgot to add an index in one of the most abused tables and After I fixed that and optimize the code a little bit better. This is what we got Plenty of space to grow further But that's not the end So Because VPS was at that point very expensive. We went to actual hardware so We started to use we built a computer Which is a super micro super micro board to older CPUs two zones and Taking clock together 32 times 3.8 gigahertz it has 64 gigabytes of error correcting memory and It's connected through Red Hat Enterprise Linux 8 powered a pu2 c4 router board That little thing in my hand is Really tiny SSD drive in the 16 gigabytes this funny board has standard x64 AMD processor Quad core 1 gigahertz for big a bit of memory. It does the job And the idea is that Because of this board we can actually use failover So we can use two different ISPs in case one goes down The primary connection is 300 by 300 megabit per second The secondary one is a little bit slower, but it's mostly not used mostly never hopefully never and This is our the web interface in development Eric and To answer some of the most basic questions about this kind of project You ask why not why am I not using containers everyone is using containers now, right? That's the thing everyone goes for But I'm using one single hosts. You don't need containers on one host and it's just an extra step in the build pipeline I Often push several tweaks or features within a couple of hours and at that point It's just waste of time to build a container in the middle Okay, do I happen to have any questions at this point? Eric So the question is what is the user interface in this development version it's a room jazz Anything else Well, it's a lot of files Yeah, it's quite difficult to Build something on the website I Can tell you how did I take? See something work to next level of lazy So I've got seconds at chatbot on the server running It's basically serving a server monitoring some infrastructure stuff report some temperature CPU load memory and Then we are also using the same bot using tom's the bus library to be able to Get service status and restart services through a chatbot Why why are we running federal Linux? You would expect us any kind of deployment to be on a server oriented distribution like credit enterprise Linux or something Well, basically Federa gives me the ability to use the latest tech It's stable enough. There is no issue with stability And I don't have to go through all the trouble to get the actual latest tech and latest packages like in rel or sentos you have to Add some third party repositories often or build it from source. It's Lazy C-Sharp and dotnet why? C-Sharp is what I've been working with for quite a while so that's something that I know really well and can write reasonably effective code with although I'm quite lazy of them and It Let's me write the code very effectively Really fast the user interface IDE basically does all the work for me unlike with Python or Often there are all kinds of memory management issues with C++ So instead of taking that much time to write it. I take this much time Okay That's enough from me If you happen to have any more questions I can answer those Yeah, it's basically a simple dotnet application and it's using Tom's the bus library to talk to system D And basically we can do anything through the bus. I mean the primary one Valkyria So the Valkyria is It's a community management to because the discord the platform was missing a lot of basic very basic management features so like You can often see random spam bots running around spamming the discussion rooms and It was very easy to Do all kinds of bad stuff So that's why Valkyria being a warrior with Warrior with sword and stuff Can trip them down it is quite powerful anti-spam And provides other moderation tools That are missing and we still have a few minutes. I'm too fast Okay. Well, um, I'm Radka. I'm not called quality engineering lead at Radhead if you happen to have any questions about that or Would like to talk about bunnies Valkyria project a mountain biking. I'm a mountain biker. You can find me somewhere. You can easily find me Okay, thank you