iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 30
1
Microsoft Azure

Azure 的奇幻之旅系列 第 30

Azure 系列文(30) - IoT Dashboard 架構設計

終於到了最後ㄧ天,突然有一個很臨時的想法,今天要把全部介紹過的兜成一個專案,包括CICD的部分,沒想到全部都是環環相扣的吧XD,把前面介紹過的全部兜再一起做成撒尿牛丸,所以今天會把預計要做的架構列出來,希望可以盡量整合前面29天介紹到的Azure服務,挖這麼大的坑要填XD,那我們就開始組裝吧!

準備

  • 耐心

我們需要什麼樣的功能?

簡單來說,我想要一個可以監視並操控 IoT Device 的網站

接到這個需求應該會想死吧XD

沒關係,我們就來組裝吧!

Application

  • Back-end: Python Flask
  • Front-end: React
  • WSGI Server: Gunicorn
  • Server: Nginx

Devops

  • Azure Devops
  • Azure Pipeline
  • Azure Kubernetes Service

IoT

  • Azure IoT Hub
  • Azure Device Provision Service
  • Azure Functions
  • Azure Stream Analytics

Secure

  • Azure Key Vault
  • Azure active directory

大致上會用到上面這些東西,當然有些東西是可以抽換的,比如說你比較熟Java,可以把Application的部分換成Spring Boot或者弄Micro-Service(Spring Cloud),其他的也可以因個人需求做更改,也許你有自架Pipeline,就不用花錢再多部署一個囉XD

架構圖

https://ithelp.ithome.com.tw/upload/images/20201009/20127994aVt19s5uGW.png

功能

  • Device: 模擬溫濕度
  • IoT Edge: 當作Device到Device Provision Service中間的Gateway
  • Device Provision: 將 IoT Edge 綁定至 IoT Hub
  • IoT Hub: 收集Device訊息
  • Stream Analytics: 分析、拿來即時反應事件
  • Functions: 拿來自定義DPS到哪個IoT Hub
  • Device Twins: 控制裝置
  • Key Vault: 安全性

整個架構大致上想要這麼做

因為功能有點繁雜,所以這次就沒有貼出手把手的教學了,詳細的程式碼會貼在Github上 (持續更新中),有興趣的人可以歡迎Clone下來玩,或者可以提出哪裡可以更好的建議,謝謝大家!!

後記

終於經過30天的鐵人賽了!!這之間我也收穫良多,因為原本想說紀錄我以前做過的東西,結果沒想到發現不夠我寫,只好去看新的東西來補xD,完成了30天的挑戰也挺不可思議的,所以可以證明從小事情慢慢累積的話,到最後都是一個可觀的成長,不管套用到任何地方都一樣,30天鐵人賽對我來說是結束嗎?不!我上面的IoT Dashboard根本還沒做完...,但這也會是另一種挑戰,會持續努力把它補完的!!


上一篇
Azure 系列文(29) - Active Directory Single-Sign-On 應用程式註冊
系列文
Azure 的奇幻之旅30

尚未有邦友留言

立即登入留言