日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
PHP遇見Serverless,幫你解決這些痛點(diǎn)!

php 的應(yīng)用范圍相當(dāng)廣泛,尤其是在網(wǎng)頁程序的開發(fā)上, 根據(jù)最新 維基百科 顯示,2013年4月的統(tǒng)計(jì)資料,PHP已經(jīng)被安裝在超過2億4400萬個(gè)網(wǎng)站和210萬臺服務(wù)器上, 而根據(jù) W3Techs 的報(bào)告,截至2021年9月, 有78.9%的網(wǎng)站使用PHP。 所以 PHP 是世界第一語言至少在 web 開發(fā)領(lǐng)域并不是戲稱。

金壇網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,金壇網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為金壇1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的金壇做網(wǎng)站的公司定做!

而在技術(shù)選型上, PHP 主要采用的是 LAMP(全稱是linux + apache + mysql + php) 或者 LNMP(全稱是Linux + nginx + mysql + php), 這種成熟穩(wěn)定的技術(shù)框架推動(dòng) PHP web 開發(fā)生態(tài)的繁榮和商業(yè)上的成功。

在傳統(tǒng)的開發(fā)模式中, 開發(fā)者自己需要安裝維護(hù)各種軟件的安裝、維護(hù)升級:

  • 如果您是一個(gè)企業(yè)用戶, 如果業(yè)務(wù)體量變大或者為了生產(chǎn)環(huán)境的穩(wěn)定和可用性, 使用負(fù)載均衡是一個(gè)必然的選項(xiàng):

即此時(shí), PHP 開發(fā)者或者線上運(yùn)維的同學(xué)關(guān)心的事情多了起來:

  • 每個(gè)增加的生產(chǎn)機(jī)器都需要重新安裝一遍相關(guān)軟件, 做相同的 nginx 配置以及 php-fpm 的配置, 以及維護(hù)每個(gè)生產(chǎn)機(jī)器的安全更新

  • 假如開發(fā)的應(yīng)用需要一個(gè)新的擴(kuò)展, 可能需要人肉每臺機(jī)器去增加擴(kuò)展

  • 負(fù)載均衡器隨著業(yè)務(wù)的變更升配, 后面一臺 Worker 機(jī)器掛掉了, 如何做運(yùn)維處理

  • 業(yè)務(wù)的波峰波谷怎么應(yīng)對才能讓資源的利用率提高

  • ...

  • 如果您是項(xiàng)目組開發(fā)成員比較多的企業(yè)用戶,能不能不需要給每個(gè)開發(fā)配置一個(gè)安裝的 NLP 的 Linux 機(jī)器作為開發(fā)測試機(jī)器(或者多人共享一個(gè)機(jī)器)?

  • 如果您是一個(gè)提供網(wǎng)站開發(fā)和托管的 ISV 、外包公司或者創(chuàng)業(yè)公司, 我的客戶都是一些中小企業(yè)的門戶網(wǎng)站, 我怎么提高我后端機(jī)器資源利用率以及更好提供定制化服務(wù)?

  • 如果您是一個(gè)學(xué)生或者準(zhǔn)備學(xué)習(xí) PHP 開發(fā),本地只有 Windows 電腦, 能不能直接近乎免費(fèi)的方式獲取 LNP(Linux+Nginx+PHP) 的環(huán)境用來學(xué)習(xí)呢?

  • ...

帶著這些問題, 我們?nèi)ヌ剿饕幌?Serverless 是如何解決這些痛點(diǎn)的。

PHP 遇見 Serverless

什么是 Serverless?

Serverless = Faas (Function as a service) + Baas (Backend as a service), 我們簡單通過兩個(gè)圖快速了解相關(guān)概念:

  • 傳統(tǒng)模式

  • Serverless 模式

圖中的 CDN 和 OSS 就是 BaaS 服務(wù),F(xiàn)C 就是自定義函數(shù)邏輯的 FaaS 平臺, 通過這個(gè)對比, 我們能快速得到 FaaS 的特性和好處:

  • 只需要專注業(yè)務(wù)代碼開發(fā), 編寫對應(yīng)的邏輯即可

  • 極致彈性伸縮, 無需管理服務(wù)器

  • 按量付費(fèi),每次調(diào)用按毫秒計(jì)費(fèi)

  • ...

本文后續(xù)討論的 Serverless 主要指的是 FaaS, 如下示意圖, 幾行代碼編寫完畢, 保存到云廠商的 FaaS 平臺, 就完成了一個(gè)彈性高可用的 Web API。

PHP 遇見 Serverless

PHP 作為一個(gè)開發(fā)群體的很大的語言, 各大云廠商的 FaaS,比如阿里云的函數(shù)計(jì)算、AWS 的 Lambda (通過 Custom Runtime 間接支持)、 騰訊的 SCF 等都推出了對 PHP 語言的支持, phper 面對前端領(lǐng)域的 Serverless 技術(shù)革新實(shí)踐(感興趣的見本文最后的附錄), 應(yīng)該不遑多讓。以阿里云函數(shù)計(jì)算為例, 有很多 PHP 的開發(fā)者有了很多有趣的實(shí)踐:

  • 直接使用 gd 或者 ImageMagick 擴(kuò)展, 實(shí)現(xiàn)彈性高可用的圖片、水印等各種 CPU 密集型 API

  • 直接使用 ffmpeg + 性能型實(shí)例 + 異步有狀態(tài)調(diào)用完成視頻剪輯合成等音視頻處理業(yè)務(wù)

  • 使用 HTTP 觸發(fā)器實(shí)現(xiàn)的函數(shù), 埋點(diǎn)到廣告平臺, 快速實(shí)現(xiàn)高可用的買量業(yè)務(wù)

  • 直接將之前基于框架(如 ThinkPHP)實(shí)現(xiàn)的 WEB API 直接遷移到 FaaS 平臺,不用再擔(dān)心宕機(jī)和運(yùn)維問題了

  • ...

雖然 FaaS 很好地解決了 phper 如下問題:

  • 新業(yè)務(wù)或者開發(fā)新的 web API

  • 存量業(yè)務(wù)中, 有些 CPU 密集型或者彈性要求很高的 API 單獨(dú)抽離出來 FaaS 化

但是傳統(tǒng)的開發(fā)模式或者存量業(yè)務(wù),對開發(fā)者有一定的上手和改造成本,比如某 Faas 廠商 PHP Runtime 編程接口示例:

function handler($event, $context) {
     $eventObj = json_decode($event, $assoc = true);
    // do your thhings
     // ....
     return $eventObj['key'];
}

但是能不能更進(jìn)一步, 開發(fā)者不需要按照 FaaS 廠商的約定的函數(shù)入口能實(shí)現(xiàn)一個(gè)個(gè)的 API, 而是能直接將傳統(tǒng)運(yùn)行在 LAMP 或者 LNMP 的項(xiàng)目直接 FaaS 化?

答案是肯定的

阿里云函數(shù)計(jì)算的 Custom Runtime 以及直接基于 HTTP 協(xié)議的極簡編程模型走在了所有云廠商的前列。

函數(shù)計(jì)算啟動(dòng)Custom Runtime執(zhí)行環(huán)境時(shí),會默認(rèn)調(diào)用 bootstrap文件(或者您創(chuàng)建函數(shù)的時(shí)設(shè)置的 Args參數(shù))啟動(dòng)您自定義的 HTTP Server, 然后這個(gè)HTTP Server接管了函數(shù)計(jì)算系統(tǒng)的所有請求,即您所有的函數(shù)調(diào)用請求。

函數(shù)計(jì)算 Custom runtime 執(zhí)行環(huán)境底層系統(tǒng)是 Linux, 并且已經(jīng)內(nèi)置的 nginx/1.10.3 和 php-fpm7.4, 對于 PHP 應(yīng)用,您直接使用即可

以部署一個(gè) wordpress 項(xiàng)目 為例, 只需要將如下目錄直接打包成一個(gè) zip 包在函數(shù)計(jì)算平臺創(chuàng)建一個(gè)函數(shù)即可:

- bootstrap
- nginx.conf
- php-fpm.conf
- php.ini-production
- wordpress

其中 wordpress 目錄是對應(yīng)的 web 工程, bootstrap 是啟動(dòng) nginx 和 php-fpm 的腳本即可:

...
echo "start php-fpm"
php-fpm7.4 -c /code/php.ini-production -y /code/php-fpm.conf
echo "start nginx"
nginx -c /code/nginx.conf
...

bootstrap 詳情可參考 WordPress in FC

所以, 使用函數(shù)計(jì)算這個(gè) Serverless 產(chǎn)品和傳統(tǒng)的 PHP 開發(fā)相結(jié)合后, 您再也不用考慮負(fù)載均衡的事情, 不用考慮擴(kuò)縮容的事情, 不用管理機(jī)器、不用擔(dān)心宕機(jī)的事情等等, 只需要安安心心把業(yè)務(wù)代碼開發(fā)好即可。

從上圖可以看出:開發(fā)者只需要開發(fā)好自己的業(yè)務(wù)代碼即可,唯一需要考慮的事情, 就是函數(shù)計(jì)算這邊擴(kuò)容不要太多太猛(比如直接在函數(shù)計(jì)算平臺設(shè)置下該函數(shù)能彈出的最大實(shí)例數(shù)目即可), 給下游自己的 Mysql 數(shù)據(jù)庫過大的壓力即可。

當(dāng)然, 從原始的傳統(tǒng)的 php web 應(yīng)用完全遷移到 Serverless 形態(tài)的函數(shù)計(jì)算平臺, 某些場景可能需要考慮數(shù)據(jù)持久化問題, 因?yàn)楹瘮?shù)計(jì)算是無狀態(tài)的, 數(shù)據(jù)持久化保存可以借助 NAS、Redis 等服務(wù)完成,以 NAS 為例,流程圖如下:

以 WordPress 為例, 后臺系統(tǒng)上傳的圖片或者 Session 功能都是需要持久化到磁盤的。

  • 設(shè)置 web 工程的文件上傳目錄或者 session 目錄為 NAS 盤的某個(gè)目錄, NAS 盤實(shí)現(xiàn)持久化

  • 甚至可以將 web 工程直接放到 NAS 盤上, 此時(shí)函數(shù)計(jì)算純粹就是 LNP 執(zhí)行環(huán)境

比如將 wordpress 工程不作為函數(shù)的代碼包的一部分, 而已提前上傳到 NAS 盤, 只需要設(shè)置好 nginx.conf 中的 root 能知道 web 工程即可, 如上面的 nginx.conf, /mnt/auto 表示掛載的 NAS 目錄,mnt/auto/wordpress 則表示在 NAS 上的 web 工程。

此時(shí)對您來說, 函數(shù)再也不用變了, 您可能只是需要開發(fā)新的業(yè)務(wù)代碼, 然后上傳到 NAS 上即可(或者直接使用 git 直接在 NAS 操作,實(shí)現(xiàn) web 工程的版本和 git 上的 commit 綁定, 使用 git 實(shí)現(xiàn)代碼的快速升級和混滾)

但是從安全生產(chǎn)的角度來說, 還是建議您 web 工程變更最好和函數(shù)的變更相關(guān)聯(lián)

小結(jié)

從上面的討論和陳述中, 我們不難發(fā)現(xiàn), PHP 遇見 Serverless 是一件令人興奮的事情, 讓 phper 有了更大的想象空間。 Serverless 的理念和 PHP 這個(gè)語言出現(xiàn)的理念也是一致的: 即讓開發(fā)者最大精力集中在自己的業(yè)務(wù)價(jià)值。 PHP 語言一直是 web 領(lǐng)域最好的生產(chǎn)力代表, 而 Serverless 將會讓 PHP 如虎添翼。

我們最后來一一解答下前言中提出的問題:

如果您是一個(gè)企業(yè)用戶, 業(yè)務(wù)體量變大或者為了生產(chǎn)環(huán)境的穩(wěn)定和可用性, 如何做?

如上面陳述, 使用函數(shù)計(jì)算和傳統(tǒng)的 PHP 開發(fā)相結(jié)合后, 您再也不用考慮負(fù)載均衡的事情, 不用考慮擴(kuò)縮容的事情, 不用管理機(jī)器、擔(dān)心宕機(jī)的事情等等, 只需要安安心心把業(yè)務(wù)代碼開發(fā)好即可。

如果您是項(xiàng)目組開發(fā)成員比較多的企業(yè)用戶,能不能不需要給每個(gè)開發(fā)配置一個(gè)安裝的 NLP 的 Linux 機(jī)器作為開發(fā)測試機(jī)器(或者多人共享一個(gè)機(jī)器)?

是的, 每個(gè)開發(fā)者在函數(shù)計(jì)算上創(chuàng)建一個(gè)自己的 Service/函數(shù)即可, Service/函數(shù)配置開發(fā)測試環(huán)境的 VPC,實(shí)現(xiàn)內(nèi)網(wǎng)安全訪問數(shù)據(jù)庫等其他下游服務(wù)。 函數(shù)調(diào)用的時(shí)候, 函數(shù)計(jì)算會拉一個(gè) NLP 的執(zhí)行環(huán)境來運(yùn)行您分支上正在開發(fā)的 PHP 代碼。

  • 每個(gè)執(zhí)行環(huán)境是相互隔離的

  • 按調(diào)用次數(shù)計(jì)費(fèi), 不需要預(yù)留機(jī)器, 免除了機(jī)器成本上的浪費(fèi)

  • 也可以很方便進(jìn)行壓測等各種事宜

如果您是一個(gè)提供網(wǎng)站開發(fā)和托管的 ISV 、外包公司或者創(chuàng)業(yè)公司, 我的客戶都是一些中小企業(yè)的門戶網(wǎng)站, 我怎么提高我后端機(jī)器資源利用率以及更好提供定制化服務(wù)?

通常來說, 很多企業(yè)門戶網(wǎng)站訪問量不大, 但是網(wǎng)站掛掉了會引起客戶投訴。每個(gè)客戶的網(wǎng)站通過service 或者函數(shù)區(qū)分, 通過函數(shù)名或者service去區(qū)分您自己的客戶: i. 管理方便 ii. 做定制化方便 iii. 做不同vip等級服務(wù)方便。 舉個(gè)例子, 您可以快速通過某個(gè)函數(shù)的調(diào)用指標(biāo)情況, 可以看出哪個(gè)客戶的網(wǎng)站訪問量大,可以做出客戶畫像以及制定不同的收費(fèi)和 vip 服務(wù)級別。

如果您是一個(gè)學(xué)生或者準(zhǔn)備學(xué)習(xí) PHP 開發(fā),本地只有 Windows 電腦, 能不能直接近乎免費(fèi)的方式獲取 LNP(Linux+Nginx+PHP) 的環(huán)境用來學(xué)習(xí)呢?

是的, 只要將如下的文件和文件夾打包成 zip 包去函數(shù)計(jì)算控制臺創(chuàng)建函數(shù)即可

- bootstrap
- nginx.conf
- php-fpm.conf
- php.ini-production
- myweb
  | - hello.php

這里構(gòu)建了一個(gè)釘釘群: 31897696, 如果您對 PHP 落地 Serverless 感興趣,您有觀點(diǎn)、想法或者想吐槽的, 可以和大家一起交流。


網(wǎng)站欄目:PHP遇見Serverless,幫你解決這些痛點(diǎn)!
分享網(wǎng)址:http://www.5511xx.com/article/dhcdijh.html