AWS即Amazon Web Services,是亞馬遜(Amazon)公司的云計(jì)算IaaS和PaaS平臺(tái)服務(wù)。AWS面向用戶提供包括彈性計(jì)算、存儲(chǔ)、數(shù)據(jù)庫(kù)、應(yīng)用程序在內(nèi)的一整套云計(jì)算服務(wù),能夠幫助企業(yè)降低IT投入成本和維護(hù)成本。
AWS提供了一整套基礎(chǔ)設(shè)施和應(yīng)用程序服務(wù),使幾乎能夠在云中運(yùn)行一切應(yīng)用程序:從企業(yè)應(yīng)用程序和大數(shù)據(jù)項(xiàng)目,到社交游戲和移動(dòng)應(yīng)用程序。
中文名稱 | aws | 外文名稱 | Amazon Web Services |
---|---|---|---|
程序類別 | 應(yīng)用程序 | 項(xiàng)目基礎(chǔ) | 大數(shù)據(jù)項(xiàng)目 |
官網(wǎng) | http |
主要是原來(lái)不同和功能不同,參照以下:1.?原理不同???? AXY:由于3~35KV系統(tǒng)中存在以下幾種過(guò)電壓:斷路器開閉動(dòng)作過(guò)程產(chǎn)生的操作過(guò)電壓,單相接地時(shí)產(chǎn)生的弧光過(guò)電壓和雷擊時(shí)產(chǎn)生的大氣過(guò)電壓等,...
1.精巧的設(shè)計(jì),體積小,整機(jī)重量?jī)H33Kg 2.外觀精致,操作簡(jiǎn)便,高效的冷凍腔體設(shè)計(jì),自動(dòng)除霜,溫控精度高,制冷效果好 3.最高轉(zhuǎn)速長(zhǎng)時(shí)間運(yùn)轉(zhuǎn),樣品溫度≤4℃,進(jìn)口日本無(wú)氟...
優(yōu)衣庫(kù)與KAWS的聯(lián)名系列設(shè)計(jì)如何?
兩家大牌的聯(lián)名想來(lái)就會(huì)是一個(gè)經(jīng)典之款,不會(huì)錯(cuò)的。
格式:pdf
大?。?span id="7jmyh27" class="single-tag-height">30.0MB
頁(yè)數(shù): 90頁(yè)
評(píng)分: 4.5
AWS焊接目視檢驗(yàn)
二,AWS認(rèn)證焊接檢驗(yàn)師CWI
CWI是美國(guó)焊接學(xué)會(huì)AWS的注冊(cè)焊接檢驗(yàn)師,培訓(xùn)及考試內(nèi)容為焊接檢驗(yàn)工藝學(xué)、外觀檢驗(yàn)手冊(cè)及規(guī)范(API 1104或AWS D1.1)。作為國(guó)際權(quán)威的焊接專業(yè)認(rèn)證項(xiàng)目,目前可以在國(guó)內(nèi)進(jìn)行考試,比如,CCIC SHAANXI, Moody, SWS。
AWS QC1,焊接檢驗(yàn)師資質(zhì)認(rèn)證標(biāo)準(zhǔn)規(guī)定了焊接檢驗(yàn)師的資質(zhì)認(rèn)可要求。AWS QC1 包括了針對(duì)焊接檢驗(yàn)師的三個(gè)級(jí)別的資質(zhì)要求。
CAWI –Certified associate welding Inspector 認(rèn)證助理焊接檢驗(yàn)師;(初級(jí))
CWI – certified welding Inspector 認(rèn)證焊接檢驗(yàn)師;(中級(jí))
SCWI – Senior Welding Inspector 高級(jí)注冊(cè)焊接檢驗(yàn)師。(高級(jí))
第一部分 -- 基礎(chǔ)知識(shí)考試?;A(chǔ)知識(shí)考試采取閉卷考試的形式進(jìn)行,它由150道多項(xiàng)選擇題組成。這一部分的考試題目包括:檢驗(yàn)報(bào)告和檢驗(yàn)記錄、破壞性實(shí)驗(yàn)、焊接操作、焊接檢驗(yàn)師的任務(wù)及職責(zé)、焊縫檢驗(yàn)、定義及術(shù)語(yǔ)、安全知識(shí)、焊接及無(wú)損檢驗(yàn)符號(hào)、焊接方法、熱輸入的控制、金相學(xué)、公英制單位的計(jì)算及轉(zhuǎn)換。
第二部分–實(shí)際操作考核。實(shí)際操作考核包括46道試題。該考核要求用所提供的測(cè)量工具對(duì)焊縫模型進(jìn)行測(cè)量,并按所提供的"技術(shù)條件手冊(cè)"對(duì)測(cè)量結(jié)果進(jìn)行評(píng)價(jià)。并不是所有的試題都要用到所提供的"技術(shù)條件手冊(cè)";
一些試題要求應(yīng)考人員根據(jù)他(她)所掌握的實(shí)際經(jīng)驗(yàn)進(jìn)行回答。實(shí)際操作考試的內(nèi)容包括:焊接工藝、焊工考核、機(jī)械性能及其機(jī)械性能試驗(yàn)、焊接檢驗(yàn)及焊接缺陷、無(wú)損檢驗(yàn)。應(yīng)試人員應(yīng)熟悉角焊縫/坡口焊縫測(cè)量用焊接檢驗(yàn)尺、千分尺、表盤式卡尺及放大鏡等。
第三部分 – 規(guī)范開卷考核。該部分考核包括46道試題,申請(qǐng)者應(yīng)在考核前選定應(yīng)試的規(guī)范可以選擇的規(guī)范有:
API 1104 美國(guó)石油協(xié)會(huì)"管線及相關(guān)設(shè)施焊接規(guī)范"
AWS D1.5 美國(guó)焊接學(xué)會(huì)"橋梁焊接規(guī)范"
AWS D15.1 美國(guó)焊接學(xué)會(huì)"鐵路機(jī)車和車廂焊接規(guī)范"
AWS D1.1 美國(guó)焊接學(xué)會(huì)"鋼結(jié)構(gòu)焊接規(guī)范"
ASME IX 美國(guó)機(jī)械工程師學(xué)會(huì)"焊接及釬焊評(píng)定標(biāo)準(zhǔn)"
每一部分CWI的合格分為72%;CAWI的合格分為60%。
焊接檢驗(yàn)師應(yīng)具備的基本素質(zhì)包括:知識(shí)、態(tài)度、技能和習(xí)慣。
為什么潮人都喜歡玩LED創(chuàng)意3D燈bearbrick KAWS解剖暴力熊燈
LED創(chuàng)意3D燈,bearbrick KAWS解剖,暴力熊燈,KAWS空山基,積木熊燈。
節(jié)能省電,24小時(shí)常亮不需要0.2度。面板為亞克力面板,不是玻璃,不易碎,快遞運(yùn)輸安全放心。
生日禮物或者送朋友都非常合適,很有創(chuàng)意的一款臺(tái)燈,潮人必備!
如果你還想看或者買更多的款式就上網(wǎng)搜:童曉周工作室
作者介紹
韓偉,騰訊科技互娛研發(fā)部架構(gòu)師,曾在網(wǎng)易任職8年,擔(dān)任無(wú)線事業(yè)部產(chǎn)品總監(jiān)。多年來(lái)一直從事技術(shù)開發(fā),擅長(zhǎng)開發(fā)高性能系統(tǒng),對(duì)于軟件架構(gòu)設(shè)計(jì)也有豐富的經(jīng)驗(yàn)。個(gè)人的技術(shù)興趣在設(shè)計(jì)模式、軟件體系架構(gòu)等提高軟件開發(fā)效率方面的知識(shí)。個(gè)人公眾號(hào):韓大(handa1740168)。
一、起因
PaaS作為“云”的概念,已經(jīng)流行了很久。從使用的角度上看,似乎就是:寫一個(gè)PHP,然后可以直接傳到服務(wù)器上,用戶就能通過(guò)某個(gè)URL訪問(wèn)你寫的PHP了?!@確實(shí)極大地節(jié)省了開發(fā)和運(yùn)維的工作量,因?yàn)檫@幾乎完全不用去部署安裝任何服務(wù)器端的軟件,甚至數(shù)據(jù)庫(kù)也給你裝好了。
但是因?yàn)楦鞣N各樣的原因,在國(guó)內(nèi)PaaS的使用并不非常廣泛,有可能是因?yàn)闆]有好的服務(wù)提供商(由于偉大墻的原因?qū)е履承┓?wù)無(wú)法訪問(wèn))。另外,作為一個(gè)游戲服務(wù)器端的開發(fā)者,也在試圖從PaaS的概念中,學(xué)習(xí)如何提高游戲開發(fā)、運(yùn)營(yíng)效率的方法。所以就有了以下的研究。
本文主要的研究對(duì)象是Google出品的App Engine,以及Amazone的AWS兩個(gè)產(chǎn)品。實(shí)際上微軟、IBM也有類似的PaaS(Azure),由于時(shí)間精力原因只是粗粗瀏覽,并未深入。另外國(guó)內(nèi)如阿里云也有一些近似PaaS的服務(wù),但由于名氣不大,也不在這里描述了。
作為一個(gè)PaaS,我們可以注意到,主要會(huì)分成幾個(gè)層面來(lái)看,能比較準(zhǔn)確地把握其特性。否則紛繁的技術(shù)名詞,各種支持方案,會(huì)讓人眼花繚亂。這幾個(gè)層面就是:
應(yīng)用場(chǎng)景:一款PaaS希望解決的重點(diǎn)問(wèn)題。
開發(fā)支持:PaaS是一種允許用戶的代碼運(yùn)行的服務(wù),那么可以運(yùn)行怎樣的代碼,怎樣方便用戶上傳自己的代碼(或程序),如何管理這些代碼,是一個(gè)重要的問(wèn)題。
運(yùn)維管理:PaaS最讓人感到方便的,就是幾乎都號(hào)稱“無(wú)需用戶干預(yù)”的自動(dòng)化運(yùn)維,不需要用戶自己去部署服務(wù)器、配置軟件等,但這種能力到底是怎樣,也是一個(gè)非常重要的部分。
關(guān)聯(lián)配套:一個(gè)在PaaS上運(yùn)行的程序,是完成不了太多的任務(wù)的,起碼需要有一個(gè)數(shù)據(jù)庫(kù)之類的存儲(chǔ)軟件。實(shí)際上的商業(yè)應(yīng)用中,除了數(shù)據(jù)庫(kù)以外,還可能需要大量其他的配套程序,才能讓你的業(yè)務(wù)邏輯程序運(yùn)行完整,比如Memcache,甚至Crontab這樣的程序。由于PaaS號(hào)稱“幫你運(yùn)維”一切,所以很多都直接把這些服務(wù)也安裝部署好給你用,你只要用服務(wù)商提供的接入?yún)?shù),直接使用即可。那么服務(wù)商提供怎樣的配套服務(wù),有什么能力,是PaaS服務(wù)里面一個(gè)至關(guān)重要的特性,也是各種服務(wù)商“爭(zhēng)奇斗艷”的主戰(zhàn)場(chǎng)。
GAE(Google App Engine)
應(yīng)用場(chǎng)景
Google自己的Web服務(wù),是具備一整套“基礎(chǔ)設(shè)施”的,包括Web應(yīng)用(如PHP)的運(yùn)行框架、BigTable、GFS等廣為人知的服務(wù)器端軟件。所以Google App Engine的設(shè)計(jì)目標(biāo),就是讓用戶可以很方便地使用這一整套“基礎(chǔ)設(shè)施”。
從某種意義上來(lái)說(shuō),為了使用Google的配套服務(wù),可能會(huì)比托管運(yùn)行自己的Web應(yīng)用程序更吸引人。Google的基礎(chǔ)設(shè)施,一般都是以“分布式”為賣點(diǎn),提供超大承載量,和高度可用性。如果要自己去重建這一整套體系,對(duì)于一般的公司來(lái)說(shuō)都幾乎是不可能的。但實(shí)際上真正需要用到這么大的承載量,也很可能不是“一般的公司”。不過(guò)慕名而來(lái)的使用者,在Google的保證下獲得信心上的安慰,也是一種重要的價(jià)值。
開發(fā)支持
Google不愧是以技術(shù)著稱的公司,其運(yùn)行容器,支持Python/Java/PHP/Go等幾乎所有主流的編程語(yǔ)言,及這些編程語(yǔ)言在Web應(yīng)用程序方面的標(biāo)準(zhǔn)框架,如Servlet for Java??吹竭@里,不禁嘆息于,游戲領(lǐng)域并沒有什么“應(yīng)用框架標(biāo)準(zhǔn)”——所以游戲服務(wù)器程序的模型真是五花八門無(wú)奇不有,這也讓游戲服務(wù)的提供變得異常繁復(fù)困難。
GAE提供的開發(fā)工具,可以幫助開發(fā)者很方便地測(cè)試和部署代碼到PaaS上。這些開發(fā)工具包括一套結(jié)合Eclipse的IDE插件,以及一組命令上傳部署工具。用戶可以使用這些工具,好像開發(fā)測(cè)試本地程序一樣來(lái)使用。當(dāng)然使用之前還是需要配置自己在GAE上的帳號(hào)之類的參數(shù)。
GAE另外一個(gè)很有特色(也許是缺點(diǎn))的地方,就是開發(fā)者只能在“沙箱”里運(yùn)行自己的程序,因此你不能用到代碼去操作socket、本地文件、線程等“原生資源”。因?yàn)橛羞@樣的約束,所以開發(fā)者上傳的APP可以被認(rèn)為是“無(wú)損”的自動(dòng)部署到不同的硬件、網(wǎng)絡(luò)環(huán)境上。同時(shí),GAE也提供了大量的配套服務(wù),用來(lái)補(bǔ)償沙箱環(huán)境帶來(lái)的功能缺失。
運(yùn)維管理
GAE的運(yùn)維管理從代碼部署開始就是全套的。首先是支持從Maven這類代碼管理庫(kù)拉取程序部署,其次是可以部署到Google提供的全球機(jī)房,期間提供自動(dòng)擴(kuò)容和負(fù)載均衡。其中比較值得注意的是,它的運(yùn)維環(huán)境還支持負(fù)載灰度和資源配額,也就是可以設(shè)置各種參數(shù),來(lái)限制緩存空間、實(shí)例數(shù)、最大線程數(shù)、存儲(chǔ)空間、使用帶寬等。這些配額并不是簡(jiǎn)單地基于IaaS的功能繼承而來(lái),而是可以針對(duì)應(yīng)用容器,或者各種配套服務(wù)為目標(biāo)來(lái)設(shè)置。
GAE另外一個(gè)很棒的功能是所謂GoogleAnalytics功能。幾乎所有云服務(wù)商都會(huì)帶統(tǒng)計(jì)功能,但Google Anlytics因?yàn)槭轻槍?duì)GAE這種全托管沙箱服務(wù)做統(tǒng)計(jì)分析的,所以可以獲得很多具體的服務(wù)統(tǒng)計(jì)的細(xì)節(jié)指標(biāo),而不僅僅是操作系統(tǒng)層次的CPU、內(nèi)存、帶寬這種大路貨。我們自己部署任何一個(gè)服務(wù),對(duì)于特定的服務(wù)進(jìn)程,也會(huì)想要詳盡的統(tǒng)計(jì)分析數(shù)據(jù),用以監(jiān)控問(wèn)題,如果是用GAE,這些服務(wù)都是Google提供的,當(dāng)然統(tǒng)計(jì)也是它的應(yīng)盡職責(zé)。
作為一個(gè)Web App的容器,GAE在運(yùn)維配置工具上,提供了全套Web界面的操作軟件——Google Cloud Platform Console,可以配置諸如URL、靜態(tài)資源、MIME類型、根目錄、SSL等幾乎所有WebServer的配置內(nèi)容。用了多年的Web Server配置文件終于可以束之高閣了。
當(dāng)然,其它的管理服務(wù)也都提供了WEB的配置管理工具。如果你不想手工去配置這些,也可以使用GAE提供的Restful接口,去用代碼操作這些服務(wù)配置,這樣你可以自己寫一個(gè)喜歡的管理軟件,或者是寫個(gè)自動(dòng)化的工具去做這類的配置工作。
關(guān)聯(lián)配套
GAE提供的配套服務(wù),都是那些大名鼎鼎的Google系基礎(chǔ)服務(wù),分為兩大類型,數(shù)十種細(xì)類:
1、存儲(chǔ)服務(wù)
App Engine Datastore:NoSQL對(duì)象存儲(chǔ)服務(wù)
Google Cloud SQL:在GAE上的MySQL,由于是關(guān)系數(shù)據(jù)庫(kù),所以不能自動(dòng)擴(kuò)容
Google Cloud Storage:以Restful接口使用的分布式文件系統(tǒng)
2、輔助服務(wù)
定時(shí)任務(wù):類似crontab這種
Memcache:最常見的Web后端緩存服務(wù)
Blobstore:一種“數(shù)據(jù)塊”存儲(chǔ)服務(wù)
Oauth API:身份鑒權(quán)認(rèn)證服務(wù)
各種Messaging服務(wù),包括電子郵件、短信、語(yǔ)音等……
全文搜索服務(wù)
圖形處理的API庫(kù)
各種常用的服務(wù)器端編程庫(kù)
從上面來(lái)看,最值得關(guān)注就是存儲(chǔ)類服務(wù),畢竟Google是處理大數(shù)據(jù)的互聯(lián)網(wǎng)鼻祖。由于一般的商業(yè)互聯(lián)網(wǎng)服務(wù),都很依賴一個(gè)容量大、方便擴(kuò)容的數(shù)據(jù)存儲(chǔ)層,所以Google這套東西是非常有價(jià)值的。可惜作為游戲領(lǐng)域,數(shù)據(jù)大倒是大,就是其數(shù)據(jù)關(guān)系一般比較簡(jiǎn)單,就是玩家的存檔數(shù)據(jù)而已,所以游戲開發(fā)商如果用這些BigTable、GFS為基礎(chǔ)的服務(wù),從延遲性和成本上看,好像都不是特別有必要。
另外從輔助服務(wù)來(lái)看,細(xì)節(jié)到連crontab都提供,更不用說(shuō)各種服務(wù)器開發(fā)庫(kù),只有你想不到,沒有他沒準(zhǔn)備到的。這對(duì)于開發(fā)者來(lái)說(shuō)是一個(gè)很方便的地方,因?yàn)橐粊?lái)不需要到處找各種開源庫(kù),二來(lái)也無(wú)需費(fèi)口舌去和同事統(tǒng)一各種開發(fā)庫(kù),只需要用GAE的就好了。
AWS
應(yīng)用場(chǎng)景
按理說(shuō),AWS應(yīng)該不算PaaS,而應(yīng)該算IaaS。那為什么會(huì)放在這里說(shuō),其實(shí)主要有兩個(gè)原因:
一是AWS并不是簡(jiǎn)單的IaaS,因?yàn)樗峁┝舜罅康呐涮坠芾矸?wù),雖然這些服務(wù)大多數(shù)都是通過(guò)Restful API的形式提供,但確實(shí)是可以編程來(lái)調(diào)用的;
二是AWS本身也一個(gè)很有特色的“可編程”服務(wù):Lambda服務(wù)。這個(gè)服務(wù)是可以嵌入在它提供的各種服務(wù)中,提供用戶自定義控制這些配套服務(wù)的能力,所以讓這些服務(wù)看起來(lái)更像平臺(tái)PaaS,而脫離單純的IaaS。從嵌入Lambda的角度來(lái)看,AWS比GAE更加激進(jìn),而不是遵循傳統(tǒng)的Web服務(wù)存在,因此能被更廣泛的互聯(lián)網(wǎng)業(yè)務(wù)所使用,而不僅僅是互聯(lián)網(wǎng)電商客戶。據(jù)說(shuō)最近一些在Steam上很火的新游戲,都有用到AWS的服務(wù),包括Lambda。
開發(fā)支持
AWS因?yàn)楹诵氖菄@其IaaS服務(wù)器EC2來(lái)設(shè)計(jì)的,所以并沒有所謂的開發(fā)框架。而更多是針對(duì)EC2提供的各種透明的、基于網(wǎng)絡(luò)的優(yōu)化功能。比如AutoScaling,就是基于使用時(shí)間、負(fù)載情況,對(duì)EC2實(shí)例進(jìn)行伸縮,這里補(bǔ)充一點(diǎn),EC2的虛擬機(jī)也是支持Docker技術(shù)的,所以能比較方便地啟動(dòng)、遷移。而另外一個(gè)叫ELB的服務(wù),則是比較傳統(tǒng)的類似L5的負(fù)載均衡器。
能夠真正對(duì)AWS“編程”的,就是他們的Lambda服務(wù)。你可以多種語(yǔ)言來(lái)編程,包括Node.js/Java/C#/Python,來(lái)編寫一些觸發(fā)器產(chǎn)生的事件處理回調(diào)。在AWS的各種服務(wù)中,有很多服務(wù)都支持Lambda,如S3/DynamoDB/Kinesis,這些服務(wù)在收到請(qǐng)求,或者發(fā)生狀態(tài)變化時(shí),都會(huì)觸發(fā)很多不同種類的事件,從而調(diào)用用戶自定義的這些代碼。
比如對(duì)象存儲(chǔ)S3收到數(shù)據(jù)的時(shí)候,就會(huì)觸發(fā)代碼。這個(gè)功能就能很方便的用來(lái)做游戲的存檔和讀檔。又或者數(shù)據(jù)庫(kù)服務(wù)DynamoDB在對(duì)數(shù)據(jù)進(jìn)行Put或者Get操作的時(shí)候,也可以觸發(fā)你的代碼。當(dāng)然,像Kinesis這種流式計(jì)算服務(wù),本身就是需要用戶代碼來(lái)做離線的統(tǒng)計(jì)或數(shù)據(jù)處理的。
把用戶代碼嵌入到服務(wù)當(dāng)中,而不是提供一個(gè)用戶代碼的服務(wù)容器,這個(gè)設(shè)計(jì)也許是需要服務(wù)IaaS而產(chǎn)生的。但這種靈活的設(shè)計(jì),也把使用者從“標(biāo)準(zhǔn)開發(fā)框架”中解放出來(lái),作為服務(wù)提供者,也無(wú)需像Google那樣提供各種語(yǔ)言和五花八門的WEB編程框架。由于游戲服務(wù)器端一般的通信模型和Web相去很遠(yuǎn),有大量的主動(dòng)通知,以及在線數(shù)據(jù)反饋的需求,所以使用Web那套框架肯定是不能滿足需求的,但好像AWS這種,游戲客戶就可以自己寫一個(gè)簡(jiǎn)單功能的GameServer,比如只做簡(jiǎn)單的廣播服務(wù),而其它的存儲(chǔ)功能,都以Lambda的方式把游戲邏輯和存儲(chǔ)服務(wù)結(jié)合起來(lái),比較省事。
運(yùn)維管理
AWS由于主要目標(biāo)是賣EC2虛擬機(jī),所以擁有很多更“通用”的運(yùn)維管理工具。其中一個(gè)就是Benstalk,這是一個(gè)一個(gè)Web應(yīng)用部署工具,通過(guò)集成Git來(lái)拉取和存儲(chǔ)你的軟件。對(duì)于僅僅是需要部署WEB應(yīng)用的客戶來(lái)說(shuō),非常方便。而另外一個(gè)工具叫OpsWorks,這個(gè)是更通用的運(yùn)維部署工具,看起來(lái)非常像Chef,你可以用它來(lái)部署任何軟件。
這類工具都是通過(guò)先在你的虛擬機(jī)(部署目標(biāo)機(jī)器)上,安裝一個(gè)Agent(代理程序),然后這個(gè)代理程序就可以從一個(gè)集中的軟件部署任務(wù)服務(wù)器上,接受各種部署或配置的任務(wù)。用戶可以集中在一個(gè)界面上去部署軟件,修改配置,而且可以通過(guò)JSON格式的數(shù)據(jù)表,記錄各服務(wù)器相同或者不同的配置,通過(guò)工具或自定義的腳本,自動(dòng)化的在目標(biāo)機(jī)器上做任何的部署操作。
AWS把對(duì)于EC2虛擬機(jī)的彈性部署,按負(fù)載自動(dòng)伸縮能力,也應(yīng)用在計(jì)費(fèi)上。所以有一個(gè)叫CloudTrial的服務(wù),其實(shí)就是按需付費(fèi)的功能。這對(duì)于各種還在推廣開發(fā)期的業(yè)務(wù)特別友好,國(guó)外有很多獨(dú)立游戲或者創(chuàng)業(yè)項(xiàng)目,都直接在AWS上開發(fā)測(cè)試。同時(shí)AWS也提供了所謂的CodePipeline工具,其實(shí)是一種持續(xù)集成工具,但部署部分就默認(rèn)結(jié)合在AWS上。
雖然GAE也有各種開發(fā)工具,但直接以持續(xù)集成(CI)的面貌來(lái)提供服務(wù),并且結(jié)合云服務(wù),還是非常值得點(diǎn)贊的。畢竟現(xiàn)在在持續(xù)集成方面,大家都還是比較繁瑣地去設(shè)置各種服務(wù)器環(huán)境,結(jié)合上運(yùn)維系統(tǒng),才能真正的“自動(dòng)化集成”。而使用CodePipeline,開發(fā)者可以直接一鍵就把代碼部署到EC2虛擬機(jī)上,中間還經(jīng)過(guò)自動(dòng)化測(cè)試等等集成任務(wù)。這樣就又省了折騰持續(xù)集成軟件的工夫了。
最后說(shuō)說(shuō)CloudWatch服務(wù),這和GAE的Analytics服務(wù)有一種重要不同,就是它主要面向的虛擬機(jī)的數(shù)據(jù),而不是具體的服務(wù)。這個(gè)系統(tǒng)另外一個(gè)特色,就是可以從日志生成、搜集、監(jiān)控、告警、報(bào)表一體化??梢哉f(shuō)是一個(gè)通用的日志分析系統(tǒng)。用戶可以向CloudWatch發(fā)送自定義的指標(biāo),然后設(shè)置監(jiān)控閾值,這樣CloudWatch不但會(huì)在你設(shè)置的范圍內(nèi)進(jìn)行監(jiān)控報(bào)警,而且還會(huì)存儲(chǔ)所有的這些日志,并用以生成統(tǒng)計(jì)報(bào)表和圖形。
所有的這些服務(wù)給我的感覺,就是雖說(shuō)AWS服務(wù)看起來(lái)沒有GAE那么“有技術(shù)含量”,但由于其高度注重易用性,所以非常容易吸引人去使用。就是不管你是什么平臺(tái)或者架構(gòu),似乎都能用的上它的某幾個(gè)服務(wù)。而且所有的這些服務(wù)界面,都是統(tǒng)一接口模型、統(tǒng)一界面風(fēng)格,讓人可以觸類旁通,學(xué)習(xí)起來(lái)一點(diǎn)不費(fèi)勁。(當(dāng)然這里也有可能因?yàn)楸旧頉]有提供太過(guò)復(fù)雜的功能)
關(guān)聯(lián)配套
由于AWS的主力產(chǎn)品是IaaS的EC2虛擬機(jī),所以其在線計(jì)算的云服務(wù)幾乎是沒有的。但是有豐富的其它配套服務(wù),一點(diǎn)不比GAE遜色。它們大體來(lái)看分為兩類:
1、存儲(chǔ)產(chǎn)品
S3:對(duì)象存儲(chǔ)服務(wù),以二進(jìn)制塊的方式直接存放。一些游戲開發(fā)商直接用來(lái)存用戶存檔數(shù)據(jù)。
EFS:和古老的NFS標(biāo)準(zhǔn)兼容的分布式文件系統(tǒng)。
CloudFront:具備全球節(jié)點(diǎn)的CDN服務(wù)。CDN國(guó)內(nèi)用戶是比較熟悉的,但AWS的優(yōu)勢(shì)在于其全球的機(jī)房和帶寬優(yōu)勢(shì)。
RDS:這一塊就是“關(guān)系型數(shù)據(jù)庫(kù)”的服務(wù)類,包括了MySQL Orcale SQL Server PostgreSQL Aurora這些數(shù)據(jù)庫(kù)服務(wù)器。這個(gè)服務(wù)就非常典型的是PaaS平臺(tái)同的類型,但是AWS同樣也提供。而且最后這個(gè)Aurora數(shù)據(jù)庫(kù),是AWS自己研發(fā)的,兼容MySQL的產(chǎn)品,據(jù)他自己說(shuō)比MySQL快很多。
DynamoDB:一種NoSQL數(shù)據(jù)庫(kù),屬于Schemeless,也就是無(wú)需預(yù)建數(shù)據(jù)結(jié)構(gòu)的??梢允褂肏ash搜索(大概是等于號(hào)匹配),也可以使用Range搜索(大概是大于和小于號(hào)匹配),這一點(diǎn)是很多NoSQL都不具備的。
ElastiCache:類似Memcached/Redis這樣的緩存服務(wù)器集群。這里AWS直接提供集群功能,就不需要自己去想辦法搭Redis集群了。這也是比較典型的PaaS服務(wù)商會(huì)提供的服務(wù)。
SQS:分布式消息隊(duì)列服務(wù)。這個(gè)服務(wù)很特別,一般來(lái)說(shuō)消息隊(duì)列服務(wù),是用于比較大規(guī)模的服務(wù)器系統(tǒng),需要把計(jì)算任務(wù)分布放在多個(gè)硬件(虛擬機(jī))上運(yùn)行,而彼此之間又需要互相通訊,所以需要這種消息隊(duì)列服務(wù)。如開源的有ActiveMQ或ZeroMQ這種,但直接做成分布式的,還是比較少見的。這樣不用自己維護(hù)消息隊(duì)列服務(wù)集群,只需要使勁買EC2來(lái)添加計(jì)算節(jié)點(diǎn),還是比較爽的。問(wèn)題是這個(gè)服務(wù)的接口是Restful的,也就是說(shuō)基于HTTP協(xié)議的,所以其延遲性應(yīng)該是一個(gè)問(wèn)題。如果在游戲里面使用,估計(jì)只有一些不太在乎延遲的,觸發(fā)量較少的操作,會(huì)適合用這個(gè)服務(wù),比如用戶從游戲大廳進(jìn)入到游戲房間這種。
2、離線計(jì)算產(chǎn)品
EMR:用來(lái)分析所有AWS提供的服務(wù)的日志。是一個(gè)強(qiáng)大的日志統(tǒng)計(jì)分析系統(tǒng)。
Kinesis:一種流式計(jì)算,類似Storm/Spark Streaming這種系統(tǒng)。值得注意的是,它同樣是可以直接調(diào)用所有的AWS服務(wù)生成的日志。這是AWS離線計(jì)算產(chǎn)品的一個(gè)通用特征,就是“本系統(tǒng)”類的服務(wù),都可以直接調(diào)用,無(wú)需用戶自己去做各種接口或格式的轉(zhuǎn)換。
Machine Learning:著名的機(jī)器學(xué)習(xí)服務(wù),同樣可以從AWS全線服務(wù)的日志中作為學(xué)習(xí)、測(cè)試數(shù)據(jù)集。秉承AWS的易用性設(shè)計(jì)目標(biāo),這個(gè)服務(wù)內(nèi)置了大量的學(xué)習(xí)模型,很多功能都不需要使用者去自己編寫各種學(xué)習(xí)公式。而只是需要開發(fā)者使用其交互式視覺工具,就可以完成對(duì)機(jī)器學(xué)習(xí)任務(wù)的配置和運(yùn)行。Redshift:PB級(jí)別的數(shù)據(jù)倉(cāng)庫(kù),屬于列式存儲(chǔ)系統(tǒng)(一般大容量的數(shù)據(jù)庫(kù)都是這種)
總結(jié)
PaaS作為一個(gè)“云”時(shí)代非常重要的概念,在實(shí)際的業(yè)務(wù)中應(yīng)用卻遠(yuǎn)沒有IaaS和SaaS的廣泛。究其原因,我覺得無(wú)非是其靈活性受限導(dǎo)致的。比如GAE這種教科書式的PaaS平臺(tái),盡管提供了各種管理服務(wù)和多種語(yǔ)言框架,但最后還是受一個(gè)大的Web服務(wù)的框框所約束。而且后臺(tái)關(guān)聯(lián)服務(wù)和PaaS服務(wù)存于一個(gè)沙箱中,雖然提供了很好的自動(dòng)化運(yùn)維的能力,但也造成了很多不便。除了一些很簡(jiǎn)單的、典型的互聯(lián)網(wǎng)業(yè)務(wù),很多其它的服務(wù),都多多少少可能需要突破這些限制。不過(guò)話說(shuō)回來(lái),這種PaaS對(duì)于標(biāo)準(zhǔn)的Web服務(wù),確實(shí)是非常的方便,幾乎完全不需要自己去運(yùn)維。
而以AWS為代表的,這種不太純正的PaaS,提供了大量的運(yùn)維工具,實(shí)際上還是需要用戶自己去做很多運(yùn)維的工作。但這樣也提供了極大的靈活性:你可以用IaaS的模式去使用AWS。同時(shí)AWS也提供了很多PaaS的配套管理服務(wù),使用者同樣可以不去自己部署、配置這些服務(wù)??梢哉f(shuō)AWS同時(shí)IaaS的靈活性,和PaaS的強(qiáng)大功能。不過(guò)AWS也不是天衣無(wú)縫,其中Lambda服務(wù),就不屬于通用的業(yè)界標(biāo)準(zhǔn),如果你把很多業(yè)務(wù)代碼用Lambda的方式來(lái)實(shí)現(xiàn),那么你就無(wú)法切換到別的云服務(wù)商上去了。加上AWS服務(wù)大部分都是Restful API,所以網(wǎng)絡(luò)造成的延遲和帶寬占用,都不適合大量交互的在線服務(wù)——網(wǎng)絡(luò)游戲。
展望
最后展望一下PaaS的發(fā)展,個(gè)人覺得通用型PaaS應(yīng)該是沒前途的。因?yàn)闃I(yè)務(wù)模型千差萬(wàn)別,模型上的通用必然帶來(lái)功能上的限制,以及易用性上的確實(shí)。所以PaaS還是應(yīng)該按不同的業(yè)務(wù)領(lǐng)域具體細(xì)分下去?,F(xiàn)在互聯(lián)網(wǎng)業(yè)務(wù)比較大的業(yè)務(wù)領(lǐng)域有三類:一是電子商務(wù)類,二是游戲類,三是資源社區(qū)類(如B站、今日頭條、各種FM、云音樂(lè)APP等)。這三類業(yè)務(wù)都有其非常明顯的模式和需求差異。
比如電商類服務(wù),一般所謂的“業(yè)務(wù)流”是一個(gè)重要需求,而且對(duì)于存儲(chǔ)安全性非常重視,但對(duì)于延遲要求就很低;而游戲類則無(wú)法接受單向的HTTP協(xié)議,而且多數(shù)都要和游戲客戶端引擎(Unity/Unreal什么的)結(jié)合,對(duì)于延遲的要求非常高,大多數(shù)不能忍受超過(guò)300ms,存儲(chǔ)只要可以無(wú)限擴(kuò)容,安全性無(wú)需達(dá)到金融級(jí)都可以;社區(qū)類則對(duì)于大量的文件存儲(chǔ)很分發(fā)是硬需求,需要更廣的部署地點(diǎn),但業(yè)務(wù)邏輯一般不會(huì)過(guò)于復(fù)雜。
因此我們很難通過(guò)簡(jiǎn)單原始的一個(gè)Web App應(yīng)用框架,就把這三個(gè)方面的業(yè)務(wù)需求都框進(jìn)去,而且除了處理HTTP請(qǐng)求,還有大量的業(yè)務(wù)通用功能,是可以作為服務(wù)做出來(lái)賣錢的,比如電商的訂單系統(tǒng)、游戲的同步服務(wù)、社區(qū)的基礎(chǔ)社區(qū)功能等。
最后的總結(jié),就是PaaS服務(wù)必須要立足業(yè)務(wù)領(lǐng)域,面向業(yè)務(wù)中的通用邏輯,才能真正的做好一個(gè)PaaS云。