AWS Lambda本身的架構和內部實現是怎樣的?

不知道這個問題會不會涉及Amazon的核心知識產權,Google了一下沒有找到相關的信息。

那麼這樣問:如果由你來設計,你會怎麼做一個像AWS Lambda一樣的架構,可以採用那些技術來實現?


在近期AWS發布的博文來看,AWS Lambda服務是基於容器實現的彈性計算集群,並且集成AWS已有的消息服務和計費服務。彈性計算集群是一個計算資源池,用戶程序啟動時根據伺服器的負載起不同的容器,類似於AWS的EC2服務和OpenStack的Nova服務,不過調度的從虛擬機改為容器。由於容器的啟動時間只有毫秒級,通過容器虛擬化帶來的overhead比虛擬機小,這樣才能實現AWS Lambda彈性調度與按秒計費的需求。

因為AWS Lambda只需要實現容器的創建、銷毀和調度,數據存儲使用外部的S3、RDS、DynamoDB等服務,所以基於LXC或Docker實現一個能夠自動調度容器的CaaS服務即可,除了AWS自研的容器調度系統,開源社區還可以考慮Kuberntes、Mesos和docker-swarm。

作為AWS的深度用戶和IaaS開發者,我基於開源的Docker和Swarm實現了lambda-docker,實現容器的調度並且支持比Lambda更豐富的運行環境,歡迎指教 tobegit3hub/lambda-docker: Event-driven code runtime like AWS Lambda service


推薦閱讀:

守弱的內涵和外延
自然,守弱和Plan B
知不知
Specification的寫法問題
找到道法自然的「度」

TAG:軟體架構 | AmazonWebServicesAWS | 系統架構 |