AWS 新世代架站概念分享

上週有幸參加講座,本篇文章大致上以當天聽到且記錄下來的筆記分享為主

參考資料 :https://www.slideshare.net/LaravelDojo/effective-cloud-native-design-with-php-on-aws/

https://www.facebook.com/permalink.php?story_fbid=10156328298660469&id=660510468&hc_location=ufi

A. 概念 :

新世代架站盡可能地簡單、抽象、height level,把硬體、作業系統、伺服器等較為低階的概念全部抽象畫,盡可能專注在自己的程式碼邏輯開發上

B. 工具 :

  1. openResty : 抽象層認證,由nginx開發,通常介於load balance之下,php伺服器之上,且可以直接存取radis當作reverse proxy使用,降低主要伺服器負擔
  2. Container : 抽象容器,輕量化的VM,可撇除OS層級問題只要開發的Container與正式服務的Container相同就不會有問題,容器化後將會focus在服務之間如何溝通
  3. PHP + Nginx 以及 PHP + Caddy(go語言寫的) 都可以找到docker image

C. 多個container如何管理

(如何跑一堆的docker? 總不能一個一個docker run ==> Container Orchestration)

  1. AWS ECS , Google Kubernetes, Amazon EKS, AWS Fragate mode
  2. Fragate CLI : 提供命令介面直接跑起Nginx或其他container
  3. Amazon API getway : 是一個空殼網址,其他可以自行定義,可以防止ddos等攻擊,也可做service intergation,也可以直接將運算服務放在公司伺服器由API gateway呼叫
  4. AWS Lambda : 10毫秒內啟動的計算服務,收費只收有運算的時間,11月更新將加入PHP等其他語言

D. 總結 :

代碼越少越好

抽象主機 作業系統 等等會分心的東西,專注寫好核心代碼

打造Even-driven服務(用Lambda function)

Be a builder, not a coder

AWS