本教程將指導您完成在 Oracle Cloud Infrastructure (OCI) 上的 Ampere A1 計算平台上啟動和執行的過程。 首先,在 JVM 模式下執行 Spring Boot 應用,然後生成並執行 Micronaut。 以本機二進位形式IO 應用程式。 借助 GraalVM,您不僅可以提高現有應用程式的效能,還可以為雲構建輕量級的多語言應用程式。 對於 Ampere A1 外形尺寸,它提供了線性可擴充套件性和無與倫比的價效比,使其成為理想的伴侶。 基於 Ampere Altra CPU,Ampere A1 計算平台正在徹底改變企業和應用程式開發人員,他們正在構建從邊緣裝置到雲資料中心的可擴充套件工作負載。 該平台的獨特設計提供了一致且可接受的效能,因為計算核心內沒有資源爭用,從而提供了更多的隔離和安全性。 Oracle 雲基礎設施上的這種新型計算形式將 Altra CPU 的強大功能與 OCI 的安全性、可擴充套件性和服務生態系統相結合,提供了乙個無與倫比的平台。 GraalVM是乙個高效能的執行時環境,適用於使用J**A,J**Ascript,基於LLVM的語言(如C和C++)以及其他動態語言編寫的應用程式。 它極大地提高了應用程式的效能和效率,因此您可以更高效地在雲上執行現有應用程式。 GraalVM 還可以構建原生可執行二進位檔案 - 現有基於 JVM 的應用程式的原生映象。 生成的原生映象以機器**的形式包含整個程式,可以立即執行,避免了 JVM 本身的啟動和記憶體占用。 此功能使 GraALVM 成為構建雲原生應用程式的理想選擇,JVM 語言中的多個微服務框架現在都包含此功能。 在本教程中,您將: 建立 Ampere A1 計算例項。
安裝 GraalVM 企業版。
使用 GraalVM 執行流行的 Spring Boot 示例應用程式 JVM 模式下的 PET 診所
使用 GraalVM 本機映像構建並執行 Micronaut 應用程式。
評估在 Ampere A1 上使用 GraALVM 的適用性。
清理部署。 Oracle 免費套餐(試用)、付費或 LiveLabs 雲帳戶。
熟悉 OCI 控制台。
網路概述。 熟悉隔間。
容器和 podman 的基本概念知識。
您將開始初始化用於建立和部署 J**A EE 應用程式的 Oracle Cloud 環境。 環境將包含在雲區間中,區間內的通訊將通過虛擬雲網路 (VCN) 進行。 隔間和 VCN 將隔離和保護整體環境。 您將建立乙個 Ampere A1 計算例項,以使用 GraalVM 企業版安裝和執行應用程式。 開啟導航選單。 在“治理和管理”下,轉到“身份驗證”,然後單擊“區間”。 在此螢幕上,您將看到隔間列表,點選“建立隔間”。
輸入以下資訊:
名稱:輸入“appdev”。
描述:輸入描述(必填),例如:“appdev compartment for getting started tutorial”。 避免輸入機密資訊。
父區間:選擇要放置區間的區間。 預設為根區間(或租戶)。
點選“建立隔間”。
您的隔間將顯示在列表中。
要建立 Ampere A1 計算例項,請使用控制台左上角的導航選單,然後轉到計算例項。
開啟例項建立過程。
確認您位於 appdev 區間中。
單擊建立例項。
在建立例項頁面上,您將建立乙個新例項和新的網路資源,例如虛擬雲網路 (VCN) 和 Internet 閘道器 (IG)。
將例項命名為 GraalVMapp
更新映像選擇以使用 Oracle Linux 79。
單擊“更改形狀”按鈕以檢視可用的計算形狀。
4.為您的例項配置映像。 單擊“更改映像”按鈕以檢視可用的作業系統映像。
選擇 Oracle Linux 79。
5.為您的例項配置資源。 在形狀系列選擇中選擇 Ampere Arm 基礎處理器。
從帶有 Ampere Arm 基礎處理器的形狀列表中進行選擇vm.standard.a1.flex
形狀。 Ampere A1 的形狀很靈活,您可以修改核心數量和記憶體量。 為 VM 選擇 1 個核心和 6 GB 記憶體。
6.選擇您的網路選項。 為下乙個雲部署建立新的 VCN 和子網。 確保您選擇為例項分配公有 IP 位址。 7.生成和 SSH 金鑰對。 此步驟是可選的,但強烈建議在以後的維護和公升級中執行。 如果您已經擁有金鑰對,也可以使用公鑰。 如果您想了解如何生成 SSH 金鑰,請按照生成 SSH 金鑰教程中的說明進行操作。
8.單擊“建立”以建立網路資源並啟動計算例項。
為了使應用程式可以從 Internet 訪問,您需要開啟應用程式將使用的埠。 在本部分中,你將在雲網路上配置安全列表,並在計算例項上配置防火牆規則,使應用程式能夠傳送和接收流量。 安全列表充當例項的虛擬防火牆,其入站和出站規則指定允許進入和退出的流量型別。 安全列表在子網級別配置,將安全規則應用於該子網中的所有網路元素。 您的網路附帶乙個預設安全列表,其中包含一組初始規則。 預設安全列表允許您使用 SSH 連線到例項,並允許例項對任何目標進行出站網路呼叫。 導航到您建立的例項的詳細資訊頁面。 計算例項:單擊您建立的例項。
通過單擊子網,導航到例項連線到的子網。
在“子網”頁面,單擊預設安全列表,檢視詳細資訊並進行配置。
單擊“新增入站規則”以新增新規則,以允許與規則匹配的傳入流量。
新增允許埠 8080 上的傳入流量的入站規則將源 CIDR 設定為。這允許來自所有來源的傳入流量。 b.將目標埠範圍設定為 8080。 這會將目標設定為僅埠 8080。 該規則現在允許來自所有源的流量使用埠 8080。 這正是我們所需要的,以便可以從任何地方訪問我們的應用程式。 c.提供說明。
防火牆規則控制進出例項的資料包級流量。 您需要直接在例項本身上配置防火牆規則,以便為您提供額外的安全級別。 導航到您建立的例項的詳細資訊頁面。 計算例項:單擊您建立的例項。
複製例項的公有 IP 位址。
使用 SSH 連線到例項。 使用您自己生成的金鑰或在例項建立步驟中提供的金鑰。 使用 Oracle Linux 作業系統的例項的預設使用者名稱是 OPC。
執行 firewall configuration 命令。 這將修改例項本身的防火牆,以公開埠 8080 並接受傳入流量。
OCI 免費向客戶提供 Oracle GraalVM 企業版。 GraalVM 企業版支援包含在 Oracle Cloud 訂閱中。 基於 ARM 的高效能計算外形與基於 OCI 的 GraalVM 企業版相結合,為現有和新的企業應用提供了乙個極具吸引力的平台。 導航到您建立的例項的詳細資訊頁面。 計算例項:單擊您建立的例項。
複製例項的公有 IP 位址。
通過SSH方式登入例項。 使用您自己生成的金鑰或在例項建立步驟中提供的金鑰。 使用 Oracle Linux 作業系統的例項的預設使用者名稱是 OPC。 要在 OCI 上安裝 GraalVM 和 Git,請執行以下命令:
安裝後,可以在 usr lib64 GraalVM 目錄中找到 GraalVM。 GraalVM 包含乙個 JDK,預設情況下,它將 J**A 頂級 JIT 編譯器替換為 GraALVM 編譯器。 新的和創新的GraALVM編譯器可以提高現有JVM應用程式的效能。 安裝 GraalVM 後,j**a 執行時就可以在您的系統上使用,您可以使用以下命令檢查版本。
作為現有 J**A 應用程式的示例,我們可以執行 Spring Petclinic 示例應用程式,該應用程式是使用 Spring Boot 構建的。 轉殖儲存庫以開始使用。
2.生成並執行應用程式。
首次執行應用程式時,將具有依賴項。 **可能需要幾分鐘才能完成。 應看到類似於以下示例的輸出:2021-03-05 18:11:28447 info 3704 --main] o.s.s.petclinic.petclinicapplication : no active profile set, falling back to default profiles: default2021-03-05 18:11:31.531 info 3704 --main] .s.d.r.c.repositoryconfigurationdelegate : bootstrapping spring data jpa repositories in default mode.2021-03-05 18:11:31.697 info 3704 --main] .s.d.r.c.repositoryconfigurationdelegate : finished spring data repository scanning in 144 ms. found 4 jpa repository interfaces.2021-03-05 18:11:33.436 info 3704 --main] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat initialized with port(s): 8080 (http)2021-03-05 18:11:33.720 info 3704 --main] o.a.c.c.c.[tomcat].[localhost].[/] :initializing spring embedded webapplicationcontext2021-03-05 18:11:33.721 info 3704 --main] w.s.c.servletwebserverapplicationcontext : root webapplicationcontext: initialization completed in 5133 ms2021-03-05 18:11:34.797 info 3704 --main] o.hibernate.jpa.internal.util.loghelper : hhh000204: processing persistenceunitinfo [name: default]2021-03-05 18:11:34.902 info 3704 --main] org.hibernate.version : hhh000412: hibernate orm core version 5.4.28.final2021-03-05 18:11:34.983 info 3704 --main] o.hibernate.annotations.common.version : hcann000001: hibernate commons annotations 2021-03-05 18:11:35.266 info 3704 --main] org.hibernate.dialect.dialect : hhh000400: using dialect: org.hibernate.dialect.mysqldialect2021-03-05 18:11:36.838 info 3704 --main] o.h.tuple.entity.entitymetamodel : hhh000157: lazy property fetching **ailable for: org.springframework.samples.petclinic.owner.owner2021-03-05 18:11:37.094 info 3704 --main] o.h.e.t.j.p.i.jtaplatforminitiator : hhh000490: using jtaplatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.nojtaplatform]2021-03-05 18:11:37.112 info 3704 --main] j.localcontainerentitymanagerfactorybean : initialized jpa entitymanagerfactory for persistence unit 'default'2021-03-05 18:11:38.696 info 3704 --main] o.s.s.concurrent.threadpooltaskexecutor : initializing executorservice 'applicationtaskexecutor'2021-03-05 18:11:40.604 info 3704 --main] o.s.b.a.e.web.endpointlinksresolver : exposing 13 endpoint(s) beneath base path '/actuator'2021-03-05 18:11:40.758 info 3704 --main] o.s.b.w.embedded.tomcat.tomcatwebserver : tomcat started on port(s): 8080 (http) with context path ''2021-03-05 18:11:40.783 info 3704 --main] o.s.s.petclinic.petclinicapplication : started petclinicapplication in 13.846 seconds (jvm running for 14.906) 應用程式在大約 14 秒後啟動。正如你所看到的,GraalVM包括完整的JDK,可以作為現有JVM的直接替代品。 要了解有關 GraalVM 可用的優化標誌的更多資訊,請參閱此處的文件。 GraalVM 能夠從執行速度極快的 J**A 應用程式建立獨立的可執行二進位檔案。 GraalVM 對 j**a 的預編譯負責所有應用程式類、依賴項和執行時庫,並消除了 jvm 本身的開銷和占用空間。 但是,某些高階語言功能(如執行時和反射)需要額外的配置。 許多微服務 j**a 框架(如 Micronaut、Helidon 和 Quarkus)都支援立即建立原生映象。 1.首先,安裝本機映像工具。 這些軟體包在 OCI 的 yum 儲存庫中可用,但預設情況下不會安裝。
在本教程中,我們將使用 micronaut 構建應用程式,因為 micronaut 使用依賴項注入和面向切片的執行時,而不是反射。 2.在 micronaut 中使用以下命令IO 啟動,要開始使用,請執行以下操作:
3.執行應用,檢視在 JVM 上啟動需要多長時間:
應看到類似於以下示例的輸出:You should see an output similar to the following example:
該應用程式在 755 毫秒內啟動,這令人印象深刻。 4.現在,構建應用程式的本機映像並比較啟動時間:
構建原生映象大約需要 5 分鐘。 構建完成後,本機映像將放置在目標目錄中,並以專案命名。 5.執行本機映像。
應看到類似於以下示例的輸出:You should see an output similar to the following example:
原生映象的啟動速度可以提高 40 倍以上,只需 18 毫秒。 最重要的是,無論您的應用程式多麼簡單或複雜,GraALVM 原生映像都能立即提公升效能。 Oracle 雲基礎設施結合最新的基於 ARM 的計算和 GraALVM 企業版,為構建和擴充套件企業負載提供了無與倫比的平台。 作為 Oracle 優秀合作夥伴,Agilewing 徹底改變了使用者體驗 Oracle 雲服務的方式。 Agilewing提供簡化的開戶流程和一流的技術支援,讓使用者無需繁瑣的開戶流程,以及複雜的操作。 一站式服務,快速完成雲服務的開通和開通,輕鬆獲取Oracle雲的各項服務。 AgileWing 的 AgileCDN 整合 CDN 服務與 OCI 雲基礎服務完美結合,為業務國際化提供全球內容加速解決方案。 客戶可以通過全球 2,800 多個 POP 節點和 7,000 多個直連點享受網路效率和穩定性。 這意味著無論您的企業位於世界的哪個地方,Agilewing都能確保其高效執行。 Agilewing 利用 Oracle 雲的優勢來構建雲服務、遷移雲並將業務擴充套件到海外,無需自行研究和探索 Oracle 雲服務的複雜過程。 這種合作模式為客戶提供了經濟高效的解決方案,使他們能夠專注於核心業務,同時享受 Oracle 雲的高效能和安全性。 Oracle 雲服務是乙個充滿潛力的領域,它具有高效能、安全性和全球一致的服務標準,可提供無限可能。 借助 Agilewing 的專業服務,使用者和企業都可以輕鬆進入這個新世界,並充分利用 Oracle 雲的所有優勢。 立即使用 Agilewing 開啟您的 Oracle 雲服務之旅,探索創新和效能的新時代。