鵝廠這個窮得成本精確到0.01元的微團隊,怎麼利用IoT與雲原生監測大氣質量的?

{"type":"doc","content":[{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"一、鵝民大氣監測項目簡介"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在物聯網和微團隊之間如果加入了雲能夠做到什麼事情?關於這個點,首先我們來看一個真實具體的案例。如下圖所示,這個項目是騰訊內部發起的公益項目:鵝民大氣監測項目,核心人員只有5個人,其他的都是相關的志願者和參與者。5個人的團隊是一個非常典型的微小團隊,我們這樣一個團隊做成了什麼事情呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ef\/efd96ef70853fa67d294f97089b87db9.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"關於這個項目的起源,先來看一組數據。如下圖所示,這是2019年中國生態環境公報的摘要,2019年有337個城市進入了大氣質量分析中,其中真正達標的城市數量只有46.6%,不到一半。在這些城市當中,如果按天數來計算的話,20%的時間是處在污染情況下的,並且PM2.5是主要污染物。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/21\/21f744a271ba2be36d0f41eb2b8e8129.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"然後我們進一步,看一個真實的事件,今年年初3月份京津冀區域大氣污染過程的分析,這個報告發布在中國生態環境部的官網,因爲這次事件是短時重度污染,所以大家關注度比較高。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/80\/809e6118aa03c29a82b971dcf34b97fa.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於這些情況,生態環境部近期發佈了文件:2020-2021秋冬季大氣污染綜合治理方案徵求意見稿。第一部分覆蓋了京津冀,第二部分覆蓋了長三角。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/35\/35a46b5ca4c2df5e81c067542ac3dd30.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那麼長三角和京津冀都看完了,大家可能會比較關注珠三角是什麼樣子呢?我們來看一下深圳有什麼樣的相關信息可以提供給大家。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"中國天氣網是隸屬於中國氣象局的公共氣象服務中心,從中國天氣網發佈的信息來看:深圳有11個監測點,每個監測點每小時會上報數據告訴大家上一個小時的空氣質量是怎樣的。這裏我們可以算一筆賬,深圳有2000平方公里,分爲11個監測點,每小時同步一次,一共每天上報264次。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/7a\/7a75bdf4a08614cfe1382f59a50ca20a.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們團隊發現,如果有民衆很關注空氣質量,非常想了解空氣對自身的影響,但是卻沒有辦法拿到實時的數據。那麼是否能利用雲來快速實現這樣的能力,幫助我們發現身邊的空氣事件呢?另外,中國天氣網這個項目雖然符合國家標準,但是沒有辦法反映具體小區的環境情況,於是我們的項目機會就這樣誕生了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"二、項目一期:原型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"項目一期我們要做的是原型,"},{"type":"text","marks":[{"type":"strong"}],"text":"做原型的時候需要關注兩個點:第一個是快速實現;第二個是能力驗證"},{"type":"text","text":"。這是小微企業面臨的第一個風險,是否能用很短的時間、很小的成本來驗證自己想做的方向或這個點是否能真的產生價值?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"小微企業不像大企業,沒辦法頻繁試錯還可以活得很好,每一次投入都必須要有產出,如何快速驗證就是關鍵點。原型期我們團隊同樣面臨這樣的問題,我們只有5個人,而且是利用自己業餘的時間,所以我們決定先快速跑起來。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"先來看一下我們的架構組成,如下圖所示,"},{"type":"text","marks":[{"type":"strong"}],"text":"主要分爲三個部分:採集、處理和展示"},{"type":"text","text":",它實現的效果是把監測到的數據傳遞到最終的用戶。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/e4\/e454c47df61b28d54b697c5b5045c219.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們分成了架構層和實現層。在採集這裏,監測節點層是用騰訊雲兼容硬件,軟件用的是TencentOS Tiny,這是騰訊開源的物聯網操作系統,成熟度比較高。監測節點拿到的數據通過接入網關層,然後傳到平臺接入層,也就是物聯網開發平臺IoT Explorer。到這裏爲止數據已經上雲了,使用TencentOS Tiny很容易就能把你的數據傳遞上雲。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"上雲以後進入到第二個環節,這也是很多物聯網團隊不太擅長的環節,就是如何在雲上進行處理和深加工。在處理的過程有三個組成部分:使用騰訊雲API網關幫我們做鑑權;通過雲函數把數據寫到數據庫裏;最後通過騰訊雲圖直接展示數據。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最開始的原型設計,我們投入了3個人,用了20人時就完成了整個系統從設計到上線。具體來說就是一個人幹兩天活基本上就幹完了,這個成本是大多數的微團隊能夠承受的。一期的案例我們也已經把它放到雲+社區上了,後續大家可以在雲+社區上閱讀相關文章看看是怎麼操作和實現的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大家可以看到,在架構設計當中,雲產品基本貫穿了始終,但是在接入網關層面卻沒有云產品,這是爲什麼呢?這是因爲我們使用了騰訊雲Lora社區網絡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個社區網絡於2019年12月份發佈,由開發者共建。如果你使用了Lora終端,只要你的設備在網絡覆蓋範圍內,設備配置好並上電,數據就可以上報,這樣開發部署的成本降低非常多。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1f\/1f01035c0255f8822e12507fccf85867.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"   "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那麼我們一期的原型究竟做出的效果怎麼樣呢?如下圖所示,我們使用了騰訊雲圖這個產品,用來展現系統的WEB界面圖,上面包含了地圖組件等各種信息。看起來也許比較複雜,但因爲都是組件拖拽式,所以本身開發的成本非常低。配置5分鐘,調試了大概15分鐘基本就搞定了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/44\/44402eb1a2e29db691e4a1feedf391a0.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配套的是我們的一個終端,在做終端的時候爲了降低成本,我們使用了現成的開發板。這裏使用了TencentOS Tiny+Nucleo Lora開發套件,因爲本身的技術比較成熟,TencentOS Tiny跟開發板的適配性也很好,所以開發成本也並不高。到這裏我們終端的原型和系統原型就做完了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"   "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那麼我們做的這個東西是不是真的有用呢?接下來來看一個具體的案例。如下圖所示:這是今年4月3日,我們5個節點監測到的數據。大家可以看到每個節點的數據都是上升又下降,但是它們的時間點並不相同。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/d6\/d61856b459a98719830116517ce9c691.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從我們節點分佈來看,呈現了西側先上升下降,東側後上升下降的過程,於是我們就猜測:是否有一個移動的污染源進入了深圳?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了驗證這個猜想我們做了幾個動作:第一步就是去看中國氣象局的數據。雖然它是按每小時發佈的,但是可以看到數據指標是上升的,說明這個事件是真實存在的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f4\/f489221aebdf473c0aae929401d3ae89.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"緊接着再看其他地區的情況,這裏我們並沒有找到一個官方的帶地圖的數據,而是使用了第三方的數據,來源是AQICN,是一個總部在北京的全球化組織,向全球的使用者提供大氣質量監測的具體數據和情況。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/d8\/d888428725969bf2db255676c6a06838.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從這裏也看到呈現了明顯的西高東低的情況,符合擴散的基本原則要求,這和我們的監測數據基本一致。接着我們分析了地形,污染氣團可以從很多方向過來,爲什麼結果是自西向東,而不是自南向北或者其他情況呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最後發現,原來是深圳附近的山太多了,如果污染源真的是自西向東來的話,被山阻隔以後只有一個通道,就是通過珠江通道而來。但我們的數據源比較少,所以說這只是一個猜測,並不是絕對準確的信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f5\/f5a35d5ed8476550634f3643c8e5a9d7.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但到此爲止已經可以發現:我們的監測數據真的產生了效果!爲什麼?因爲我們每15秒就會上報一個信息,這個頻率能夠幫我們發現這個趨勢,發現一個正在移動的污染氣團,這證明了我們的原型是有價值的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"   "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同樣的事件不只發生一次,如下圖所示,這是今年2月2日的另一個案例。這個案例持續的時間比較長,總共10個小時,分爲2個波段,也可以看到明顯的上升下降的動作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/86\/8668cffc1f05e63bec88859aaafcd43c.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"到此爲止,我們的原型基本達到設計之初所要的效果,接下來我們要做的事情就是把覆蓋面擴大,點數增加,提供更多的數據,做更深度的分析。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"三、項目二期:拓展"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"二期的主要目標是拓展,具體包括兩個部分:一個是規模運營,一個是數據容災。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/80\/80759bbb535ebc495c10a225be1cc237.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如上圖所示,架構這裏我們有幾個動作,首先我們把中間件層的網關放到了核心環節,所有的東西都要經過它,核心是爲了保護我們的數據庫。畢竟雲圖對數據庫帶來的壓力是不可控的,而經過中間件的API網關和中間件,可以保證我們系統的健壯性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二部分是我們增加了兩個環節,在原有數據庫的基礎上先是增加了一個對象存儲做備份,另外又增加了一個異地數據庫幫我們做異地容災和備份。這樣的好處是主數據庫用來做實時的查詢和入庫,從數據庫做長時間的大數據量的分析,這樣就避免了壓力導致數據庫崩潰。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲什麼要這樣做呢?主要是因爲我們這個團隊太窮了,我們沒有錢,只能買最便宜的數據庫,再通過架構的方式去優化它。如果大家的團隊資金可行的話,雲數據庫可以有多種選型:單機、雙機高可用、三機三地容災,都可以選用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"二期的架構和邏輯,包括源碼,我們都已經開放出來了,大家也可以到雲+社區查看相關的帖子,其中包含源碼鏈接,看看我們具體是怎麼實現的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"二期階段我們的節點從5個變成27個,覆蓋度有了較高的增長。另外我們優化了終端,如下圖所示,第二期的終端我們用的是TencentOS Tiny的RISC-V開發板。這個板很小,大概只有一張信用卡大,同時我們自己設計了轉接板,大大提高了它的集成度。終端可以放到最小的氣象百葉窗裏,這樣的話它的部署難度也大大降低了。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/5f\/5f2fef768eb3be496c40f4d725ed3f8d.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"關於二期的數據量,我們總結了三個數據:5、100、20000000。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"5代表着我們團隊只有5個人;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"100指的是我們運營近一年,總投入的開發維護時間是100人時。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2000萬是我們的數據積累量,我們已經積累了2000萬條記錄。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ba\/ba9d92033a76da7b91b453e68a3c7330.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲什麼這麼快?主要是因爲雲的開發成本非常低。另外我們也沒有用到任何運維人員,因爲雲的產品比較穩定,只要架構上的承載能力可行就能長期穩定運行。我們甚至可以做到一兩個月都不用看運行的監控數據,只看真正展示出來的功能數據就可以了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個系統上線10個月已經積累的2000萬條數據,對我們非常珍貴,因爲數據有實時性和穩固性的基礎,這2000萬的數據量就可以更進一步來分析,就能夠開發出更多的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"四、項目三期:開放"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"三期我們關注的是開放,主要分爲兩個部分,一個是管控體系,另一個是生態建設。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/6c\/6c33ee05d49dcc9a3fba17f3e3255334.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"三期的架構更復雜一點,首先我們加入了消息隊列,然後配套的加入了雲日誌服務。消息隊列+日誌服務達到的效果就是:我們不再是單鏈路的消息傳播,因爲有了消息隊列,我們有了多個通路,這就達到了數據對賬。另外有了消息隊列和日誌服務,這樣整個系統的管控日誌也完成了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"接着我們就開始強化用戶側輸出的應用能力,基於騰訊雲開發和騰訊連連。因爲我們關注到,現在很多情況下大家是更喜歡用手機的,並不是每個人都隨身帶着電腦,那麼怎麼樣讓大家隨時看到這個數據呢?小程序是一個很好的切入點,於是就引入了雲開發和騰訊連連小程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"騰訊連連是物聯網開發平臺IoT Explorer自己配套的產品,而云開發具備更多的空間,可以做更復雜的事情,它們的使用維度是不一樣的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"同時爲了生態,我們提供了一個新的出口,那就是實驗數據。後續我們希望把數據開放出來,讓大家能夠拿到這些數據,並且用這些數據做自己想做的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/e8\/e8cd135b9c656ba4bd1640b2c925122d.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/aa\/aab9a51f6d4783883f3f922cc1315b82.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"   "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"總的來看,三期階段我們的計劃是完善管控,開放實驗數據,我們希望這個系統是越來越穩定的,並且數據可以開放出來。第二步是開源架構,開放實驗生態,架構我們也希望把它拿給更多的人看,因爲這個架構不僅僅可以用於大氣監測,很多其他的應用都可以做。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"其它類的應用我們騰訊雲夥伴已經開始在做了,其中一個案例就是消防類的監控,讓消防設備通過物聯網上雲,就可以實時知道每個節點當前是活躍還是故障,對於保障消防安全具有很重要的意義。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"接下來再談一談大家非常關注的問題:項目成本。微團隊的成本,除了人力就是資源消耗,4個人的團隊花十幾二十萬驗證一個項目,一定是不可行的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/c8\/c82f38034e81d904c791268550d02d52.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如上圖所示,表格上的數據來自於我們真實的運營結果,這裏包含了終端硬件部分,也包含雲端服務部分,每一部分的價格和消耗都列在上面。當然由於大家購買的硬件不同,所以具體成本上可能會有差異。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雲端部分成本相對明確,我們這個項目大量使用了騰訊的雲原生相關的產品,比如雲函數、API網關,這些產品是按量付費的,它可以幫助大家極大降低實驗過程中所產生的成本。舉個例子,如果1萬個節點需要每分鐘上報一次,利用我們二期的架構,每個節點一年成本是2塊多錢,而到了三期這裏的成本可以降到1塊錢一下。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/3f\/3f929522ee2c1116c4299b69a1074d6b.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"   "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們現在準備做的動作主要分爲三個部分。第一部分是開源,我們把源碼提供給大家,大家可以嘗試自己的項目。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二部分是架構,整個系統的搭建和邏輯,我們已寫成文章放到雲+社區,大家可以參考。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個是生態,在生態這個環節,我們項目內部發生過一次討論。因爲我們團隊太小了,微團隊還是要聚焦自己核心的能力,而我們最核心的能力就是架構,而不是應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以我們選擇開放數據,讓更多的人用我們的數據做自己想要的應用。源碼因爲尚不成熟,我們先提供了部分的開源代碼,後續更新的源碼也會陸續放出。我們提供架構和數據,大家可以提供自己需求來設計,讓我們一起來看看這個事情還能做成什麼樣子。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"五、微團隊項目開發經驗"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微團隊能力是沒有問題的,如何選對方向、如何做對事情是有幾個要素的,我們也進行了相關的總結。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1. 項目選型"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"項目選型關注的是產品要素,也就是價值。主要看用戶、市場,和同業,這裏爲什麼沒有寫競品呢?因爲我們不是盈利性的項目,更多是爲了傳播技術理念,想跟大家交流,所以用的詞是同業。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/19\/1941ec49815fc7e1f8842f5ec27f2f7c.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶能證明你的東西是否真的有價值,人家是否真的需要你的產品。市場是決定有多少人用,有多少人願意關注。同業是同行業裏其他的產品,它們能夠佐證你的這個產品價值的深度在哪裏。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大家現在能夠拿到的每小時,甚至每秒鐘的實時數據就是我們提供的價值。這三個要素綜合起來就決定了我們當時立項的重點,最後我們決定把人力、時間和資源投入到這個項目當中來,所以這個項目纔會真正啓動。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2. 風險管理"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/cf\/cf9928fd4cff240307878e70b27b150e.webp","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"  "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"接下來是風險管理,也就是技術要素。這裏需要關注的兩個字就是“生存”,微團隊最大的問題就是:不可能停下來完全做一個理想的事情。怎麼在自己已有工作不受影響的情況下能夠做新的嘗試和探索呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"答案就在於質量、效率和成本。質量代表你的功能,你的功能要有價值,這個產品纔會有價值,如果你的功能根本達不到要求,就算投入1塊錢也是損耗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個是效率,代表着你究竟能夠多快地解決這個問題。一個小團隊如果花了3個月才能做出一個東西,那麼這個小團隊就會面臨很嚴峻的生存問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個是成本,就是如何低成本做事情,我們這裏是一個公益性的項目,也不打算掙錢,控制成本就是我們非常關注的點。而對於一些真正商業性質的微團隊,你的成本越低則後續的收益就會越大。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這三個點結合起來就決定了我們的原型要通過雲原生來做,最後效果也是達到了我們的預期:人數少、時間短、成本低。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3. 持續運營"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/f4\/f4506b78bd4ba225b05ce94083f03693.png","alt":"Image","title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最後是持續運營,也就是成長。這裏也有三個詞要分享:時機、渠道和夥伴。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"時機指的就是事件運營,很多東西即使你知道它是對的,但是當用戶沒有設身處地的感覺的時候是沒有辦法感同身受的。所以我們的項目運營時間基本放在秋冬季,大家可以很明確感受到空氣是好還是壞,關注點就會不一樣。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個是渠道,也就是從哪裏傳播運營出去。大家知道微團隊重要的是利用產業鏈的生態和能力,而不是僅僅做好自己,如何讓更多人看到你是非常重要的點。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個是夥伴,指的是你生態鏈上的合作者,他們決定了你的整體交付能力和空間。結合實際,渠道和夥伴,最後我們的項目團隊選擇了和雲+社區合作,我們在社區上面開設專欄、閱讀清單,發佈我們每一期的文章,讓大家看到我們正在做什麼,以及把我們的能力提供出去。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過雲+社區這個平臺很多人知道了我們的項目,目前無論是消防類的項目,還是智能IoT硬件的項目很多也都是從雲+社區帶過來的。所以渠道和夥伴對微團隊非常重要,大家看到你,你就可以閃光。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"念念不忘必有迴響,不忘初心方得始終。微團隊做事情還是要給行業和客戶帶來價值。如何讓自己更快、更便宜、更直接地產生價值就是我們微團隊始終關注的點。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最後放出一些合作的空間和入口,首先是我的本職工作的聯合創新實驗室,如果大家想成爲騰訊雲的合作伙伴,並且和騰訊雲共同共建方案的話可以聯繫我們,這裏有一個調研單的入口,大家可以填相關信息,後續會有相關人員回覆大家。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個是社區共建,也就是雲+社區。微團隊最重要的是讓大家看到你,希望大家在雲+社區上發表更多的文章,和不同的人、不同的團隊有更多的交流。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個是TencentOS Tiny交流羣,TencentOS Tiny的價值非常大,它幫你把上雲的通路都打通了,如果想做IoT , TencentOS Tiny是第一個點。在這個交流羣裏有官方的同學答疑和回覆,大家可以加羣和我們一起討論。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"horizontalrule"},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"頭圖:Unsplash"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作者:高樹磊"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文:https:\/\/mp.weixin.qq.com\/s\/xN7w5ss5ZQkwSDsKgenBow"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文:鵝廠這個窮得成本精確到0.01元的微團隊,怎麼利用IoT與雲原生監測大氣質量的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"來源:雲加社區 - 微信公衆號 [ID:QcloudCommunity]"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"轉載:著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章