用POLARDB構建客到智能餐飲系統實踐

摘要: 在新零售成爲大趨勢的今天,餐飲行業也加入到這一浪潮之中。智能餐飲系統將幫助餐飲行業從多個維度提高本身的運營能力和收益,而打造智能餐飲系統SaaS化能力也成爲了目前的一個熱點。本文中果仁軟件聯合創始人&研發副總趙亞南就爲你們帶來了關於使用阿里雲POLARDB構建客到智能餐飲系統實踐分享。前端

在新零售成爲大趨勢的今天,餐飲行業也加入到這一浪潮之中。智能餐飲系統將幫助餐飲行業從多個維度提高本身的運營能力和收益,而打造智能餐飲系統SaaS化能力也成爲了目前的一個熱點。本文中果仁軟件聯合創始人&研發副總趙亞南就爲你們帶來了關於使用阿里雲POLARDB構建客到智能餐飲系統實踐分享。數據庫

本次分享中,首先介紹了「客到雲餐飲」這款SaaS化產品,其次介紹隨着業務發展所須要面對的挑戰,以及「客到」爲何要選擇POLARDB。第三將講述使用POLARDB的解決方案以及遷移的整個過程所作的實踐,最後將分享將數據庫架構升級到POLARDB以後的效果。緩存

果仁軟件與「客到雲餐飲」背景介紹

果仁軟件早在2008年就是淘寶服務平臺的第一批軟件開發商,當時作了「麥多多」產品,也正是由於這款產品,果仁軟件成爲了阿里雲的第一批客戶。在使用阿里雲的過程當中也逐漸更多地瞭解了這些雲產品,目前總體的技術架構都是基於阿里雲的。使用阿里雲產品爲果仁軟件帶來的好處就是節省了大量運維成本,可以使技術團隊更加專一於自身產品和業務的開發上。四年前,基於使用阿里雲的經驗和對於軟件的理解,果仁軟件參與到了餐飲行業的SaaS化軟件「客到雲餐飲」開發中。客到主要實現了SaaS化餐飲解決方案,包括了點餐、收銀、財務以及後廚管理和營銷、員工績效考覈等。安全

「客到」經過智能化、數字化的餐飲服務軟件,能夠幫助餐廳更好地提高經營效率和服務質量,讓客戶真正地享受到餐飲行業所帶來的服務。智能化點餐以及收銀可以幫助餐廳很好地下降了人力成本和時間成本,智能化餐飲系統可以讓餐廳的工做人員直接在報表中看到全部的流水信息,使得對帳工做更加輕鬆簡單。餐廳的廚師自己就很是忙碌,那麼藉助智能化後廚管理就能幫助廚師有序地製做菜品,進而提高後廚效率。會員營銷是SaaS化中經常使用的功能,可是對於餐飲行業,傳統會員營銷方式並不能有效地吸引顧客,而藉助智能系統,餐廳能夠開展店內店外的智能營銷,使得活動更加高效,爲餐廳帶來更多的資金流。不少餐飲企業愈來愈注意實時化的信息,對於報表的實時性要求更高。所以,餐飲行業的SaaS化就能夠從這樣的切入點開展。此外,「客到」在用戶體驗上也作了精細化設置,比較簡潔、實用。而經過軟件與智能硬件的配合,就可以更好地賦能餐飲行業。服務器

「客到」藉助阿里雲的SaaS化發展之路

餐飲行業的特色就是業務峯值比較高,特別是午飯和晚餐時段這一點就體現的更爲明顯。經過阿里雲後臺的雲監控能夠看到在這兩個時間段,幾乎在瞬間系統壓力就會大幅度提高,這就須要系統可以很好地應對峯值狀況。此外,週末的晚上會比平時出現更大的峯值,可以達到平時的2到3倍。並且餐廳的訂單數據量也是很是大的,正常的一家中餐廳每餐大概會銷售200到250單,一些快餐廳甚至會達到1000到2000單。這樣若是服務1萬家餐廳,訂單量就能達到天天100萬,每一年訂單量就會達到七、8億。結合菜單的明細數據,這樣的數據量是很是大的。並且因爲涉及到訂單、會員以及促銷等信息,所以表結構也會比較大,並且在高峯的時候這些業務都會出現高併發。此外,因爲餐廳的特色,所以對於系統的穩定性要求很是高,基本上能夠說是「365*24」小時的可用性要求。由於不少餐廳不只提供中餐和晚餐,還會提供夜宵和早餐。以前用戶量小時,就能夠等待用戶沒有的時候進行發佈新版本,而當用戶量增大以後發現,這樣的空閒時段已經不存在了。網絡

在最初設計餐飲軟件的時候,認爲只要餐廳有網絡就徹底能夠實現SaaS化。可是後來發如今業務高峯的時候,即便帶寬足夠,可是在訪問雲端數據的時候仍是很是差,甚至中斷而影響業務。基於這樣的狀況,客到實現了本地的架構調整,可以實現即便斷網也不影響業務流程的繼續運行,用戶對於網絡狀況能夠實現無感知,這一點在友商內可以作到的也並很少,所以也收穫了較好的口碑。架構

隨着業務發展量愈來愈大,用戶量也愈來愈多,需求不斷增長,業務的邏輯也愈來愈複雜。隨着多種點餐方式以及多種下單場景的增長,對於業務調整的及時性要求愈來愈高。此外,產品線也愈來愈豐富,從3個產品飛速擴展獲得8個產品。而隨着業務量的增加,歷史數據也飛速增加,有時候會由於雲端的「慢SQL」出現卡頓,暴露出一些隱藏的問題。經過阿里雲監控,及時地感知到高峯時期的CPU、內存等的報警信息,進而增長服務器或者服務器組的處理。針對於上述出現的問題,常常會作一些相應的分析。從頁面的加載、前端再到後臺數據庫都會進行排查。在系統優化方面,會天天排查出慢SQL進行優化,包括RDS也會存在慢查詢的統計,雖然慢查詢並不會影響業務的正常運轉,可是總會帶來一些很差的用戶體驗。針對於以上的狀況,須要增長一些索引機制以及緩存層等,對於一些歷史數據進行歸檔,對於一些業務進行拆分,減小單表的壓力,同時使得業務架構更加清晰。併發

雖然以上的技術問題並不會影響業務的正常運轉,可是有限的研發精力老是被這些技術問題所牽絆,就會影響技術團隊開發新的需求和功能的速度和效率。特別是對於創業公司而言,研發效率和用戶需求是最爲注重的關鍵點。所以更加但願將技術精力集中在產品業務的開發中,作好產品,服務好客戶。若是可以經過更好的技術方式和產品減小非主線研發的工做量也是各個公司以及架構師所須要考慮的。也就是說除了須要解決當前問題,還須要可以支撐起兩年以內的業務擴展,雖然中間也會經歷架構演變,可是對於架構師而言,須要作到內心有底。此外,好的產品必定可以提供好的性能,同時在費用上須要作到可控和可預算。負載均衡

爲你們簡單分享一下「客到」基於阿里雲的架構設計。首先,從用戶開始訪問開始,阿里雲提供了域名解析服務和CDN加速以及網絡安全方面的Web應用防火牆。通過域名解析以後就到了前端的服務器,而經過負載均衡器將會將前置服務器和後置服務器再次分離,進而解決應用層面的併發請求量。應用服務器爲了解決Session共享問題能夠應用Redis解決,實現單機出現宕機不影響用戶使用,從而實現高可用。同時Redis緩存能夠有效緩解數據庫層面的壓力,可是在使用的時候也須要注意其自身的特色,好比帶寬限制以及邏輯上須要和存儲層保持一致。存儲層以前使用RDS,如今換用了POLARDB,以前經過一臺主RDS和幾個RDS只讀節點就基本上解決了關係型存儲,能夠對於訂單的歷史數據完成異步的備份。對於文件和圖片等的存儲能夠放在阿里雲OSS之上,這樣比放在磁盤上更加節省成本。在安全方面,使用最多的就是雲監控產品,這樣就能夠實現問題的提早監控預警。在設計架構的時候,架構師須要不斷地梳理架構,這樣在進行架構演進的時候就能夠容易地分析和判斷架構是否能夠遷移。運維

「客到」數據庫架構向POLARDB遷移實踐

在進行架構遷移的可行性分析的時候,首先要把如今架構的狀況,涉及到的業務以及運行的主機、ECS以及OSS都須要進行風險評估。因此在實際進行系統遷移的時候須要首先進行評估。以後爲了打消研發和產品對於採用新技術和產品的顧慮,就須要作充分的準備和測試,好比對於應用POLARDB而言,須要對於性能進行充分測試,好比100%兼容MySQL,還須要對於業務進行全流程測試,在測試完成以後須要第一時間進行測試反饋。在遷移以後須要進行效果評估,「客到」在遷移到POLARDB以後發現頁面響應速度獲得了80%的提高,複雜SQL處理性能獲得了200%的提高,而費用則下降了20%。並且整個遷移過程只使用了1個多小時,生產環境目前平穩運行,而且業務代碼沒有作任何修改,只作了配置文件的簡單替換。

最後爲你們分享在數據庫架構遷移過程當中須要注意的兩個關鍵點,第一點就是VPC的遷移,POLARDB使用的是VPC網絡鏈接,那麼在遷移的時候就須要作好網絡規劃,須要把握好時間點。此外,須要注意白名單的變化,由於在整個網絡架構發生變化的時候,外網IP的變更有可能影響到第三方接口調用。

原文連接

相關文章
相關標籤/搜索