根據您的要求,云原生可能意味著很多不同的事情。十年前,云原生一詞是由 Netflix 等利用云技術的公司創造的,從一家郵購公司發展成為世界上最大的消費者點播內容交付網絡之一。 Netflix 開創 了我們所謂的云原生模式,重塑、轉變和擴展了我們所有人都希望以何種方式進行軟件開發。
隨著 Netflix 的巨大成功及其更快地向客戶提供更多功能的能力,公司想知道云原生技術如何幫助 Netflix 獲得如此巨大的競爭優勢。
那么,為什么云原生如此重要? 從 本質上講,云原生 是一種提高業務速度的方法,也是一種構建團隊以利用 Kubernetes 等云原生技術提供的自動化和可擴展性的方法。
在一個錯誤的分號發布災難性版本之后,前 Netflix 云架構師 Adrian Cockcroft 將他們的整個架構從單體架構轉變為微服務。
單體架構的問題在于,在開發和測試新功能時,將這些更改部署到生產環境需要付出很多努力:
多個團隊必須協調他們的代碼更改。
一次部署多個功能需要大量的前期集成和功能測試。
開發團隊僅限于使用一種或兩種語言。
向微服務的轉變使 Netflix 開發人員能夠更快地向他們的客戶提供新功能。
微服務導致松散耦合的面向服務的架構與有界上下文。這意味著如果每個服務都必須同時更新,它就不是“松散耦合”。同樣,如果您必須對周圍的服務了解太多,那么您就沒有“有界上下文”。另請參閱 Martin Fowler 和 James Lewis 討論定義的原始博客: “微服務:這個新架構術語的定義”。
Docker 容器非常適合微服務。通過在多帶帶的容器中運行微服務,它們都可以獨立部署,甚至可以使用不同的語言。容器化消除了語言、庫或框架之間任何摩擦或沖突的風險。由于容器是可移植的并且可以彼此隔離運行,因此使用容器創建微服務架構并在需要時將它們移動到另一個環境非常簡單。
一旦你有大量的微服務都在 Docker 容器中運行,你需要一種方法來管理或編排這些容器,以便它們作為應用程序有意義。這就是您需要 Kubernetes、Docker Swarm 或其他編排器(集群管理器)的地方。
過去,您必須對使用哪個編排器做出明智的選擇,但現在編排大戰已獲勝,谷歌的 Kubernetes 脫穎而出。所有主要的云提供商 都通過易于安裝的解決方案支持 Kubernetes。
本次討論的要點是,對于大多數公司來說,要具有競爭力,他們必須圍繞微服務構建應用程序并在 Kubernetes 集群中運行它們——盡管有些公司也在其他編排器上運行 Docker 容器。
隨著在容器中運行并在 Kubernetes 中編排的應用程序,下一步是自動化部署。持續自動化的功能流是 DevOps 與其他軟件開發理念和實踐的區別,例如瀑布模型,其中開發遵循有序的階段序列。
持續并不意味著工程師正在 24/7 更新代碼,或者他們在每次更改代碼行時部署更新。從這個意義上說,持續是指通過自動持續集成和持續部署管道 (CICD) 定期推出的軟件更改和新功能。在電子書: GitOps 實用指南中查找更多用于構建 CICD 管道的 DevOps 策略。
借助容器和微服務,監控解決方案必須管理比以往更多的服務和服務器。不僅有更多的對象需要管理,而且云原生應用程序還會生成大量需要跟蹤的額外數據。
從由許多移動部件組成的環境中收集數據是很復雜的。Prometheus 是這些動態云環境的最佳現代解決方案。它是專門為監控在容器中大規模運行的應用程序和微服務而構建的,并且是容器化環境的本機。
閱讀有關使用 Prometheus 進行 Kubernetes 監控的更多信息。
在您的組織中實施云原生技術和 DevOps 最佳實踐的成功很大程度上取決于您現有的公司文化。內部團隊不僅必須學會采用跨職能方法,以確保軟件以連續的節奏迭代并補充公司的業務目標。實際切換到云原生可能是您旅程中最簡單的部分。讓這些改變堅持下來并在整個組織中傳播很可能是這個過程中最困難的部分。
在我們的白皮書《生產就緒 Kubernetes 集群指南》中了解生產就緒的五個步驟,包括您需要對團隊進行的文化改變,以及在生產中使用 Kubernetes 時要考慮的最重要的要求。
企業采用云原生的最大好處可以總結如下:
借助 GitOps 和 DevOps 最佳實踐,開發人員可以使用全自動持續集成 持續交付管道 (CICD) 快速測試新代碼并將其推送到生產環境。企業可以在幾分鐘或幾小時內(而不是幾周和幾個月)將新想法帶入生產,從而提高創新率和競爭力。
按需彈性擴展或云爆發提供了近乎無限的計算、存儲和其他資源擴展。企業可以利用內置的可擴展性來匹配任何需求配置文件,而無需額外的基礎架構規劃或配置。
GitOps 和 DevOps 最佳實踐為開發人員提供了一種還原更改的低風險方法,為創新掃清了道路。憑借干凈回滾的能力,在集群崩潰的情況下從災難中恢復也更快。更長的正常運行時間保證企業更具競爭力,并可以提供更嚴格的服務水平協議和更好的服務質量。
由于云原生技術 支持按使用付費模式,規模經濟得以傳遞,并將支出從 CAPEX 轉移到 OPEX。這種前期 CAPEX 支出的較低準入門檻允許更多的 IT 資源用于開發而不是基礎設施。此外,總體 TCO/托管成本也將更低。
使用云原生和其他尖端開源技術可以讓您更快地移動并在基礎設施上花費更少的時間,這對開發人員很有吸引力。雇用更高質量的開發人員會產生更好的產品,從而為您的業務帶來更多創新。額外的好處是開源貢獻可以幫助建立您作為技術領導者的聲譽。
云原生為您提供了多種工具選擇,而不會被遺留產品所束縛。通過盡可能利用多云兼容工具,云原生應用程序更加便攜,并且超出了供應商掠奪性定價的范圍。您可以輕松遷移到具有更好產品的替代公共云或合規性需要多云基礎架構的地方。
大多數公司都希望將應用程序遷移到云端,但他們也可能希望將一些應用程序或數據保留在防火墻后面和內部部署。有些人可能希望能夠改變云提供商以利用更好的定價模型,或者他們可能需要遵守合規性法規并跨越多個云提供商。為了使應用程序如此易于移植,企業要求他們的系統能夠正常工作,這樣他們就可以通過發布新的應用程序和功能而不是投資于基礎設施來重新建立業務價值。
“我們需要停止編寫基礎架構……總有一天會有一群開發人員不再編寫基礎架構代碼。就像你們中可能沒有多少人制造計算機一樣。” - Weaveworks 首席執行官 Alexis Richardson
進行數字化轉型的企業以及需要推動業務發展以保持競爭力的企業都對創建我們所說的無形基礎設施感興趣。為了加快步伐,您需要一種簡化基礎架構更改的方法,以便開發人員可以專注于創新和構建新功能而無需開銷。最終目標是讓開發人員永遠不要編寫基礎設施代碼,而是專注于功能。當基礎設施摩擦減少時,企業將更加敏捷和具有競爭力。
因此,當我們談論應用程序是云原生時,我們從根本上談論的是可擴展性、可移植性和開發速度。
從業務的角度來看,云原生的回報是應用程序始終處于打開狀態,高度可用,可以由您的開發團隊在零停機時間的情況下進行更新。云原生應用程序允許您的開發團隊或多或少地處理客戶的請求,而不是等待數周。提高速度和敏捷性是這種新型現代應用程序、架構和實踐的主要特征和優勢。
采用云原生的公司已將平均部署時間從每周 1 或 2 次部署增加到每天 150 多次部署。如果您的網站出現故障,您可以使用云原生在五分鐘內修復它,而不是讓您的客戶離線。
快速移動的能力是那些不斷更改和更新其應用程序的人與那些努力對其網站進行小幅更改的人之間的主要區別之一。您可以量化持續交付,這就是人們對 Airbnb 和 Netflix 等獨角獸公司如此興奮的原因之一,它們已經弄清楚了這一點。
云原生是大多數公司都知道并認為很重要的東西。當然,棘手的部分是使知識民主化和傳播。我們如何讓所有人都能使用這項技術,而不僅僅是硅谷的精英科技公司?
云原 生計算基金會 (CNCF) 成立于 2015 年,是 Kubernetes 的供應商中立之家——一個用于自動化部署以及擴展和管理應用程序的開源系統。Kubernetes 最初是由谷歌創建來運行他們的搜索引擎的,但今天它得到了亞馬遜、微軟和思科以及 300 多家其他公司的貢獻。
使用 Kubernetes,構成應用程序的容器被分組為邏輯單元,以便于管理和發現。它可以隨您的應用程序擴展,您無需向 Ops 團隊添加更多資源。
除此之外,還可以安全地進行自動部署以及多個同時部署。這種發布和產品更新的新方式對大多數人來說是一個非常新的概念。所有這些想法都是所謂的云原生革命的一部分。
CNCF 的主要任務是圍繞一系列 高質量項目 構建可持續的生態系統和社區,這些項目支持和管理基于 Kubernetes 構建的云原生應用程序的容器。
除了托管和支持新的云原生項目外,CNCF 還提供培訓、 技術監督委員會、管理委員會、社區基礎設施實驗室和多個認證計劃。
為了將數字解決方案引入不同的業務環境,開發人員需要停止擔心底層基礎設施,轉而專注于為底線增加直接價值的應用程序和其他功能。這將我們引向 CNCF 的一個重要目標,即構建一個通用的開放式云原生平臺和工具包,企業可以輕松地在其組織內采用和適應。
為了使這個通用平臺成型,我們需要以下內容:
提供可擴展性的物理基礎設施,還允許您的應用程序在任何地方運行,無論是在公共云中還是在本地或兩者兼而有之。
一個通用的云技術平臺,具有用于下一代應用程序的一組可插拔工具。一個具有可插拔工具的平臺,可輕松在云中運行云原生應用程序。
許多現代云原生架構的采用和開發為數據分析、機器學習、金融、無人機、汽車、物聯網、醫學、通信和其他垂直業務領域帶來了新機遇。
通過利用 CNCF 中提供的許多孵化項目,您可以輕松設置基礎架構并為您的團隊創新奠定基礎。在云原生技術出現之前,向您的單體平臺添加一個新的業務組件意味著要雇傭一支顧問團隊,即便如此,也需要 9 個月的時間來實施。
但是現在通過使用CNCF 的 社區支持組件環境可以節省大量時間 。這使您可以專注于手頭的任務,可以將機器學習或其他數據科學方法引入您的業務以推動創新。
云原生讓我們找到了一套全新的軟件開發方法和理念,也就是所謂的 DevOps 文化轉變。有了一套新工具,團隊自然會想出使用它們的新方法。這通常發生在新一代開發人員身上,他們以全新的眼光和對舊問題的純潔旋轉。特別是,云原生技術已經導致新的持續交付工具和方法的實施,這些工具和方法可以幫助您加快開發速度。
提供持續交付組件(以及其他)的 Kubernetes 平臺可以提高速度,同時也降低了進入門檻。有了持續交付,您的團隊可以全天部署變更,而不是每季度或每月一次。持續交付還提供了一種在需要時回滾更改的機制。有了持續交付管道,開發人員可以直接從源代碼到生產進行更改,但更重要的是,他們還能夠輕松地恢復和退出更改。
持續部署更改的能力意味著您的團隊可以將測試部署到客戶子集或更輕松地推出特定客戶請求。而且由于只需單擊一下即可回滾,因此開發人員可以更快地從故障中恢復。
這與 15 年前的軟件開發非常不同,當時需要大量的協調工作來部署單個更改。借助 Kubernetes 等云原生技術和其他支持項目,持續部署更改是微不足道的,因為這項技術使之成為可能。
“基于容器的基礎設施和微服務為軟件部署提供了前沿,為希望提供大規模可擴展、靈活和分布式應用程序的企業創造了巨大的潛力。最近,他們開始將 Kubernetes 標準化為單一目標架構,從而為圍繞特定部署目標調整 DevOps 實踐創造機會。” 約翰、柯林斯、GigaOm
閱讀完整報告“云原生世界中的 DevOps 編排”。
云原生非常適合 GitOps 風格的部署。作為構建云原生應用程序的操作模型,GitOps 統一了部署、監控和管理。
GitOps 的目標是加快開發速度,以便您的團隊可以安全可靠地對 Kubernetes 中運行的復雜應用程序進行更改和更新。它使用開發人員熟悉的工具和工作流程來執行此操作。有關 GitOps 的更多信息,包括它與云原生應用程序的關系,請參閱 GitOps - 您需要了解的內容。
使用 Weave GitOps 快速上手。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/127816.html
摘要:阿里云彈性計算作為計算能力的基礎,今年做的最重要的件事。未來阿里云將在這兩件事上,不斷發力,將普惠的云真正的帶給大家。 摘要: 阿里云研究員褚霸在LC3大會上同多位業界資深大咖同臺交流表示,阿里云發展到今天,把過去應對淘寶、天貓大規模計算以及雙11的計算能力轉換成普惠的能力放在云上,這是一個非常大的挑戰,也是其他廠商沒有經歷過的。這些挑戰不斷幫助阿里云積累經驗,提升技術能力。 6月25...
摘要:正在走遠,新年之初,小數精選過去一年閱讀量居高的技術干貨,從容器到微服務云原生,匯集成篇精華集錦,充分反映了這一年的技術熱點走向。此文值得收藏,方便隨時搜索和查看。,小數將繼續陪伴大家,為朋友們奉獻更有逼格的技術內容。 2017正在走遠,新年之初,小數精選過去一年閱讀量居高的技術干貨,從容器、K8S 到微服務、云原生、Service Mesh,匯集成52篇精華集錦,充分反映了這一年的技...
摘要:自從微軟和宣布合作以來,微軟一直在容器上面的戰略可謂穩扎穩打。最近,微軟加入,并作為創始成員承諾支持常見容器的格式和運行。這種定位導致大家對于微軟容器戰略的認識模糊。微軟的容器策略并不是可移植性說的直白一點。 自從微軟和Docker宣布合作以來,微軟Redmond一直在容器上面的戰略可謂穩扎穩打。最近,微軟加入Open Container Initiative (OCI),并作為創始成...
摘要:然而,在物聯網時代,我們是負擔不起那么多在云端的計算能力的。物聯網革命已然到來。年,物聯網制造商將摒棄云唯一模型,轉向一種新型的名為霧計算的模型,以下是迫使他們采取這一行動的三個關鍵的事實。霧計算尋求處理能力時,它不關心計算機是否在云端。然而,在物聯網時代,我們是負擔不起那么多在云端的計算能力的。物聯網革命已然到來。從可穿戴設備到智能家居,再到工業互聯網,連接設備正在深入我們生活的方方面面。...
摘要:問對于程序員修煉之道你有下一步的計劃嗎程序員修煉之道這個項目很好,寫作的過程也很愉快。而最上層的程序員則是時刻對技藝以及技術的本質著迷。這也是的一大優勢。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/127453 Ben Evans是jClarity的聯合創始人。其公司致力于開發可以為開發和運維團隊提...