當前位置:
首頁 > 最新 > 馬斯洛理論告訴你,Kubernetes可以滿足微服務的這15大需求

馬斯洛理論告訴你,Kubernetes可以滿足微服務的這15大需求

導讀:

本來隸屬於心理學上的馬斯洛需求理論,被一些領域活學活用,深入淺出地闡釋出層次結構和遞進關係。本文作者就把微服務做了如此類比,非常有趣。同時,給予Kubernetes高度肯定和讚賞,指出它會成為實際的操作系統,獲得眾多供應商支持。

需求層次理論是由心理學家艾伯特·馬斯洛設計的,它是一種解釋人類動機的心理學理論,它由多層次的人類需求模型組成,通常被描述成金字塔內的等級層次。馬斯洛使用諸如生理、安全、歸屬感和愛、尊重、自我實現和自我超越等來描述人類動機通常所經歷的階段。作為人類,首先需要滿足我們的基本需求,然後是心理上的需求,只有這樣我們才能想到自尊和實現全部的潛能:

馬斯洛需求層次

一、Kubernetes能滿足微服務的馬斯洛需求

這種描述需求的方法非常重要,已經應用於許多其他領域,如員工敬業度、雲計算、軟體開發、DevOps等等。所以對於微服務來說也同樣適用,為了微服務的成功,清晰的需求列表必須滿足。List如下:

微服務的需求層次結構

一旦列出了微服務的主要問題(對每個人來說可能會有不同的順序),就會發現Kubernetes容器編排引擎確實能夠很好地覆蓋這些需求中的很大一部分。我把Kubernetes也添加到圖中。

首先,對於基礎層,需要一些計算資源,並且理想的情況下,擁有一個由基礎設施服務雲提供商管理的可伸縮的標準操作環境。其他先決條件是,自動化的CI/CD流程和工件註冊表,Kubernetes可以幫助我們運行和管理。我們仍然需要一些專門的軟體,比如構建的Jenkins,以及工件存儲庫,比如按需 Sonatype Nexus for Docker和Maven for Docker Hub。

Kubernetes可以幫助管理多個隔離環境(名稱空間)、管理資源(配額和限制)、存儲分配(持久卷)、執行部署和回滾(部署)、自動調度(調度)、服務發現和負載平衡(服務)、彈性和容錯(pod健康檢查)。

對於某些需求,我們還需要一些額外的工具,如Docker或rkt用於容器實現,應用程序內的彈性庫(如Netflix的Hystrix)與Kubernetes彈性特性相結合。然後,Kubernetes可以管理應用程序配置,並幫助運行最好的集中式日誌記錄、度量收集和跟蹤軟體,隨著服務數量的增加,這些也變得非常重要。

根據微服務的性質,企業有一些特定的需求。對於API驅動的微服務,需要專門的API管理解決方案,也可以處理服務安全性(Kubernetes沒有提供)。但是Kubernetes可以輕鬆地幫助企業運行有狀態的服務(有狀態的設置)、批處理作業(job)和調度作業(cron job)。

通過一個平台提供的所有這些特性,用戶可以執行一些更智能的活動,如應用程序和基礎設施自動伸縮和自修復,通過自動放置、自動重啟、自動複製、自動伸縮。

對於Kubernetes所滿足的所有這些需求,團隊所剩下的就是精簡開發流程,擁抱DevOps文化以實現快速交付,並在組織層面達到反脆弱性。

二、關於Kubernetes你需要知道的8件事

這是《計算機周刊》與 Carlos Sanchez 的問答環節,Sanchez是 CloudBees 的工程師,CloudBees是持續交付和集成軟體服務的提供商。其中開源持續集成工具Jenkins,是CloudBees服務的重點。

《計算機周刊》的開源內部人士(Computer Weekly Open Source Insider,簡稱:CWOSI)提出了8個與Kubernetes最相關的問題,試圖揭開這個問題的核心,因為2017年Kubernetes經歷了知名度的大幅提升。

CWOSI #1:對於那些不了解Kubernetes的人,你如何總結和定義這項技術?

Sanchez: Kubernetes是一個開源平台,旨在自動化容器的部署、縮放和操作。它是一種允許在大規模集群上運行容器的技術。它支持跨大型數據中心的隔離應用程序的執行。

CWOSI #2:為什麼Kubernetes會在你的觀點中出現——為什麼我們需要它?

Sanchez: Docker確實成功地製造了容器。事實上,谷歌已經運行了很多年幾十億的容器。Kubernetes從谷歌的經驗中得出了這種規模的容器運行,導致谷歌將這項技術引入開源世界,從而使其他人更容易地管理容器。

至於為什麼我們需要Kubernetes,這是因為對於大型和小型的組織來說,容器變得越來越重要,授權開發團隊在大規模的分散式環境中運行,以便在DevOps和持續交付實踐中更快地交付軟體。在這種情況下,任何能夠簡化容器的有效操作和管理的東西都將受到企業的熱烈歡迎。

CWOSI #3:Kubernetes本質上是開源的,但是有多少開發人員在為一項本質上是基礎設施的技術貢獻代碼呢?

Sanchez:總的來說,有超過1400名貢獻者。谷歌、紅帽和微軟都被包括在其中。最近,亞馬遜和阿里巴巴已經成為參與這項技術的幾家最大的公司。CNCF管理整個技術。

CWOSI #4:容器化技術是否最終意味著每個單獨的組件在驗證其目的和最終交付特定的產出或功能的方面更負責?

Sanchez:容器通常與微服務體系架構相關聯。每個組件都期望完成一個特定的協議。這些組件有一個目的,它們有由這個協議和API標記的輸入和輸出。他們必須能夠履行他們的職責。它們應該是獨立的,並在體系結構中發揮特定的作用,其中有成百上千種服務共存。

CWOSI # 5:什麼時候不需要Kubernetes…當企業不需要大規模或跨多個機器的時候嗎?

Sanchez:Kubernetes是一個複雜的系統。如果企業有規模來證明部署的合理性,那麼採用這種技術是有意義的。例如,如果只使用一兩台虛擬機,或者沒有任何更高的要求,企業可能不需要Kubernetes ,Docker自己就足夠了。也就是說,谷歌或Azure提供的當前雲服務讓我們很容易從Kubernetes和大規模開始。

CWOSI #6:能給我們解釋一下Kubernetes pod嗎?

Sanchez:Kubernetes pod實際上是一組在同一個主機上運行的容器。這些容器具有一定的特點。例如,它們共享相同的網路空間和資源。真正的Kubernetes pod是由需要共存的容器組成的。

CWOSI #7:讓Kubernetes出錯,並把錯誤的實施組合在一起有多容易?

Sanchez:這又回到了安裝上——這是一個複雜的軟體,需要專門的專業知識。這就是人們使用谷歌Kubernetes引擎或Azure容器服務的原因。

也就是說,有越來越多的工具,無論是開源的還是商業的,比如kops、kube-aws或者kubeadm都可以幫助執行正確的安裝。如果您不使用其中一個安裝程序來簡化安裝,那麼在此過程中可能會犯錯誤。

CWOSI #8:在你看來,Kubernetes在接下來的幾年中會如何發展?

Sanchez:將會有越來越多的Kubernetes產品從不同的供應商進入市場,不僅僅是雲提供商,還有操作系統提供商。Kubernetes將成為集群的實際操作系統。另外,Kubernetes將會發展成為一套標準API,允許企業運行集群架構。

我們看到雲提供商正在破壞基礎設施,這樣企業就可以運行Kubernetes,而無需運行伺服器。因此,我們將看到供應商提供Kubernetes作為服務,企業將能夠在雲中運行容器,而不必擔心機器。AWS已經宣布了提供這一服務的意向,這一趨勢將繼續在其他供應商中施行。

1、Kubernetes and theMicroservices Hierarchy of Needs

https://thenewstack.io/introducing-microservices-hierarchy-needs/?utm_content=bufferba844&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

2、CloudBees:9 things you need to know about Kubernetes

http://www.computerweekly.com/blog/Open-Source-Insider/CloudBees-9-things-you-need-to-know-about-Kubernetes?utm_source=tuicool&utm_medium=referral

備註公司、姓名、職位

小數將拉您進入相應技術群

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數人云 的精彩文章:

微服務落地踐行漸進,4個Q&A一窺金融微服務現狀

TAG:數人云 |