此回购包含AirQo平台的API定义

诺亚Nsimbe d2e20a3709
合并将请求# 1061从airqo-platform / chore-data-pipelines
8小时前
09391 a5e4b
返回添加工作流触发器
1周前
2 a3f4d51a2
通过上传添加文件
3年前
a232f18266
更新的自述
1年前
4 c01111280
设置生产部署文件
7个月前
cf4a68c117
更新元数据资源和节点亲和性
1周前
src
d2e20a3709
合并将请求# 1061从airqo-platform / chore-data-pipelines
8小时前
0 bf51ad7c9
只是设置代码组织结构来支持我们的微服务架构。
3年前
c2238d3252
将分支“staging”合并到ft-app-auth-triggers中
4个月前
fbae7762cb
更新precommit钩
1个月前
c5401f5e4a
更新README.md
2年前
1 a2b16db52
更新codecov.yml
2年前
09391 a5e4b
返回添加工作流触发器
1周前
数据管道

你的版本控制数据管道可以在这里!学习如何创建一个与我们的教程

README.md

你必须登录才能留言。登录

AirQo-api

BCH合规构建状态codecovCodacy徽章

AirQo是什么?

AirQo项目旨在通过设计、开发和部署安装在静态或移动物体上的低成本空气质量传感设备网络,测量和量化坎帕拉市及其周边地区的空气污染规模。

系统架构

AirQo平台由许多用不同语言编写的微服务组成,这些微服务使用Istio相互通信。

架构ofmicroservices

AirQo系统架构使用单回购更快的运输。每个服务都有自己的数据库。使用事件驱动的方法来维护这些数据库之间的一致性。还有一个API网关(Nginx),客户端使用它来访问其他服务。使用PM2监视杂服务的状态。部署模式是使用Docker的每个容器一个服务。

服务 语言 描述
分析 瓶/ Python & MongoDB 这是一个用于所有分析工作
app-enable node . js 启用使用此平台的服务的任何应用程序。
auth-service node . js 此端点的身份验证服务
data-mgt node . js & MongoDB 一个完全管理的服务,以流(实时)和批(历史)模式转换/处理和丰富数据,具有同等的可靠性和表现力
device-registry node . js 对设备进行管理。
incetives node . js 支付服务以激励各利益相关方
预测 瓶/ Python & MongoDB 处理空气质量预测或预报的微服务
服务监控 node . js 监视所有微服务的运行状况
noitifications node . js 负责处理应用程序的所有通知需求。
监控 瓶/ Python & MongoDB 监控网络中所有设备的状态。
定位 瓶/ Python & MongoDB 使用推荐放置设备位置的模型的微服务
校准 瓶/ Python & MongoDB 使用推荐放置设备位置的模型的微服务
location-registry 瓶/ Python & MongoDB 处理网络中位置注册的微服务

特性

  • 多协议连接(HTTP和MQTT)
  • 设备管理
  • 访问控制
  • Incetives
  • 消息持久性(MongoDB和PostgresSQL)
  • 基于容器部署使用码头工人而且Kubernetes
  • 微服务架构,高质量的代码和测试覆盖率

安装和使用

  1. 使用“桌面Docker”本地运行您将构建微服务映像并将其部署到开发机器上运行的单节点Kubernetes集群中。

  2. 在谷歌计算引擎(GCE)上运行"您将构建、上传容器映像并将其部署到谷歌Cloud Engine上的Kubernetes集群。

部署

在AirQo平台上部署cd AirQo-api/src/microservice-name

构建图像Docker构建-t us.gcr。io / gcp-project-name / microservice-name。

基于新创建的映像运行容器Docker运行-d -n best -p host-port:container-port us.gcr.io/gcp-project-name/microservice-name

用于运行容器的标志

  • 要求Docker将主机端口host-port上的流量转发到容器端口container-port上。容器有它们自己的专用端口集,因此如果您想从网络到达某个端口,就必须以这种方式将流量转发给它。否则,防火墙规则将阻止所有网络流量到达您的容器,这是一种默认的安全姿态。
  • d (detach)要求Docker在后台运行这个容器。
  • N (name)名称,可用于在后续命令中指定新创建的容器。以上例子最好有名称。

在REST客户机或Web浏览器中访问应用程序localhost:主机端口。您应该启动并运行应用程序。现在是时候运行单元测试了,例如:

单元测试成功后删除容器Docker rm—force best。

在DockerHub或谷歌容器注册表上共享图像码头工人推/ /

  • 例如:docker push us.gcr.io/airq -api/airq -device-registry-api

贡献

我们邀请您帮助我们建立这个平台。请查阅贡献指南获取详细信息。

问题

在报告问题之前,请参阅问题指导

提示!

新闻p要查看以前的文件或,n查看下一个文件

评论

加载……