Service Discovery and Governance Center for Distributed and Microservice Architecture

Overview

Polaris: Service Discovery and Governance

Build Status

English | 简体中文


README:

Visit website to learn more

Introduction

Polaris is a cloud-native service discovery and governance center. It can be used to solve the problem of service connection, fault tolerance, traffic control and secure in distributed and microservice architecture.

Functions:

  • basic: service discover, service register and health check
  • fault tolerance: circuit break and rate limit
  • traffic control: request route and load balance
  • secure: authenticate

Features:

  • It provides SDK for high-performance business scenario and sidecar for non-invasive development mode.
  • It provides multiple clients for different development languages, such as Java, Go, C++ and Nodejs.
  • It can integrate with different service frameworks and gateways, such as Spring Cloud, gRPC and Nginx.
  • It is compatible with Kubernetes and supports automatic injection of K8s service and Polaris sidecar.

Components

server:

client:

ecosystem:

others:

  • website: Source for the polarismesh.cn site
  • samples: Samples for Learning PolarisMesh

Getting started

Preconditions

Prepare database

Please download and install MySQL, version requirement >=5.7, download available here: https://dev.mysql.com/downloads/mysql/5.7.html

Import SQL script

Point Script: ./store/defaultStore/polaris_server.sql, one can import through mysql admin or console.

Prepare golang compile environment

Polaris server end needs golang compile environment, version number needs >=1.12, download available here: https://golang.org/dl/#featured.

Build

chmod +x build.sh
./build.sh

After built, one can see 'polaris-server-release_${version}.tar.gz' package from the list.

Installation

Unzip package

Obtain polaris-server-release_${version}.tar.gz, and unzip.

Change polaris configuration

After unzipped, vi polaris-server.yaml, replace DB configuration's variable to real database information : ##DB_USER## (database username), ##DB_PWD##(database password), ##DB_ADDR##(database address), ##DB_NAME##(database name)

Execute Installation Script

chmod +x ./tool/*.sh
# install
./tool/start.sh
# test whether the process is successful 
./tool/p.sh

After all, run ./p.sh, prompt Polaris Server, proof the installation is successful

Verify installation

curl http://127.0.0.1:8090

Return text is 'Polaris Server', proof features run smoothly

Chat group

Please scan the QR code to join the chat group.

Welcome to scan the QR code to follow our official account, we will share the latest application cases and updates of PolarisMesh.

Contribution

If you have good comments or suggestions, please give us Issues or Pull Requests to contribute to improve the development experience of Polaris Mesh.
see details:CONTRIBUTING.md

Tencent Open Source Incentive Plan encourages developers to participate and contribute. Look forward to your participation.

Issues
  • 修改CHARSET = utf8mb4 COLLATE = utf8mb4_bin;

    修改CHARSET = utf8mb4 COLLATE = utf8mb4_bin;

    Please provide issue(s) of this PR: Fixes #430

    To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

    • [ ] Configuration
    • [ ] Docs
    • [x] Installation
    • [ ] Performance and Scalability
    • [ ] Naming
    • [ ] HealthCheck
    • [ ] Test and Release

    Please check any characteristics that apply to this pull request.

    • [ ] Does not have any user-facing changes. This may include API changes, behavior changes, performance improvements, etc.
    issue-shoot 
    opened by HIPIAOYI 10
  • feat: refactor redispool

    feat: refactor redispool

    Please provide issue(s) of this PR: refactor # refactor common/redispool for https://github.com/polarismesh/polaris/issues/404 for https://github.com/polarismesh/polaris/pull/403 for https://github.com/polarismesh/polaris/pull/398

    need discuss 
    opened by daheige 9
  • polaris-server支持redis哨兵模式和集群模式

    polaris-server支持redis哨兵模式和集群模式

    What is the feature you want to add?

    polaris-server支持redis哨兵模式和集群模式

    Why do you want to add this feature?

    现有polaris-server只支持redis的直连模式,这种情况极度依赖 云上的redis产品。 建议polaris-server 支持 哨兵模式和redis 集群模式,支持polaris-server接入独立部署的redis。 哨兵模式 优先级高于 集群模式。 预期版本1.9和2.0。

    How to implement this feature? 参考 github.com/go-redis/redis/v8

    改造思路: 方案一:改写common/redispool/redis_pool.go,支持UniversalClient实现,支持各种高可用模式。需要调整现有配置。 方案二:新增基于哨兵的redis_pool和 基于集群的redis_pool,然后注入到heartbeatredis。无需改动现有配置,新增即可。

    Additional context Add any other context or screenshots about the feature request here.

    enhancement good first issue issue-shoot 
    opened by davionchen 8
  • [ISSUE #345] 依赖timestamp进行cache增量更新

    [ISSUE #345] 依赖timestamp进行cache增量更新

    Please provide issue(s) of this PR: Fixes #345

    To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

    • [ ] Configuration
    • [ ] Docs
    • [ ] Installation
    • [ ] Performance and Scalability
    • [ ] Naming
    • [ ] HealthCheck
    • [ ] Test and Release

    Please check any characteristics that apply to this pull request.

    • [ ] Does not have any user-facing changes. This may include API changes, behavior changes, performance improvements, etc.
    mysql> explain select * from service where mtime > FROM_UNIXTIME(1652286241);
    +----+-------------+---------+------------+-------+---------------+-------+---------+------+------+----------+-----------------------+
    | id | select_type | table   | partitions | type  | possible_keys | key   | key_len | ref  | rows | filtered | Extra                 |
    +----+-------------+---------+------------+-------+---------------+-------+---------+------+------+----------+-----------------------+
    |  1 | SIMPLE      | service | NULL       | range | mtime         | mtime | 4       | NULL |    2 |   100.00 | Using index condition |
    +----+-------------+---------+------------+-------+---------------+-------+---------+------+------+----------+-----------------------+
    1 row in set, 1 warning (0.01 sec)
    
    mysql> explain select * from service where UNIX_TIMESTAMP(mtime) > 1652286241;
    +----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------------+
    | id | select_type | table   | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra       |
    +----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------------+
    |  1 | SIMPLE      | service | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    7 |   100.00 | Using where |
    +----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------------+
    1 row in set, 1 warning (0.00 sec)
    
    
    bug service 
    opened by shichaoyuan 7
  • support prometheus http extension to make sdk can be pulled by prometheus

    support prometheus http extension to make sdk can be pulled by prometheus

    What is the feature you want to add? add prometheus extension, user can do with the node exporters to get the node metrics

    Why do you want to add this feature?

    How to implement this feature?

    Additional context Add any other context or screenshots about the feature request here.

    enhancement keystone 
    opened by andrewshan 7
  • 试用polaris后的一些小问题

    试用polaris后的一些小问题

    在掘金看到了项目相关介绍,很感谢腾讯的同行开源相关项目。👍 试用后感觉很不错,希望有机会可能共同参与到项目生态建设中来。

    下面是试用过程中发现的一些问题

    1. polaris standalone启动约20分钟后无故挂掉

    启动后新建了一个service,没有注册服务,之后server就挂掉了

    相关日志:

    stdout
    
    [INFO] load config from polaris-server.yaml
    {Bootstrap:{Logger:{OutputPaths:[] ErrorOutputPaths:[] RotateOutputPath:log/polaris-server.log RotationMaxSize:500 RotationMaxAge:30 RotationMaxBackups:100 JSONEncoding:false LogGrpc:false Level:debug outputLevels: logCallers: stackTraceLevels:} StartInOrder:map[key:sz open:true] PolarisService:{EnableRegister:false ProbeAddress: Isolated:false Services:[0xc000107340 0xc000107380]}} APIServers:[{Name:httpserver Option:map[connLimit:map[maxConnLimit:5120 maxConnPerHost:128 openConnLimit:false purgeCounterExpired:5s purgeCounterInterval:10s whiteList:127.0.0.1] enablePprof:true listenIP:0.0.0.0 listenPort:8090] API:map[admin:{Enable:true Include:[]} client:{Enable:true Include:[discover register healthcheck]} console:{Enable:true Include:[default]}]} {Name:grpcserver Option:map[connLimit:map[maxConnLimit:5120 maxConnPerHost:128 openConnLimit:false] listenIP:0.0.0.0 listenPort:8091] API:map[client:{Enable:true Include:[discover register healthcheck]}]}] Cache:{Open:true Resources:[{Name:service Option:map[disableBusiness:false needMeta:true]} {Name:instance Option:map[disableBusiness:false needMeta:true]} {Name:routingConfig Option:map[]} {Name:rateLimitConfig Option:map[]} {Name:circuitBreakerConfig Option:map[]}]} Naming:{Auth:map[open:false] HealthCheck:{Open:true KvConnNum:0 KvServiceName: KvNamespace: KvPasswd: SlotNum:30 LocalHost: MaxIdle:20 IdleTimeout:120} Batch:map[deregister:map[concurrency:64 maxBatchCount:32 open:true queueSize:10240 waitTime:32ms] register:map[concurrency:64 maxBatchCount:32 open:true queueSize:10240 waitTime:32ms]]} Store:{Name:boltdbStore Option:map[path:./polaris.bolt]} Plugin:{CMDB:{Name: Option:map[]} RateLimit:{Name:token-bucket Option:map[api-limit:map[apis:[map[name:POST:/v1/naming/services rule:store-write] map[name:PUT:/v1/naming/services rule:store-write] map[name:POST:/v1/naming/services/delete rule:store-write] map[name:GET:/v1/naming/services rule:store-read] map[name:GET:/v1/naming/services/count rule:store-read] map[name:]] open:false rules:[map[limit:map[bucket:2000 open:true rate:1000] name:store-read] map[limit:map[bucket:1000 open:true rate:500] name:store-write]]] instance-limit:map[global:map[bucket:2 rate:2] open:true resource-cache-amount:1024] ip-limit:map[global:map[bucket:300 open:true rate:200] open:true resource-cache-amount:1024 white-list:[127.0.0.1]] remote-conf:false]} History:{Name:HistoryLogger Option:map[]} Statis:{Name:local Option:map[interval:60 outputPath:./statis]} DiscoverStatis:{Name:discoverLocal Option:map[interval:60 outputPath:./discover-statis]} ParsePassword:{Name: Option:map[]} Auth:{Name: Option:map[]} MeshResourceValidate:{Name: Option:map[]}}}
    finish starting server
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x16a5fdb]
    
    goroutine 96 [running]:
    github.com/polarismesh/polaris-server/store/boltdbStore.(*serviceStore).GetSourceServiceToken(0xc0001dcbe0, 0xc00030c890, 0x5, 0xc00030c898, 0x4, 0x0, 0x0, 0x0)
            /home/runner/work/polaris/polaris/store/boltdbStore/service.go:181 +0xbb
    github.com/polarismesh/polaris-server/naming/batch.(*InstanceCtrl).batchVerifyInstances(0xc0002d4000, 0xc0000d2bd0, 0xc0000d2bd0, 0x0, 0x0, 0xc00007ae00)
            /home/runner/work/polaris/polaris/naming/batch/instance.go:385 +0x6ce
    github.com/polarismesh/polaris-server/naming/batch.(*InstanceCtrl).registerHandler(0xc0002d4000, 0xc00029a400, 0x1, 0x20, 0xc000107550, 0x1cf2001)
            /home/runner/work/polaris/polaris/naming/batch/instance.go:226 +0x2b5
    github.com/polarismesh/polaris-server/naming/batch.(*InstanceCtrl).storeWorker(0xc0002d4000, 0x1938c58, 0xc000107540, 0xc)
            /home/runner/work/polaris/polaris/naming/batch/instance.go:181 +0x24b
    created by github.com/polarismesh/polaris-server/naming/batch.(*InstanceCtrl).Start
            /home/runner/work/polaris/polaris/naming/batch/instance.go:93 +0x1b5
    
    polaris-server.log
    2021-09-25T00:29:30.821075Z     debug   timewheel/timewheel.go:128      ckv task timewheel task start time:1632500970, use time:470ns, exec num:0
    2021-09-25T00:29:31.819654Z     debug   timewheel/timewheel.go:128      ckv task timewheel task start time:1632500971, use time:397ns, exec num:0
    2021-09-25T00:29:31.819618Z     info    cache/instance.go:129   [Cache][Instance] get more instances    {"update": 0, "delete": 0, "last": "1970-01-01T08:00:00.000000Z", "used": "10.961µs"}
    2021-09-25T00:29:31.819654Z     debug   timewheel/timewheel.go:128      db task timewheel task start time:1632500971, use time:580ns, exec num:0
    2021-09-25T00:29:31.819743Z     info    cache/service.go:129    [Cache][Service] get more services      {"update": 1, "delete": 0, "last": "2021-09-25T00:10:18.000000Z", "used": "154.389µs"}
    2021-09-25T00:29:32.307459Z     info    grpcserver/server.go:376        receive request {"client-address": "127.0.0.1:65095", "user-agent": "grpc-go/1.22.0", "request-id": "52831770710", "method": "/v1.PolarisGRPC/ReportClient"}
    2021-09-25T00:29:32.820542Z     debug   timewheel/timewheel.go:128      db task timewheel task start time:1632500972, use time:1.978µs, exec num:0
    2021-09-25T00:29:32.820986Z     debug   timewheel/timewheel.go:128      ckv task timewheel task start time:1632500972, use time:1.324µs, exec num:0
    2021-09-25T00:29:32.821241Z     info    cache/service.go:129    [Cache][Service] get more services      {"update": 1, "delete": 0, "last": "2021-09-25T00:10:18.000000Z", "used": "416.22µs"}
    2021-09-25T00:29:32.821146Z     info    cache/instance.go:129   [Cache][Instance] get more instances    {"update": 0, "delete": 0, "last": "1970-01-01T08:00:00.000000Z", "used": "239.593µs"}
    2021-09-25T00:29:32.830494Z     info    grpcserver/server.go:376        receive request {"client-address": "127.0.0.1:65096", "user-agent": "grpc-go/1.22.0", "request-id": "1379206009", "method": "/v1.PolarisGRPC/RegisterInstance"}
    2021-09-25T00:29:32.842209Z     info    batch/instance.go:203   [Batch] Start batch creating instances count: 1
    
    1. 单机版能否提供docker-compose的启动方式?

    个人认为通过一个大zip分发包括 prometheus/pushgateway等组件感觉不是一个很优雅的方式。且在应用挂掉如果后通过uninstall.sh停止全部应用,又导致了所有数据全部丢失,通过docker-compose启动应该会更灵活一点

    1. go sdk中api的写法不是很优雅

    像api.NewProviderAPI() 这种写法令人感到有带一些迷惑,无法很直观的看出来是哪个api(尤其是接入polaris的多数为server端应用,大部分程序都会去建个api包,用于提供对外的rpc或http api)。可能像zap.NewProduction()gin.Default() 这样,写成 polaris.NewProviderAPI()这样会更直观一点。

    1. 文档里一些小bug

    如 https://polarismesh.cn/zh/doc/%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/%E4%BD%BF%E7%94%A8polaris-go.html#%E9%85%8D%E7%BD%AE%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%9C%B0%E5%9D%80 中 在应用当前运行目录下,添加polaris.yml文件,配置服务端地址信息 实际为 polaris.yaml文件

    1. 控制台中无法新建namespace?
    question 
    opened by Akitata 7
  • [ISSUE #119] feat: multi-file log

    [ISSUE #119] feat: multi-file log

    Please provide issue(s) of this PR: feat #119

    配置项

    # server启动引导配置
    bootstrap:
      # 全局日志
      logger:
        path:
          naming: log/polaris-naming.log
          health-check: log/polaris-health-check.log
          store: log/polaris-store.log
          plugin: log/polaris-plugin.log
          server: log/polaris-server.log
          # 默认日志路径
          default: log/polaris-default.log
    

    To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

    • [x] Configuration
    • [ ] Docs
    • [ ] Installation
    • [ ] Performance and Scalability
    • [ ] Naming
    • [ ] HealthCheck
    • [ ] Test and Release

    Please check any characteristics that apply to this pull request.

    • [ ] Does not have any user-facing changes. This may include API changes, behavior changes, performance improvements, etc.
    enhancement 
    opened by DHBin 6
  • Failed to build polaris on macOS

    Failed to build polaris on macOS

    Describe the bug Failed to build polaris on macOS

    To Reproduce

    1. chmod +x build.sh
    2. ./build.sh ./build.sh: line 5: realpath: command not found usage: dirname string [...]

    Expected behavior After built, one can see 'polaris-server-release_${version}.tar.gz' package from the list.

    Environment

    • Version: latest
    • OS: macOS Monterey
    bug documentation good first issue 
    opened by GuangmingLuo 5
  • Use Concurrentmap in  CacheProvider to reduce  lock granularity

    Use Concurrentmap in CacheProvider to reduce lock granularity

    What is the feature you want to add? 使用concurrentmap 来减少目前 healthcheck / CacheProvider,https://github.com/polarismesh/polaris/blob/main/healthcheck/cache.go#L30, 中全局读写锁的粒度,划分为多个map+sync.RWMutex 来实现分片map的效果,提高相应的性能 Why do you want to add this feature?

    Use concurrentmap to replace map+sync.RWMutex

    How to implement this feature? 将原先map 的key值 instanceid 进行hash得到的值对concurrentmap 的分片数量来求余 , 来确定分发到指定的map 上,从而来实现减少读写锁的粒度。

    type sharedMap struct {
    	size   uint32
    	shared []*shared
    }
    
    type shared struct {
    	healthCheckInstances map[string]*InstanceWithChecker
    	healthCheckMutex     sync.RWMutex
    }
    
    func (m *sharedMap) getShard(instanceId string) *shared {
    	return m.shared[fnv32(instanceId)%m.size]
    }
    
    // FNV hash
    func fnv32(key string) uint32 {
    	hash := uint32(2166136261)
    	const prime32 = uint32(16777619)
    	for i := 0; i < len(key); i++ {
    		hash *= prime32
    		hash ^= uint32(key[i])
    	}
    	return hash
    }
    

    Additional context Add any other context or screenshots about the feature request here.

    enhancement need discuss 
    opened by liu-song 5
  • Can support multiple database storage types

    Can support multiple database storage types

    What is the feature you want to add?

    Can support multiple database storage types

    eg: sqlserver、PostgreSQL、oracle、kingbase、dameng ...

    • [ ] support store can use sqlserver
    • [ ] support store can use PostgreSQL
    • [ ] support store can use Oracle
    • [ ] support store can use embedded distribute KVStorage or Database

    Welcome to participate in the evil classmates in the community, you can have relevant discussions in this question


    我们希望北极星的后端存储可以不仅仅只对接mysql,希望还可以对接sqlserver、PostgreSQL、oracle、kingbase、dameng 等,当前可以优先实现这三种数据库的对接

    • [ ] support store can use sqlserver
    • [ ] support store can use PostgreSQL
    • [ ] support store can use Oracle
    • [ ] support store can use embedded distribute KVStorage or Database

    欢迎社区中感兴趣的同学参与,可以在本issue中进行相关的讨论

    Why do you want to add this feature?

    1. Support domestic database
    2. Meet the database selection needs of different users

    How to implement this feature?

    Additional context Add any other context or screenshots about the feature request here.

    enhancement help wanted need discuss good advanced issue 
    opened by chuntaojun 5
  • password is not required

    password is not required

    fixes #99

    mysql password is not required.

     [email protected] ~  mysql -uroot
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 30
    Server version: 8.0.26 Homebrew
    
    Copyright (c) 2000, 2021, Oracle and/or its affiliates.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    
    opened by horizonzy 5
  • 创建子账户可以与主账户同名导致主账户登陆失败

    创建子账户可以与主账户同名导致主账户登陆失败

    Describe the bug A clear and concise description of what the bug is.

    To Reproduce Steps to reproduce the behavior.

    Expected behavior A clear and concise description of what you expected to happen.

    Environment

    • Version: [e.g. v1.0.0]
    • OS: [e.g. CentOS8]

    Additional context Add any other context about the problem here.

    bug 
    opened by chuntaojun 0
  • 恢复service中的单元测试 & 添加docker-mysql作为数据源进行集成测试

    恢复service中的单元测试 & 添加docker-mysql作为数据源进行集成测试

    What is the feature you want to add?

    Why do you want to add this feature?

    How to implement this feature?

    Additional context Add any other context or screenshots about the feature request here.

    enhancement test code quality 
    opened by chuntaojun 0
  • Will there be any support for Dubbo governance in the future

    Will there be any support for Dubbo governance in the future

    What is the feature you want to add?

    Why do you want to add this feature?

    How to implement this feature?

    Additional context Add any other context or screenshots about the feature request here.

    enhancement help wanted service good advanced issue 
    opened by JavaLionLi 5
  • 配置中心支持token验证

    配置中心支持token验证

    What is the feature you want to add? 配置中心支持token验证 Why do you want to add this feature? 配置中心部署在公网环境安全访问需求 How to implement this feature? 参考“服务注册与发现”的token认证方式 Additional context Add any other context or screenshots about the feature request here.

    enhancement config good advanced issue 
    opened by SkyeBeFreeman 1
  •  POLARIS_HOME environment variable is not defined  execute the install script .\tool\start.bat

    POLARIS_HOME environment variable is not defined execute the install script .\tool\start.bat

    Describe the bug when i execute the install script .\tool\start.bat

    To Reproduce Steps to reproduce the behavior.

    1655964572521

    .\tool\start.bat The POLARIS_HOME environment variable is not defined correctly This environment variable is needed to run this program

    Expected behavior Description of POLARIS_HOME

    Environment

    • Version: v1.9.0
    • OS: Window 10

    Additional context

    bug good first issue need-feedback install 
    opened by ddfeiyu 5
Releases(v1.9.0)
Owner
Polarismesh
a service discovery and governance center that supports gRPC, Spring Cloud, Service Mesh, Kubernetes and others
Polarismesh
Hexagonal architecture paradigms, such as dividing adapters into primary (driver) and secondary (driven)Hexagonal architecture paradigms, such as dividing adapters into primary (driver) and secondary (driven)

authorizer Architecture In this project, I tried to apply hexagonal architecture paradigms, such as dividing adapters into primary (driver) and second

Renato Benatti 0 Dec 7, 2021
Open Service Mesh (OSM) is a lightweight, extensible, cloud native service mesh that allows users to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments.

Open Service Mesh (OSM) Open Service Mesh (OSM) is a lightweight, extensible, Cloud Native service mesh that allows users to uniformly manage, secure,

Open Service Mesh 2.4k Jun 24, 2022
The mec platform for service register/discovery/subscribe and other functions.roject main repo.

EdgeGallery MEP project Introduction Edgegallery MEP is an open source implementation of MEC platform according to ETSI MEC 003 [1] and 011 [2] docume

EdgeGallery 35 Feb 16, 2022
Service registry/discovery implementation in Go.

go-service-registry Availabe endpoints : GET http://localhost:3000/ --> Dashboard GET http://localhost:3000/services/[serviceName] --> Get available

null 1 Feb 11, 2022
Topology-tester - Application to easily test microservice topologies and distributed tracing including K8s and Istio

Topology Tester The Topology Tester app allows you to quickly build a dynamic mi

Bas van Beek 1 Jan 14, 2022
Service-scaling - Microservice scaling with example

Scaling examples This is the repo for my (Hungarian) Twitch streams where I spea

Gergely Radics 0 Jan 8, 2022
A dynamic docker->redis->traefik discovery agent

traefik-kop A dynamic docker->redis->traefik discovery agent. Solves the problem of running a non-Swarm/Kubernetes multi-host cluster with a single pu

jitter.dev 19 Jun 19, 2022
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers

Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? How to

null 0 Oct 19, 2021
Reworking kube-proxy's architecture

Kubernetes Proxy NG The Kubernetes Proxy NG a new design of kube-proxy aimed at allowing Kubernetes business logic to evolve with minimal to no impact

Kubernetes SIGs 131 Jun 24, 2022
Rest API for todoapp written in Golang, using clean architecture, CI/CD

todoapp-backend Rest API for todoapp written in Golang, using Clean Architecture and CI/CD (includes unit tests and integration tests). Using: Web fra

Đạo Phạm 5 Jan 14, 2022
Lightweight, single-binary Backup Repository client. Part of E2E Backup Architecture designed by RiotKit

Backup Maker Tiny backup client packed in a single binary. Interacts with a Backup Repository server to store files, uses GPG to secure your backups e

RiotKit 1 Apr 4, 2022
Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications

Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.

HashiCorp 11.2k Jun 22, 2022
Cheiron is a Kubernetes Operator made with OperatorSDK for reconciling service account and attaching imagePullSecrets to service accounts automatically

anny-co/cheiron NOTE: Cheiron is currently in very early stages of development and and far from anything usable. Feel free to contribute if you want t

anny 2 Sep 13, 2021
crud is a cobra based CLI utility which helps in scaffolding a simple go based micro-service along with build scripts, api documentation, micro-service documentation and k8s deployment manifests

crud crud is a CLI utility which helps in scaffolding a simple go based micro-service along with build scripts, api documentation, micro-service docum

Piyush Jajoo 0 Nov 29, 2021
⚡️ A dev tool for microservice developers to run local applications and/or forward others from/to Kubernetes SSH or TCP

Your new microservice development environment friend. This CLI tool allows you to define a configuration to work with both local applications (Go, Nod

Vincent Composieux 1.3k Jun 28, 2022
Microservice we use to post reddit posts to a webhook

TypicalBot Reddit Webhook Poster Microservice we use to post reddit posts to a webhook. How to run The SHARED_API environment variable is to hook into

TypicalBot 1 Dec 5, 2021
Emojivoto - A microservice application that allows users to vote for their favorite emoji

Emoji.voto A microservice application that allows users to vote for their favori

Kriil 0 Feb 16, 2022
Covering basics of Go by writing practical running code. microservice-http server-DAO-Kafka

go1 Covering all basics of Go by writing practical running code. Prerequisite: basic knowledge of c programming language as go is very similar to c in

Zeeshan Ashraf 4 Mar 30, 2022
A Golang based high performance, scalable and distributed workflow framework

Go-Flow A Golang based high performance, scalable and distributed workflow framework It allows to programmatically author distributed workflow as Dire

Vanu 576 Jun 20, 2022