Coder Social home page Coder Social logo

son-gkeeper's Introduction

Build Status

SON-GKEEPER

This is SONATA's Service Platform Gatekeeper's repository.

The Gatekeeper is the component that implements all the Northbound Interface (NBI) of the Servive Platform.

This NBI provides systems like the son-push, son-gui and son-bss access to the Service Platform, for features like:

  • accepting new developers' to be part of the contributors of new developed services;
  • accepting new services, in the package format, to be deployed in the platform;
  • validating submited packages, both in terms of file format and developer submitting the package;
  • accepting new service instance requests from customers interested in instantiating a service;
  • following a service performance through automatically monitoring each on-boarded service or function;
  • etc..

Development

This section details what is needed for developing the Gatekeeper.

This repository is organized by micro-service (one folder to one micro-service).

Micro-services currently implemented are the following:

  1. son-gtkapi: the only 'door' to the Gatekeeper, where the API is exposed;
  2. son-gtkpkg: where all Packages features are implemented;
  3. son-gtksrv: where all Services features are implemented;
  4. son-gtkfnct: where all Functions features are implemented;
  5. son-gtkvim: where all Vims features are implemented;
  6. son-gtkrec: where all Records' features are implemented;
  7. son-gtklic: where all Licences' features are implemented;
  8. son-gtkusr: where all Users' features are implemented;
  9. son-gtkkpi: where all KPIs' features are implemented;

The last three micro-services are still a work in progress. Most of these micro-services have been implemented using ruby programming language and the sinatra framework. The exception is the son-gtklic, which is implemented in python. The only need is that the micro-service to be implemented provides a REST API, whatever the language it is implemented in.

Building

'Building' the Gatekeeper, given the approach mentioned above, is more like 'composing' it from the available micro-services. So:

  • each micro-service is provided in its own container (we're using docker);
  • the Dockerfile in each folder specifies the environment the container needs to work;
  • the docker-compose.yml file in the root of this repository provides the linking of all the micro-services.

Dependencies

The libraries the Gatekeep depends on are the following:

For the micro-services implemented in ruby these dependencies can be checked in each folder's Gemfile.

Contributing

Contributing to the Gatekeeper is really easy. You must:

  1. Clone this repository;
  2. Work on your proposed changes, preferably through submiting issues;
  3. Submit a Pull Request;
  4. Follow/answer related issues (see Feedback-Chanel, below).

Installation

Installing the Gatekeeper is really easy. You'll need:

  1. the ruby programming language: we prefer doing this by using a version manager tool such as rvm or rbenv (we are using version 2.2.3);
  2. in each one of the subfolders, just run:
  3. bundle install
  4. please follow each specific folder's instructions on which environment variables to set
  5. foreman start

Tests

We do three kinds of automated tests:

  • Unit tests, which are done with the RSpec framework (see the ./spec/folder);
  • Integration tests, which are done with a set of shell scripts and the curl command (see the son-tests);
  • White-box tests, which are done by using the ci_reporter gem, generating XML reports by executing the command
$ bundle exec rake ci:all

everytime a pull request is done.

Please see the several levels of tests that may be considered.

Usage

Please refer to the son-gtkapi repository and each one of the other folders in this repository for examples of usage of each one of the already developed micro-services.

License

The license of the SONATA Gatekeeper is Apache 2.0 (please see the license file).


Lead Developers

The following lead developers are responsible for this repository and have admin rights. They can, for example, merge pull requests.

Feedback-Chanels

Please use the GitHub issues and the SONATA development mailing list [email protected] for feedback.

son-gkeeper's People

Contributors

adrian-rosello avatar bernardomrf avatar bsilvr avatar dang03 avatar elekjani avatar fporto-optare avatar jbonnet avatar miguelcastilho avatar pkarkazis avatar santiagordguez avatar tchalas-i2cat avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.