IBM’s new CloudNativeJS project seeks to help developers build and deploy cloud-native Node.js applications via Docker containers and Kubernetes orchestration.
The open source effort is intended to provide tools, best practices, and assets to make it easier to build enterprise-grade applications in the cloud.
The CloudNativeJS project’s current assets include:
- Node.js module insights, providing testing, verification, and analysis against current LTS (long term support) versions of Node.js across a set of operating systems and architectures. Module Insights also checks and reports code coverage and verifies the license in the module and all dependencies. Developers can view the state of a range of modules.
- CloudNative Module LTS policy, intended to offer clarity to module owners and consumers on how long essential fixes should be provided on major versions once a new major version is released. IBM wants this approach to become standard in the Node.js community.
- Template Dockerfiles, to implement best practices for building development, debug, test, and production production Docker images for applications.
- Template helm charts, to simplify the process of taking a Docker image of an application and deploying it to Kubernetes along with configuration for replicas and autoscaling. Templates also provide configuration for using readiness-based health checking, Prometheus metrics, OpenTracing with Zipkin, and support for using addition cloud-native technologies such as Istio.
- Health check support, featuring cloud-health and cloud-health-connect repositories that provide NPM modules to manage and report the life cycle of an application. These are used by Kubernetes to determine if an application is ready to receive requests, to determine whether it is no longer live and should be restarted, and to handle graceful shutdown when requested.
- Prometheus monitoring, featuring a repository providing an NPM module for collecting metric data from an application. Metrics range from resource metrics such as CPU and memory to application-level metrics including HTTP request responsiveness. These are exposed as an application endpoint and collected by a Prometheus monitoring project.
- OpenTrace request tracking, with the appmetrics-zipkin repository to instrument an application with OpenTracing-based request tracking. Requests can be monitored across microservices and applications.