常用的云平臺:
云平臺發(fā)展至今主流的平臺已成n足鼎立之勢,國外云有aws、google云、微軟云,國內云有阿里云、騰訊云、aws中國,私有云有openstack。
aws這里單獨拿出來強調下,國際版與國內版需要區(qū)別對待,因為兩者的域名不一樣,而且國內版比國際版缺少很多功能,所以很多aws開源的項目拿到國內不見得能使用。雖然國內版目前還在不斷優(yōu)化,但是距離國際版還有不少的差距。所以如果要使用國內云,不推薦aws。
云平臺的計費,國外統(tǒng)一只有一種計費模式,流量模式,也叫后付費模式。國內的除開流量模式外,還有符合國情的包年包月模式,也叫預付費模式。后付費是按照水電煤的計費方式,用多少給多少錢;預付費模式是直接買斷一臺云服務器,價格大約是后付費的3-4折左右。
本人不推薦預付費模式,有以下幾個原因:
1 包年包月的模式違背了云平臺設計的初衷,云平臺本意是多用戶租用,大家只要拿著自己的賬號操作即可,不需要關心水電煤打哪來,有多少量。而包年包月模式還需要關心自己的服務器ip等信息,相當于在云上租了臺物理機,這不是云平臺使用的思路。
2 包年包月并沒有想象中的優(yōu)惠,換句話說按流量并沒有想象中那么貴。云平臺會提供自動擴容縮容的技術,通過動態(tài)擴縮充分壓榨機器性能可以使單臺服務信價比更高,而包年的機器是無法動態(tài)擴縮的。
3 在ci、cd領域immutable的運維方式比面向ip的運維方式有巨大的優(yōu)勢,而immutable必須建立在流量型云平臺的基礎之上。
openstack是非常流行的私有云技術,私有云在價格上可能會比公有云便宜(可能的意思是,也得需要考慮房產、電費、人力維護等成本),在使用時其實并沒有公有云來的那么“痛快”。因為它的容量并不像公有云那樣無窮盡也,飽和時也會遇到捉襟見肘申請不到資源的問題。
云平臺的幾種訪問方式:
1 console方式,最簡單的,直接用賬號密碼登陸到云平臺控制臺進行操作。
2 api方式,httprestful請求的方式向平臺發(fā)起命令。
3 sdk方式,平臺提供java、python、go、php等語言發(fā)開的擴展包,集成到項目中,用編程語言調用這些包向平臺發(fā)起命令。
4 命令方式,平臺提供二進制的客戶端供客戶下載,下載安裝后用linux命令方式向平臺發(fā)起命令。
其中前兩種是平臺必備,sdk方式也基本是標配,命令方式只有極少平臺支持。
以上是對目前優(yōu)秀的云平臺做了簡單概括,要熟練使用平臺還需要掌握它的基礎名詞,請注意我們這里側重于平臺的運算,存儲方面這里暫不做介紹。
名詞解釋:
公共相關:
region:區(qū)域,平臺的空間范圍的劃分。
zone:region下的第二級區(qū)域,一個region包含多個zone。
其中region是平臺標配的區(qū)域單位,而zone并不是每個平臺都支持。為什么會有區(qū)域這種概念呢,你可以理解region代表這這家云平臺在某個省份拿下來的機房,經濟發(fā)展程度不一樣,機房的成本不一樣,那么每個region提供服務時相同流量的報價可能就不一樣。再比如有些黑科技,regiona支持,但是regionb并不一定可以支持。
實例相關:
instance:實例的基本單元,相當于平臺上的一臺服務器,承載運算的主體。
image:鏡像,平臺會把image劃分為共有鏡像、私有鏡像、第三方鏡像等,這個也好理解,instance是由鏡像產生的。
instancetype:實例規(guī)格,選定了實例規(guī)格,也就選定了你所創(chuàng)建的instance的cpu、內存、磁盤、網絡等規(guī)格。實例規(guī)格的意義在于兩方面,第一方便客戶使用,客戶不用自己去調配這些配置;第二方便平臺內部計算承載力。
securitygroup:安全組,對云服務的訪問權限,控制手段分為禁止和允許兩種配置,按流向可以分為input和output兩種,可以精確到端口,需要記住常用的端口。
網絡相關:
loadbalance:負載均衡,負責請求的轉發(fā)。在云平臺的api中狹義的lb是指的單獨的一種實例,而單獨一個lb實例是不具備任何負載均衡的能力的。所以廣義的lb是一套負載均衡的組件,包括lb實例、轉發(fā)規(guī)則、健康檢查等。不同的平臺對loadbalance的分類方式也不同,有的劃分為四層lb和七層lb,有的劃分為傳統(tǒng)型lb和應用型lb。
listener:監(jiān)聽,主流的有tcp、udp、http/https三種監(jiān)聽,監(jiān)聽是lb用來觀察其下面掛在的服務是否存活的手段,listener會配置健康檢查的策略。
vpc:virtual private cloud,從服務的角度來看是虛擬私有云,表示的公有云運營商提供給用戶的隔離資源的集合。它相當于是漂浮在公有云上的孤島。真正讓vpc變得強大的是它各式各樣的連接技術。vpc并不是必須的,但是對于大型項目要接入到企業(yè)內容組成混合網絡的服務時,vpc才有意義。
彈性伸縮:
servergroup:我們把一組具備相同鏡像、相同服務、相同規(guī)格能力的一組instance的組合,稱為是一個servergroup。servergroup在不同平臺的實現(xiàn)方式略不一樣,例如在aws中是通過自動擴容組,在阿里云中是通過彈性伸縮組。與loadbalance一樣,狹義上的彈性伸縮組并不具備自動伸縮等能力,廣義上配備有其它組建之后的servergroup才是我們想要的彈性伸縮組。
scalingrule:伸縮規(guī)則,按照什么樣的力度來進行一次伸縮。例如每次伸縮30%%uff0c或者每次伸縮5臺實例等。scalingrule并沒有指定誰來觸發(fā)伸縮,所以只配置scalingrule也是沒有任何意義的。
schedule:定時任務,設置時間規(guī)則并執(zhí)行某個scalingrule。該功能適合潮汐規(guī)律的產品,例如我所從事的視頻行業(yè),中午11-2點是個小高潮,晚上7-10點是個大高潮,凌晨和早上是個低谷,所以我們可以按照產品特性來設置schedule在這些時間段進行擴容縮容。
alarmpolicy:告警策略,是彈性伸縮的核心。我們可以配置一些策略規(guī)則,例如cpu使用率大于85%%u65f6執(zhí)行某個scalingrule,或者內存使用率小于30%%u65f6執(zhí)行某個scalingrule。它與schedule的區(qū)別是,更智能的動態(tài)的進行伸縮,可以規(guī)避我們計劃外的流量激增的情況。
生產環(huán)境一般schedule alarmpolicy配合使用。
其它:
cdn:content delivery network,內容分發(fā)網絡。十年前,我剛入行做iptv流媒體業(yè)務時,都是自己寫代碼來完成省份區(qū)縣間片源的調度的,無外呼是客戶機頂盒請求到中心服務,算法會根據(jù)ip重定向到距離ip最近的機房提供服務,但是該機房不見得有客戶要點播的這個片源,所以還可能要從其它機房ftp過來或者重定向到其它機房。當時沒有大數(shù)據(jù)存儲,機房的磁盤可以存儲的片子也有限,所以還要計算哪些事熱門片源互相分享、哪些是冷門片源在該機房刪除,等等等等?,F(xiàn)在這一切的一切,從大數(shù)據(jù)存儲和緩存技術過來的靈感,我們只需要租用云平臺的cdn服務,就都幫我們搞定了。cdn干的事情,也就是十年前我寫代碼干的事情了,在距離客戶最近的服務點上緩存服務內容,一來提高相應速率,二來減少核心數(shù)據(jù)中心的請求次數(shù)。了解了cdn的原理,也要注意云平臺采購的問題了,例如你的服務對象都在國內,你買個國外的cdn,人家壓根在國內就沒有布網,也就用不起來了。
s3:這是aws中的叫法,simple storage server,鍵值對形式存儲數(shù)據(jù)的一種云存儲。其他平臺也有類似的服務,只不過名稱不同。
容器服務:隨著docker的發(fā)展,微服務的盛行,云平臺產商們也與時俱進將k8s集成到平臺中提供容器服務。
saas服務:一些成熟的方案也被搬遷到云平臺中,云平臺供應商拿這些saas服務來賣錢,本質是帶有某一個特定功能鏡像的instance,不再是只提供簡單的運算、網絡、存儲的租賃服務了。云平臺推出saas服務國外廠商比較流行,例如aws推出了spinnaker服務來提供ci cd的解決方案。