国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在Kubernetes上運(yùn)行SAP UI5應(yīng)用(上)

張紅新 / 1570人閱讀

摘要:在上海研究院的同事們?nèi)绻雲(yún)⒓舆@個(gè)內(nèi)部培訓(xùn),可以聯(lián)系同事。第三行命名執(zhí)行命令,生成新的鏡像文件。說(shuō)句題外話雖然今年月份被微軟收購(gòu)了,但是用戶體驗(yàn)一點(diǎn)也沒變,一如既往的優(yōu)秀。關(guān)于更多另類用法,請(qǐng)參閱的文章寫在被微軟收購(gòu)之際的那些另類用法。

2018年只剩最后30天了。Jerry在2017年的最后一天,曾經(jīng)立下一個(gè)目標(biāo):這個(gè)微信公眾號(hào)在2018年保證至少每周發(fā)布一篇SAP原創(chuàng)技術(shù)文章

從Jerry在后臺(tái)統(tǒng)計(jì)的2018全年文章數(shù)量來(lái)看,這個(gè)目標(biāo)已經(jīng)提前實(shí)現(xiàn)了。為了感謝大家的支持,在2018年的最后一天,Jerry會(huì)發(fā)布一個(gè)合集:《SAP成都研究院2018年XX篇原創(chuàng)文章合集》,包含了2018年全年SAP成都研究院的同事們發(fā)布過(guò)的文章。

Jerry在11月份中旬去SAP上海研究院參加了Kubernetes的內(nèi)部培訓(xùn)(詳情參考我的前一篇文章:站在巨人肩膀上的牛頓:Kubernetes和SAP Kyma)。在SAP上海研究院的同事們?nèi)绻雲(yún)⒓舆@個(gè)內(nèi)部培訓(xùn),可以聯(lián)系同事Yang Katie。

為了避免很快就把三位老師傳授的知識(shí)忘得精光,我得給自己找點(diǎn)練習(xí)來(lái)鞏固所學(xué)的東西。

Jerry 2014年底加入SAP CRM Fiori開發(fā)團(tuán)隊(duì)時(shí),我們開發(fā)的CRM Fiori應(yīng)用,還是部署在傳統(tǒng)的SAP Netweaver上的,詳情參考我的文章:SAP Fiori應(yīng)用的三種部署方式。

后來(lái),我陸續(xù)接觸了Salesforce的云平臺(tái)Heroku,也學(xué)著很多程序員一樣把自己的博客搭在github上,再后來(lái)接觸了SAP自己的云平臺(tái),自然而然地就會(huì)試著把SAP UI5部署到這些平臺(tái)上:

Step by step to host your UI5 application in?Heroku

Step by step to host your web application to?Github

Deploy your web application to?Cloud Foundry?which can access resource from On-Premise ABAP system

現(xiàn)在既然學(xué)了Kubernetes,那么就來(lái)試試將SAP UI5應(yīng)用運(yùn)行在Kubernetes上面吧。

我用來(lái)部署的UI5應(yīng)用名叫Jerry"s Service Order, 是一個(gè)典型的Master-Detail風(fēng)格的應(yīng)用,左邊Master List是所有服務(wù)訂單列表,選中任意一個(gè),在右邊的Detail頁(yè)面顯示選中的服務(wù)訂單的明細(xì)。

這個(gè)UI5應(yīng)用的外觀如上圖所示。為簡(jiǎn)單起見,所有顯示的數(shù)據(jù)都是從項(xiàng)目里的一個(gè)json文件讀取的,不支持新訂單的創(chuàng)建或修改。該應(yīng)用可以從我的github獲取:

https://github.com/i042416/je...

如本文標(biāo)題所示,這個(gè)練習(xí)的終極目標(biāo)就是讓該UI5應(yīng)用運(yùn)行于Kubernetes上,那么第一步就是先讓它運(yùn)行于容器里。和SAP Kubernetes內(nèi)部培訓(xùn)一樣,我選擇了Docker這個(gè)非常受歡迎的容器引擎作為這個(gè)Kubernetes練習(xí)的容器技術(shù)。

關(guān)于Docker的簡(jiǎn)介和安裝介紹,請(qǐng)參閱阮一峰大神的文章:Docker 入門教程

http://www.ruanyifeng.com/blo...

為什么我們要使用Docker容器?下面這段話摘自阮一峰的博客:

“Docker 屬于 Linux 容器的一種封裝,提供簡(jiǎn)單易用的容器使用接口。它是目前最流行的 Linux 容器解決方案。

Docker 將應(yīng)用程序與該程序的依賴,打包在一個(gè)文件里面。運(yùn)行這個(gè)文件,就會(huì)生成一個(gè)虛擬容器。程序在這個(gè)虛擬容器里運(yùn)行,就好像在真實(shí)的物理機(jī)上運(yùn)行一樣。有了 Docker,就不用擔(dān)心環(huán)境問(wèn)題。

總體來(lái)說(shuō),Docker 的接口相當(dāng)簡(jiǎn)單,用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器。容器還可以進(jìn)行版本管理、復(fù)制、分享、修改,就像管理普通的代碼一樣。”

Jerry梳理了一下將SAP UI5應(yīng)用運(yùn)行在Docker容器里的全過(guò)程,總共分三個(gè)步驟:

1. 讓UI5應(yīng)用運(yùn)行在本地容器內(nèi)

2. 將包含了UI5應(yīng)用的本地容器打成一個(gè)新鏡像

3. 將本地鏡像上傳到Docker hub,再下載測(cè)試

下面是詳細(xì)步驟。

1. 讓UI5應(yīng)用運(yùn)行在本地容器內(nèi)

如果僅僅只會(huì)跑Docker的Hello World(其實(shí)Jerry兩周前就是這個(gè)水平,囧),拿到這個(gè)需求,從什么地方入手?

當(dāng)然是從包含了能運(yùn)行UI5應(yīng)用的那些web服務(wù)器的鏡像入手,這里我選擇了Nginx鏡像,在Docker hub上有10.4k個(gè)stars。

用下面的命令直接運(yùn)行這個(gè)鏡像:

docker run -it nginx

docker ps拿到實(shí)例化的容器id:

然后進(jìn)入處于運(yùn)行狀態(tài)中的容器,執(zhí)行shell命令:

docker exec -it bbc5d48a761c /bin/sh

看到#提示符后,進(jìn)入容器內(nèi)部的目錄:/usr/share/nginx/html

如果我們能將github上的UI5應(yīng)用的文件想辦法拷貝到這個(gè)目錄下面,就達(dá)到了在本地Docker容器運(yùn)行UI5應(yīng)用的目的了。

有很多種辦法可以把github里的資源下載到Docker容器內(nèi)部這個(gè)指定的目錄下, 這里Jerry用一種我覺得最簡(jiǎn)單的方式,即通過(guò)Docker Volume技術(shù)將宿主機(jī)上的某個(gè)目錄A以Volume的方式掛接到容器內(nèi)部的html文件夾上,這樣我們直接把github倉(cāng)庫(kù)上的webapp文件夾下載到宿主機(jī)的文件夾A即可,這個(gè)文件夾會(huì)以Volume的形式自動(dòng)出現(xiàn)在容器內(nèi)部映射好的目錄內(nèi)。

docker run -d -p 1081:80 -v pwd/webapp:/usr/share/nginx/html/webapp –name jerry-custom nginx

使用參數(shù)-p 1081:80將Nginx服務(wù)通過(guò)端口1081暴露出來(lái),因此我這次要使用http://localhost:1081測(cè)試新啟動(dòng)的容器實(shí)例。

再次執(zhí)行docker exec進(jìn)入docker容器內(nèi)部,確保/usr/share/nginx/html文件夾下確實(shí)包含了期望看到的UI5應(yīng)用。

瀏覽器里輸入localhost:1081/webapp,確保UI5應(yīng)用能夠正常訪問(wèn),至此這個(gè)應(yīng)用已經(jīng)在本地docker容器里成功運(yùn)行起來(lái)了。

2. 將包含了UI5應(yīng)用的本地容器打成一個(gè)新鏡像

到目前為止這個(gè)本地docker實(shí)例是沒有辦法給其他人使用的,為此我們得先利用dockerfile制作一個(gè)包含了UI5應(yīng)用的docker鏡像,上傳到docker hub上,以便其他人下載。

隨便創(chuàng)建一個(gè)文件夾,比如jerry-build, 然后把webapp文件夾放進(jìn)去,再創(chuàng)建一個(gè)dockerfile文件,內(nèi)容就三行:

FROM nginx:stable?

COPY webapp/ /usr/share/nginx/html/webapp/?

RUN ls -la /usr/share/nginx/html/webapp*

這三個(gè)指令從語(yǔ)義上不難理解,第一行FROM命令告訴docker鏡像構(gòu)建例程使用nginx的stable版本作為基礎(chǔ)鏡像進(jìn)行新鏡像的構(gòu)建。第二行COPY命令負(fù)責(zé)把webapp文件夾下的所有UI5資源文件拷貝到nginx docker鏡像的對(duì)應(yīng)目錄內(nèi)。第三行RUN命名執(zhí)行shell命令ls,生成新的鏡像文件。

dockerfile的詳細(xì)語(yǔ)法請(qǐng)參考Docker 官方文檔:

https://docs.docker.com/engin...

執(zhí)行命令docker build ., 最后一個(gè).代表“當(dāng)前目錄”。

看到上圖"Successfully built(成功構(gòu)建)"的輸出信息后,我們加上參數(shù)-t jerry-nginx-image:1.0重新構(gòu)建一個(gè)名為jerry-nginx-image的鏡像:

成功構(gòu)建后,使用參數(shù)-p暴露一個(gè)新的端口1082:

docker run -d -p 1082:80 jerry-nginx-image:1.0

現(xiàn)在localhost:1082/webapp也能訪問(wèn)UI5應(yīng)用了。

使用docker images,?現(xiàn)在我們能看到這個(gè)構(gòu)建好的鏡像了,接下來(lái)我們會(huì)將其推送到Docker hub上。

3. 將本地鏡像上傳到Docker hub

Docker hub的使用方式幾乎和github完全一致。說(shuō)句題外話:雖然github今年6月份被微軟收購(gòu)了,但是用戶體驗(yàn)一點(diǎn)也沒變,一如既往的優(yōu)秀。

關(guān)于github更多另類用法,請(qǐng)參閱Jerry的文章:寫在Github被微軟收購(gòu)之際 - Github的那些另類用法。

首先在Docker hub上注冊(cè)一個(gè)帳號(hào):

創(chuàng)建一個(gè)新倉(cāng)庫(kù):

取名i042416/ui5-nginx:

新建好的空的倉(cāng)庫(kù)看起來(lái)是這樣的:

使用docker ps得到本地正在運(yùn)行的docker容器的ID:

使用commit命令提交這個(gè)本地容器的修改(類比git commit?):

docker commit 53de4188b702 i042416/ui5-nginx

現(xiàn)在準(zhǔn)備將這個(gè)本地提交過(guò)后的鏡像推送到Docker hub了。

執(zhí)行命令docker login:

在CloudFoundry上部署應(yīng)用的朋友們可以把docker login類比成cf login(下面是cf login的截圖):

最后一步就是用docker push將本地鏡像推送到Docker hub:

刷新Docker hub上新建的倉(cāng)庫(kù),能觀察到剛才的本地推送記錄和鏡像尺寸。

現(xiàn)在可以通知您的朋友,在其電腦上消費(fèi)這個(gè)鏡像了。當(dāng)然您也可以把自己電腦上的本地鏡像刪除,再使用docker run執(zhí)行。

在兩種情況下,由于本地鏡像檢索失敗,我們都將看到提示信息:Unable to find image ‘i042416/ui5-nginx:latest" locally, 然后觀察到遠(yuǎn)端鏡像的下載過(guò)程。

使用1080端口基于鏡像i042416/ui5-nginx啟動(dòng)一個(gè)新的容器:

localhost:1080/webapp能夠正常工作:

docker inspect命令證實(shí)了這個(gè)啟動(dòng)的容器確實(shí)是基于鏡像i042416/ui5-nginx的。

在這個(gè)主題的下半部分,我們將使用這個(gè)i042416/ui5-nginx鏡像,開始我們的Kubernetes之旅。敬請(qǐng)期待。

更多閱讀

寫在Github被微軟收購(gòu)之際 - Github的那些另類用法

SAP Fiori應(yīng)用的三種部署方式

站在巨人肩膀上的牛頓:Kubernetes和SAP Kyma

要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/32791.html

相關(guān)文章

  • Kubernetes運(yùn)行SAP UI5應(yīng)用(

    摘要:在上海研究院的同事們?nèi)绻雲(yún)⒓舆@個(gè)內(nèi)部培訓(xùn),可以聯(lián)系同事。第三行命名執(zhí)行命令,生成新的鏡像文件。說(shuō)句題外話雖然今年月份被微軟收購(gòu)了,但是用戶體驗(yàn)一點(diǎn)也沒變,一如既往的優(yōu)秀。關(guān)于更多另類用法,請(qǐng)參閱的文章寫在被微軟收購(gòu)之際的那些另類用法。 2018年只剩最后30天了。Jerry在2017年的最后一天,曾經(jīng)立下一個(gè)目標(biāo):這個(gè)微信公眾號(hào)在2018年保證至少每周發(fā)布一篇SAP原創(chuàng)技術(shù)文章。 從...

    acrazing 評(píng)論0 收藏0
  • Kubernetes運(yùn)行SAP UI5應(yīng)用(下): 一個(gè)例子體會(huì)Kubernetes內(nèi)容器的高可

    摘要:后面幾個(gè)狀態(tài)的字段都是,其中是節(jié)點(diǎn)上一個(gè)重要的模塊,負(fù)責(zé)維護(hù)和管理運(yùn)行于該節(jié)點(diǎn)上的所有容器,確保的運(yùn)行狀態(tài)與使用者期望一致。 上一篇文章?在Kubernetes上運(yùn)行SAP UI5應(yīng)用(上),我介紹了如何在Docker里運(yùn)行一個(gè)簡(jiǎn)單的SAP UI5應(yīng)用,并且已經(jīng)成功地將一個(gè)包含了這個(gè)UI5應(yīng)用的docker鏡像上傳到Docker hub上。 這篇文章作為這個(gè)主題的下半部分,將會(huì)介紹如何...

    KitorinZero 評(píng)論0 收藏0
  • Kubernetes運(yùn)行SAP UI5應(yīng)用(下): 一個(gè)例子體會(huì)Kubernetes內(nèi)容器的高可

    摘要:后面幾個(gè)狀態(tài)的字段都是,其中是節(jié)點(diǎn)上一個(gè)重要的模塊,負(fù)責(zé)維護(hù)和管理運(yùn)行于該節(jié)點(diǎn)上的所有容器,確保的運(yùn)行狀態(tài)與使用者期望一致。 上一篇文章?在Kubernetes上運(yùn)行SAP UI5應(yīng)用(上),我介紹了如何在Docker里運(yùn)行一個(gè)簡(jiǎn)單的SAP UI5應(yīng)用,并且已經(jīng)成功地將一個(gè)包含了這個(gè)UI5應(yīng)用的docker鏡像上傳到Docker hub上。 這篇文章作為這個(gè)主題的下半部分,將會(huì)介紹如何...

    SimpleTriangle 評(píng)論0 收藏0
  • Kubernetes運(yùn)行SAP UI5應(yīng)用(下): 一個(gè)例子體會(huì)Kubernetes內(nèi)容器的高可

    摘要:后面幾個(gè)狀態(tài)的字段都是,其中是節(jié)點(diǎn)上一個(gè)重要的模塊,負(fù)責(zé)維護(hù)和管理運(yùn)行于該節(jié)點(diǎn)上的所有容器,確保的運(yùn)行狀態(tài)與使用者期望一致。 上一篇文章?在Kubernetes上運(yùn)行SAP UI5應(yīng)用(上),我介紹了如何在Docker里運(yùn)行一個(gè)簡(jiǎn)單的SAP UI5應(yīng)用,并且已經(jīng)成功地將一個(gè)包含了這個(gè)UI5應(yīng)用的docker鏡像上傳到Docker hub上。 這篇文章作為這個(gè)主題的下半部分,將會(huì)介紹如何...

    ls0609 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<