oscar

Open Source Serverless Computing for Data-Processing Applications

https://github.com/grycap/oscar

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: ieee.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.2%) to scientific vocabulary

Keywords

faas knative kubernetes minio serverless
Last synced: 6 months ago · JSON representation

Repository

Open Source Serverless Computing for Data-Processing Applications

Basic Info
  • Host: GitHub
  • Owner: grycap
  • License: apache-2.0
  • Language: Go
  • Default Branch: master
  • Homepage: https://oscar.grycap.net/
  • Size: 79.8 MB
Statistics
  • Stars: 87
  • Watchers: 8
  • Forks: 17
  • Open Issues: 5
  • Releases: 64
Topics
faas knative kubernetes minio serverless
Created over 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Codemeta

README.md

OSCAR - Open Source Serverless Computing for Data-Processing Applications

Go Report Card Codacy Badge tests build GitHub release (latest by date) go.dev reference GitHub

OSCAR-logo

Introduction

OSCAR is an open-source platform to support the event-driven serverless computing model for data-processing applications. It can be automatically deployed on multi-Clouds, and even on low-powered devices, to create highly-parallel event-driven data-processing serverless applications along the computing continuum. These applications execute on customized runtime environments provided by Docker containers that run on elastic Kubernetes clusters.

Information on how to deploy an OSCAR cluster using the Infrastucture Manager can be found at: https://grycap.github.io/oscar/deploy-im-dashboard/

For more documentation visit https://docs.oscar.grycap.net

NOTE: If you detect inaccurate or unclear information on the documentation please report back to us either opening an issue or contacting us at products@grycap.upv.es

Overview

Why OSCAR

FaaS platforms are typically oriented to the execution of short-lived functions, coded in a certain programming language, in response to events. Scientific application can greatly benefit from this event-driven computing paradigm in order to trigger on demand the execution of a resource-intensive application that requires processing a certain file that was just uploaded to a storage service. This requires additional support for the execution of generic applications in existing open-source FaaS frameworks.

To this aim, OSCAR supports the High Throughput Computing Programming Model initially introduced by the SCAR framework, to create highly-parallel event-driven data-processing serverless applications that execute on customized runtime environments provided by Docker containers run on AWS Lambda.

With OSCAR, users upload files to a data storage back-end and this automatically triggers the execution of parallel invocations to a service responsible for processing each file. Output files are delivered into a data storage back-end for the convenience of the user. The user only specifies the Docker image and the script to be executed, inside a container created out of that image, to process a file that will be automatically made available to the container. The deployment of the computing infrastructure and its scalability is abstracted away from the user. Synchronous invocations are also supported to create scalable HTTP-based endpoints for triggering containerised applications.

Components

OSCAR Components

OSCAR runs on an elastic Kubernetes cluster that is deployed using:

  • IM, an open-source virtual infrastructure provisioning tool for multi-Clouds.

The following components are deployed inside the Kubernetes cluster to support the enactment of the OSCAR platform:

  • CLUES, an elasticity manager that horizontally scales in and out the number of nodes of the Kubernetes cluster according to the workload.
  • MinIO, a high-performance distributed object storage server that provides an API compatible with S3.
  • Knative, a serverless framework to serve container-based applications for synchronous invocations (default Serverless Backend).
  • OSCAR Manager, the main API, responsible for the management of the services and the integration of the different components.
  • OSCAR UI, an easy-to-use web-based graphical user interface aimed at end users.

As external storage providers, the following services can be used:

  • External MinIO servers, which may be in clusters other than the platform.
  • Amazon S3, an object storage service that offers industry-leading scalability, data availability, security, and performance in the AWS public Cloud.
  • Onedata, the global data access solution for science, used in the EGI Federated Cloud.
  • dCache, a system for storing and retrieving huge amounts of data, distributed among a large number of heterogeneous server nodes, under a single virtual filesystem tree with a variety of standard access methods.

An OSCAR cluster can be easily deployed via the IM Dashboard on any major public and on-premises Cloud provider, including the EGI Federated Cloud.

Licensing

OSCAR is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Acknowledgements

This development is partially funded by the EGI Strategic and Innovation Fund.

Partially funded by the projects:

  • AI-SPRINT "AI in Secure Privacy-Preserving Computing Continuum" that has received funding from the European Unions Horizon 2020 Research and Innovation Programme under Grant 101016577.
  • interTwin "An interdisciplinary Digital Twin Engine for science" that has received funding from the European Unions Horizon Europe Programme under Grant 101058386.
  • AI4EOSC "Artificial Intelligence for the European Open Science Cloud" that has received funding from the European Unions Horizon Europe Research and Innovation Programme under Grant 101058593."
  • iMagine "AI-based image data analysis tools for aquatic research" that has received funding from the European Unions Horizon Europe Research and Innovation Programme under Grant 101058625.

Also, Grant PDC2021-120844-I00 funded by Ministerio de Ciencia e Innovacin/Agencia Estatal de Investigacin/ 10.13039/501100011033 and by European Union NextGenerationEU/PRTR and Grant PID2020-113126RB-I00 funded by Ministerio de Ciencia e Innovacin/Agencia Estatal de Investigacin/ 10.13039/501100011033.

financing

Silver Badge

This software has received a silver badge according to the Software Quality Baseline criteria defined by the EOSC-Synergy project. Please acknowledge the use of OSCAR by citing the following scientific publications (preprints available):

Sebastin Risco, Germn Molt, Diana M. Naranjo and Ignacio Blanquer. (2021). Serverless Workflows for Containerised Applications in the Cloud Continuum. Journal of Grid Computing, 19(3), 30. https://doi.org/10.1007/s10723-021-09570-2 Alfonso Prez, Sebastin Risco, Diana M. Naranjo, Miguel Caballer, and Germn Molt, Serverless Computing for Event-Driven Data Processing Applications, in 2019 IEEE International Conference on Cloud Computing (CLOUD 2019), 2019. https://ieeexplore.ieee.org/document/8814513/

Owner

  • Name: GRyCAP
  • Login: grycap
  • Kind: organization

Grid y Computación de Altas Prestaciones

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "license": "https://spdx.org/licenses/Apache-2.0",
  "codeRepository": "https://github.com/grycap/oscar",
  "contIntegration": "https://github.com/grycap/oscar/actions",
  "dateCreated": "2018-06-15",
  "datePublished": "2018-10-01",
  "dateModified": "2022-11-07",
  "downloadUrl": "https://github.com/grycap/oscar/archive/refs/tags/v2.5.2.zip",
  "issueTracker": "https://github.com/grycap/oscar/issues",
  "name": "OSCAR",
  "version": "2.5.2",
  "identifier": "https://oscar.grycap.net",
  "description": "OSCAR is an open-source platform to support the Functions as a Service (FaaS) computing model for file-processing applications. It can be automatically deployed on multi-Clouds in order to create highly-parallel event-driven file-processing serverless applications that execute on customized runtime environments provided by Docker containers than run on an elastic Kubernetes cluster.",
  "applicationCategory": "Computing",
  "releaseNotes": "What's Changed\n\n    Fix mask-detector-workflow FDL by @srisco in #165\n    Add oidc authorization docs by @srisco in #166\n    update doc, change contributing and readme by @SergioLangaritaBenitez in #167\n    update documentation 2:fixing files of documentation by @SergioLangaritaBenitez in #168\n    Update oscar-ui ref by @srisco in #170\n\nFull Changelog: v2.5.1...v2.5.2\n",
  "funding": "TIN2016-79951-R, PID2020-113126RB-I00, PDC2021-120844-I00, 101016577",
  "developmentStatus": "active",
  "isPartOf": "https://oscar.grycap.net",
  "referencePublication": "https://dx.doi.org/10.1109/CLOUD.2019.00073",
  "funder": {
    "@type": "Organization",
    "name": "MCIN/AEI/10.13039/501100011033, European Unions Horizon 2020"
  },
  "keywords": [
    "Serverless",
    "Cloud computing"
  ],
  "programmingLanguage": [
    "Go",
    "Shell",
    "Dockerfile"
  ],
  "runtimePlatform": [
    "Kubernetes"
  ],
  "operatingSystem": [
    "Linux",
    "macOS"
  ],
  "relatedLink": [
    "https://oscar.grycap.net/"
  ],
  "author": [
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-7710-2182",
      "givenName": "Sebastin",
      "familyName": "Risco",
      "email": "serisgal@i3m.upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    },
    {
      "@type": "Person",
      "@id": "https://www.grycap.upv.es/gmolto",
      "givenName": "Germn",
      "familyName": "Molt",
      "email": "gmolto@dsic.upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    },
    {
      "@type": "Person",
      "givenName": "Caterina",
      "familyName": "Alarcn",
      "email": "calarcon@i3m.upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    },
    {
      "@type": "Person",
      "givenName": "Sergio",
      "familyName": "Langarita",
      "email": "slangarita@i3m.upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    },
    {
      "@type": "Person",
      "givenName": "Alfonso",
      "familyName": "Prez",
      "email": "alpegon3@upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    },
    {
      "@type": "Person",
      "givenName": "Diana M.",
      "familyName": "Naranjo",
      "email": "dnaranjo@upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    },
    {
      "@type": "Person",
      "givenName": "Miguel",
      "familyName": "Caballer",
      "email": "micafer1@upv.es",
      "affiliation": {
        "@type": "Organization",
        "name": "Instituto de Instrumentacin para Imagen Molecular (I3M), Centro Mixto CSIC  Universitat Politcnica de Valncia, Camino de Vera s/n, 46022 Valencia, Espaa"
      }
    }
  ]
}

GitHub Events

Total
  • Fork event: 2
  • Create event: 41
  • Commit comment event: 1
  • Issues event: 2
  • Release event: 13
  • Watch event: 6
  • Delete event: 8
  • Member event: 1
  • Issue comment event: 14
  • Push event: 389
  • Pull request review comment event: 4
  • Pull request review event: 40
  • Pull request event: 143
Last Year
  • Fork event: 2
  • Create event: 41
  • Commit comment event: 1
  • Issues event: 2
  • Release event: 13
  • Watch event: 6
  • Delete event: 8
  • Member event: 1
  • Issue comment event: 14
  • Push event: 389
  • Pull request review comment event: 4
  • Pull request review event: 40
  • Pull request event: 143

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 13
  • Total pull requests: 336
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 14 days
  • Total issue authors: 6
  • Total pull request authors: 15
  • Average comments per issue: 3.62
  • Average comments per pull request: 0.1
  • Merged pull requests: 271
  • Bot issues: 0
  • Bot pull requests: 33
Past Year
  • Issues: 0
  • Pull requests: 169
  • Average time to close issues: N/A
  • Average time to close pull requests: 11 days
  • Issue authors: 0
  • Pull request authors: 11
  • Average comments per issue: 0
  • Average comments per pull request: 0.07
  • Merged pull requests: 119
  • Bot issues: 0
  • Bot pull requests: 15
Top Authors
Issue Authors
  • gmolto (5)
  • steinsgateted (3)
  • micafer (2)
  • rajitha1998 (1)
  • catttam (1)
  • esparig (1)
Pull Request Authors
  • catttam (84)
  • SergioLangaritaBenitez (71)
  • srisco (46)
  • dependabot[bot] (33)
  • gmolto (28)
  • micafer (18)
  • RK181 (16)
  • Dialdroid (12)
  • esparig (9)
  • dianamariand92 (7)
  • vicente87 (4)
  • AntonioSanch3z (3)
  • drawdrop (2)
  • amcaar (2)
  • rajitha1998 (1)
Top Labels
Issue Labels
enhancement (2)
Pull Request Labels
dependencies (33) go (33)

Packages

  • Total packages: 3
  • Total downloads: unknown
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 58
proxy.golang.org: github.com/grycap/oscar/v2
  • Versions: 38
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Dependent repos count: 4.7%
Stargazers count: 5.4%
Average: 5.6%
Dependent packages count: 5.8%
Forks count: 6.3%
Last synced: 6 months ago
proxy.golang.org: github.com/grycap/oscar
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 3.3%
Forks count: 4.5%
Average: 6.0%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 7 months ago
proxy.golang.org: github.com/grycap/oscar/v3
  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.7%
Average: 9.2%
Dependent repos count: 9.8%
Last synced: 6 months ago

Dependencies

.github/workflows/bin-downloader.yaml actions
  • actions/checkout v3 composite
  • crazy-max/ghaction-docker-buildx v3.1.0 composite
.github/workflows/main.yaml actions
  • actions/checkout v3 composite
  • actions/setup-node v1 composite
  • crazy-max/ghaction-docker-buildx v3.1.0 composite
.github/workflows/mkdocs.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v2 composite
.github/workflows/tests.yaml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite
  • codacy/codacy-coverage-reporter-action v1 composite
Dockerfile docker
  • alpine 3.14 build
  • golang 1.18 build
examples/cowsay/Dockerfile docker
  • bitnami/minideb bullseye build
examples/fire-detection/Dockerfile docker
  • bitnami/minideb bullseye build
examples/plant-classification-theano/Dockerfile docker
  • bitnami/minideb latest build
examples/radiomics/Dockerfile docker
  • ubuntu 18.04 build
examples/text-to-speech-coqui/Dockerfile docker
  • bitnami/minideb bullseye build
examples/text-to-speech-google/Dockerfile docker
  • ubuntu 20.04 build
tools/oscar-bin-downloader/Dockerfile docker
  • alpine 3.14 build
go.mod go
  • github.com/apache/yunikorn-core v1.0.0
  • github.com/apache/yunikorn-scheduler-interface v1.0.0
  • github.com/aws/aws-sdk-go v1.44.22
  • github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df
  • github.com/blendle/zapdriver v1.3.1
  • github.com/coreos/go-oidc/v3 v3.2.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/emicklei/go-restful v2.15.0+incompatible
  • github.com/evanphx/json-patch v5.6.0+incompatible
  • github.com/evanphx/json-patch/v5 v5.6.0
  • github.com/fatih/color v1.13.0
  • github.com/gin-contrib/sse v0.1.0
  • github.com/gin-gonic/gin v1.7.7
  • github.com/go-logr/logr v1.2.3
  • github.com/go-ole/go-ole v1.2.6
  • github.com/go-openapi/jsonpointer v0.19.5
  • github.com/go-openapi/jsonreference v0.20.0
  • github.com/go-openapi/swag v0.21.1
  • github.com/go-playground/locales v0.14.0
  • github.com/go-playground/universal-translator v0.18.0
  • github.com/go-playground/validator/v10 v10.11.0
  • github.com/goccy/go-yaml v1.9.5
  • github.com/gogo/protobuf v1.3.2
  • github.com/golang/protobuf v1.5.2
  • github.com/google/gnostic v0.6.9
  • github.com/google/go-cmp v0.5.8
  • github.com/google/go-containerregistry v0.9.0
  • github.com/google/gofuzz v1.2.0
  • github.com/google/uuid v1.3.0
  • github.com/grycap/cdmi-client-go v0.1.1
  • github.com/jmespath/go-jmespath v0.4.0
  • github.com/josharian/intern v1.0.0
  • github.com/json-iterator/go v1.1.12
  • github.com/klauspost/cpuid/v2 v2.0.12
  • github.com/leodido/go-urn v1.2.1
  • github.com/lufia/plan9stats v0.0.0-20220517141722-cf486979b281
  • github.com/mailru/easyjson v0.7.7
  • github.com/mattn/go-colorable v0.1.12
  • github.com/mattn/go-isatty v0.0.14
  • github.com/minio/madmin-go v1.3.14
  • github.com/minio/minio-go/v7 v7.0.27
  • github.com/minio/sha256-simd v1.0.0
  • github.com/mitchellh/go-homedir v1.1.0
  • github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
  • github.com/modern-go/reflect2 v1.0.2
  • github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
  • github.com/openfaas/faas-netes v0.0.0-20220526122157-9e94296db90c
  • github.com/philhofer/fwd v1.1.1
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
  • github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c
  • github.com/prometheus/client_golang v1.12.2
  • github.com/prometheus/common v0.34.0
  • github.com/prometheus/procfs v0.7.3
  • github.com/rogpeppe/go-internal v1.8.1
  • github.com/rs/xid v1.4.0
  • github.com/secure-io/sio-go v0.3.1
  • github.com/shirou/gopsutil/v3 v3.22.4
  • github.com/tinylib/msgp v1.1.6
  • github.com/tklauser/go-sysconf v0.3.10
  • github.com/tklauser/numcpus v0.5.0
  • github.com/ugorji/go/codec v1.2.7
  • github.com/yusufpapurcu/wmi v1.2.2
  • go.uber.org/atomic v1.9.0
  • go.uber.org/multierr v1.8.0
  • go.uber.org/zap v1.21.0
  • golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
  • golang.org/x/net v0.0.0-20220526153639-5463443f8c37
  • golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401
  • golang.org/x/sync v0.0.0-20220513210516-0976fa681c29
  • golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a
  • golang.org/x/term v0.0.0-20220526004731-065cf7ba2467
  • golang.org/x/text v0.3.7
  • golang.org/x/time v0.0.0-20220411224347-583f2d630306
  • golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df
  • gomodules.xyz/jsonpatch/v2 v2.2.0
  • google.golang.org/appengine v1.6.7
  • google.golang.org/genproto v0.0.0-20220525015930-6ca3db687a9d
  • google.golang.org/grpc v1.46.2
  • google.golang.org/protobuf v1.28.0
  • gopkg.in/inf.v0 v0.9.1
  • gopkg.in/ini.v1 v1.66.4
  • gopkg.in/square/go-jose.v2 v2.6.0
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.0
  • k8s.io/api v0.24.1
  • k8s.io/apimachinery v0.24.1
  • k8s.io/client-go v0.24.1
  • k8s.io/klog/v2 v2.60.1
  • k8s.io/kube-openapi v0.0.0-20220413171646-5e7f5fdc6da6
  • k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9
  • knative.dev/networking v0.0.0-20220524205304-22d1b933cf73
  • knative.dev/pkg v0.0.0-20220525153005-18f69958870f
  • knative.dev/serving v0.31.0
  • sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124
  • sigs.k8s.io/structured-merge-diff/v4 v4.2.1
  • sigs.k8s.io/yaml v1.3.0
go.sum go
  • 841 dependencies
examples/compss/c/Dockerfile docker
  • compss/compss latest build
examples/compss/java/Dockerfile docker
  • compss/compss latest build
examples/compss/python/Dockerfile docker
  • compss/compss latest build
examples/compss/c/increment/pom.xml maven
package-lock.json npm