README

Go Report Card GitHub stars Rainbond version Build Status GoDoc

WebsiteDocsPublic Cloud中文README

Rainbond is an application-centric Platform as a Service, with innovative concept and complete ecological comes from continuous verification and optimization.

By integrating best practices of Kubernetes based containers management, Service Mesh microservice architecture, CI/CD and multiple data center resource management, Rainbond provides full life-cycle management of cloud native applications, connects application and infrastructure, application and application, infrastructure and infrastructure.

Choose Rainbond for the same reasons disruptive companies do: it serve as a easy-to-use cloud native application delivery platform that offers agile development, efficient operation and lean management experience.

Features

  • Kubernetes scheduling system intergated
  • Application-centric product definition
  • As the basic system to build the cloud native datacenter
  • Supports multiple microservice architecture (Spring Cloud, Dubbo and api gateway)
  • Native microservice governance (service discovery, dynamic routing, limiting and fuse) based on extendable Service Mesh
  • Business-level application performance analysis supports multiple types protocols (HTTP, Mysql, PostgreSQL)
  • Build applications from source codeS (Java, PHP, Python, Golang, Ruby, etc.)
  • Continuous build and deployment from private and public git repositories
  • Quick application build with container image, docker-run command and docker-compose
  • Support application group full backup and recovery, migration of application groups across tenants or across data centers.
  • Pluggable data center supports various types of load balancing, SDN networks, various types of storage systems development
  • Application plug-in system support, flexible extension of application ancillary functions, such as log processing, firewall, traffic analysis, etc
  • Public and private application market with complete application sharing mechanism
  • Multiple data center and across data center application deployment
  • The management node (platform service) HA available.
  • Cluster automatic operation and maintenance, monitoring multidimensional indicators.
  • Provide complete business solution cloud delivery process.

Quick Start

  1. Install Rainbond
  2. Create First Application
  3. Build Microservice Architecture

Architecture

Roadmap

Read the Roadmap.

Control UI

  • Source code creation application process
  • Business application group topology diagram,The network topology, applied relational topology and real-time monitoring are shown here.

Contributing

Please read CONTRIBUTING to learn how you can start working on the Framework yourself.

Community

  • WeChat: add WeChat ID "zqg5258423" to join Rainbond WeChat group

License

Rainbond is under the LGPL-3.0 license, see LICENSE and Licensing for details.

Acknowledgment

Thanks for the following open source project

Directories

Path Synopsis
api
db
Package appruntimesync provides a grpc server and client code This package is based on the resource status in Kubernete maintenance application status.
Package appruntimesync provides a grpc server and client code This package is based on the resource status in Kubernete maintenance application status.
client
Package client provides app runtime client code Client code demo: //create app status client ctx, cancel := context.WithCancel(context.Background()) defer cancel() cli, err := client.NewClient(ctx, client.AppRuntimeSyncClientConf{ EtcdEndpoints: s.Config.EtcdEndpoint, }) if err != nil { logrus.Errorf("create app status client error, %v", err) return err }
Package client provides app runtime client code Client code demo: //create app status client ctx, cancel := context.WithCancel(context.Background()) defer cancel() cli, err := client.NewClient(ctx, client.AppRuntimeSyncClientConf{ EtcdEndpoints: s.Config.EtcdEndpoint, }) if err != nil { logrus.Errorf("create app status client error, %v", err) return err }
pb
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.
pod
Package pod cache kubernetes pod in memory and db It handle local scheduler pod host ip info.
Package pod cache kubernetes pod in memory and db It handle local scheduler pod host ip info.
status
Package status check app status from kubernetes rc,statefulset and deployment It save app status to db and provides query
Package status check app status from kubernetes rc,statefulset and deployment It save app status to db and provides query
builder
api
cmd
api
Rainbond datacenter api binary
Rainbond datacenter api binary
mq
db
dao
entrance
api
eventlog
db
grctl
cmd
mq
api
node
api
etcd/etcdlock
Package etcdlock Master election using etcd.
Package etcdlock Master election using etcd.
webcli
app
worker