2020年1月,德方智鏈與婁底市合作的“鏈企銀——城市金融綜合服務平臺”正式上線,平臺利用區塊鏈、大資料和人工智慧等先進技術,建立覆蓋銀行、政府和企業等全方位海量可信資料,改變傳統的以抵押擔保為主的放貸模式,解決中小企業融資難融資貴的問題。
“鏈企銀”平臺的搭建歷時半年之久,期間也遇到過各種難題,其中平臺搭建之後與婁底市政府之間的資料資訊上鍊尤為關鍵,今天就和大家分享下關於“鏈企銀”平臺政務資料打通的曲折上鍊的全過程!
三天時間,如何快速開發部署政務資料、圓滿上鍊?鏈企銀小組成員接受挑戰!
從拿到完整需求到完成開發和部署,僅有三天時間,鏈企銀團隊在接到這項艱鉅的任務後,快速調配資源,組成特別行動小組,小組成員包括前端和後端工程師、區塊鏈技術專家、環境部署和運維人員組成。大家分工明確,快速進入部署狀態,加班加點設計方案、開發聯調,雖然在開發過程中遇到了一些小挑戰(比如:發現POI在高達26萬行資料的xlsx大檔案的資料解析時,解析時長會延長到半個小時,且可能會發生記憶體不足的問題。但後續瞭解到政務資料實際是已xls檔案提供,xls檔案的行數上限是65536,因此暫時無需考慮資料量過大導致解析失敗的問題),最終涉及資料匯入、資料上鍊、資料展現的各項工作按計劃在兩天時間內完成,並且聯調完美透過。
如何在一天時間內將資料處理模組、區塊鏈網路、區塊鏈瀏覽器和資料庫等服務遠端部署到婁底市指定機房伺服器?
政務資料最關鍵的因素就是資料安全性,為保證其安全性,儲存政務資料伺服器需要與網際網路隔離,鏈企銀團隊產品運維工程師李工在婁底機房同事的遠端協助下透過遠端訪問服務開啟了緊張的部署工作,導映象、裝資料庫、部應用,啟區塊鏈網路… 就在一切都很順利的時候,突然K8s網路出現問題,李工發現需要關閉防火牆和交換分割槽,此時此刻已經是晚上7點多鐘,李工顧不上吃飯休息,與婁底機房同事默契配合,抓緊K8s的部署工作,中途又遭遇了k8s的服務埠不通的問題,李工和團小組成員張工、蘇工等經過多渠道資料研究、討論以及反覆嘗試,在iptables中將k8s內部服務的所有埠都加入放行列表中,終於恢復正常。 但問題仍在繼續,由於機房伺服器無法提供託管的k8s服務,因此需要自行搭建k8s-master,整個搭建過程剛開始是順利的,等到etcd、kube-apiserver、kube-controller-manager 、kube-flannel、kube-proxy、kube-scheduler部署完成之後發現coredns卻出現問題,透過報錯發現53埠被佔用,透過程序檢視工具發現本地已經跑了一個dnsmasq服務,遂將其殺死,cordns啟動恢復正常。隨後在容器內測試時,k8s的服務域名仍無法ping通,但coredns容器正常執行且無異常日誌。由於網路很慢,在經過長時間的等待後在容器內安裝了telnet命令,發現透過服務域名和埠是可正常訪問服務了,只是伺服器的策略禁ping,此時才完全確認k8s網路和服務執行完全正常,可開始部署區塊鏈元件。 上天不負苦心人,歷時一個通宵,反反覆覆出現問題、排查問題和解決問題後,區塊鏈網路也正常執行起來,後端服務上鍊功能也正常執行,且看到區塊鏈瀏覽器中,上鍊數量也在穩定增加,一切都在正常運作。
資料上鍊出現卡頓,Mrason挖礦木馬病毒突現,如何解救?
在執行一段時間後發現速度很慢,伺服器資源消耗很多,伺服器非常卡,透過檢視程序發現,一個Mrason的程序執行的過程中固定消耗了十個核心的cpu資源,造成了資源緊張嚴重影響了資料匯入的效率,時不時還會出現卡頓,這是什麼原因導致?產品運維工程師李工的第一反應是中毒了,果然,透過搜尋發現,是一種挖礦木馬程式(因部署伺服器處在婁底IDC機房,外地人員無法透過內網進行登入認證,因此需開通外網訪問許可權,在這個過程當中由於root密碼設定過於簡單給了駭客可乘之機植入了Mrason挖礦木馬,這也是很多技術人員在遠端操作中經常會碰到的一個問題,在此建議大家不要為了貪圖方便,設定過於簡單的密碼,駭客無處不在)。定位了問題所在,鏈企銀小組成員迅速給出解決方案,將Marson程序定時進行查殺,發現殺死之後程序又死灰復燃,遂將查殺頻率提升至5秒每次,但這始終無法徹底殺掉病毒,伺服器資源還是時不時非常緊張,隨即祭出了永久解救方案,找出Marson的父程序,並將其所在的定時拉起任務停掉,並同時更新root的驗證密碼,自此之後便再無出現過佔用cpu過高的非應用程序,一切又歸於太平。
服務不夠穩定,反覆出現問題怎麼辦?曲折的道路永遠不缺解決問題的決心!
經過一段時間的壓測,鏈企銀小組運維人員發現服務不夠穩定,總是在中途崩潰退出,導致上鍊中斷或者資料不一致。問題一出,小組負責人立刻緊急商討,監控伺服器資源使用情況、監控資料庫連線情況、監控服務執行狀況,以及檢視各服務日誌是否正常,發現個別服務在一定情況下總是記憶體釋放出錯導致程式崩潰,同時資料庫連線爆滿,問題已經初步定位,馬上給出解決方案:
針對記憶體問題,是由於記憶體不足,釋放時報錯,最快的方案就是增大服務的堆疊記憶體。
針對資料庫連線問題,因為資料庫限制了連線數,導致報 Too many connections 錯誤,導致插入區塊鏈瀏覽器操作比較頻繁的連結拿不到連結,資料插入不到資料庫,決定增大最大連線數和調整執行緒快取大小。
過程就是不斷遇到問題並且解決問題,政務資料上鍊之旅正式開始,15萬條政務資料成功上鍊!
前期準備測試部署工作全部就緒,真正的政務資料上鍊之旅馬上就要開始,此時需要匯入真正的政務資料,需要在與網際網路隔離的情況下進行。區塊鏈技術組長蘇工趕到婁底機房現場,一切準備就緒,斷外網,重新啟動k8s,卻再次出現問題,k8s出現無法啟動的情況,經過逐一排查,發現是由於斷網後,失去了k8s賴以執行的IP地址,導致K8S各元件一直無法正常啟動。由於政務資料系政府內部機密資料,部署完成之後需斷開外網,由於此前只配置了一塊網絡卡,導致k8s等服務找不到監聽的IP地址遂全部掛掉,於是需要對另外一塊網絡卡進行配置。 在婁底機房工作人員和相關領導的協助下,蘇工拉網線接上機房交換機後,伺服器動態獲取到內網IP地址,然後配置成靜態,將k8s服務監聽於這個內網IP,應用重新部署恢復正常。k8s成功啟動,服務正常執行,政務資料進行上鍊,最終順利地將有效的15萬多條資料成功上鍊!
這次的政務資料上鍊任務圓滿完成。
“在時間緊、任務重的情況下,哪怕只有50%的信心,也要頂上去,做起來,靜下心分析,發現問題解決問題。這不就是一個程式設計師的成長曆程嗎?”——區塊鏈技術組長蘇工說道。
透過這次專案實戰,圓滿完成平臺政務資料上鍊任務,是鏈企銀團隊超強戰鬥力、責任心和團隊合作能力的展現!平臺自上線以來,在婁底市政府的大力支援下,積極助力當地中小微企業融資,解決疫情當下的企業現金流困境,協助政府部門進行疫情管控!截止目前,平臺已經有2348家婁底企業註冊,累計受理企業申請116筆,3月份融資申請金額突破2億元。目前已經完成貸款發放突破千萬,其他的審批均在流程中。鏈企銀平臺的價值正在凸顯!
未來鏈企銀平臺將為婁底市提供更為完善的科技賦能和綜合金融服務賦能,真正幫助婁底乃至全國中小企業解決融資難題,用專業的態度和紮實的技術實力開創新型金融體系的基石。