Step-By-Step Tutorial To Deploy A Distributed Node.js App At The Edge

Written by section | Published 2020/11/15
Tech Story Tags: nodejs | edge-computing | distributed-systems | programming | microservice-architecture | nuxtjs | edge | good-company

TLDR Step-By-Step Tutorial To Deploy A Distributed Node.js App At The Edge uses Section's Edge Compute Platform. Deploying your app closer to your end users reduces latency - shown to be up to 7x faster than Cloud. The Section platform expects that you have run both of these commands before you can deploy your app. You will need to sign up for a Section account and set up the SSL certificate for your website. We will now take the example NuxtJS app that we set up in the previous step and deploy it across the Section network.via the TL;DR App

In this tutorial, we are going to demonstrate how to deploy a distributed Node.js app at the Edge using Section's Edge Compute Platform.
Before we get into the how-to's, you may be wondering why you would want to deploy your app at the Edge vs. a typical Cloud deployment. Well, the biggest reason is speed. Deploying your app closer to your end users reduces latency - shown to be up to 7x faster than Cloud. Aside from speed, there are additional security and scalability benefits that can be achieved by deploying your applications (or portions of your application) at the Edge.
Let's do some coding!
At the end of this tutorial, you will have:
  • A website running as a subdomain at
    section.dev
  • SSL certificates for your website
  • Working knowledge of the
    sectionctl
    CLI tool to deploy changes to your app
Prerequisites:
  • You will need to sign up for a Section account
  • Text editor
  • Terminal app
  • Install the
    sectionctl
    CLI tool (instructions provided below).
  • Node.js version 10.14 or later
Step 1: Set up the Section CLI tool
After you have created your Section account, download the latest release of
sectionctl
from Github.
On Linux, this looks like:
wget https://github.com/section/sectionctl/releases/download/v1.1.0/sectionctl-v1.1.0-linux-amd64.tar.gz
tar zxvf sectionctl-v1.1.0-linux-amd64.tar.gz
Next, you'll need to place the executable on your path and make sure that it can be executed.
On Linux, this looks like:
mv sectionctl /usr/local/bin/sectionctl
chmod +x /usr/local/bin/sectionctl
Next, configure authentication by running:
sectionctl login
When prompted, enter your Section username and password, and security store them where
sectionctl
can find them.
The Section CLI is now configured and ready to use.
Step 2: Set up your Node.js application
For this tutorial, we are going to set up a simple NuxtJS app to deploy on Section's Edge.
Note: If you are on Windows, we recommend downloading Git for Windows and use Git Bash that comes with it, which supports the UNIX-specific commands in this tutorial.
Open your terminal,
cd
into the directory where you wish to create your app, and clone the demo app:
git clone https://github.com/section/nodejs-example
Now,
cd
into your newly created directory called
nodejs-example
:
cd nodejs-example
Next, pull down the dependencies and build your app by running:
npm install
npm run-script build
Note: The Section platform expects that you have run both of these commands before you can deploy your app.
Start your app's development server on port 8080 by running:
npm run-script start
You can check to see if it's working by opening http://localhost:8080 in your browser.
Step 3: Deploy your Node.js app
We will now take the example NuxtJS app that we set up in the previous step and deploy it across Section's Edge network.
First, locate your account ID using the following command:
sectionctl accounts
This should return an output similar to this:
| ACCOUNT ID | ACCOUNT NAME                      |
|------------|-----------------------------------|
| 1335       | g9ts24tx7gm8n12b2evf3.section.dev |
Use the number value in the account ID column to list your applications:
sectionctl apps list --account-id 1335
The output should look similar to this:
| APP ID |    APP NAME                       |
|--------|-----------------------------------|
| 7171   | g9ts24tx7gm8n12b2evf3.section.dev |
Note: The app name was automatically generated when you signed up. You will need this name for the final steps.
Next, we will set up the SSL certificate for your domain. (This is a free service provided by Section.)
Run the following command, substituting your account ID and app name:
sectionctl certs renew --account-id 1335 --hostname g9ts24tx7gm8n12b2evf3.section.dev
Wait a few minutes while Section uploads and deploys your Node.js app across the Edge network.
You can now view your app running on Section by navigating to your provided app name.
Congratulations! You have deployed your Node.js app on Section's Edge. Be sure to check out the Traffic Monitor in your Section Console to see how your app is performing across the globe.
To learn more, check out Section Docs and/or contact a Section Edge Solutions Expert.

Written by section | Paving the path to innovation at the Edge.
Published by HackerNoon on 2020/11/15