什么是ACI?
簡單講就是Azure上托管的容器PaaS平臺,在Azure上您可以直接運(yùn)行容器.ACI具有以下的優(yōu)勢:
1、無需管理服務(wù)器,即可運(yùn)行容器.
2、使用單個命令即可按需部署容器,增強(qiáng)了容器的靈敏性.
3、與Azure Kubernetes Service集成,應(yīng)對臨時負(fù)載,實現(xiàn)彈性并發(fā).
好處一大堆,能不能快速體驗一下?讓我們搭建一個基于Nginx-rtmp的直播服務(wù)器,體會一下當(dāng)主播的感覺吧.
搭建Nginx-rtmp直播服務(wù)器需要多久?不同的方法時間差異非常大!
選擇1:全部手工的方法,虛擬機(jī)創(chuàng)建,安裝nginx-rtmp,ffmpeg,配置Nginx等.耗時3小時.(石器時代的方法,云時代基本沒人這么干了.)
選擇2:容器化的方法,虛擬機(jī)創(chuàng)建(包含容器運(yùn)行環(huán)境),docker run已經(jīng)打包好的容器鏡像.耗時10分鐘.(現(xiàn)代化的方式,可以利用Docker Hub上的豐富資源,提升效率)
選擇3:基礎(chǔ)架構(gòu)即代碼的方法,使用Azure ARM模板.耗時5分鐘.(Azure推薦的方式,可以充分利用開源的模板)
選擇4:ACI的方法,執(zhí)行一條命令.耗時30秒.
好學(xué)的小伙伴可以跟著筆者體驗一下直播三部曲.
第一步:創(chuàng)建直播服務(wù)器
(注意:您需要有azure cli命令行工具.
安裝地址:https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-windows?view=azure-cli-latest
設(shè)置Azure中國區(qū):az cloud set–-name AzureChinaCloud
登錄Azure:az login)
az container create--resource-group BackendServices
--name mycontainer
--image chxacrn2.azurecr.cn/samples/nginx-rtmp
--dns-name-label chx-demo
--ports 1935 8080
--registry-login-server chxacrn2.azurecr.cn
--registry-password[0NP[ryDU _vFp0BVsYv6UkvSWkOZgK3
--registry-username 99a81ec2-205e-42de-8514-a43eb454e79a
--cpu 2
--resource-group,資源組名稱,創(chuàng)建新的或者填寫已有的資源組名稱,資源組位于東2區(qū).
--name,容器名稱,自定義即可.
--image,nginx-rtmp容器,筆者將Docker hub上的鏡像復(fù)制到了Azure上面的私有容器鏡像庫.
--dns-name-label,ACI容器公網(wǎng)DNS名,需要全局唯一,所以要命名的復(fù)雜一些,避免沖突.
--ports,對外開放的端口,1935 RTMP推流端口,8080 HLS端口.
--registry-login-server,筆者的ACR容器注冊表.
--registry-username,--registry-password用戶名和密碼,用于從ACR拉取鏡像.
--cpu,CPU個數(shù),默認(rèn)是1.
執(zhí)行上述的命令后,從輸出結(jié)果中找到fqdn的名稱,如下圖.
這樣一個Nginx-rtmp的直播服務(wù)器就搭建好了,是不是極致的簡單?!
接下來測試一下,首先記住下面兩個重要的地址.
RTMP推流地址:
rtmp://chx-demo.chinaeast2.azurecontainer.console.azure.cn:1935/stream/{streamname}
HLS播放地址:
https://chx-demo.chinaeast2.azurecontainer.console.azure.cn:8080/live/{streamname}.m3u8
第二步:設(shè)置直播推流工具
下載開源的OBS Studio(https://obsproject.com/),作為直播推流工具.
添加”視頻捕獲設(shè)備”,把筆記本攝像頭作為直播輸入.然后點擊”設(shè)置”à”推流”.
服務(wù)器:填寫上面的推流地址.
串流秘鑰:填寫{streamname},本例為havefun.
點擊“開始推流”,開始直播,Showtime!
第三步:觀看直播
使用Edge瀏覽器打開M3U8在線播放工具(https://www.m3u8player.org/)輸入
https://chx-demo.chinaeast2.azurecontainer.console.azure.cn:8080/live/havefun.m3u8,點擊”播放”.不出意外地話,就會看到英俊瀟灑的自己了
筆者使用的Dockerfile源代碼在Github上面,參見https://github.com/alfg/docker-nginx-rtmp.您可以在此基礎(chǔ)上創(chuàng)建自己的容器鏡像,并存放于Azure容器注冊表.
您體驗了極速直播后,再回顧一下ACI的優(yōu)勢,是不是有了更深的體會呢?利用ACI,30秒內(nèi)可以做很多的事情了.
參考文檔:
ACI:
https://docs.microsoft.com/en-us/azure/container-instances/
ACR:
https://docs.microsoft.com/en-us/azure/container-registry/