成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我能夠快速讀書的秘密:主要靠“猜”!

開發 開發工具
有很多人問我,平時是怎么看技術書的,我今天拿一個案例來講一下,你會看到,我主要靠“猜”,自己想想解決方案,然后到書中去驗證。干貨內容較多,建議靜心慢慢看。

 [[285220]]

有很多人問我,平時是怎么看技術書的,我今天拿一個案例來講一下,你會看到,我主要靠“猜”,自己想想解決方案,然后到書中去驗證。干貨內容較多,建議靜心慢慢看。

1

我知道Docker是怎么回事,但是不太清楚Kubernetes究竟在干什么,它要解決什么問題?有哪些功能?在網上搜索了一些文章,可是都無法讓我滿意,因為他們都是非常宏觀地講一講,然后馬上就進入使用細節,讓人還是云里霧里。

之前我就說過,想深入地了解一門技術,最好的辦法就是看書,于是就去購書中心轉了一圈,發現一本書籍《Kubernetes in Action》,翻了一會兒我就覺得這本書不錯,就拿它來學習吧。

(這里插入一句,我的公眾號文章只能講述一個技術的本質問題,給大家一個大局觀,具體的細節還得去讀相關的書,有些人抱怨說通過我的文章學不會一個技術,那真是冤枉我了。)

2

這本書一開始就提到了微服務,這是個非常好的切入點,我腦海中立刻想到了微服務的特點,可以獨立部署,輕松擴容。

那擴容的時候具體該怎么做呢?例如有個訂單服務,我想把部署10份,難道我跑到服務器端,手工啟動10個實例?

這肯定不符合自動化運維的方式,也許可以寫個腳本,接受一個參數或者讀取配置文件,把實例自動創建起來。

但是仔細一想,這樣是不行的,因為現實中會有很多服務器,腳本怎么去管理呢?腳本怎么獲取它們的IP以及它們的負載情況,然后把Docker實例分發創建到合適的服務器中呢?

于是第一個猜測來了:

最好是有個系統,它能管理所有的服務器,我只要告訴他,把訂單服務的docker鏡像部署10份,剩下的事情就不用我管了,都由這個系統來搞定。

這時候我隱隱約約地感覺到了Kubernetes的核心功能。

于是我跳過了微服務的介紹,Docker的介紹,這些都是老掉牙的東西了,迅速翻到了第16頁:

 

這幅圖畫得相當棒,清楚地展示了K8s的核心功能,但是仔細看以后,就發現有兩個微服務被放到了一起,作為一個整體來部署,這是我之前沒有想到的!

部署的最小粒度并不是Docker鏡像,而是另外一個東西!從系統設計的角度來看,必須得有個詞來表達,這個東西是什么?

于是我又往后翻,哦,原來這個詞叫做pod。

作者告訴我在第3章有詳細介紹,我迫不及待地往后翻,試圖滿足好奇心:pod到底是什么東西。

原來這些pod就像局域網中的一個個獨立的邏輯主機啊,每個Docker實例都是一個進程。

 

3

到目前為止,我就明白了k8s本質上是一層抽象,這一層抽象屏蔽了服務器的細節,程序員不需要知道程序運行在哪個服務器上,只需要告訴k8s自己的需求就好。

那用什么方式來告訴k8s呢?這很容易猜測到,可以:

1. 通過命令行參數傳遞給k8s, 但是參數太受限。

2. 用配置文件,在其中可以指明pod的名稱,docker的鏡像名稱...... 可以用XML格式, JSON格式,YAML格式.....

當然,這些念頭都是一閃而過,我翻開這本書的第3章,主要講pod,果然是用YAML,JSON去創建pod, 由于已經預料到了,沒什么新意,稍微看了看就跳過。

讓我沒有想到的是可以使用標簽和命名空間對pod進行分組,但是講解有點啰嗦,似乎也不是核心概念,稍微翻了一下就過去了。

稍等 !為什么不在創建pod的時候指定pod的數量啊?比如我想創建10個訂單服務的docker實例,在哪里指定?仔細看看那些YAML文件,確實沒有副本數量,這k8s搞什么鬼?這里沒有指定,肯定在別的地方,那就是說:

除了pod之外,還有一個概念,用來指定pod和副本之間的關系,這個概念是什么?

4

快速翻到第4章,哈哈,原來這個概念叫做ReplicationController(簡稱RC),由它來保證pod的數目符合要求,多了就刪除,少了就添加。

 

從設計角度來看,再次體現了關注點分離,pod負責“靜態描述”,像一個模板,就像class, RC負責運行時管理,來產生pod的object。

創建RC也是使用YAML,比較讓我意外的是,在指定pod時,用了前面所講的標簽,看來標簽是組織pod的重要方法,有時間回去看看細節。

需要注意的是,在管理pod數目的時候,用的是聲明式:“我想要運行10個訂單實例”, 而不是“我想增加3個訂單實例”或“我想刪除3個訂單實例”。 你不用告訴k8s做什么、如何做,只是指定期望的狀態就好。

5

如果你也善于思考的話,這時候就會冒出了一個新問題:

這些pod 不斷地被刪除,被增加,不斷地變化,那外界怎么去訪問他們呢?

比如客戶端正在訪問pod1,然后pod1所在的機器掛掉,ReplicationController在另外一臺機器上創建了pod2,IP都變了,那客戶端下一次去訪問pod2呢?

如果讓我設計,我肯定得提供另外一個抽象層,讓這個抽象層來屏蔽后端的變化,讓客戶端連接到這個抽象層上。

k8s 會怎么做呢?第4章給出了答案:服務。 我個人覺得這個詞起得不好,太抽象,太廣泛。

 

可以看出,k8s和其他系統一樣,也是不斷地通過分離關注點,不斷地抽象來解決一個個問題的。

到目前為止,我腦海中想的都是那些“無狀態”的pod,可以隨意增加和刪除, 但肯定存在“有狀態”的pod,有持久化的需求,可以把數據存儲到硬盤上,這該怎么辦?

帶著這個問題,繼續上路吧!

6

好了,啰嗦了這么多,稍微總結一下:我希望給大家分享的就是,看書的時候要主動思考,不要被動接受。

帶著問題去看,自己先想想解決方案,然后到書中去驗證,效率會非常高,讀起來會非常快。

如果自己的問題在書中很快就得到回答,那讀起來就會酣暢淋漓;如果遲遲得不到回答,或者書中一直不厭其煩地描述細枝末節,那我很快就喪失興趣,把書扔掉。

當然,由于每個人的基礎不同,可能剛開始讀書的時候提不出問題,或者提不出有價值的問題,這時候可以去直接看具體內容,但是不能放棄思考:這個技術點是要解決什么問題的?是怎么解決的?

希望每個人都建立一套自己的知識體系,從這個知識體系中能伸出很多的觸角,能像海綿一樣吸收外界的知識,不斷地為自己的知識體系添磚加瓦。

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-10-18 09:08:06

機器人人工智能AI

2023-12-25 09:26:24

OpenAI人工智能AI

2020-05-27 16:48:01

人工智能技術機器學習

2023-08-18 14:22:42

2015-05-28 14:11:36

Java長盛不衰20年

2019-06-04 15:27:49

InnoDB存儲引擎

2023-08-24 10:49:45

數字化轉型

2012-05-11 09:13:28

程序員開發者

2020-03-11 09:50:21

時序數據庫快速檢索

2009-07-28 10:36:58

云計算Google秘密武器

2022-12-29 16:01:50

AI聊天機器人ChatGPT

2009-12-14 13:13:53

靜態路由表

2024-06-25 09:08:24

.NETCSV文件

2015-08-21 11:35:44

2019-04-30 15:10:42

Python調試工具編程語言

2010-04-27 09:16:49

2022-07-25 09:40:41

內存00M

2015-07-30 09:48:38

自學編程3遍讀書法

2023-01-30 11:27:57

人工智能高性能計算CPU

2012-03-28 22:12:00

游戲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97久久精品午夜一区二区 | www.精品国产 | 欧美成人h版在线观看 | 亚洲国产精品久久久久婷婷老年 | 国产福利在线 | 成人影院av | 亚洲av毛片成人精品 | 玖玖久久 | 国产不卡视频在线 | 国产精品美女一区二区三区 | 国产美女一区二区 | 4h影视 | 欧美黄在线观看 | 天天人人精品 | 91视频在线网站 | 亚洲一区二区三区在线观看免费 | 国产精品美女久久久久久免费 | 欧美精品91 | 成人一级视频在线观看 | 国产视频久久久 | 日韩一级黄色片 | 亚洲成av人片在线观看 | 国产精品久久久久久久久久东京 | 免费久久网站 | 国产一区二区美女 | 久久另类视频 | 狠狠综合网 | 国产精品永久在线观看 | 91中文在线观看 | 91正在播放 | 国产精品久久久久久久岛一牛影视 | 国产精品一卡二卡三卡 | 免费毛片www com cn | 国产精品96久久久久久 | 亚洲精品久久久久国产 | 超碰在线影院 | 欧洲性生活视频 | 日本特黄a级高清免费大片 国产精品久久性 | 欧美成视频 | 日本人做爰大片免费观看一老师 | 国产精品成人一区二区 |