All Projects → sdslabs → Gasper

sdslabs / Gasper

Licence: mit
Your Cloud in a Binary

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gasper

Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+3156.19%)
Mutual labels:  microservices, cloud, paas
Jhipster Online
JHipster Online lets you generate your JHipster projects through a user friendly web interface.
Stars: ✭ 140 (-57.7%)
Mutual labels:  microservices, cloud
Azos
A to Z Sky Operating System / Microservice Chassis Framework
Stars: ✭ 137 (-58.61%)
Mutual labels:  microservices, cloud
1backend
Run your web apps easily with a complete platform that you can install on any server. Build composable microservices and lambdas.
Stars: ✭ 2,024 (+511.48%)
Mutual labels:  microservices, paas
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (+333.53%)
Mutual labels:  microservices, cloud
Genie
Distributed Big Data Orchestration Service
Stars: ✭ 1,544 (+366.47%)
Mutual labels:  microservices, cloud
Vald
Vald. A Highly Scalable Distributed Vector Search Engine
Stars: ✭ 158 (-52.27%)
Mutual labels:  microservices, cloud
Examples
Demo applications and code examples for Confluent Platform and Apache Kafka
Stars: ✭ 571 (+72.51%)
Mutual labels:  microservices, cloud
Microservices On Cloud Kubernetes
Microservices demo application on cloud-hosted Kubernetes cluster
Stars: ✭ 213 (-35.65%)
Mutual labels:  microservices, cloud
Ccodashboard
Welcome to the Continuous Cloud Optimization Power BI Dashboard GitHub Project. In this repository you will find all the guidance and files needed to deploy the Dashboard in your environment to take benefit of a single pane of glass to get insights about your Azure resources and services.
Stars: ✭ 256 (-22.66%)
Mutual labels:  cloud, paas
Coherence
Oracle Coherence Community Edition
Stars: ✭ 328 (-0.91%)
Mutual labels:  microservices, cloud
Porcupine
Threading, Resiliency and Monitoring for Java EE 7/8
Stars: ✭ 99 (-70.09%)
Mutual labels:  microservices, cloud
Surging
Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, built-in service gove…
Stars: ✭ 3,088 (+832.93%)
Mutual labels:  microservices, dns-server
Kubevela
The Modern Application Platform.
Stars: ✭ 2,984 (+801.51%)
Mutual labels:  microservices, paas
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+212.99%)
Mutual labels:  microservices, cloud
Dasync
Every developer deserves the right of creating microservices without using any framework 🤍
Stars: ✭ 154 (-53.47%)
Mutual labels:  microservices, cloud
Kubevious
Kubevious - application centric Kubernetes UI and continuous assurance provider
Stars: ✭ 869 (+162.54%)
Mutual labels:  microservices, cloud
Activiti
Activiti is a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins. Its core is a super-fast and rock-solid BPMN 2 process engine for Java. It's open-source and distributed under the Apache license. Activiti runs in any Java application, on a server, on a cluster or in the…
Stars: ✭ 8,227 (+2385.5%)
Mutual labels:  microservices, cloud
Space Cloud
Open source Firebase + Heroku to develop, scale and secure serverless apps on Kubernetes
Stars: ✭ 3,323 (+903.93%)
Mutual labels:  microservices, paas
Eureka Js Client
JS implementation of a client for Eureka (https://github.com/Netflix/eureka), the Netflix OSS service registry.
Stars: ✭ 293 (-11.48%)
Mutual labels:  microservices, cloud

Gasper

Your Cloud in a Binary

Build Status Docs Go Report Card License

Gasper is an intelligent Platform as a Service (PaaS) used for deploying and managing applications and databases in any cloud topology.

Contents

Overview

The Dilemma

Imagine you have a couple of Bare Metal Servers and/or Virtual Machines (collectively called nodes) at your disposal. Now you want to deploy a couple of applications/services to these nodes in such a manner so as to not put too much load on a single node.

Naive Approach

Your 1st option is to manually decide which application goes to which node, then use ssh/telnet to manually setup all of your applications in each node one by one.

A Wise Choice

But you are smarter than that, hence you go for the 2nd option which is Kubernetes. You setup Kubernetes in all of your nodes which forms a cluster, and now you can deploy your applications without worrying about load distribution. But Kubernetes requires a lot of configuration for each application(deployments, services, stateful-sets etc) not to mention pipelines for creating the corresponding docker image.

The Ultimatum

Here comes (🥁drumroll please 🥁) Gasper, your 3rd option!
Gasper builds and runs applications in docker containers directly from source code. You no longer need to create application specific docker images and build pipelines, let Gasper do the heavylifting for you 😊. Gasper requires minimal parameters for deploying an application, so minimal that you can count them on fingers in one hand 🤚. Same goes for Gasper provisioned databases. Gone are the days of hard labour (writing configurations).

Features

Fear not because the reduction in complexity doesn't imply the reduction in features. You can rest assured because Gasper has:-

  • Worker services for creating/managing databases and applications
  • Master service for:-
    • Checking the status of worker services
    • Intelligently distributing applications/databases among them
    • Transferring applications from one worker node to another in case of node failure
    • Removing dead worker nodes from the cloud
  • REST API interface for the entire ecosystem
  • Reverse-proxy service with HTTPS, HTTP/2, Websocket and gRPC support for accessing deployed applications
  • DNS service which automatically creates DNS entries for all applications which in turn are resolved inside containers
  • SSH service for providing ssh access directly to an application's docker container
  • Virtual terminal for interacting with your application's docker container from your browser
  • Dynamic addition/removal of nodes and services without configuration changes or restarts
  • Compatibility with Linux, Windows, MacOS, FreeBSD and OpenBSD
  • All of the above packaged with ❤️ in a single binary

Supported Languages

Gasper currently supports applications of the following types:-

  • Static web pages
  • PHP
  • Python 2
  • Python 3
  • Node.js
  • Golang
  • Ruby
  • Rust

It ain't much but it's honest work 🥳

Supported Databases

The following databases are supported by Gasper:-

  • MySQL
  • MongoDB
  • PostgreSQL
  • Redis

It ain't.... (complete the rest yourself)

Documentation

You can find the complete documentation of Gasper at https://gasper-docs.netlify.com/

Dependencies

The only thing you need for running Gasper is Docker. Here are the installation guides for:-

If you perhaps need a higher degree of control over your entire cloud then you may setup MongoDB and Redis separately within your infrastructure and make the necessary changes in the mongo and redis sections of config.toml.

Download

Assuming you have the dependencies installed, head over to Gasper's releases page and grab the latest binary according to your operating system and system architecture

Run the downloaded binary with the sample configuration file

$ ./gasper --conf ./config.toml

Development

You need to have Golang 1.13.x or higher installed along with the mentioned dependencies

Open your favourite terminal and perform the following tasks:-

  1. Cross-check your golang version.

    $ go version
    go version go1.13.5 darwin/amd64
    
  2. Clone this repository.

    $ git clone https://github.com/sdslabs/gasper
    
  3. Go inside the cloned directory and list available makefile commands.

    $ cd gasper && make help
    
    Gasper: Your cloud in a binary
    
    install   Install missing dependencies
    build     Build the project binary
    tools     Install development tools
    release   Build release binaries
    start     Start in development mode with hot-reload enabled
    clean     Clean build files
    fmt       Format entire codebase
    vet       Vet entire codebase
    lint      Check codebase for style mistakes
    test      Run tests
    help      Display this help
    
  4. Setup project configuration and make changes if required. The configuration file is well-documented so you won't have a hard time looking around.

    $ cp config.sample.toml config.toml
    
  5. Start the development server.

    $ make start
    

Contributing

If you'd like to contribute to this project, refer to the contributing documentation.

Meet the A-Team

You can find the entire list of contributors here

Created with 💖 by SDSLabs

Contact

If you have a query regarding the product or just want to say hello then feel free to visit chat.sdslabs.co or drop a mail at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].