國人在表述“大材小用”這個場景時,總喜歡用一些實物來類比,比如:高射炮打蚊子。
英國QF 3.7英寸(94mm)高射炮,戰鬥全重超過9.3噸,全長近5米,最大射程約18公裡,最大射高超過9000米,炮彈重量12.7公斤,采用人工半自動裝填,射速每分鐘20發,炮班人數為7人。由英國維克斯公司研發,于上個世紀30年代第二次世界大戰期間開始大量裝備。
相傳女娲補天後留下四顆奇石,千百年後其中之"黑寒"由拜劍山莊獲得,其時。當時火麒麟四處為禍,于是拜劍山莊緻力于研究研究如何将"黑寒"制成一把至寒寶劍,用來克制至熱的火麒麟。
在完成鑄劍的最後步驟,将三毒之血"貪"(劍貪之血), “瞋”(步驚雲之血), “癡”(斷浪之血)融入劍爐中,絕世好劍終于問世。在《風雲》第一部中,步驚雲掌持此劍同雄霸,絕無神等一流高手PK.
Jerry從小也是個《風雲》迷,至今還會時不時把馬榮成這部大作拿出來翻翻。某寶上賣的鋅合金1:1仿制的絕世好劍标價太貴了,Jerry買不起,隻買得起下面這個比例的:
圖檔裡另一件,就是第一部裡和絕世好劍齊名,人稱“南山巅上火麟烈,北海淺深雪飲寒”的神兵:雪印狂刀。
Jerry還有一個真家夥:捕神用的小龍泉,在不夜坊阻止步驚雲報仇一役中,誓死阻止步驚雲,用此劍(準确地說應該是匕首),與其一拼高下,後被步驚雲擊殺。
小龍泉,全長48cm左右 , 柄長10cm , 刃長30cm ,刃寬3.3cm , 刃厚:0.8cm.
的确,同高射炮打蚊子,殺雞用絕世好劍一樣,雖然SAP Kyma也是基于Kubernetes,但如果僅僅把Kyma當成一個普通的Kubernetes叢集使用,可能連Kyma 1%的功能都沒有用上。
作為SAP C/4HANA産品線的擴充工具,Kyma之于C/4HANA的重要性,就如同SAP雲平台之于SAP的重要性,再怎麼強調也不過分。
既然SAP Kyma主要的用途是做C/4HANA的擴充,為什麼這篇文章還是要介紹如何在上面跑SAP UI5應用呢?
像程式員學習任何新技術總是喜歡從最簡單的Hello World開始,在SAP Kyma上運作UI5應用,就是我們一步步從舒适區邁向學習區,熟悉Kyma操作方法的最佳手段之一。
在開始之前,您也許需要溫習一下Jerry之前介紹過的内容:
站在巨人肩膀上的牛頓:Kubernetes和SAP Kyma
在Kubernetes上運作SAP UI5應用-上
在Kubernetes上運作SAP UI5應用-下
基于SAP Kyma的訂單編排增強介紹
什麼?在SAP中國研究院裡還需要會PHP開發?
下面跟着Jerry一起一步步在Kyma上運作一個UI5應用。
作為一個前提條件,您得有一個在本地正常運作的UI5應用,然後将其同某個Web伺服器比如Nginx一起打成一個Docker鏡像。
Jerry在之前的公衆号文章 在Kubernetes上運作SAP UI5應用(上)已經介紹過制作Docker鏡像的詳細方法。
Jerry已經把包含了測試用的UI5應用的鏡像上傳到了Docker hub網站上,名稱為i042416 / ui5-nginx:
https://hub.docker.com/(1) 進入Kyma的控制台,下載下傳config檔案到本地。
這個檔案拿來做什麼的?回憶下Kyma的架構圖,Jerry強調過,Kyma底層是基于Kubernetes的:
而作為Kubernetes的使用者,我們要麼用Kubernetes的工作台cockpit,要麼用指令行工具同Kubernetes叢集的主節點互動,就好比我們用SAP雲平台的cockpit或者cf指令行工具同SAP Cloud Platform的CloudFoundry環境互動一樣。
我們用cf login登入SAP Cloud Platform CloudFoundry環境時,要指定一個API endpoint,那麼使用指令行操作Kubernetes同樣,需要告訴指令行遠端的Kubernetes API server的連接配接資訊,這個資訊就維護在剛剛從Kyma控制台裡下載下傳的config檔案裡。
打開這個config檔案,發現裡面确實維護了Kubernetes API伺服器的位址,以及下載下傳config檔案的使用者名和OAuth 2.0的Bearer token. 有了這個token,每次我們用Kubernetes指令行工具執行指令操作Kubernetes主節點時,實際上是向這個config檔案裡維護的API server發起Restful的請求。通過這個OAuth 2.0的Bearer token進行認證,我們免去了每次敲指令都得輸入使用者名和密碼的麻煩。
搜尋引擎上搜尋關鍵字“kubectl”,下載下傳這個指令行工具到本地,在使用者檔案夾下建立一個.kube檔案夾,把配置檔案放進去。
執行指令行kubectl cluster-info, 如果看到下列列印資訊,說明本地kubectl已經成功同API server建立通信連接配接了。
(2) 在Kyma上運作這個Docker鏡像:
kubectl run jerry-kyma-ui5 --image=i042416/ui5-nginx:v2.0
在預設的namespace下面成功建立了一個pod,狀态為Running:
同時建立了一個指令行指定的名為jerry-kyma-ui5的deployment:
這個pod和deployment也能在Kyma web控制台裡看見:
把這個deploymen以service的方式暴露出來:
kubectl expose deployment jerry-kyma-ui5 --type=LoadBalancer --port=80 --target-port=80
通過kubectl get service拿到這個服務的External-IP,即外部可以通路的位址:
浏覽器裡輸入IP位址,這個部署在SAP Kyma上的UI5應用就呈現在我們眼前了。
更多SAP Kyma的實戰分享,敬請期待。
更多閱讀