Skip to content

Latest commit

 

History

History
72 lines (54 loc) · 3.64 KB

README.md

File metadata and controls

72 lines (54 loc) · 3.64 KB

pando-cloud Build Status Coverage Status

Pando Cloud is the cloud part of Pando IoT solution.

中文文档

What is Pando?

Pando is an open source solution to help you build your IoT application from scratch. It's made of a bunch of tools, protocols and frameworks below:

Design Concepts

Pando Cloud aims at Providing a production ready IoT Cloud Solution, NOT just an IoT server demo. Here are some system key points we focus on:

  • IoT: should use best practice for IoT business scenarios.
  • stability: should be well tested and bug free.
  • distributive: can be deployed on cluster as well as on single machine.
  • availability: mechanisms for fault tolerance, self healing, and more.
  • extensibility: modular, pluggable, hookable and composable.
  • accessibility: easy to learn, develop, and deploy.
  • universality: highly optimized and well designed for general use.
  • efficiency: lower comsuption on hardware and bandwidth.
  • security: away of common invasion and cracking.
  • scalability: capable to manage thousands to billions of IoT devices.

Architecture Overview

architecture

The system can be divided into three layers.

access

Access layer provides different protocol brokers to accept device connections, including but not limited to HTTP, XMPP, MQTT, COAP. HTTP is REQUIRED for device registration, authentication and discovery. We currently suport MQTT for device data exchange.

logic

Logic layer implements IoT related business like device online, device management and api, etc.

  • registry: registry serves system level meta data and configurations.
  • devicemanger: device manager is a service to processing device data and requests, and keepping device status.
  • apiprovider: provide restful API for applications and notify application when device status changes.
  • controller: manage device access services and route request to proper access.

core

We relay on a couple of open source solution as core services:

  • mongodb: we use mongo as device data storage engine and benefits from its simplicity and scalebility.
  • mysql: global configuration like product and device info are stored in mysql.
  • redis: widely used as cache service.
  • nsq: message queue for asynchronous communication.
  • etcd: server registration and discovery service.
  • ELK: the elasticsearch, logstash and kibana stack privodes a efficient way for log collection and analytics.

Methodology and Technology Reference