朱曉東
(廣西壯族自治區(qū)計算機公司 廣西南寧 530022)
Web應用框架構建集約化統(tǒng)一維護的探討
朱曉東
(廣西壯族自治區(qū)計算機公司 廣西南寧 530022)
隨著社會的發(fā)展,在信息化的今天,人們對網(wǎng)絡越來越依賴,因此,Web的應用框架也越來越受到人們的重視,本文就Web應用的框架構建集約化統(tǒng)一維護進行簡要的分析總結,在省市一體集約化運營思想指導下,應用開源通過集成Web服務器、Web應用框架、分布式文檔數(shù)據(jù)庫等進行組建,為網(wǎng)絡運營商最重要的生產(chǎn)系統(tǒng)提供統(tǒng)一維護平臺,有助于實現(xiàn)運維支撐的專業(yè)化程度。為我國網(wǎng)絡運營的發(fā)展提供微薄之力。
統(tǒng)一維護平臺;維護腳本;開源;集約
近幾年來,隨著網(wǎng)絡信息安全深度的演進、專業(yè)細化、系統(tǒng)演化以及完整的配備,關于對信息化的建設投資規(guī)模不斷增長,CA公司客戶關系管理(CRM)專業(yè)領域所涵括的項目、體系以及設備也隨著上述項目的增長而改善。同時,網(wǎng)絡信息技術(信息技術)系統(tǒng)的運行支持工具,因為沒有嚴謹?shù)囊?guī)章與制度,在一定程度上存在以下問題:發(fā)生故障的區(qū)域很難定位、質(zhì)量很難得以保證、數(shù)據(jù)維護不及時、硬盤數(shù)據(jù)很難得到共享、新人操作起來有困難、缺乏自動化等。
CA公司在省市一體集約化運營思想指導下,試圖整合一系列高性能的開源框架構建CRM領域的核心生產(chǎn)系統(tǒng)——業(yè)務支撐系統(tǒng)(BSS)統(tǒng)一維護平臺。正如項目研發(fā)明確提供標準的集成開發(fā)環(huán)境(IDE),對應系統(tǒng)運維支撐也應明確提供標準的統(tǒng)一維護平臺(UMP),從而能有助于實現(xiàn)業(yè)務支持高度整體化、智能化、標準化以及專業(yè)化標準。
統(tǒng)一維護平臺將Web服務器Nginx和Web應用框架Rails以及分布式文檔數(shù)據(jù)庫mongoDB(數(shù)據(jù)庫)進行整合,以實現(xiàn)各層負載均衡(實現(xiàn)網(wǎng)絡負載均衡、Web服務器和數(shù)據(jù)庫均集群部署)的效果,支持客戶端的瀏覽器類型的多樣性(谷歌,火狐),可調(diào)度的任務引擎的腳本到隔離調(diào)度維護終端直接生產(chǎn)數(shù)據(jù)庫以及對數(shù)據(jù)來源機型配置和分析可訪問的數(shù)據(jù)庫連接配置,與傳統(tǒng)的大型重量級構架相比較,該維護平臺顯得更輕量級、更具有先進性,在未來將會得到很好的發(fā)展與使用。
2.1 Web開發(fā)框架Rails
Ruby on Rails,又被簡稱為Rails,是一個使用Ruby語言編寫的Web應用開發(fā)框架,他的優(yōu)點就在于在編碼量很少的情況下,能直觀的用Block語法來實現(xiàn)循環(huán)遍歷和函數(shù)回調(diào)。Rails的核心是MVC(模型、視圖、控制器)架構,該架構可把業(yè)務邏輯從用戶界面中輕松的脫離出來,易于使代碼不做重復的事,明確指出不同的類型代碼適用于不同的場合。
上文對Rails進行了分析,下面我們將對其相關聯(lián)的Ruby進行簡要的介紹。Ruby是一種跨平臺、面向?qū)ο蟮膭討B(tài)類型編程語言。Ruby體現(xiàn)了表達的一致性和簡潔性,Ruby不僅作為一種編程語言,而且它還是一種簡潔的表達思想的方式。
由于Rails框架的使用,所有的統(tǒng)一維護平臺的腳本全都使用這個簡化的Ruby語言,并且支持中文名稱,與自然語言非常接近,對SQL(結構化查詢語言)的使用次數(shù)大大減少,非常方便學習和維護。
2.2 分布式文檔數(shù)據(jù)庫mongoDB
一個NoSQL(非關系型數(shù)據(jù)庫)提供了一個簡單的、輕量級的數(shù)據(jù)存儲和檢索機制,許多學者將他稱之為“Not Only SQL”,一般不使用“SQL”數(shù)據(jù)存儲器來進行存儲數(shù)據(jù)。NoSQL數(shù)據(jù)庫通常是對檢索高度優(yōu)化和進行額外的操作;除以松散的一致性存儲記錄外(如鍵值存儲),其提供的功能往往很少。一個完整的SQL數(shù)據(jù)庫,為了使一些數(shù)據(jù)模型的擴展性以及性能得到顯著的提高,往往會將NoSQL的靈活性進行降低,并以此達到該目的。
mongoDB(來源于“humongous”,直譯過來就是堆積如山的意思)。目前,mongoDB是一種在NoSQL數(shù)據(jù)庫中非常熱門的、性能很高的、開源的以及無模式的文檔型數(shù)據(jù)庫。在許多情況下,它用于替代傳統(tǒng)的關系型數(shù)據(jù)庫或鍵/值(key-value)存儲方式,除了具有高性能、易于部署、易于使用,它還具有非常友好的數(shù)據(jù)存儲。
統(tǒng)一維護平臺主要的就是采用mongoDB對NoSQL數(shù)據(jù)庫進行構建,和集群部署,用于存儲腳本的維護記錄和運行腳本。
2.3 任務調(diào)度引擎
信息安全基線既是數(shù)據(jù)庫的產(chǎn)生不能直接從個人安全維護終端中得出,所以,維護終端訪問庫往往是由一項任務調(diào)度引擎來進行操作的。靈活的調(diào)度引擎支持數(shù)據(jù)源,并且可以配置、解析腳本并對應相關的數(shù)據(jù)庫進行操作。
在推廣這一平臺之前,就事先確定了最基本維護腳本的幾個特點:①使用量小的代碼做更復雜工作;②具有良好的可讀性和可維護性;③盡量對數(shù)據(jù)庫過分依賴;④與SQL相比,維護腳本的功能和擴展性將全面超越前者。從上述的特性來看,我們對多種語言進行考察,最終選擇了以Ruby為基礎的腳本語言。與此同時,Rails具有極強的靈活性特點,使統(tǒng)一維護平臺具有不同于其他平臺特性。
3.1 基于Ruby的定制化維護腳本
BSS統(tǒng)一維護平臺的腳本維護實質(zhì)上是一種以Ruby語言為基礎,以Rails框架為運行環(huán)境,并且以BSS生產(chǎn)數(shù)據(jù)庫代碼的文本為基本操作目標。由腳本屬性和文件檔案以及代碼三個部分組成的維護腳本。
整個腳本代碼分為以下五個大部分:定義參數(shù)、定義方法、準備、執(zhí)行、清理。五個代碼除了“執(zhí)行”部分,其他代碼都是可選的。每一個代碼都以“代碼名稱do”開頭到對應“end”結束。不同的代碼有不同的用途,不能重復使用Ruby語言的腳本代碼。與傳統(tǒng)的Ruby程序,腳本代碼需要遵循一個固定的格式,并存在一些額外的限制。同時,該平臺提供了各式各樣的自定義AP(I應用程序接口),并引入了許多擴展庫,有助于底層功能的封裝工作。所以與普通Ruby程序相比,它具有更好的維護功能。可以視為平臺專用的領域特定語言。
3.2 清新簡潔的平臺特性
統(tǒng)一維護平臺在采用Rails后,比以往編寫新的應用程序和增加新功能變得更加容易。新功能開發(fā)效率高,部署過程在線控制,對生產(chǎn)并不影響。
在2012年8月關于統(tǒng)一維護平臺成功上線,然后在2012年10月以及11月這兩個月期間內(nèi)該平臺進行了大范圍的推廣,2012年12月份一開始,該平臺已經(jīng)完成了205個手工維護腳本,遷移114個數(shù)據(jù)庫后臺定時任務,運行123961次,成功處理120661個故障。平臺上線后,維護工作的整體狀況得到改善,以及在維護人員的工作狀態(tài)等方面都帶來了明顯的提升。
4.1 提高運營維護工作質(zhì)量
統(tǒng)一維護平臺在一定程度上大大提高了維修工作的工作效率,具體表現(xiàn)如下:①為維護平臺的統(tǒng)一性提供了一個通用的異常處理入口。維護人員可以快速處理障礙,可以更好地安排某個人員調(diào)配(兩個人一組,若一方出現(xiàn)請假或出差情況,另一方則頂其崗位),甚至可以提高維護人員的學習效率。②平臺的腳本是遠遠超過PL/SQL(過程化SQL)的功能,因此平臺可以提供更高層次的維護手段,通過對統(tǒng)一維護平臺的使用,使得維護工作變得更加智能化、自動化、標準化。③通過對腳本安全性的檢查和預防,從根本上減少了操作過程中經(jīng)常出現(xiàn)的錯誤。④提供了一個科學的日志記錄和數(shù)據(jù)備份方案,便于后期的審核和恢復工作。
4.2 提升維護人員狀態(tài)士氣
統(tǒng)一維護平臺得到全面推廣后,維修人員需要進行必要的熟悉運用,維護人員必須掌握維修腳本的開發(fā),維護本地日常故障異常處理腳本遷移到一個平臺和生產(chǎn)數(shù)據(jù)庫后端的時序任務,完成后,上述工作可以逐步從繁雜的事務處理脫離出來,這樣的工作環(huán)境使得維護人員的工作積極性得到極大激發(fā),使維修人員在許多方面有很大的改變。提高工作效率。
統(tǒng)一維護平臺作為Web應用框架強大的后背,接管大多數(shù)BSS的運維工作,滿足并超越了早期技術驗證的目標。目前正在順利運行。隨著應用的不斷深化,維修人員提出了更多的改進,對管理人員也有很高的期望。因此,對統(tǒng)一維護平臺考慮的發(fā)展方向是:建設成許多維護平臺,可為以后的運營支撐做維護準備;實現(xiàn)以平臺成為基礎的一線人員異常處理工具,如嵌入原系統(tǒng)、腳本可見性控制、時間段控制;提供外部系統(tǒng)集成能力,對外提供調(diào)用接口;增強維護文檔的管理功能,增加提問與解答的互動機制,全省共享機制,對維護文檔、腳本可以打分并發(fā)表評論等。
CA公司基于開源Web開發(fā)框架Rails,建立BSS相關的集約經(jīng)營統(tǒng)一維護平臺,平臺推出后,提高了BSS異常問題維修效率,使維護工作透明,維護的集中管理、維護保養(yǎng)工作、維護計劃知識庫共享等都得到實現(xiàn),可阻斷個別維護終端直接生產(chǎn)數(shù)據(jù)庫,確保系統(tǒng)數(shù)據(jù)的安全性,促進故障管理、問題管理的規(guī)范。
[1]WhatisRails.[EB/OL].[2013-05-28].http://guides.rubyonrails.org/get-ting started.htm l.
[2]NoSQL.[EB/OL].[2013-05-28].http://en.wikipedia.org/wiki/NoSQL.
[3]MongoDB.[EB/OL].[2013-05-28].http://zh.wikipedia.org/zh/MongoDB.
TP393
A
1004-7344(2016)15-0295-02
2016-5-10
朱曉東(1986-),男,大專,主要從事CA運營維護工作。