Are servers dead yet?

2021-01-12

tags: sysadmin, dev

Serverless computing is a method of providing backend services on an as-used basis. A serverless provider allows users to write and deploy code without the hassle of worrying about the underlying infrastructure. A company that gets backend services from a serverless vendor is charged based on their computation and do not have to reserve and pay for a fixed amount of bandwidth or number of servers, as the service is auto-scaling. Note that despite the name serverless, physical servers are still used but developers do not need to be aware of them.

Taking that snippet from Cloudflare's web page you can already get an idea of what's going on with this "serverless" method and product service.

It's also often referred as Platform as a Service (PaaS).

This type of service is for people who don't wanna waste time setting up a virtual machine, for people who don't know how to configure different web servers like NGINX or Apache. For people that don't wanna learn how to partition, encrypt, create virtual volumes. You don't even need to learn how to set up cronjobs, write shellscripts, or even have basic or advanced computer science knowledge.

I don't know if serverless computing is a good thing or a bad thing. I know for sure that is here to solve a problem. That problem is time.

In my personal case, I love setting up my personal VM on a VPS with my Unix clone distribution of preference. I like to tinker around with configurations and optimizations. I like playing with NGINX, it gives me so much flexibility when deploying something.

There lies the problem. Fixing, updating, upgrading, messing with system libraries, scheduled tasks, daemons, services, and other sysadmin shenanigans won't help me develop my personal programming projects. And if I don't program I don't get money.

Serverless is a good option to focus on programming and just programming. You just wanna play guitar, you don't wanna spend time fixing the sound equalization right?

I know what you're thinking, you're a sysadmin and think that servers are going to disappear. Absolutely no! This won't happen. Servers will always exist. And you won't lose your job, however you may end giving serverless support for programmers.

However, I still think programmers need computer science or sysadmin background. In 10 years from now the new generation will not have an idea what is underlying behind the program. Who cares if it's morally good or bad. Those new programmers focus so much on the code that can create and test things very fast.

So in an anxiety rush of learning new things I destroyed my Vultr VPS running a tiny Linux distro based on musl libc and made a new Heroku account plus a Cloudflare account. Please don't use Cloudflare daily, it's a MitM enterprise level company. I'm using it only to learn. Avoid it at all costs.

Let's start with our journey to server dummification.

Heroku

Heroku is a container-based cloud Platform as a Service (PaaS). Developers use Heroku to deploy, manage, and scale modern apps. Our platform is elegant, flexible, and easy to use, offering developers the simplest path to getting their apps to market.

Well as you may notice in a first glimpse. This is a propietary service with free trials and runs similar to virtualization via containers. No open source here, except for the Heroku CLI that we need in order to upload our applications to their Git server. If your application is big enough you may start wasting lots of money on Heroku, paying for more bandwidth, adding more domains and add-ons. Who knows.

But propietary.... ugh. Everything is not as good as it looks. Flexibility is not as big as you may think. You may start having trouble setting up SSL certificates and DNS CNAME records at first. Really basic stuff you'd fix in a second with plain Let's Encrypt and a NGINX cookbook. And you may find yourself relearning a new platform which is also very tiresome. Their infrastructure is kind of easy I guess.

The platform is just that simple, send app get app. They may ask you for credit card verification even though they don't change a thing. And they also may ask you for your cellphone. Duh.

There isn't much to say really. It feels Programming for Dummies Fisher Price (tm).

But it's the best service you can get out there. It's free as long your project doesn't pass from 500 MiB. It's simple. It's well documented. It works as platform for many languages: Ruby, PHP, Python, JavaScript, Java, Go, Scala and Clojure.

Digital Ocean

U.S. DigitalOcean, Inc. is an American cloud infrastructure provider headquartered in New York City with data centers worldwide. DigitalOcean provides developers cloud services that help to deploy and scale applications that run simultaneously on multiple computers.

Digital Ocean also added in 30th September 2020 serverless platform (Platform-as-a-Service PaaS). You can click here for more info.

I haven't tried this one. Looks like it's more expensive but no way I'm touching serverless any time soon.

Is serverless the future? No. Learn to sysadmin. Simple as that.

blogimg