AWS 的產品邏輯:組合

OOP編程中有一個經驗:prefer composition to inheritance. 組合優於繼承。在工作的幾年裡一直接觸AWS的雲服務,涉及了很多AWS的服務產品。在歐美,Amazon Web Service(AWS)是雲服務提供商三巨頭之一,每當有新產品發布的時候,筆者注意到一個新產品的發布和迭代,都是建立在先前產品的基礎上,初看一下,覺得這個產品和以前某個服務很相似,比如,SQS和Kinesis,都是關於Messaging的產品,但是細分的功能不同,用例也不同。今天梳理一下AWS的發布產品時間線(不完全統計):

2006: 發布S3。面向對象的存儲。

2006: 發布Simple Queue Service。消息隊列服務。

2006: 發布EC2。這是整個AWS計算能力的硬體基礎。

---- 2006 是AWS雲服務打下基礎的元年 ---

2007: 發布SimpleDB: 在EC2S3的基礎上。提供NoSQL的數據查詢,簡單索引查詢。由於S3的產品定位是對象存儲,而SimpleDB則是提供了更加細緻的存儲粒度,可以對一個對象的任何一個attribute建立索引。在官方的文檔中,其指明了SimpleDB就是為了充分結合EC2的計算能力和S3的存儲基礎,來提供更加方便,快速的存儲方式。

2008: 發布EBS基於EC2,提供彈性塊存儲,SSD或HHD。提供多樣的存儲物理方式。更加強調了IO性能。

2009: 發布Elasic MapReduce: 在EC2的基礎上,提供MR的框架,數據可以直接存儲在S3或其他AWS的資料庫服務里。

2009: 發布Auto-Scaling: 動態的調節EC2的數量

2009: 發布RDS: 架設Full featured關係型數據產品,在EC2的基礎

2010: 發布SNS: SMS,Email等通知的推送,訂閱。推送的本質就是消息的傳遞,有什麼現成的消息傳遞工具?就是SQS。

2011: 發布Elastic Beanstalk: 使得在AWS部署代碼更加方便

2011: 發布SES:Simple Email Service,注意和SNS的區別。

2012: 發布DynamoDB

2012: 發布Glacier:用於文件的長期存儲,更加廉價。

2013: 發布Kinesis:實時數據流的處理。

2014: 發布EC2 Container Service

2014: 發布Lambda

2015: 發布IoT

2016: 發布Elastic File System: 企業級的文件系統,為EC2提供另一種存儲服務。

閱讀AWS的產品手冊,通篇出現最多的字眼就是:Availability,Durability,Maintainability,Scalable,Managed。這些特點(也是賣點)是每一個AWS服務所具備的,這跟AWS底層的架構有關,AWS也正是將這些特點充分發揮,組合出了許多產品線。

從這條時間線上來看,AWS雲服務的三大基石:「存儲,計算,消息傳遞」在2006就已經確立,隨後發布的大多數產品,都是在這三大基礎的組合之後的擴展細分差異化。

有時候我甚至在想,產品經理覺得開始想一個新產品的概念:然後Brainstorm:

  • 如何讓用戶部署?我有Beanstalk。
  • 如果用戶壓根兒就不想部署嘞?我有Lambda。
  • 用戶在哪裡跑代碼?我有EC2。不想用?我有Container Service.
  • 用戶在哪裡存結果?我有S3,EBS,Glacier, RDS
  • 如何監控?我有Cloudwatch
  • 如何傳遞連接其他內部AWS的服務?我有SQS,Kinesis

如此看來,Amazon的產品經理們,還是很懂得1+1>2的玩法。更何況自家的現有的N個產品,內部拿來就用。在早年的一篇文章STEVEY對AMAZON和GOOGLE平台的吐槽中,可以看出早在2002年,service orientated這個概念就已經在其內部各個部門開始協作。

看起來很熟悉?嗯,最近Microservice的架構很火。

PS: Amazon從未透露出任何服務的底層實現細節,以上所說都是基於我個人使用經驗的推測.


推薦閱讀:

無意中被亞馬遜AWS扣費怎麼辦啊?
(1 條消息)亞馬遜多個子賬號在同一個地方登陸是否會關聯?
(1 條消息)國內有哪些初創公司在用 Amazon 的雲計算服務?
Windows Azure 為何比國內其他雲服務貴這麼多?
AWS 是否能支持負載均衡?

TAG:AmazonWebServicesAWS | 產品經理 | 互聯網 |