Azurifying r-Techsupport

I have been hosting infrastructure for r/Techsupport for at least 6 or 7 years, at times I hosted from home but often I hosted from various VPS's on providers like DigitalOcean, OVH, or Oracle. With time I grabbed a domain name for the community and others began to host new COTS or in house tools for the community as well.

Something any distributed group or company will eventually have to contend with is split responsibilities for infrastructure and silo'd access. We have been dealing with these issues for several years now; vital bots operated from houses accessible only by one party, various neglected but core and critical services being run on unknown servers that are... somewhere, and flaky crashing free services being over-provisioned for our use.

I frequently use my homelab to learn new applications and functions that I intend to implement in my professional environments. Like everyone else these days, we are looking to move to the cloud in the future, but I know so little about running and managing servers in a "cloud" fashion. I believe running giant thick VMs in the cloud and doing the same classic infrastructure maintenance of OS and basic low level configurations, just in the cloud, is not the proper way to do things.

One of the larger projects I have hosted in the past was our first modern-generation wiki running on Bookstack, but as the toll of continued maintenance added up we looked to make our first move to centralized SaaS services by migrating to GithubPages.

While this solution had greatly improved our resiliency against the loss of one member to a tragic lottery accident it came at the cost of usability which is now being addressed through the creation of our own CMS called Hyde, the development of which is being led by Arc/zleyyij

In an attempt to resolve the additional outstanding issues in our community and gain experience in cloud solutions I started looking to leverage AWS or Azure to run some of our infrastructure, the first step of which is checking out the Azure services list and AWS services list to determine what can be leveraged to run your environment.

As I said already, traditional infrastructure ideas and methods should not be used in the cloud, they do not scale and do not reduce your work load. This eliminates options like EC2 or Azure Virtual Machines. Our immediate needs were running the new Hyde application as well HWGV, another app developed by Arc/zleyyij.

Fortunately I was able to containerize Hyde so it came down to running it in ECS, Lightsail Containers or Azure Container Apps (ACA). When comparing the capabilities only Lightsail and ACA made the process of executing, scaling and adding SSL to a container simple. I already planned to run Azure DNS to share the ability to create records in our domain so Azure easily won out for this solution.

I plan to write a future post or document on the process of making an Azure Container App with persistent storage, SSL and a custom domain name

The second app I wanted to get running was HWGV, this application has no backend, it is using a nifty in browser script so it can run on a standard web server with no additional dependencies. When you have basic web pages like this to display you want to run them as "Static Web Apps" which is conveniently the name of the Azure service that does this.

I have actually been leveraging Azure Static Web Apps (SWA) for a while now, I run this site and a basic home page on my own tenant.

Using previous experience I was able to get a Github Action setup pretty quickly that will build and deploy the site anytime a new commit is made.

I am sure we will need to refine how we are running the Hyde Container App but I have high hopes that HWGV and our Azure DNS record sets will be stable for a long time to come allowing us to concentrate on other efforts instead of tracking down POCs when changes are needed or issues arise.