ASP.NET Core Deployment Stack On A Budget

This post is a follow-up to Developing A .NET Core Site In Windows and Deploying It To A Budget Linux Host. Be sure to check it out for more information on my current production deployment process.

In this post, I will continue with the "budget" theme we explored in "Developing A .NET Core Site In Windows and Deploying It To A Budget Linux Host" and breakdown where and how I host my database, email services, dedicated production VM and dedicated dev shared hosting environment for Pioneer Code. Oh yeah, did I mention that I do this all for as low as $7.95 a month!

Production VM at DigitalOcean

Prior to migrating from ASP.NET 4.6.x to ASP.NET Core 1.x, I hosted Pioneer Code on a shared hosting plan at WinHost. When I switched over to ASP.NET Core I wanted a bit more control of my environment which lead me down the path of finding a Linux Hosted VM provider. Keeping the "budget" them in mind, I chose DigitalOcean. Their base "droplet (VM)" comes in at $5.00 a month and can be scaled as needed. Can't get much cheaper than that and if you're curious, their service so far has been stellar.

For more information on my entire deployment process to DigitalOcean, be sure to check out the first part of this post at Developing A .NET Core Site In Windows and Deploying It To A Budget Linux Host.

Everything Else At WinHost

What about your database? What about your email services? Well, that is where WinHost steps in. Having dealt with them for over a year with no problems and comparing dollar for dollar against other Windows shared hosting companies, I found little reason not to continue using them to fill in the gaps. Oh, and guess what? I am doing so for $3.95 a month.

Database

Naturally, though not necessary, Pioneer Code is backed by a SQL Server database. To be more specific, SQL Server 2016. This left me with few options.

  • Host my database at Azure for $4.99 on their base plan and find another third-party provider for my email services.
    • Though Azure was enticing, if we are to continue down the road of "budget friendly", there are better options. Especially when consider you will need to take on a third cost for your email services.
  • Find a competitor to WinHost switch to them.
    • Though WinHost is typically highly regarded, some would argue that another service provider might be better. From experience, I have had little to no problems with WinHost over the past year or so.
  • Stick with what I know best, WinHost!
    • Their base plan is only $3.95 a month! I have yet to find anyone else who can top that.

In short, I am hosting my production database at WinHost and accessing it through my DigitalOcean VM.

WinHost servers appear to be on the west coast. Obviously, there is a desire to get your SQL Server as close to your Web Server as possible. Luckily DigitalOcean allows you to select from a number regions to host your "droplets (VM)). Meaning, in theory, I was able to get my database and web server "relatively" close to each other.

Development Environment & Email Services

The $3.95 base plan WinHost offers also covers my email services. As a bonus, I also get to use the shared hosting service include for whatever I want. Currently, I am using it as a development deployment for various projects, but there is nothing to stop me from using it for another small production deployment.

Conclusion

Let's do a small recap.

  • DigitalOcean at $5.00 a month.
    • Linux VM that is scalable as needed.
  • WinHost at $3.95 a month.
    • Production Database
    • Email Services
    • Additional shared hosting deployment

All that for $8.95 a month! If that is not "budget friendly", I don't know what is.

My goals when choosing my deployment stack where simple, do it for as cheap as I can while maintaining a decent level of quality. Of which I think accomplished. That being said, I am not delusional. If Pioneer Code starts gaining significant traffic, my deployment stack might have to be adjusted to suit those needs. Until then, I am perfectly happy with where I am at.

As always, let me know if you have any question in the comments section below.