All Projects → n0stack → n0stack

n0stack / n0stack

Licence: BSD-2-Clause license
A simple cloud provider using gRPC

Programming Languages

go
31211 projects - #10 most used programming language
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to n0stack

Core
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time.
Stars: ✭ 147 (+188.24%)
Mutual labels:  virtualization, grpc
nice-grpc
A TypeScript gRPC library that is nice to you
Stars: ✭ 120 (+135.29%)
Mutual labels:  grpc
grpc-firewall-bypass
initiate connections to gRPC servers that live behind a firewall (https://github.com/grpc/grpc-go/issues/484)
Stars: ✭ 53 (+3.92%)
Mutual labels:  grpc
mrcnn serving ready
🛠 Mask R-CNN Keras to Tensorflow and TFX models + Serving models using TFX GRPC & RESTAPI
Stars: ✭ 96 (+88.24%)
Mutual labels:  grpc
protoactor-go
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Stars: ✭ 4,138 (+8013.73%)
Mutual labels:  grpc
protoc-gen-grpc-gateway-ts
protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript clients that connect the web frontend and golang backend fronted by grpc-gateway.
Stars: ✭ 68 (+33.33%)
Mutual labels:  grpc
devops-interview-questions
DevOps Interview Questions
Stars: ✭ 73 (+43.14%)
Mutual labels:  virtualization
gcloud-opentracing
OpenTracing Tracer implementation for GCloud StackDriver in Go.
Stars: ✭ 44 (-13.73%)
Mutual labels:  grpc
serveradmin
Configuration management database system of InnoGames
Stars: ✭ 40 (-21.57%)
Mutual labels:  virtualization
agrpc
Async GRPC with C++20 coroutine support
Stars: ✭ 53 (+3.92%)
Mutual labels:  grpc
grpc-jwt-spring-boot-starter
Spring boot starter for gRPC framework with JWT authorization
Stars: ✭ 24 (-52.94%)
Mutual labels:  grpc
grpc-graphql-gateway
A protoc plugin that generates graphql execution code from Protocol Buffers.
Stars: ✭ 239 (+368.63%)
Mutual labels:  grpc
sisyphus
Sisyphus is the way how we provide backend services.
Stars: ✭ 59 (+15.69%)
Mutual labels:  grpc
grpcp
grpcp is a Grpc Persistent Connection Pool.
Stars: ✭ 96 (+88.24%)
Mutual labels:  grpc
grpc xds
gRPC xDS Loadbalancing
Stars: ✭ 35 (-31.37%)
Mutual labels:  grpc
rpc ts
Remote Procedure Calls in TypeScript made simple 🤞
Stars: ✭ 71 (+39.22%)
Mutual labels:  grpc
grphp
PHP gRPC Framework
Stars: ✭ 19 (-62.75%)
Mutual labels:  grpc
ganeti-rpm
Ganeti RPM Packaging
Stars: ✭ 23 (-54.9%)
Mutual labels:  virtualization
grpc-getting-started
Guide to get started with gRPC in Cisco IOS XR
Stars: ✭ 32 (-37.25%)
Mutual labels:  grpc
go-loadbalance
A well designed loadbalance API with dozens of implementations for go-grpc loadbalance.
Stars: ✭ 37 (-27.45%)
Mutual labels:  grpc

n0stack

Build Status CircleCI Go Report Card

The n0stack is a simple cloud provider using gRPC.

Description

The n0stack is...

  • a cloud provider.
    • You can use some features: booting VMs, managing networks and so on (see also n0proto.)
  • simple.
    • There are shortcode and fewer options.
  • using gRPC.
    • A unified interface increase reusability.
  • able to be used as library and framework.
    • You can concentrate to develop your logic by sharing libraries and frameworks for middleware, test, and deployment.

Motivation

Cloud providers have various forms depending on users. This problem has been solved with many options and add-ons (e.g. OpenStack configuration file is very long.) It is difficult to adapt to the application with options, therefore it is necessary to read or rewrite long abstracted code. I think it is better to code it yourself from the beginning.

There are some problems to develop cloud providers from scratch: no libraries, software quality, man-hours, and deployment. The n0stack wants to solve these problems.

Getting started

Prerequisites

  • Docker
  • docker-compose
  • Ubuntu 18.04 LTS

Deploy all in one

  1. You can start controllers on docker and install agent as follows:
wget https://raw.githubusercontent.com/n0stack/n0stack/master/deploy/docker-compose.yml
docker-compose up -d
docker run -it --rm -v $PWD:/dst n0stack/n0stack cp /usr/local/bin/n0core /dst
./n0core install agent -a "--node-api-endpoint=localhost:20180 --location=////1"
  1. Download n0cli from Github releases.
  2. Try use cases.

Documentations

Gitter Documentation Status GoDoc

User documentations and specifications is readthedocs.

Golang library documentations is GoDoc.

Components

The final goal of n0stack is to represent the state of all clusters with n0proto. Implementations such as n0core manipulates the cluster according to the information specified by n0proto. The implementation of n0proto is left to each developer. This repository is just a reference implementation. However, please share actively usable libraries such as n0core/pkg/driver.

n0proto

Protobuf definitions for all of n0stack services.

n0cli

CLI for n0stack API.

n0ui

Web UI for n0stack API.

n0bff

BFF(Backends for Frontend) of n0stack API. This provide features: API gateway, authentication, authorization and so on.

n0core

The example for implementations about n0stack API.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

How to develop

  1. Start containers
make build-builder # once
make up
  1. Start a Agent
  2. Develop features and restart containers or a agent

License

License

FOSSA Status

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].