自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

13種工具助你打造企業(yè)的云原生屬性

譯文 精選
云計算 云原生
本文通過介紹云原生的相關(guān)概念、價值、方法、以及13種原生工具,以方便您打造本企業(yè)的云原生屬性。

[[353361]]

【51CTO.com快譯】不可否認,在近十年間,云計算的相關(guān)應用得到了蓬勃的發(fā)展。根據(jù)Gartner的統(tǒng)計和預測,全球公共云服務市場在2019年已經(jīng)達到了2278億美元,而今年它將持續(xù)增長17%,并達到2664億美元(請參見--https://www.gartner.com/en/newsroom/press-releases/2019-11-13-gartner-forecasts-worldwide-public-cloud-revenue-to-grow-17-percent-in-2020#:~:text=The%20worldwide%20public%20cloud%20services,research%20vice%20president%20at%20Gartner.)。像Airbnb、Netflix和Uber之類,以云服務為基礎(chǔ)的明星企業(yè),利用云原生(Cloud Native)技術(shù),在競爭對手之前更快地搶占了市場,甚至重塑了所在的行業(yè)??梢?,理解并選擇正確的云原生技術(shù),將有助于提高應用與服務的開發(fā)速度,減少維護工具的復雜性,并能提高有限基礎(chǔ)設施的利用率。本文將向您介紹13種云原生工具,以方便您打造本企業(yè)的云原生屬性。

什么是原生云?

云原生計算基金會(Cloud Native Computing Foundation,CNCF)提供的官方定義為:云原生技術(shù)是在公共云、私有云、以及混合云的動態(tài)環(huán)境中,讓組織能夠構(gòu)建和運行具有可擴展性的應用程序。這些應用包括:容器、服務網(wǎng)格、微服務、恒定架構(gòu)(immutable infrastructure)、以及聲明性API等。這些技術(shù)使得松耦合的系統(tǒng)具有一定云端彈性、可管理性和可觀察性。憑借著其自動化的技術(shù)特點,開發(fā)人員可以在不增加工作量的情況下,頻繁地、可預見性地進行各種變更與迭代。簡而言之,云原生的目標就是根據(jù)業(yè)務所需,快速、敏捷地向用戶交付軟件產(chǎn)品,并降低IT的整體成本。

云原生的價值

云原生技術(shù)具有以下三方面的優(yōu)勢:

  • 速度:云原生應用程序可以快速地被開發(fā)和部署,從而加快了產(chǎn)品面市的時間。許多云服務提供商都帶有云原生組件,這讓托管此類應用變得非常簡單。此外,由于云計算原生工具嚴重依賴抽象,這使得抽象更加通用,開發(fā)團隊不再需要依附整個公司的共享運行時,來運行自己的服務。因此,組織需要處理的開銷也就更少。
  • 可擴展性和可用性:原先僅能夠處理上百個客戶的云原生應用,可以被無縫地擴展到服務數(shù)百萬個客戶,以滿足實時的資源需求。這比傳統(tǒng)的靜態(tài)調(diào)整資源要更加節(jié)省成本。此外,自動化故障轉(zhuǎn)移和藍綠部署等技術(shù),也融入到了云原生工具中。
  • 質(zhì)量:云原生應用程序的開發(fā)往往是基于恒定性和解耦性的。這使得應用程序不但健壯、易于維護,而且具有較高的軟件質(zhì)量。由于時下流行的云原生技術(shù)是開源的,而且得到了CNCF的支持,因此軟件開發(fā)公司可以避免被某個云供應商所鎖定,并能夠在開發(fā)工作中持續(xù)得到社區(qū)的維護和支持。

基于上述優(yōu)勢,許多像Microsoft、Google和Amazon之類的大型組織,都在最小化運營成本的同時,享受到了云計算的巨大紅利。

如何實現(xiàn)云原生

為了將應用遷移到云原生系統(tǒng)中,您往往需要用到如下結(jié)構(gòu)化方法中的一種:

  • 垂直:選擇一個非關(guān)鍵性任務的服務,然后對其啟用云原生技術(shù),并實施遷移。
  • 水平:專注于某個單獨的云原生功能,如持續(xù)集成(CI)或持續(xù)交付(CD),將其部署到所有現(xiàn)有的服務中。

注意:選擇某個非關(guān)鍵性的任務系統(tǒng),對于降低風險、以及最大限度地提高遷移成功率來說,都是至關(guān)重要的。

云原生工具

以下便是業(yè)界常用的云原生工具列表。各大公司通過使用它們,實現(xiàn)了更快的產(chǎn)品交付,更少的摩擦,以及更低的開發(fā)與維護成本。

1.微服務

微服務能夠?qū)a(chǎn)品的功能劃分為多個可以被單獨部署的單元。例如,在傳統(tǒng)的非云原生(pre-cloud-native)部署中,通常只有一個網(wǎng)站服務來管理各種API和客戶間的交互。但是通過使用微服務,您可以將該網(wǎng)站分解成為包括賬號服務和用戶服務在內(nèi)的多個服務。據(jù)此,您可以單獨地對這些服務進行開發(fā)、部署和擴展。

同時,微服務通常是無狀態(tài)的,它給開發(fā)團隊利用云原生工具提供了各種靈活性。

推薦技術(shù): Node.js(https://nodejs.org/)

替代技術(shù): Kotlin(https://kotlinlang.org/),Golang(https://golang.org/)

2.持續(xù)集成/持續(xù)部署

持續(xù)集成/持續(xù)部署(CI/CD)是一種基礎(chǔ)架構(gòu)組件,它支持自動化的測試執(zhí)行(和可選的部署),拉取式請求合并,以及版本控制事件。CI/CD使得公司能夠?qū)崿F(xiàn)諸如:單元測試、靜態(tài)分析、以及安全分析等質(zhì)量門。而且,作為云原生生態(tài)系統(tǒng)中的基礎(chǔ)工具,CI/CD也可以提高工程效率,并減少錯誤的數(shù)量。

推薦技術(shù): Gitlab CI/CD(https://docs.gitlab.com/ee/ci/)

替代技術(shù): Github Actions(https://github.com/features/actions)

3.容器

容器是云原生生態(tài)系統(tǒng)的核心。它通過簡化開發(fā)人員的操作,來提高交付速度和產(chǎn)品質(zhì)量。通過使用帶有Docker工具的容器,開發(fā)團隊可以指定目標系統(tǒng)的依賴性,同時提供統(tǒng)一且通用的執(zhí)行層面。而通過該層面,團隊只需著眼于Kubernetes之類容器編排等單個基礎(chǔ)設施。

同時,工程團隊可以將容器的鏡像存儲在容器的注冊表中,以提供漏洞分析和細粒度的訪問控制。該領(lǐng)域的熱門服務包括:Docker Hub(https://hub.docker.com/)、Google Container Registry(https://cloud.google.com/container-registry)、Quay(https://quay.io/)。

推薦技術(shù): Docker(https://www.docker.com/)

替代技術(shù): Podman(https://podman.io/),LXD(https://linuxcontainers.org/lxd/introduction/)

4.容器編排(Container Orchestration)

上面提到的容器編排是一種用于啟動和管理大量容器的工具。它并不需要特定于語言或團隊的部署策略,而是允許用戶指定某個或某組容器鏡像進行配置。編排的最后是將這些規(guī)范轉(zhuǎn)換為運行的工作流。因此,開發(fā)團隊可以只維護一個用于執(zhí)行任何一種OCI規(guī)范(https://github.com/opencontainers/runtime-spec/blob/master/spec.md)的容器。

推薦技術(shù): Kubernetes(https://kubernetes.io/)

替代技術(shù): Google Cloud Run(https://cloud.google.com/run)

5.基礎(chǔ)設施即代碼

基礎(chǔ)設施即代碼是一種在版本控制的基礎(chǔ)上實施云端配置的策略。過去,公司通常需要通過管理面板,來手動配置和管理云端資源。不過,這樣會導致團隊很難跟蹤各種手動更改。而基礎(chǔ)設施即代碼則是通過將云端資源定義為代碼,并將其納入版本控制之中,來解決該問題。也就是說,我們可以在代碼中對基礎(chǔ)設施的配置進行更改,并通過公司的部署過程進行升級,其中可以包括同行評審(peer reviews)、CI和CD等。而版本控制則會提供一套審核日志,來顯示誰、何時更改了哪些資源。

推薦技術(shù): Terraform(https://www.terraform.io/)

替代技術(shù): Pulumi(https://www.pulumi.com/)

6.密碼管理

像密碼、私鑰和API憑據(jù)等密碼管理,對于云原生解決方案來說是必不可少的。它們需要被加密后,存儲到相應的配置中。成熟的解決方案往往是通過頒發(fā)臨時的數(shù)據(jù)庫憑據(jù)或循環(huán)憑據(jù),來保障密碼管理的安全性。由于容器化服務可以實現(xiàn)水平方向擴展,并且可以被安排在許多不同的機器上,因此我們需要為云原生應用程序配置一套合適的密碼管理方案,以免增加密碼泄漏的風險暴露面。

推薦技術(shù): Vault(https://www.vaultproject.io/)

替代技術(shù): Sealed Secrets(https://github.com/bitnami-labs/sealed-secrets)

7.證書

對于基于容器的解決方案來說,許多不同的服務可能會在同一臺物理機器上運行。如果數(shù)據(jù)沒有被加密,那些已經(jīng)獲得了主機網(wǎng)絡訪問權(quán)限的攻擊者,就能夠輕松地讀取到各個服務之間的所有通信。通過TLS進行安全通信不僅是一種最佳實踐,而且是必不可少的。當然,自動化更新云原生證書的解決方案,會比手動部署要可靠得多。

推薦技術(shù): cert-manager(https://github.com/jetstack/cert-manager)

替代技術(shù): Google managed certificates(https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs)

8 .API網(wǎng)關(guān)

API網(wǎng)關(guān)在實際應用中往往被作為反向代理,提供了類似于Apache(https://httpd.apache.org/)和NGINX(https://www.nginx.com/)之類傳統(tǒng)反向代理產(chǎn)品的功能。此外,API網(wǎng)關(guān)還支持:

  • gRPC、HTTP/2和Websockets等協(xié)議
  • 動態(tài)配置
  • 雙向TLS
  • 路由
  • 提供諸如速率限制和電路中斷等云服務彈性功能
  • 提供各類監(jiān)控指標的可見化

推薦技術(shù): Ambassador(https://github.com/datawire/ambassador)

替代技術(shù): Kong(https://konghq.com/)

9.日志

作為可觀察性(https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ch04.html)的基礎(chǔ),日志記錄對于開發(fā)團隊來說是再熟悉不過了。云原生工具在日志方面強調(diào)的是受監(jiān)控指標的時序性,旨在以成本效益的方式,獲悉事件發(fā)生的原委。同時,日志對于云端應用的開發(fā)調(diào)試與觀察,也是必不可少的“剛需”。

推薦技術(shù): EFK(https://www.cncf.io/blog/2020/07/27/logging-in-kubernetes-efk-vs-plg-stack/)

替代技術(shù): Loki(https://github.com/grafana/loki)

10.監(jiān)控

上面提到的時序日志往往來自于監(jiān)控系統(tǒng)。該系統(tǒng)通過聚合監(jiān)控數(shù)據(jù),以避免存儲所有的事件。也就是說,云原生系統(tǒng)需要通過成本效益的方式,來了解系統(tǒng)在如下方面的狀態(tài):

  • 進行了多少次操作?
  • 操作的結(jié)果是成功還是失敗?其狀態(tài)代碼是什么?
  • 操作耗時多久?
  • 重要資源(如:隊列深度或線程池)的數(shù)值是多少?

您可以為受監(jiān)控的指標分配不同的維度,以深入了解單個主機、操作系統(tǒng)、以及版本等方面的性能。

推薦技術(shù): Prometheus(https://prometheus.io/)/Grafana(https://prometheus.io/docs/visualization/grafana/)

替代技術(shù): Datadog(https://www.datadoghq.com/)

11.警報

警報是日志監(jiān)控的結(jié)果,它會將系統(tǒng)出現(xiàn)的問題、以及對應的時序指標,通知到操作人員。例如,當系統(tǒng)的HTTP 500系列狀態(tài)代碼增加、或請求等待時間延長時,此類警報會及時發(fā)送到運營團隊處。對于云原生系統(tǒng)而言,出現(xiàn)問題并不可怕,可怕的是大家不知道問題出在哪里。因此,警報的作用是不言而喻的。

推薦技術(shù): Prometheus Alertmanager(https://prometheus.io/docs/alerting/latest/alertmanager/)

替代技術(shù): Grafana Alerts(https://grafana.com/docs/grafana/latest/alerting/)

12.追蹤

為了減少在啟動和擴展服務上的開銷,開發(fā)團隊往往會在服務發(fā)布之前,分配給云服務更多的資源。支持團隊可以通過監(jiān)控和跟蹤各個服務之間的通信,來了解用戶的最終狀態(tài),以及用戶在使用過程中,每個階段的耗時和資源使用率。據(jù)此,當出現(xiàn)性能問題時,團隊可以及時捕獲到錯誤信息。因此,作為觀察和調(diào)試工具的深化,云原生技術(shù)的跟蹤功能,可以讓團隊更快地診斷問題,進而顯著地減少宕機時間。

推薦技術(shù): Jaeger(https://www.jaegertracing.io/)

替代技術(shù): Zipkin(https://zipkin.io/)

13.服務網(wǎng)格

作為上述功能的綜合,云服務網(wǎng)格可以提供動態(tài)路由、負載平衡、服務發(fā)現(xiàn)、網(wǎng)絡策略,以及包括斷路器(https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker)和重試機制(https://docs.microsoft.com/en-us/azure/architecture/patterns/retry)在內(nèi)的云服務彈性功能。我們可以將服務網(wǎng)格視為云計算原生架構(gòu)在負載平衡方面的一種進化。

推薦技術(shù): Istio(https://istio.io/)

替代技術(shù): Consul(https://www.consul.io/)

小結(jié)

通過靈活地選用上述云原生工具,我們可以適當?shù)靥岣咴品债a(chǎn)品的交付速度,增加服務的可用性與性能,以及保持企業(yè)的競爭優(yōu)勢。您不必一蹴而就,完全可以從某個單一技術(shù)入手,以充分利用它給云端業(yè)務帶來的顯著好處與提升。

原文標題:How to Become a Cloud-Native Company and 13 Tools to Get You There, Kentaro Wakayama

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關(guān)推薦

2021-01-26 01:03:36

云原生工具云原生

2021-03-26 09:33:43

云原生工具云計算軟件產(chǎn)品

2020-10-27 10:27:42

金山云云原生裸金屬服務器

2019-12-18 15:34:59

開源云原生工具

2020-07-30 15:05:10

云原生

2020-07-17 07:00:00

GitHubgit開源

2025-02-18 10:56:18

2018-09-28 16:04:24

云原生Cloud Nativ

2020-10-14 15:07:50

云有云企業(yè)轉(zhuǎn)型部署

2022-09-29 15:28:08

網(wǎng)易數(shù)帆云原生低代碼

2012-09-05 15:45:18

Ntbackup備份

2021-12-01 23:16:44

工具數(shù)據(jù)處理

2020-03-11 10:18:14

企業(yè)架構(gòu)EA架構(gòu)工具

2020-03-11 14:27:53

數(shù)字化企業(yè)架構(gòu)工具

2020-10-30 17:14:16

紅帽開放混合云

2021-04-25 15:20:13

云計算公有云混合云

2022-03-11 23:44:53

云計算混合云數(shù)字經(jīng)濟

2018-06-07 08:20:51

自動化測試移動技術(shù)云平臺

2024-06-25 13:02:25

2023-04-14 14:31:43

云原生
點贊
收藏

51CTO技術(shù)棧公眾號