Sometimes, it's a good idea to take a step back and look at what you're doing and what you've done, and ask, "Can this be better?"
I recently did this with my Azure Windows VM
. For a while, I've been just loading up any new website or venture I've created onto my VM. This, however, has proven to be problematic when it comes to some of my more recent projects, including the OTL
and the corresponding Overload Game Browser
. These two projects are by far my most used websites on the server, and they continually push the limits of what this VM can do. Timeouts have become more and more frequent, and as more and more data piles into the database
, the problem is just going to keep getting worse.
So I asked the question, "Do I need
to be on a Windows VM?"
Some years ago, the answer would have been "yes". I was running .NET Framework
4-point-something, and had a lot of Microsoft-specific things on the system, including a Microsoft SQL Server
. Now, however, every site I host is written in Node.js.
The only thing remaining that requires anything Microsoft is the SQL Server.
So I asked the question, "Do I even need SQL Server
?" I don't think I do. MongoDB
exists, and I have been figuring out how to work with that for some time.
As such, I've begun a massive project to try to move away from this Windows VM and retire it permanently
. For a while, I wasn't sure how I was going to do it, but as part of a learning course pilot at work I picked up Docker
. My goal is to move every project that I have on that server into a group of Docker containers and run them on their own Linux VMs. Linux VMs are much cheaper than Windows VMs, and if something starts running out of resources I can just up the VM size accordingly.
So what is going to move?
This is, of course, a multi-part project that has taken on a life of its own in recent months, and it's one I am enjoying greatly so far. It's really expanded the boundaries by which I am able to operate websites and related online services. In coming posts, I will talk about each project separately, and what each site's status and future is.