Infrastructure for Production and Research

Keeping up with my promise to deliver one article every week was a challenge I set for myself when I started my blog writing journey. But let’s be honest, it’s not easy to resist the temptation of the weekend 😉

In my latest article, I dive into the specs of my Dell PowerEdge R710 with an Intel(R) Xeon(R) CPU X5690 @ 3.47GHz. With 2 socket processors (12 cores each), this beast of a machine boasts a total of 24 cores. And with 18 slots of 8 GB RAM, it packs a whopping 144 GB of memory. Needless to say, it’s important for me to utilize this hardware to its full potential.

From my experience, a typical software infrastructure must have two distinct but similar environment stacks to support both Production and Research (for Development). Therefore, I decided to split the environment between On-Cloud and On-Premises. Below is the infrastructure diagram to show the components for each of the environments. Let’s discuss it in a little more detail, shall we?

Cloudflare

I can’t recall when I started working with Cloudflare, but it has been years now, and by far, the service has provided the best DNS, Firewall, Routing, and Rules, which are more than enough to kick-start and protect your website on-cloud or on-premises. I plan to cover more details on the Cloudflare setup in my next article, so stay tuned!

On-Cloud

I have been using AWS Cloud since 2017, and most of my projects use EC2 to host and run the database, web service, etc. A cloud solution guarantees server uptime, so we don’t need to worry about internet and power outages, which is ideal for production environments. Since we can use any of the cloud resources, make sure that it is needed and doesn’t over-capacity, which will lead to expensive monthly billing. After several calculations and considerations, I have decided to use EC2 with the instance type t3.medium installed with Ubuntu 20.04 and MySQL database.

On-Premises

I have configured my home router to forward the necessary port to the Dell PowerEdge R710 server. To make DNS Records maintenance less painful to manage, I have purchased a Public Static IP Address from the internet provider. If your internet provider doesn’t allow a public address, I would recommend using NO-IP (https://www.noip.com/). I am thinking of covering more details about No-IP in my future article, so stay tuned!

Well, if you see the infrastructure diagram and wonder why I must go through the trouble of using different Applications, OS, Platform, and Virtualization? The answer is an environment designed for Research. Having a personal server means you have the freedom to explore anything, and the limits are your imagination and willingness to learn new technology.

Next weekend I will cover in detail for On-Premise infrastructure, so stay tuned for my next blog post. Cheers! 😊