Hello dear readers and subscribers.
As we promised in the post about The Future of TechYourChance Blog, we are going to make this blog awesome. Even more awesome than it already is – can you imagine that?
Our plans are very far-reaching: complete redesign of the user interface, addition of a section that will show a list of curated links to interesting StackOverflow questions and external content worth reading, and many more. However, for quite some time now, the highest priority item on our list was moving the blog off shared hosting.
Shared hosting was a great fit for the blog several years ago – it allowed me to start blogging without dealing with all the complications of self hosted web-sites. Today, however, the low performance of shared hosting is a major obstacle to our goal of delivering a great content to our readers.
Those of you who visited the blog lately probably experienced page loading times of 5 seconds and more. Such a long loading time is below the standards of a modern web, and is longer than the time an average user is willing to wait for a content (~ 3 seconds). Looking at blog’s bounce rate and experiencing the long waiting times ourselves, it was clear to us that this technical problem should be solved ASAP.
Alex and I had worked very hard for the past couple of days, and today we are excited to inform you that TechYourChance blog moved to DigitalOcean‘s VPS.
Initially we considered another VPS hosting provider (and even started to move in that direction), but, luckily, we discovered DigitalOcean. Our experience with DigitalOcean is so much better than with the other hosting provider that we tested, that we can wholeheartedly recommend it to anybody looking for VPS hosting solution. It is simple, flexible, configurable and fun.
If you’d like to give DigitalOcean a try, consider using this link in order to get an initial discount and earn us some credits along the way.
The migration itself was not easy and presented us with many technical challenges related (primarily) to WordPress and MySQL functionality and configuration. Even the basic task of configuring a proper SSL support for WordPress running behind Nginx reverse proxy turned out to be far from trivial (and, as of this writing, we still have some issues to resolve).
Our original goal was to perform the migration with zero downtime, but it didn’t play out as planned.
We discovered the hard way that official Docker image for MySQL database is configured to consume huge amounts of RAM, regardless of available system memory, and that DigitalOcean’s “droplets” (fancy term for VPS) do not use swap memory by default. This caused the system to run out of memory and kill the database process, which, in turn, caused two downtimes of the site. We are sorry if you experienced site inavailability.
Now we are constantly monitoring the system, and will quickly take care of any other problems that might arise. Hopefully, there will be no more.
The good news are that our hard work seems to pay off – page loading times improved substantially, and the blog became much more responsive!
For interested readers, these are the main components of our current technology stack (I will probably write a more detailed post later):
- Hosting provider: DigitalOcean
- Hosting type: VPS
- Runtime containers platform: Docker
- Blogging platform: WordPress
- Database: MySQL
- Reverse proxy: Nginx
- Email service (SMTP): MailGun
- Configuration as a code: bash scripts
- SSL certificate provider: LetsEncrypt
There are few more tools that we want to integrate, especially in context of health monitoring. If you happen to have experience in this area – please share your recommendations in comments or in direct email.
We hope you enjoy the new smooth user experience on the site. Stay tuned for further updates.