Commit bdef06e7 authored by Jun Matsushita's avatar Jun Matsushita

Added table of contents

parent c1f9c5f0
......@@ -4,6 +4,31 @@ title: Architecture
# OII Technical Approach
<!-- MarkdownTOC depth=5 -->
- [Overview](#overview)
- [Components](#components)
- [API Gateway](#api-gateway)
- [Purpose](#purpose)
- [Implementation Options: Kong vs Tyk](#implementation-options-kong-vs-tyk)
- [Core Data Services](#core-data-services)
- [Purpose](#purpose-1)
- [Implementation](#implementation)
- [Metric Data Store](#metric-data-store)
- [Purpose](#purpose-2)
- [Implementation](#implementation-1)
- [Metric Data Collection Agents](#metric-data-collection-agents)
- [Purpose](#purpose-3)
- [Development & Deployment Guidelines](#development--deployment-guidelines)
- [Example Approach: Libraries.io](#example-approach-librariesio)
- [Example Approach: TOSDR](#example-approach-tosdr)
- [Web Front End](#web-front-end)
- [Purpose](#purpose-4)
- [Implementation: Static Generator vs CMS vs Custom Web App \(React\)](#implementation-static-generator-vs-cms-vs-custom-web-app-react)
<!-- /MarkdownTOC -->
## Overview
![](https://docs.google.com/drawings/image?id=sPci5xFGHd3v9hcOzrBKR2g&rev=260&h=455&w=504&ac=1)
......@@ -38,15 +63,11 @@ In the end, it was determined that Tyk is a better fit for OII, primarily becaus
#### Purpose
The Core Data Services provide the ability to add, update, and
query the projects that are tracked by OII as well as manipulate data
through the approval pipeline as necessary. They also allow for basic
retrieval and submission of metrics for a given project.
The Core Data Services provide the ability to add, update, and query the projects that are tracked by OII as well as manipulate data through the approval pipeline as necessary. They also allow for basic retrieval and submission of metrics for a given project.
#### Implementation
NodeJS is the baseline server technology for OII due to its ease of deployment and scaling, its good performance, the popularity of Javascript, and the availability of frameworks and tools for Node. The Core Data Services will be implemented in Node using Express. Since they will be served through the API Gateway, the services do not need to implement their own authentication or rate limiting. Therefore, a simple project structure such as the one employed here ([https://github.com/developit/express-es6-rest-api](https://www.google.com/url?q=https://github.com/developit/express-es6-rest-api&sa=D&ust=1460845242229000&usg=AFQjCNHg4RckdCZPzLrmbF8qULv81WJvTA))
can be used.
NodeJS is the baseline server technology for OII due to its ease of deployment and scaling, its good performance, the popularity of Javascript, and the availability of frameworks and tools for Node. The Core Data Services will be implemented in Node using Express. Since they will be served through the API Gateway, the services do not need to implement their own authentication or rate limiting. Therefore, a simple project structure such as the one employed here ([https://github.com/developit/express-es6-rest-api](https://www.google.com/url?q=https://github.com/developit/express-es6-rest-api&sa=D&ust=1460845242229000&usg=AFQjCNHg4RckdCZPzLrmbF8qULv81WJvTA)) can be used.
Although an API Gateway would allow for a micro services architecture, the Core Data Services will likely all be a part of one deployable application since they are strongly tied together by data. Persistence will be to MongoDB to allow for a flexible schema and simple scalability.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment