So handling the optimisation by yourself gets very, very tasking. So the requirements then, at the time where to be deployed on a bare metal, even though it's still being deployed like that now, not just as much as it was before. You need the early versions of Node. You need a lot of GPUs, you need RAMs, you need CPUs, basically, to deploy Node on, to be the Cisca server for yourselves, to deploy Node on it.
So the next stop is deploying Node.js on a monolith server. So basically, a monolith server consists of all parts of an application deployed on a single server, from the back end to the static part of the application. The pros of this particular way of deploying Node over the years is that the entire path is in a centralized server, and it's always a great choice to deploy Node as a monolith, so you can have all your applications in a single server, which is really, really great, because you can see every single thing you need to see, you can see all your applications coupled together. The cons is, as the application gets larger, it becomes difficult to update, and the memory requirements increase over time. For the requirements, you need a hosting server and NodeJS 12 upwards.
The next stop is NodeJS being deployed on a PaaS. So PaaS, Platform as a Service, also known as PaaS, involves, it provides a broad set of cloud-based application infrastructure and middleware resources via the cloud. An example of PaaS that you might have come across is Platform SH. Platform SH is quite different, because you can deploy a PaaS on containers, then Heroku, Vercel, Netlify, et cetera. The pro is NodeJS can be deployed faster, then you can also easily add additional data services to your Node application, then the cons is it can be very, very expensive at scale, and vendor locking also is another issue. The requirements to deploy Node on a PaaS are dependent on what the PaaS provider specifies generally.
Next up is deploying Node on a container. Now this is currently the most used way for deploying Node generally. A container is basically a lightweight piece of software that provides a run-time environment for your application. So platform.sh uses PaaS, but you get to deploy on container. It's basically a PaaS that you can use to deploy it on containers in Kubernetes, and also Docker. The pros, it makes your Node app lightweight and resource efficient. It's easy to manage and control your Node infrastructure. Adding external data services with your Node app is easier. Now the cons, it can be very expensive as still, and you also have issues with vendor locking. Whenever a vendor has issues, then it becomes a problem. Requirements to deploy Node on a PaaS are dependent on the container provider. That's the PaaS, the container provider, whoever is providing the container services. You also get to control what Node version memory disk size of your application.
Now, serverless is what we are basically going to talk about next. Serverless basically involves deploying your application without worrying about servers.
Comments