0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

讓AI應用程序為本機云做好準備

星星科技指導員 ? 來源:NVIDIA ? 作者:Troy Estes ? 2022-06-21 16:07 ? 次閱讀

Cloud-native 是與 Edge AI 相關的最重要的概念之一。這是因為 cloud native 為應用程序部署提供了大規(guī)模支持。它還提供了性能、彈性和易管理性,這些都是 Edge AI 的關鍵功能。云本機和邊緣 AI 如此交織,以至于我們相信 Edge AI 的未來是云本地的 。

這篇文章概述了云本機組件以及準備好應用程序云本機的步驟。我將向您展示如何在 NVIDIA Fleet Command ,這是一種云服務,用于在邊緣部署和管理應用程序,采用云本機原則構(gòu)建。

如果遵循所有這些步驟,結(jié)果就是可以輕松地在 Fleet Command 和其他云本機部署和管理平臺上部署云本機應用程序。

什么是云本機?

Cloud native 是一種開發(fā)和運行應用程序的方法,它包含了云計算交付模型的靈活性、可伸縮性和彈性。云本機方法允許組織構(gòu)建具有彈性和可管理性的應用程序,從而允許更靈活的應用程序部署。

云本機開發(fā)的關鍵原則有:

微服務

容器

舵圖

CI / CD

DevOps 公司

什么是微服務?

微服務是軟件開發(fā)的一種形式,其中應用程序被分解為更小的、自包含的服務,這些服務相互通信。這些自包含服務是獨立的,這意味著它們中的每一個都可以自己更新、部署和擴展,而不會影響應用程序中的其他服務。

微服務使開發(fā)應用程序更快,更新、部署和擴展這些更新的過程更容易。

什么是容器?

容器是一個軟件包,它包含在任何計算環(huán)境中可靠運行應用程序所需的所有信息和依賴項。容器可以輕松地部署在不同的操作系統(tǒng)上,并提供可移植性和應用程序隔離。

整個應用程序可以被容器化,但應用程序的各個部分也可以被容器化。例如,容器與微服務配合得非常好,在微服務中,應用程序被分解為小型、自給自足的組件。每個微服務都可以在容器中打包、部署和管理)。此外,可以在集群中部署和管理多個容器。

容器非常適合邊緣部署,因為它們使您能夠?qū)贸绦?、依賴項和環(huán)境變量一次性安裝到容器映像中,而不是安裝在應用程序運行的每個系統(tǒng)上,從而使管理多個部署變得非常簡單。

這對于邊緣交換非常重要,因為一個組織可能需要在一個巨大的物理距離上安裝和管理數(shù)百或數(shù)千個不同的部署,因此盡可能多地自動化部署過程至關重要。

什么是舵圖?

對于復雜的容器部署,例如跨多個站點和多個系統(tǒng)部署多個應用程序,許多組織使用 Helm charts 。 Helm 是一個運行在 Kubernetes (稍后討論)之上的應用程序包管理器。沒有它,您必須為每個工作負載手動創(chuàng)建單獨的 YAML 文件,指定部署所需的所有詳細信息,從 pod 配置到負載平衡。

Helm charts 通過允許組織定義可重用的部署模板,以及版本控制和在部署過程中定制應用程序等其他好處,消除了這一繁瑣的過程。

什么是 CI / CD ?

持續(xù)集成( CI )使您能夠協(xié)作地迭代和測試新代碼,通常是通過將其集成到共享存儲庫中。

連續(xù)交付( CD )是從 CI 階段獲取新構(gòu)建并將其加載到存儲庫的自動化過程,在存儲庫中可以輕松地將其部署到生產(chǎn)中。

在將新代碼集成到現(xiàn)有解決方案中時,適當?shù)?CI / CD 流程可以避免服務中斷。

什么是 DevOps ?

術(shù)語 DevOps 指的是合并開發(fā)人員和運營團隊的過程,以簡化開發(fā)和向客戶交付應用程序的過程。

DevOps 對于云本地技術(shù)非常重要,因為這兩個概念的理念都集中于持續(xù)、輕松地向客戶提供解決方案,并創(chuàng)建端到端的開發(fā)管道以加速更新和迭代。

什么是云本機管理?

既然已經(jīng)解釋了云本機的核心原則,那么討論如何在生產(chǎn)中管理云本機應用程序就很重要了。

排容器的主要平臺是 Kubernetes 。 Kubernetes 是開源的,允許組織部署、管理和擴展容器化應用程序。

一些組織已經(jīng)在 Kubernetes 之上構(gòu)建了企業(yè)級解決方案,以提供獨特的優(yōu)勢和功能:

Red Hat OpenShift

VMWare Tanzu

Azure Kubernetes 服務

NVIDIA Fleet Command

為任何 Kubernetes 平臺準備應用程序的過程,無論是 Kubernetes 本身還是構(gòu)建在 Kubernetes 之上的解決方案,本質(zhì)上都是相同的。每個解決方案都有特定的配置步驟,以確保組織的云本機應用程序可以有效運行而不會出現(xiàn)問題。

使用 NVIDIA Fleet Command 部署云本機應用程序

本節(jié)以 NVIDIA Fleet Command 為例介紹配置過程,并指出所需的具體配置。

第 0 步:理解 Fleet Command

Fleet Command 是一種用于跨不同邊緣位置管理應用程序的云服務。它基于 Kubernetes 構(gòu)建并部署云本機應用程序,因此將應用程序放到 Fleet Command 上的步驟與將應用程序放到其他云本機管理平臺上的步驟相同。

假設應用程序已經(jīng)構(gòu)建,將該應用程序安裝到 Fleet Command 上只需四個步驟:

將應用程序容器化

確定應用程序要求

建立舵圖

在 Fleet Command 上部署

步驟 1 :將應用程序容器化

Fleet Command 將應用程序部署為容器。通過使用容器,您可以在同一系統(tǒng)上部署多個應用程序,還可以輕松地跨多個系統(tǒng)和位置擴展應用程序。此外,所有依賴項都打包在容器中,因此您知道應用程序?qū)⒃跀?shù)千個系統(tǒng)中執(zhí)行相同的操作。

為應用程序構(gòu)建容器很容易。有關更多信息,請參閱 容器裝卸工指南 。

下面是一個 Dockerfile 示例,用于使用 NVIDIA CUDA 基本映像構(gòu)建的自定義深度學習容器:

FROM nvcr.io/nvidia/cuda:11.3.0-base-ubuntu18.04
CMD nvidia-smi #set up environment
RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y curl
RUN apt-get install unzip
RUN apt-get -y install python3
RUN apt-get -y install python3-pip #copies the application from local path to container path
COPY app/ /app/
WORKDIR /app #Install the dependencies
RUN pip3 install -r /app/requirements.txt ENV MODEL_TYPE='EfficientDet'
ENV DATASET_LINK='HIDDEN'
ENV TRAIN_TIME_SEC=100 CMD ["python3", "train.py"]

在本例中,/app/包含所有源代碼。為容器創(chuàng)建 Dockerfile 后,可以使用該文件構(gòu)建容器,然后將其上載到云中的私有注冊表,以便可以輕松地將容器部署到任何位置。

步驟 2 :確定應用程序需求

容器完成后,需要確定應用程序正常運行所需的內(nèi)容。這通常涉及到考慮安全、網(wǎng)絡和存儲需求。

Fleet Command 是一個安全的軟件堆棧,它能夠控制應用程序在其部署的系統(tǒng)中可以訪問哪些硬件和軟件。因此,您的應用程序應該圍繞以下安全最佳實踐進行設計:

避免特權(quán)容器

將管理員和應用程序流量與存儲流量分離

最小化系統(tǒng)設備訪問

等等

圍繞這些安全需求設計應用程序部署,在以后配置網(wǎng)絡和存儲時牢記這些安全需求。

下一步是確定需要什么樣的網(wǎng)絡訪問需求,以及如何從容器中公開網(wǎng)絡。

通常,應用程序需要不同的端口和路由來訪問任何邊緣傳感器和設備、管理流量、存儲流量和應用程序(云)流量。這些端口可以使用NodePorts或更高級的 Kubernetes 網(wǎng)絡配置(如入口控制器)從 Fleet Command 公開。

最后,應用程序可能需要訪問本地或遠程存儲以保存持久數(shù)據(jù)。 Fleet Command 支持hostPath卷裝載功能。還可以使用其他 Kubernetes 功能,例如持久卷和持久卷聲明。

如果需要,可以在 Fleet Command 系統(tǒng)上單獨部署本地路徑或 NFS 供應器,以配置本地或遠程存儲。如果應用程序支持此功能,還可以將其配置為連接到云存儲。

有關更多信息,請參閱 Fleet Command 應用程序開發(fā)指南 。

步驟 3 :建立舵圖

既然應用程序需求已經(jīng)確定,現(xiàn)在就應該創(chuàng)建一個 Helm chart 。

與容器一樣,F(xiàn)leet Command 上的 Helm 圖表也有一些特定要求。以下是一個 NVIDIA DeepStream Helm 圖表 的示例,作為參考,以幫助構(gòu)建部署在 Fleet Command 中的舵圖。

要從頭開始創(chuàng)建您自己的頭盔圖表,請首先運行以下命令創(chuàng)建示例頭盔圖表。此命令使用 NGINX Docker 容器生成一個示例舵圖,然后可以為任何應用程序自定義該容器。

$ helm create deepstream

創(chuàng)建舵圖后,該圖的目錄結(jié)構(gòu)如下所示:

deepstream
|-- Chart.yaml |-- charts |-- templates | |-- NOTES.txt | |-- _helpers.tpl | |-- deployment.yaml
| |-- ingress.yaml
| `-- service.yaml
`-- values.yaml 

接下來,修改這些值。具有以下突出顯示值的 yaml 文件,用于配置 DeepStream 容器和網(wǎng)絡的示例舵圖。

image: repository: nvcr.io/nvidia/deepstream pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: 5.1-21.02-samples imagePullSecrets: []
nameOverride: ""
fullnameOverride: "" serviceAccount: # Specifies whether a service account should be created create: false # Annotations to add to the service account annotations: {} # The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: "" podAnnotations: {} podSecurityContext: {} # fsGroup: 2000 securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 service: type: NodePort port: 8554 nodeport: 31113

創(chuàng)建自定義舵圖后,可以將其上載到容器旁邊的專用注冊表。

步驟 4 :在 Fleet Command 上部署

將應用程序容器化并構(gòu)建舵圖后,將應用程序加載到 Fleet Command 。應用程序加載到 NGC 上,這是一個用于 GPU 加速的應用程序、模型和容器的中心,然后可以在 Fleet Command 上部署。應用程序可以是公共的,但也可以托管在私有注冊表中,在該注冊表中,訪問權(quán)限僅限于組織。

整個過程將在 Fleet Command 用戶指南 ,但在 Fleet Command 演示視頻

獎勵步驟:加入我們的合作伙伴生態(tài)系統(tǒng)

最近, NVIDIA 宣布擴大 NVIDIA Metropolis 合作伙伴計劃 現(xiàn)在包括 Fleet Command 。 Metropolis 的合作伙伴如果將其應用程序配置為部署在 Fleet Command 上,則可以免費訪問該解決方案,以便為客戶操作 POC 。通過使用 Fleet Command ,合作伙伴無需在客戶環(huán)境中構(gòu)建定制的解決方案進行評估。他們可以使用 Fleet Command 并在幾分鐘內(nèi)將其應用程序部署到客戶站點。

開始使用云本機

這篇文章介紹了云本機技術(shù)的核心原則,以及如何使用 Fleet Command 讓應用程序做好云本機準備。

您的下一步是獲得在云本機環(huán)境中部署和管理應用程序的實踐經(jīng)驗。 NVIDIA LaunchPad 可以提供幫助。

LaunchPad 提供對 Fleet Command 實例的即時、短期訪問,以便在實際服務器上輕松部署和監(jiān)控實際應用程序。動手實驗室將引導您完成整個過程,從基礎設施配置和優(yōu)化到在適用用例的上下文中部署應用程序,例如在網(wǎng)絡邊緣部署 vision AI 應用程序。

關于作者

Troy Estes 是 NVIDIA Edge 和企業(yè)計算解決方案的產(chǎn)品營銷經(jīng)理。在加入 Edge & Enterprise 業(yè)務部門之前,特洛伊曾在自主汽車業(yè)務部門和 NVIDIA 電網(wǎng)產(chǎn)品集團從事營銷活動和支持產(chǎn)品 GTM 。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    4793

    瀏覽量

    102427
  • CUDA
    +關注

    關注

    0

    文章

    121

    瀏覽量

    13544
  • 深度學習
    +關注

    關注

    73

    文章

    5422

    瀏覽量

    120591
收藏 人收藏

    評論

    相關推薦

    亞馬遜科技推出生成式AI服務Amazon App Studio

    在近期于紐約盛大召開的亞馬遜科技峰會上,一場關于未來應用開發(fā)的革命性變革悄然拉開序幕。亞馬遜科技正式推出了其顛覆性產(chǎn)品——Amazon App Studio,一個由前沿生成式AI技術(shù)驅(qū)動的創(chuàng)新平臺,旨在以前所未有的便捷方式,
    的頭像 發(fā)表于 07-11 17:07 ?574次閱讀

    網(wǎng)絡與計算:有什么區(qū)別?

    計算和網(wǎng)絡是相關但又不同的概念。計算關注的是應用程序如何運行,而網(wǎng)絡則關注的是應用程序
    的頭像 發(fā)表于 06-25 11:43 ?251次閱讀
    <b class='flag-5'>云</b>網(wǎng)絡與<b class='flag-5'>云</b>計算:有什么區(qū)別?

    使用Redis和Spring?Ai構(gòu)建rag應用程序

    整合如何通過簡化的開發(fā)流程,讓開發(fā)者能夠更專注于創(chuàng)新而非底層實現(xiàn)。一、SpringAI簡介由大型語言模型(LLM)驅(qū)動的應用程序中,向量數(shù)據(jù)庫常作為人工智能應用程
    的頭像 發(fā)表于 04-29 08:04 ?800次閱讀
    使用Redis和Spring?<b class='flag-5'>Ai</b>構(gòu)建rag<b class='flag-5'>應用程序</b>

    SOLIDWORKS應用程序:面向?qū)W生的全新機遇

    隨著科技的快速發(fā)展和數(shù)字化轉(zhuǎn)型的深入,SOLIDWORKS應用程序的推出,無疑為學生提供了一個全新的學習和實踐平臺。SOLIDWORKS,作為一款工程設計軟件,其應用程序的推出,不
    的頭像 發(fā)表于 03-25 15:39 ?196次閱讀

    雷軍官宣小米汽車發(fā)布日 價格戰(zhàn)已做好準備!

    雷軍官宣小米汽車發(fā)布日,3月28日小米SU7正式見面。小米汽車回應價格戰(zhàn):已做好準備!
    的頭像 發(fā)表于 03-12 14:40 ?1113次閱讀

    物聯(lián):革新未來電梯物聯(lián)網(wǎng)行業(yè),您做好準備了嗎?

    解析電梯物聯(lián)網(wǎng)技術(shù):革新未來電梯行業(yè),您已做好準備了嗎?|梯物聯(lián)網(wǎng) 據(jù)政府有關部門統(tǒng)計,截止2014年底,全國在用電梯的數(shù)量已經(jīng)達到360萬臺。電梯是一種特殊的垂直交通工具,這么多的電梯每天要運送數(shù)千萬的乘客上上下下,電梯的安全運行,可靠運行已經(jīng)成為社會關心的一大
    的頭像 發(fā)表于 02-28 10:03 ?280次閱讀
    梯<b class='flag-5'>云</b>物聯(lián):革新未來電梯物聯(lián)網(wǎng)行業(yè),您<b class='flag-5'>做好準備</b>了嗎?

    AI ready是什么?文明的發(fā)展需要做好準備

    從古至今,時代的進步都依靠工業(yè)的發(fā)展,四次工業(yè)革命,全世界進入了新時代?,F(xiàn)如今,互聯(lián)網(wǎng)科技發(fā)展速度飛快,AI大模型時代已經(jīng)到來,這何嘗不是一次全新的革命?但是,想要讓AI真正為企業(yè)所用,并非“一鍵
    的頭像 發(fā)表于 01-17 10:19 ?485次閱讀
    <b class='flag-5'>AI</b> ready是什么?文明的發(fā)展需要<b class='flag-5'>做好準備</b>

    谷歌發(fā)布新的AI SDK,簡化Gemini模型與Android應用程序的集成

    對于 Android 應用程序,Google 提供了 Google AI Client SDK for Android,它將 Gemini REST API 封裝為慣用的 Kotlin API
    的頭像 發(fā)表于 01-03 16:29 ?797次閱讀

    新火種AIAI時代可能遇到的倫理問題,你做好準備了嗎?

    AI會對未來的兩性關系產(chǎn)生怎樣的影響?家庭概念會就此消失嗎?”
    的頭像 發(fā)表于 12-12 10:11 ?477次閱讀

    開發(fā)java應用程序的基本步驟是

    ava是一種面向?qū)ο蟮木幊陶Z言,廣泛用于開發(fā)各種類型的應用程序。在開發(fā)Java應用程序時,有一些基本步驟需要遵循,以確保應用程序的正確性和可靠性。 1.確定需求:這是開發(fā)任何應用程序
    的頭像 發(fā)表于 11-28 16:52 ?1311次閱讀

    如何啟動本機docker服務

    Docker是一個開源項目,可以幫助開發(fā)者打包應用程序及其依賴,并且能夠?qū)⑵渥鳛楠毩⒌娜萜鱽磉\行。本文將詳細介紹如何在本機上啟動Docker服務。 第一步:安裝Docker 在開始之前,首先需要
    的頭像 發(fā)表于 11-23 09:43 ?1498次閱讀

    通過 Minitab 雙十一的物流成功做好準備

    今年的雙十一已過!現(xiàn)在,正是供應鏈領軍者檢查供應鏈中各個職能的時候,以下是?Minitab?幫助供應鏈經(jīng)理物流做好準備: 預測模型: Minitab 提供了一系列預測模型,包括移動平均線、指數(shù)平滑
    的頭像 發(fā)表于 11-20 10:17 ?300次閱讀

    如何STM32WB在沒有LSE時運行BLE應用程序

    如何STM32WB在沒有LSE時運行BLE應用程序
    的頭像 發(fā)表于 10-24 16:41 ?400次閱讀
    如何<b class='flag-5'>讓</b>STM32WB在沒有LSE時運行BLE<b class='flag-5'>應用程序</b>

    2024 年最重要的10個人工智能趨勢,每個人都必須做好準備

    年最重要的10個人工智能趨勢,每個人都必須它們做好準備。希望到2024年,我們能在解決圍繞這項技術(shù)的一些棘手問題上取得進展。雖然近年來,由于成本和易用性而導致的
    的頭像 發(fā)表于 10-10 10:08 ?1639次閱讀
    2024 年最重要的10個人工智能趨勢,每個人都必須<b class='flag-5'>做好準備</b>

    Atlas Meditech 使用 AI 和數(shù)字孿生開創(chuàng)腦外科手術(shù)的未來

    正如運動員比賽而訓練、演員演出而排練一樣,外科醫(yī)生也需要在手術(shù)前做好準備。 Atlas Meditech 正在通過 AI 和物理準確的模擬,
    的頭像 發(fā)表于 10-09 19:55 ?562次閱讀
    Atlas Meditech 使用 <b class='flag-5'>AI</b> 和數(shù)字孿生開創(chuàng)腦外科手術(shù)的未來