Deploying a Node.js backend app to Kubernetes
Tags: node, kubernetes, devops, microtica
Published: 2022-09-12 14:53:39

[Node.js](https://nodejs.org/?utm_source=medium&utm_medium=blog&utm_campaign=node.js) is an open-source, cross-platform, back-end JavaScript runtime environment that runs on a JavaScript Engine (i.e. V8 engine) which was designed to build scalable backend applications.

Microtica offers a ready-to-use template to deploy an Node.js application as part of our Free templates pack. You can deploy an Node.js application on our demo Kubernetes cluster to get started. When ready, you can self-host Node.js on your own AWS account and setup a production-ready solution in minutes.

Click [Deploy with Microtica](https://app.microtica.com/templates?utm_source=medium&utm_medium=blog&utm_campaign=node.js) and follow the template steps to deploy your Node.js application on your AWS account.

#1. Create an account
﻿[Creating a Microtica account](https://app.microtica.com?utm_source=medium&utm_medium=blog&utm_campaign=node.js) is totally free. You can do it by signing up with your email or with your Git account.

#2. Select the Node.js template
![Microtica templates](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pzxqt4zmox86qfvn7qsh.png)

On the left side, you can see a link to the source code of this template. It will redirect you to Microtica's GitHub account.

#3. Create Git Repository
As a first step, you need to connect a Git account (GitHub, Bitbucket, GitLab, or CodeCommit). Microtica defines a repository name by default for each template, but you can change it. If you already have a Git account connected to Microtica, you can choose it from the list. We will create a new repository on your account with the provided name, and every Git push will be deployed automatically in Microtica.
![Create Git repository](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ro9wnapyin24yeyqk2lc.png)
Follow this guide on [How to import your existing application in Microtica](https://docs.microtica.com/import-an-existing-nodejs-application?utm_source=medium&utm_medium=blog&utm_campaign=node.js), if you already have a Node.js application source code.  

#4. Select a cluster
The next step is choosing the Kubernetes cluster where your application will deploy. There are three options you can select to run your container app: 

- Create a new EKS cluster on the spot
- Connect an existing cluster
- Get a free portion of our shared cluster

![Choose where to deploy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvs9svsu7l5w2yapyc44.png)

##4.1. Create a new EKS cluster on the spot
If you want to deploy your Node.js application on your own AWS account, you can create an AWS managed-Kubernetes (EKS) cluster, by clicking on the Create Amazon EKS Cluster button. 

This is the recommended option for production applications, as it gives you full ownership of your cloud infrastructure and applications. 

![Create Amazon EKS cluster](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k7ug2s2ft3e1j44ts9ss.png)

This action will open the popup shown on the image above. You can select the environment in which you'd want this cluster to be deployed. If you don't have an existing environment, you can create one by selecting the Create Environment action from the dropdown menu. 

Once you select an environment, the next step is to select an AWS account and region where the EKS cluster will be deployed. If you don't have a connected AWS account, you can connect one right here by clicking the Connect AWS Account button. This will initiate a CloudFormation stack that will give Microtica permissions to provision infrastructure on your AWS account. Once you create the stack, the connection will be established automatically and you'll be able to see the AWS account in the dropdown list of accounts. 

Select the account, select a region, and then click on Deploy to start the deployment of your environment. 

Deploying a new Kubernetes cluster on your AWS account could take up to 15 mins.

##4.2. Connect an existing cluster
In Microtica you can also connect an existing Kubernetes Cluster that you have and deploy your applications there. You can connect Kubernetes clusters running on basically any cloud provider or on-premise. By connecting a cluster you can use the full capabilities of Microtica’s Kubernetes automation.

To connect an existing Kubernetes cluster in Microtica and deploy your Node.js application there, follow the documentation linked [here](https://docs.microtica.com/connect-an-existing-kubernetes-cluster?utm_source=medium&utm_medium=blog&utm_campaign=node.js). 

##4.3. Get a free portion of our shared cluster

![Free cluster](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yfdjymnnuo8awpwjs3a.png)

Our Free plan offers a Shared Kubernetes Cluster with 500MB of RAM for your applications. If you select the Microtica Kubernetes cluster option you will have the opportunity to request this for your applications. 

This cluster should only be used for development purposes. To run production applications, create an EKS cluster using our templates (part of the Starter and Advanced plan).

By clicking the Create Demo Cluster button, you will be assigned a free portion of a Microtica-provided Kubernetes Cluster. 

If needed you can request additional minutes or storage on the Free plan, at some cost. Please contact us via email or in the chat if you're interested in purchasing more workload with a shared Kubernetes cluster. 

#5. Deploy the template to your cluster
Once you’re done with the cluster selection, you can go ahead and trigger a deployment of the environment by clicking on the Deploy button. 

It takes approximately 4-5 minutes for this application to be deployed on the cloud. In the meantime, you can follow the detailed deployment logs by clicking the View Logs button.

![View logs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/82vatux3ivwe05exugm1.png)


#6. Access application
When the deployment is finished, you will see a View Applications button, that leads you to the Apps tab inside the environment. Here you can see all your live applications that are deployed and currently running on the cloud.

![Live apps](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jh4yzoo3uztk91m4w7fr.png)


Select your Node.js application to navigate to the overview page, where you have some basic information about the app. By clicking on the domain field or the Visit button, you can preview your application live in the browser. 

For even more information, you can also look at the Deployments and Monitoring tabs, where you have the pipeline history, resource consumption metrics, and logs for your instances. 

To learn more about how to scale your Node.js application in Microtica, read the following article about [Scaling Applications in Microtica](https://docs.microtica.com/scaling-applications-in-microtica?utm_source=medium&utm_medium=blog&utm_campaign=node.js).