GithubHelp home page GithubHelp logo

ja-fonseca / armonik.core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aneoconsulting/armonik.core

0.0 0.0 0.0 2.57 MB

Home Page: https://aneoconsulting.github.io/ArmoniK.Core/

License: GNU Affero General Public License v3.0

C# 98.97% Dockerfile 0.68% Python 0.35%

armonik.core's Introduction

License: AGPL v3

Project components

This page intends to describe the different software projetcs and components used for ArmoniK internals. To learn how to install or use ArmoniK, please see these repositories:

  • install:
  • use:

Common Library

ArmoniK.Common provides the components required by all the other compononents of ArmoniK.

Control

Different projects are available in the control plan:

  • ArmoniK.Control.Submitter is a web server providing the gRPC services required by the SubmitterService client from SDK. It provides the following services:

    • Session creation
    • Task submission
    • Results retrieving
    • Task cancellation
    • Session cancellation
  • ArmoniK.Control.Monitor (not yet available) is a web server providing the gRPC services required by the MonitorService client from SDK. It provides the followin services:

    • List all session and tasks
    • Count the session and task per status
    • Get the execution details for the tasks
  • ArmoniK.Control.ResourceManager (not yet available) is a web server providing gRPC services required by the ResourceManager client from SDK. It provides the following services:

    • Upload new resources
    • Download new resources
    • List all available resources
    • Delete resources
  • ArmoniK.Control.Autoscaling (not yet available) is a process that regularly computes metrics used to determine the number of POD instances required on the grid. This will then be used by Kubernetes to start/stop compute nodes (on elastic configurations such as managed K8s service on cloud).

Compute Plan Components

From a software enginnering point of view, the compute plan relies on three components:

  • ArmoniK.Compute.PollingAgent implements a ArmoniK.DevelopmentKit.Gridlib.GRPC client. It acts as a proxy between the gridlib agent container and the rest of the ArmoniK system. Using such a proxy agent allows all the ArmoniK logic to be implemented independantly of the Gridlib agent. Hence handling an new agent to handle new languages will be easier.

  • Other companion containers for the gridlib agent container Such cantainers could provide the following services :

    • setting up secrets for the POD
    • forward the logs to a log cypher (ex: ELK or a cloud equivalent)
    • host a cache on each node used (required a deamon set to be really efficient)

Adaptors

The adaptors projects provide implementations of the interfaces relying on different kind of services. We plan to provide an implementation for on-premises installation and each cloud provider.

The following adaptors are currently available:

  • ArmoniK.Adaptors.MongoDB provides all components to run ArmoniK. A queue implementation is even available although it is not as efficient and scalable as dedicated products.
  • ArmoniK.Adaptors.Amqp provides an AMQP connector for ArmoniK. It allows using any AMQP server such as ActiveMQ, ActiveMQ Artemis, RabbitMQ or IBM MQ

The following adaptors will be available soon:

  • ArmoniK.Adaptors.Redis to provide a RedisCache implementation for the internal storage.
  • ArmoniK.Adaptors.S3 to provide a S3 implementation for the internal storage.
  • ArmoniK.Adaptors.AmazonSQS to provide a SQS implementation for the internal queue.
  • ArmoniK.Adaptors.DynamoDB to provide a DynamoDB implementation for the internal state database

armonik.core's People

Contributors

aneojgurhem avatar wkirschenmann avatar jfonseca-aneo avatar dbrasseur-aneo avatar ngruelaneo avatar ddubuc avatar lemaitre-aneo avatar rfabre12 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.