SharkEC的獨門網站維運秘辛(上)
大家好,今天要談一個稍微硬的話題,分享一個我們服務基礎建設的一些秘辛。當網站製作好以後便是維護營運的開始,卻很少人提到「網站維運」是怎麼做的。
這個維運的基礎建設十分重要,台灣仍有許多的中小型系統開發商,基礎建設上仍使用土法煉鋼方式,缺乏自動化、流程化以及標準化的作業流程,其實對於服務品質就會大打折扣!
以下我就來揭露幾個重要面向:
1. 程式碼管理
不論你的網站是單純的企業形象網站,還是複雜的商業行為網站,背後都是程式碼在運作,因此程式碼的管理便十分重要。
程式碼的版本管理對於維護程式碼非常重要,我們團隊利用GIT來確保每個CODE出產的品質,並且保證程式碼的安全,在多人開發時提高更高的產能,並保持網站功能演進的可能性。
我們在一切的基礎規劃上打造了框架「framework」的概念,因此可以針對不同用戶變動的需求,達到外皮多樣但核心不變的技術架構。為了更專注於「核心系統」的開發,並且兼容所有「分支」的相容性,對一般工程人員來說是一件不容易的事。
而鯊客的電子商務平台解決方案,蓄積了我們十多年的實作經驗,只為了確保每一個客戶的「核心」版本一致,這對於維護來說是非常重要的事。
這是什麼意思呢?
簡單來說,就是你在2015年製作的網站,當鯊客本身的功能改進時,你仍會隨時享受到新功能的優點。
意思就是:改良網站效能時仍會回饋到你的網站上,並不會因為你的站台是在數年前製作的而停止更新。這樣的一個持續改進跟優化是我們堅持的一個重要環節。
2. 微服務(Microservices)
微服務(Microservices)是一種軟體架構風格,它是以專注於單一責任與功能的小型功能區塊(Small Building Blocks)為基礎,利用模組化的方式組合出複雜的大型應用程式,各功能區塊使用與語言無關(Language-Independent / Language agnostic)的API 集相互通訊。
換成白話文來解釋,就是將網站的功能分拆成獨立的模組,譬如常見的前台(網站)、後台(資料庫),拆開後可以讓兩邊的資源保持彈性。
譬如我網站的服務類型是交易型居多的,那可能前台(網頁)的流量會比較高,但資料庫流量就還好;或是網站的服務類型是報表式的站台,那負載就會多一點在資料庫。
因此我們可以針對不同的負載程度加強該部分的計算能力即可,而這樣做的好處是能夠改善集中式管理的「效能瓶頸」問題,並提升系統架構彈性。
3.去伺服器(Serverless)
Serverless的誕生與雲端的發展是密不可分的,基本上serverless這個名詞出現是由於AWS、GOOGLE、AZURE等業者均推出不須維護伺服器的雲端PaaS服務,例如:AWS Lambda、Google Computing Engine、Azure sql database、Azure AppService。
這類型的服務特色是開發者不需要管理「基礎建設」的部分,只需要專注在把應用擺放上去即可執行,同時雲端業者會提供基礎建設的維運以及更新。
其優點是雲端業者保障了SLA(服務水平),並確保底層的Fail Over機制,而開發者(我們)可以專注在功能的開發,減少佈署時間的耗用。
同時「serverless架構」的優點通常具有:
1.可靠性 Reliability
2.可用性 Availability
3.延展性 Ductibility
以上三點特色,可以打造更具效益與彈性的基礎運行架構。
這樣的概念通用在鯊客所有平台上,提供客戶更具彈性的服務,網站的服務能力可從一百人到數萬人均可在同一個框架下運作。
到這邊,希望你沒有睡著。
這些是網站外表看不出來的部分,通常一般的網站製作工作室也不會著墨太多,但對於網站的使用體驗、SEO分數均有十分的關係!
如果你以上都看不懂,沒關係,我們懂。
用架構提升產品素質 ,以技術改善客戶體驗。
鯊客便是這樣的存在價值,我們堅持提供客戶最適合、最安心的服務。
以上先簡單談了三點,之後會再介紹持續營運(DevOps)的部分。
謝謝你的閱讀。