Red Hat® OpenShift® is a unified platform to build, modernize, and deploy applications at scale. Red Hat OpenShift offers a great developer experience in shipping your applications to the cloud. JavaScript is the most popular programming language in the world and is used by millions of developers around the world. While it’s one programming language, there are many popular frameworks within JavaScript that need different approaches.
In this series of articles, we are putting together a step-by-step guide that will enable you to be up and running JS applications on OpenShift. We expect you to have some familiarity with Node.js and Red Hat OpenShift. Just in can case you need a quick recap, checkout
- OpenShift video
- Red Hat Developer Sandbox
- Node.js site
- Containerfile
Steps to Deploy an Node.js REST API on Red Hat OpenShift
The Developer Sandbox for Red Hat OpenShift is a free-to-use OpenShift instance for you to experiment with OpenShift for your use cases.The development of dynamic and responsive web applications has evolved into a fundamental requirement. Node.js REST API’s stand out as formidable technologies capable of crafting these applications with finesse. Our workflow involves the creation and deployment of applications directly from GitHub onto an OpenShift sandbox environment.
Follow these steps to start your sandbox instance and deploy your Node.js app:
- Create a Red Hat Sandbox account using https://developers.redhat.com/developer-sandbox
- Once you have the account and are signed in, On the left side menu, click on +Add.
- Select Import from Git.
- Specify your Git repo URL. For the sake of this tutorial, we use https://github.com/redhat-developer-demos/node.js-REST-API-openshift-example. But, you can choose any Node.js repo.
- Add a Containerfile to your repo. The Containerfile helps developers to specify the environment needed for running your applications. In case, you do not have a Containerfile on your project, you can add add one to your repo by referring to https://github.com/redhat-developer-demos/node.js-REST-API-openshift-example/blob/main/Containerfile
- OpenShift will detect the Containerfile from the git repository. In case the Containerfile is in a subdirectory, you need to provide the path of Containerfile.
[ NOTE: If the containerfile/Dockerfile is not detected, click Import Edit Strategy. Select as Dockerfile, define the path as Containerfile. ] - Choose a Resource Type field, please choose either Deployment or Serverless Deployment (default option) depending on your preference.
- Select Target Port under Advanced options to define the port 3000 that will receive the container's traffic.
- Click on Create.
- You will now be directed to the Topology view, and the application will commence deployment. Please allow some time for the build & deployment process to complete. While it is in progress, you will have the opportunity to monitor the logs.
- Once it’s done deploying, you can click on the ↗ OpenURL icon to see the webpage of your Node.js application running on OpenShift.
- Add /api/hello-world to the end of the router URL to call the GET API, for example: https://<route-url>/api/hello-world
In this tutorial, you learned how to deploy a Node.js REST API on Red Hat OpenShift. Red Hat OpenShift has powerful features that make it easy to manage and scale your Node.js application in production.
Add Continuous Deployment
Continuous deployment is a strategy in software development where code changes to an application are released automatically into the production environment. It speeds up time to market by eliminating the lag between coding and customer value. OpenShift enables developers to configure this using a few simple UI-based steps.
Now, let’s begin adding CD to the application we just created:
- From the Topology view, select the application.
- Click on Actions dropdown.
- Select Edit <application name>.
- Check the Add pipeline checkbox. You can see the pipeline visualization if you’d like to understand the steps.
- Click Save.
Trigger the CD pipeline
A pipeline of applications is triggered when an application in the git repository is updated.
- Create your application and add on the remote git repository or copy the above repository.
- The source files should be modified, committed, and pushed.
- Log in to the Developer Sandbox.
- Access your application in the Topology View.
- Select Pipeline option from the left menu.
- Checkout live build & deploy process.
- You can see your changes being deployed automatically.