Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Evolution of Deploying Node on Servers and ...

The Evolution of Deploying Node on Servers and Platforms

NodeJS is a server-side representation of Javascript that can work well as an application's backend and can be run on various servers and infrastructures. In this talk, we'll be going through the journey of how Nodejs has been deployed over the years via various infrastructures from PaaS to Containers.

shedrack akintayo

February 17, 2022
Tweet

More Decks by shedrack akintayo

Other Decks in Programming

Transcript

  1. BIO. Shedrack Akintayo Lagos (Nigeria) Developer Relations Engineer • Work

    at Platform.sh • Technical Writer • Community builder(Fb DevC Lagos, OSCA)
  2. Table of contents • Node Deployed on a Server in

    a Garage • Node Deployed on Monolith Servers • Node on PaaS • Node Deployed on Containers • Serverless/Cloud Functions
  3. Node Deployed on a physical server in a garage -

    Build your own server. Before everything else, Node used to be deployed on a physical server in a garage. Pros - Dedicated node server for just your application - Control your environment - Secured Cons - Too expensive to set up - technical know how, manpower - Stressful to manage - Harder to optimise Requirements - Node early versions - GPUs - RAMs - CPUs
  4. Node Application/Serv er Deployed on Monolith Servers A monolith server

    consists of all parts of an application deployed on a single server, from the backend to the static part of the application. Pros - The entire parts application is in a centralized server - A great choice to deploy node as a monolith Cons - As the application gets larger, it becomes difficult to update. - Memory requirements increase overtime Requirements - A hosting server - Nodejs 12 upwards
  5. Node Deployed on a PaaS PaaS aka Platform as a

    Service, it provides a broad set of cloud-based application infrastructure and middleware (AIM) resources via the cloud - Platform.sh - PaaS but deploy on Containers - Heroku - Vercel - Netlify - AWS Elastic Beanstalk Pros - NodeJS can be deployed faster and with various version - Easy to manage and control your NodeJS infrastructure - Adding external data services with your Node app is easier. Cons - Can be very expensive at scale - Vendor lock in Requirements to deploy Node on a PaaS are dependent on the PaaS provider.
  6. Node Deployed on a Container A container is a lightweight

    piece of software that provides a runtime environment for your application. - Platform.sh - PaaS but deploy on Containers - Kubernetes - Docker Pros - It makes your Node app lightweight and resource efficient - Easy to manage and control your NodeJS infrastructure - Adding external data services with your Node app is easier. Cons - Can be very expensive at scale - Vendor lock in Requirements to deploy Node on a PaaS are dependent on the Container provider. You also get to control what node version, memory disk size for your application.
  7. Serverless/Functi on as a service Serverless consisting of deploying applications

    without worrying about servers. Servers are still present but on a as-used basis. Function-as-a-Service (FaaS) is a serverless way to execute modular pieces of code on the edge E.g - Aws Lambda - Serveless.com Pros - Lower costs - Build faster - Simple Backend Code Cons - Vendor lock in - Unsuitable for long term tasks