Giter VIP home page Giter VIP logo

navagraha's Introduction

navagraha

Navagraha(九曜)是基于Kerbernetes和Docker实现的一种函数即服务框架,可将业务逻辑以函数的形式在本框架中实现。该框架使用Prometheus对系统进行资源监控,可准确地获取到每个函数的执行次数、频率、资源使用情况等内容,并可通过这些获取到的系统状况进行自动扩容。

该项目的目标是实现函数计算私有云的开发、部署、维护的一整套解决方案。

如何编译

本项目编译后将产出三个结果:

  1. nava-cli
  2. API Gateway Docker image
  3. Humha Docker image

nava-cli 的编译方式

该模块的依赖包括以下内容:

  • cmake
  • make
  • gcc
  • libcurl
  • libtar
  • libgit2

该可执行文件现阶段仅支持在linux下使用,需要预先安装这些依赖的工具以及第三方链接库后才能正常编译,如果需要在CentOS下进行编译和使用,则可执行如下命令:

yum install -y cmake make gcc libcurl-devel libtar-devel libgit2-devel
cmake .
make

编译结果将产出名为nava的可执行文件,通过它可以实现Navagraha的开发、部署和维护工作。

API Gateway Docker image

该模块需要在有Docker的环境下进行,但要求Docker版本在17.05以上,即需要Docker支持多阶段构建。编译方式如下:

cd api_gateway
sh build.sh

Humha Docker image

该模块需要在有Docker的环境下进行,但要求Docker版本在17.05以上,即需要Docker支持多阶段构建。编译方式如下:

cd humha
sh build.sh

navagraha's People

Contributors

gscienty avatar m1231996c avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

navagraha's Issues

扩充有状态函数类型

当前函数的部署使用Deployment实体进行,计划扩展StatefulSet部署函数,支持有状态函数类型

service 存在监听端口界限限制

现阶段修改方法仅能修改 apiservice 的部署文件

  1. 首先删除 原有 kube-apiserver的Pod kubectl delete -f /etc/kubernetes/manifests/kube-apiserver.yaml

  2. 在 原有文件基础上 spec.container[0].command[N] = "--service-node-port-range=50-50000"

  3. 重新运行 kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml 即可

kube_api 编译错误

include/kubeent/serializable.hpp:26:18: error: ‘static T_Obj navagraha::kubeent::serializable<T_Obj>::deserialize(std::string&) [with T_Obj = navagraha::kubeent::service; std::string = std::basic_string]’ is inaccessible
static T_Obj deserialize(std::string & payload)
^
In file included from include/kube_api/service.hpp:4:0,
from kube_api/service.cc:1:
include/http_client/client.hpp:27:71: error: within this context
return T::deserialize(this->curl_abstract_process(path, "GET"));

humha支持chunked模式

业务进程写入stdout时,如选用chunked模式时,humha能够不必等待业务进程写完,直接输出到http流中。

humha 多参数启动命令时返回结果为空

humha 多参数启动命令时返回结果为空,实例:

HUMHA_EXEC=/usr/bin/wc HUMHA_NAME=wc HUMHA_ARGS="-w -c" nginx -g "daemon off;" 启动nginx后,执行 curl 127.0.0.1:5000 -d"1 2 3 4 5" 返回HTTP Response Body 为空

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.