Skip to content
Nathan Karasch edited this page Sep 29, 2017 · 2 revisions

Project statement

From the project abstract: “There is a tendency to develop software as a collection of managed micro-services. Often these software are to be deployed to the cloud. The goal of this project is to develop an environment to develop Javascript-based micro-services that exhibit specific quality attributes and automated devOps process for managing the development and deployment of these JavaScript micro-services.”

We seek to create a framework to automate the development and operation of microservices in JavaScript using Node.js.

Purpose

One paradigm of modern software development is the concept of using a collection of microservices. However, in order for these services to be deployed to the cloud, a developer must go through a significant amount of work to build an automated deployment process. The extra overhead work represents a large barrier to surmount before even a simple “Hello World” application can be created. This barrier can seriously hinder early startups, slow down development, and stifle creativity and innovation. We seek to give developers a tool around this problem.

By creating a framework for Node.js microservices, teams with limited knowledge, resources, and time can quickly get started with a simple infrastructure. We also provide the tools and structure to monitor and maintain the health of their applications in development and in production. This lets more developers start making cool things faster.

Goals

The main goal of our project is to create an environment to develop JavaScript microservices as well as a DevOps process to manage and monitor its deployment.

Specifically, we hope to create an app that requires minimal configuration and setup. This means the user would download one or two different tools and then have scripts create most of the configuration files needed with account info (e.g. GitHub, Docker Hub, etc.) supplied by the developers. Easy-to-use CLI/GUI tools would be available to push, deploy, and create new microservices.

Another goal that fits into this process is creating a seamless deployment workflow. This looks like a user pushing code to a master branch and watching his or her changes reflected in the live product a short while later. Once the application is deployed, the user then tracks the status of the application through a Data Monitoring app, which can notify interested parties when a service goes offline, display metrics related to server performance, etc. In addition, the Data Monitoring tool should be able to perform load balancing between microservices.

  • Purpose
  • Architecture
  • Roadmap
  • Purpose
  • Architecture
  • Roadmap
  • Purpose
  • Architecture
  • Roadmap
  • Purpose
  • Architecture
  • Roadmap
  • Purpose
  • Architecture
  • Roadmap
Clone this wiki locally