日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

PHP構建并部署到ECS

一、背景

如果你

1.使用PHP進行開發

2.需要將源碼部署到ECS

那么本文檔可以幫助您實現研發流程的協同自動化。

二、用戶訴求

一般來說,用戶使用主機部署場景如下:

1.對源代碼進行一定的質量檢測,比如單元測試,代碼掃描

2.將源代碼構建成為可交付的制品,比如Jar/War,如果是PHP語言則不需要這一步

3.對制品進行測試環境驗證

4.使用完成驗證的制品進行線上部署

上述活動需要有不同角色的參與:開發、測試、運維。如何保證不同參與者可以使用統一的交付流程來進行協作,是云效Flow交付流水線要解決的主要問題。

三、云效解決方案

結合云效持續交付流水線和主機部署的能力,為應用持續交付提供了很好的基礎保障,如圖:

31

開發者提交代碼變更到代碼庫,云效在監聽著代碼庫的變動,一旦代碼發生變化,將自動觸發云效持續部署流水線一次構建任務的運行,包括代碼檢查、構建、測試部署、測試驗證和生產部署等過程。以PHP語言為例,在單元測試等檢查通過后,在部署階段(測試環境的部署和生產環境的部署)可以獲取當前的代碼庫信息和commit id,將代碼同步到不同環境的主機資源中,完成發布。這里資源可以是阿里云或者自建主機資源。

四、云效操作實踐

1、創建流水線

  • 進入云效,點擊頁面左上角的dock,選擇流水線進入Flow:

說明

立即體驗:云效流水線Flow

411
  • 點擊右上角【新建流水線】,進入流水線創建向導頁面。

412
  • 選擇相應模板,并點擊創建

413

2、配置代碼庫

創建流水線之后會自動彈出添加代碼源的窗口,這里選擇Flow提供的示例代碼源,并進行添加PHP示例代碼庫

421

3、配置部署任務

  • 接下來配置主機部署任務。先選擇制品,選擇獲取git版本階段輸出的制品。為了配置主機組,需要先創建一個,點擊”新建主機組”。

431
  • 選擇”阿里云ECS“,點擊”新建服務授權”,跳轉到阿里云,完成RAM授權,然后會自動跳回到Flow。此時再選擇相應的地區,并選擇需要部署的ECS,點擊下一步,填寫主機組名稱,然后點擊保存,完成主機組創建。新建的主機組會自動填入到流水線配置中。

432433434435436

選擇好服務以后,需要對服務器進行php運行環境的配置,登錄服務器以后,需要執行以下命令:

yum install git;
yum install php php-mysql php-fpm php-mbstring php-gd php-pear php-mhash php-eaccelerator  php-cli php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mssql php-snmp php-soap php-tidy php-common php-devel php-pecl-xdebug phpmyadmin php-mcrypt -y;
yum install httpd;
systemctl restart httpd;
  • 接下來進行部署腳本的配置:

a.下載路徑:由于PHP語言可以直接通過git clone或者git checkout的方式來直接更新源碼,所以下載路徑可以為空

b.執行用戶:希望以是哪個用戶的身份進行腳本執行,本例的值為:root

c.部署腳本:在機器上執行腳本的具體內容,本例的值為:

if [ ! -d "/var/www/html/php-demo" ]; then
  git clone https://atomgit.com/flow-example/php-laravel-blog.git /var/www/html/php-demo;
fi  

cd /var/www/html/php-demo;
git checkout ${COMMIT_ID};  
438
  • 部署策略配置

a.暫停方式:希望一個主機組中的機器以什么樣的暫停方式進行,比如第一批暫停,每批暫停,或者不暫停。推薦使用第一批暫停,在發布完第一批之后,對線上服務進行觀察,如果沒有異常,則可以繼續其余批的發布

b.分批數量:希望主機組中的機器分為幾批進行發布。比如一共4臺機器,分兩批,則每批同時發布2臺機器。

4、添加人工卡點

為了保證經過審批的制品才能進入部署環境,需要添加一個人工卡點,這里假設這個環境是測試環境,需要有測試管理員來審批才能進入。

首選需要在企業中創建一個角色”測試管理員“,并將企業用戶”yanmei”的角色設置為該角色。

441442443

然后回到流水線繼續進行配置,在主機部署前面添加一個任務,搜索”人工卡點“,并按照角色進行配置:

444445

以上演示了如何添加一個進入測試環境的卡點,添加生產環境的卡點也是類似的,這里不再贅述,可以類似的進行配置。

5、運行流水線

配置完畢,點擊”保存并運行”觸發流水線:

451452

掃描、單測及構建上傳的任務自動完成,并停在了卡點上:

453

普通人員無權限通過,切換到延枚的賬號之后,可以通過或者拒絕:

454

點擊”驗證通過“,流水線會進入主機部署的任務,點擊”部署詳情”可以看到更多部署信息:

455

點擊查看日志,可以看到執行的日志詳情:

456

日志顯示部署成功,此時訪問該主機的公網接口可以看到服務已經可以正常訪問了:

$ curl http://39.97.XXX.XX/php-demo/public/index.php

6、回滾

如果發布完成之后發現線上服務有問題,則需要快速回滾。云效Flow提供了通過歷史版本直接進行回滾的能力。

在流水線運行頁面點擊”部署歷史“,然后選擇相應的部署任務,便可以看到該部署任務所有的成功部署記錄

461

點擊版本3的”回滾“,即可回滾到該版本

462463

7、通知

為了更好的進行協作,Flow提供了通知能力在流水線不同的生命周期節點上進行通知。一般來講開發團隊會關心部署的成功和失敗,那么可以將該事件推送到團隊的釘釘群中,配置方式如下,點擊”添加插件”,選擇釘釘機器人通知,填入webhook地址,運行時機選擇”失敗“,”成功”

471

再次運行之后,就會收到相應的通知:

472

五、結語

通過 Flow 流水線可以輕松實現PHP語言從代碼到上線的整個流程。如果你對其他語言感興趣,可以查看其他文檔。