精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

構建Serverless風格的微服務架構案例

開發 開發工具
Serverless風格的微服務會大大減少開發工作量以及基礎設施的開發維護工作量。那么,如何使用 AWS Gateway 和 AWS lambda 構建 Serverless 風格微服務呢?

一、一次微服務架構的奇遇

2016年12月初,當時我正在以一名 DevOps 咨詢師的身份參與某客戶的 DevOps 轉型項目。這個項目是提升該部門在 AWS (Amazon Web Services)云計算平臺上的 DevOps 能力。

自助服務的應用系統基于 Ruby on Rails 框架開發,前端部分采用 AngularJS 1.0,但是沒有采用前后端分離的設計,頁面代碼仍然是通過 ERB 組合而成。移動端則采用 Cordova 開發。為了降低開發難度和工作量, 移動端的應用內容實際上是把 AngularJS 所生成的 Web 頁面通過響應式樣式的方式嵌入到移動端。但因為經常超時,所以這款 APP 體驗并不好。

整套 Rails 應用部署在 AWS 上,并且通過網關和內部業務系統隔離。BOSS 系統采用 SOAP 對外暴露服務,并由另外一個部門負責。因此,云上的應用所做的業務是給用戶展現一個使用友好的界面,并通過數據的轉化和內部 BOSS 系統進行交互。系統架構如下圖所示:

系統架構如

應用的交互流程如下

  • 瀏覽器或者移動端通過域名(由 AWS Route 53托管)轉向 CDN(采用 AWS Cloudfront)。
  • CDN 根據請求的內容類別進行區分,靜態文件(圖片,JS,CSS 樣式等),會轉向 AWS S3 存儲。動態請求會直接發給負載均衡器 (AWS Elastic Load Balancer)。
  • 負載均衡器會根據各 EC2 計算實例的負載狀態將請求轉發到不同的實例上的 Ruby On Rails 應用上。每一個應用都是一個典型的 MVC Web 應用。
  • EC2 上的應用會將一部分數據存儲在關系型數據服務(AWS RDS,Relational Database Service)上,一部分存儲在本地文件里。經過應用的處理,轉換成 SOAP 請求通過 網關發送給 BOSS 系統處理。BOSS 系統處理完成后會返回對應的消息。

根據業務的需要,一部分數據會采用 AWS ElastiCache 的 Redis 服務作為緩存以優化業務響應速度。

二、團隊痛點

這個應用經歷了多年的開發,前后已經更換過很多技術人員。但是沒有人對這個應用代碼庫有完整的的認識。因此,我們對整個團隊和產品進行了一次痛點總結:

1. 組織結構方面

運維團隊成為瓶頸,60 個人左右的開發團隊只有 4 名 Ops 支持。運維團隊除了日常的事務以外,還要給開發團隊提供各種支持。很多資源的使用權限被限制在這個團隊里,就導致各種問題的解決進度進一步拖延。

[[223654]]

隨著業務的增長,需要基礎設施代碼庫提供各種各樣的能力。然而 Ops 團隊的任何更改都會導致所有的開發團隊停下手頭的進度去修復更新所帶來的各種問題。

2. 應用架構方面

應用架構并沒有達到前后端分離的效果,仍然需要同一個工程師編寫前后端代碼。這樣的技術棧對于對于開發人員的要求很高,然而市場上缺乏合適的 RoR 工程師,導致維護成本進一步上升。經過了三個月,仍然很難招聘到合適的工程師。

多個團隊在一個代碼庫上工作,新舊功能之間存在各種依賴點。加上 Ruby 的語言特性,使得代碼中存在很多隱含的依賴點和類/方法覆蓋,導致了開發進度緩慢。我們一共有 4 個團隊在一個代碼庫上工作,3個團隊在開發新的功能。1 個團隊需要修復 Bug 和清理技術債,這一切都要同時進行。

3. 技術債方面

代碼庫中有大量的重復 Cucumber 自動化測試,但是缺乏正確的并行測試策略,導致自動化測試會隨機失敗,持續集成服務器 (Jenkins)的 slave 節點本地難以創建,導致失敗原因更加難以查找。如果走運的話,從提交代碼到新的版本發布至少需要 45 分鐘。如果不走運的話,兩三天都無法完成一次成功的構建,真是依靠人品構建。

基礎設施即代碼(Infrastructure as Code)建立在一個混合的遺留的 Ruby 代碼庫上。這個代碼庫用來封裝一些類似于 Packer 和 AWS CLI 這樣的命令行工具,包含一些 CloudFormation 的轉化能力。由于缺乏長期的規劃和編碼規范,加之人員變動十分頻繁,使得代碼庫難以維護。

此外,基礎設施代碼庫作為一個 gem 和應用程序代碼庫耦合在一起,運維團隊有唯一的維護權限。因此很多基礎設施上的問題開發團隊無法解決,也不愿解決。

我參與過很多 Ruby 技術棧遺留系統的維護。在經歷了這些 Ruby 項目之后,我發現 Ruby 是一個開發起來很爽但是維護起來很痛苦的技術棧。大部分的維護更改是由于 Ruby 的版本 和 Gem 的版本更新導致的。此外,由于 Ruby 比較靈活,人們都有自己的想法和使用習慣,因此代碼庫很難維護。

[[223655]]

雖然團隊已經有比較好的持續交付流程,但是 Ops 能力缺乏和應用架構帶來的局限阻礙了整個產品的前進。因此,當務之急是能夠通過 DevOps 提升團隊的 Ops 能力,緩解 Ops 資源不足,削弱 DevOps 矛盾。

DevOps 組織轉型中一般有兩種方法:一種方法是提升 Dev 的 Ops 能力,另一種方法是降低 Ops 工作門檻。在時間資源很緊張的情況下,通過技術的改進,降低 Ops 的門檻是短期內收益***的方法。

三、微服務觸發點:并購帶來的業務功能合并

在我加入項目之后,客戶收購了另外一家業務相關的企業。因此原有的系統要同時承載兩個業務。恰巧有個訂單查詢的業務需要讓當前的團隊完成這樣一個需求:通過現有的訂單查詢功能同時查詢兩個系統的業務訂單。

這個需求看起來很簡單,只需要在現有系統中增加一個數據源,然后把輸入的訂單號進行轉化就可以。但由于存在上述的痛點,完成這樣一個簡單的功能的代價是十分高昂的。幾乎 70% 的工作量都和功能開發本身沒有關系。

在開發的項目上進行 DevOps 轉型就像在行進的汽車上換車輪,一不留心就會讓所有團隊停止工作。因此我建議通過設立并行的新團隊來同時完成新功能的開發和 DevOps 轉型的試點。

這是一個功能拆分和新功能拆分需求,剛好訂單查詢是原系統中一個比較獨立和成熟的功能。為了避免影響原有各功能開發的進度。我們決定采用微服務架構來完成這個功能。

四、構建微服務的架構的策略

我們并不想重蹈之前應用架構的覆轍,我們要做到前后端分離。使得比較小的開發團隊可以并行開發,只要協商好了接口之間的契約(Contract),未來開發完成之后會很好集成。

這讓我想起了 Chris Richardson 提出了三種微服務架構策略,分別是:停止挖坑,前后端分離和提取微服務。

停止挖坑的意思是說:如果發現自己掉坑里,馬上停止。

原先的單體應用對我們來說就是一個焦油坑,因此我們要停止在原來的代碼庫上繼續工作。并且為新應用單***建一個代碼庫。所以,我們拆分策略模式如下所示:

在我們的架構里,實現新的需求就要變動老的應用。我們的想法是:

  • 構建出新的業務頁面,生成微服務契約。
  • 根據 API 契約構建出新的微服務。
  • 部署 Web 前端到 S3 上,采用 S3 的 Static Web Hosting (靜態 Web 服務) 發布。
  • 部署后端微服務上線,并采用臨時的域名和 CDN 加載點進行測試。
  • 通過更新 CDN 把原應用的流量導向新的微服務。
  • 刪除舊的服務代碼。

我們原本要在原有的應用上增加一個 API 用來訪問以前應用的邏輯。但想想這實際上也是一種挖坑。在評估了業務的復雜性之后。我們發現這個功能如果全新開發只需要 2人2周(一個人月)的時間,這僅僅占我們預估工作量的20%不到。因此我們放棄了對遺留代碼動工的念頭。最終通過微服務直接訪問后臺系統,而不需要通過原有的應用。

在我們拆微服務的部分十分簡單。對于后端來說說只需要修改 CDN 覆蓋原先的訪問源(Origin)以及保存在 route.rb 里的原功能訪問點,就可以完成微服務的集成。

1. 構建出新的業務頁面,生成微服務契約

結合上面的應用痛點和思路,在構建微服務的技術選型時我們確定了以下方向:

  • 前端框架要具備很好的 Responsive 擴展。
  • 采用 Swagger 來描述 API 需要具備的行為。
  • 過消費者驅動進行契約測試驅動微服務后端開發。
  • 前端代碼庫和后端代碼庫分開。
  • 前端代碼框架要對持續交付友好。

因此我們選擇了 React 作為前端技術棧并且用 yarn 管理依賴和任務。另外一個原因是我們能夠通過 React-native 為未來構建新的應用做好準備。此外,我們引入了 AWS SDK 的 nodejs 版本。用編寫一些常見的諸如構建、部署、配置等 AWS 相關的操作。并且通過 swagger 描述后端 API 的行為。這樣,后端只需要滿足這個 API 規范,就很容易做前后端集成。

[[223656]]

2. 部署前端部分到S3上

由于 AWS S3 服務自帶 Static Web Hosting (靜態頁面服務) 功能,這就大大減少了我們構建基礎環境所花費的時間。如果你還想著用 Nginx 和 Apache 作為靜態內容的 Web 服務器,那么你還不夠 CloudNative。

雖然AWS S3 服務曾經發生過故障,但 SLA 也比我們自己構建的 EC2 實例處理靜態內容要強得多。此外還有以下優點:

  • 擁有獨立的 URL,很容易做很多 301 和 302 的重定向和改寫操作。
  • 和 CDN(CloudFront)集成很好。
  • 很容易和持續集成工具集成。
  • ***的優點:比 EC2 便宜。

3. 根據 API 契約構建出新的微服務

在構建微服務的最初,我們當時有兩個選擇:

采用 Sinatra (一個用來構建 API 的 Ruby gem) 構建一個微服務 ,這樣可以復用原先 Rails 代碼庫的很多組件。換句話說,只需要 copy 一些代碼,放到一個單獨的代碼庫里,就可以完成功能。但也同樣會面臨之前 Ruby 技術棧帶來的種種問題。

采用 Spring Boot 構建一個微服務,Java 作為成熟工程語言目前還是***的選擇,社區和實踐都非常成熟。可以復用后臺很多用來做 SOAP 處理的 JAR 包。另一方面是解決了 Ruby 技術棧帶來的問題。

然而,這兩個方案的都有一個共同的問題:需要通過 ruby 語言編寫的基礎設施工具構建一套運行微服務的基礎設施。而這個基礎設施的搭建,前前后后估計得需要至少 1個月,這還是在運維團隊有人幫助的情況下的樂觀估計。

所以,要找到一種降低環境構建和運維團隊阻塞的方式避開傳統的 EC2 搭建應用的方式。

這,只有 Lambda 可以做到!

基于上面的種種考量,我們選擇了 Amazon API Gateway + Lambda 的組合。而 Amazon API Gateway + Lambda 還有額外好處:

  • 支持用 Swagger 規范配置 API Gateway。也就是說,你只要導入前端的 Swagger 規范,就可以生成 API Gateway。
  • 可以用數據構建 Mock API,這樣就可以很大程度上實現消費者驅動契約開發。
  • 通過 Amazon API Gateway 的 Stage 功能,我們無需構建 QA 環境,UAT 環境和 Staging 環境。只需要指定不同的 Stage,就可以完成對應的切換。
  • Lambda 的發布生效時間很短,反饋很快。原先用 CloudFormation 構建的 API 基礎設施需要至少 15 分鐘,而 Lambda 的生效只需要短短幾秒鐘。
  • Lambda 的編寫很方便,可以采用在線的方式。雖然在線 IDE 并不很好用,但是真的也寫不了幾行代碼。
  • Lambda 自動根據請求自擴展,無需考慮負載均衡。

雖然有這么多優點,但不能忽略了關鍵性的問題:AWS Lambda 不一定適合你的應用場景!

很多對同步和強一致性的業務需求是無法滿足的。所以,AWS Lambda 更適合能夠異步處理的業務場景。此外,AWS Lambda 對消耗存儲空間和 CPU 很多的場景支持不是很好,例如 AI 和 大數據。(PS: AWS 已經有專門的 AI 和大數據服務了,所以不需要和自己過不去)

對于我們的應用場景而言,上文中的 Ruby On Rails 應用中的主要功能(至少60% 以上)實際上只是一個數據轉換適配器:把前端輸入的數據進行加工,轉換成對應的 SOAP 調用。因此,對于這樣一個簡單的場景而言,Amazon API Gateway + Lambda 完全滿足需求!

[[223657]]

4. 部署后端微服務

選擇了Amazon API Gateway + Lambda 后,后端的微服務部署看起來很簡單:

  • 更新 Lambda 函數。
  • 更新 API 規范,并要求 API 綁定對應 Lambda 函數處理請求。

但是,這卻不是很容易的一件事。我們將在下一篇文章《Serverless 風格微服務的持續交付》中對這方面踩過的坑詳細介紹。

5. 把原應用的請求導向新的微服務

這時候在 CDN 上給新的微服務配置 API Gateway 作為一個新的源(Origin),覆蓋原先寫在 route.rb 和 nginx.conf 里的 API 訪問規則就可以了。CDN 會攔截訪問請求,使得請求在 nginx 處理之前就會把對應的請求轉發到 API Gateway。

當然,如果你想做灰度發布的話,就不能按上面這種方式搞了。CloudFront 和 ELB 負載均衡 并不具備帶權轉發功能。因此你需要通過 nginx 配置,按訪問權重把 API Gateway 作為一個 upstream 里的一個 Server 就可以。

6. 刪除舊的服務代碼

不要留著無用的遺留代碼!

不要留著無用的遺留代碼!

不要留著無用的遺留代碼!

重要且最容易被忽略的事情要說三遍。斬草要除根,雖然我們可以保持代碼不動。但是清理不再使用的遺留代碼和自動化測試可以為其它團隊減少很多不必要的工作量。

7. 最終的架構

經過6個人兩個月的開發(原計劃8個人3個月),我們的 Serverless 微服務最終落地了。當然這中間有 60% 的時間是在探索全新的技術棧。如果熟練的話,估計 4 個人一個月就可以完成工作。

***的架構如下圖所示:

在上圖中,請求仍然是先通過域名到 CDN (CloudFront),然后:

  • CDN 根據請求點的不同,把頁面請求轉發至 S3 ,把 API 請求轉發到 API Gateway。
  • 前端的內容通過藍綠部署被放到了不同的 S3 Bucket 里面,只需要改變 CDN 設置就可以完成對應內容的部署。雖然對于部署來說藍綠 Bucket 乍看有一點多余,但這是為了能夠在生產環境下做集成在線測試準備的。這樣可以使環境不一致盡可能少。
  • API Gateway 有自己作用的 VPC,很好的實現了網絡級別的隔離。
  • 通過 API Gateway 轉發的 API 請求分成了三類,每一類都可以根據請求狀況自擴展。
  • 身份驗證類:***次訪問會請求 ElastCache(Redis),如果 Token 失效或者不存在,則重新走一遍用戶驗證流程。
  • 數據請求類:數據請求類會通過 Lambda 訪問由其他團隊開發的 Java 微服務,這類微服務是后臺系統唯一的訪問點。
  • 操作審計類:請求會記錄到 DynamoDB (一種時間序列數據庫)中,用來跟蹤異步請求的各種日志。
  • API Gateway 自己有一些緩存,可以加速 API 的訪問。
  • 消息返回后,再有三類不同的請求的結果統一通過 API Gateway 返回給客戶端。

五、Serverless 風格微服務架構的優點

由于沒有 EC2 設施初始化的時間,我們減少了至少一個月的工作量,分別是:

  • 初始化網絡配置的時間。
  • 構建 EC2 配置的時間。
  • 構建反向代理和前端靜態內容服務器的時間。
  • 構建后端 API 應用基礎設施的時間。
  • 構建負載均衡的時間。
  • 把上述內容用 Ruby 進行基礎設施即代碼化的時間。

如果要把 API Gateway 算作是基礎設施初始化的時間來看。***次初始化 API Gateway 用了一天,以后 API Gateway 結合持續交付流程每次修改僅僅需要幾分鐘,Serverless 風格的微服務大大降低了基礎設施配置和運維門檻。

此外,對于團隊來說,Amazon API Gateway + Lambda 的微服務還帶來其它好處:

  • 開發效率高,原先至少 45 分鐘的開發反饋周期縮短為 5 分鐘以內。
  • 無關的代碼量少,需要維護的代碼量少。除了專注業務本身。上游和 API Gateway 的集成以及下游和后端服務的集成代碼量很少。
  • 應用維護成本低。代碼僅僅幾十行,且都為函數式,很容易測試。避免了代碼庫內部復雜性的增加。

此外,我們做了 Java 和 NodeJs 比較。在開發同樣的功能下,NodeJS 的開發效率更高,原因是 Java 要把請求的 json 轉化為對象,也要把返回的 json 轉化為對象,而不像 nodejs 直接處理 json。此外, Java 需要引入一些其它 JAR 包作為依賴。在 AWS 場景下開發同樣一個函數式微服務,nodejs 有 4 倍于 java 的開發效率提升。

六、***

Serverless 風格的微服務雖然大大減少了開發工作量以及基礎設施的開發維護工作量。但也帶來了新的挑戰:

  • 大量函數的管理。
  • SIT,UAT 環境的管理。
  • 持續交付流水線的配置。
  • 面對基礎設施集成帶來的測試。

這讓我們重新思考了 Serverless 架構的微服務如何更好的進行持續交付。

【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2024-07-01 12:09:12

2017-06-26 09:06:10

Spring Clou微服務架構

2017-12-20 15:37:39

Spring Clou微服務架構

2017-09-04 16:15:44

服務網關架構

2021-12-29 08:30:48

微服務架構開發

2017-10-24 09:39:03

2019-08-05 09:05:06

技術Docker軟件

2023-07-28 09:23:24

微服務架構

2017-07-03 09:50:07

Spring Clou微服務架構

2017-08-10 11:15:05

Spring Clou微服務架構

2017-08-09 15:50:47

Spring Clou微服務架構

2022-09-06 10:29:27

無服務器Serverless

2022-03-02 09:31:42

Serverless微服務架構

2018-12-03 08:00:00

微服務gRPC

2023-07-27 14:03:51

微服務

2018-07-09 09:27:10

Spring Clou微服務架構

2017-07-04 17:35:46

微服務架構Spring Clou

2018-03-02 16:11:29

Spring Clou分布式服務跟蹤

2017-06-25 13:33:25

Spring Clou微服務架構

2023-06-02 08:33:43

微服務架構服務注冊
點贊
收藏

51CTO技術棧公眾號

蜜桃视频在线观看成人| 日韩中文字幕网| 欧美亚洲一二三区| 国产精品四虎| 理论电影国产精品| 欧美激情在线有限公司| 青青草视频播放| 高清成人在线| 亚洲一区二区三区影院| 欧美高清性xxxxhdvideosex| 91成品人影院| 亚洲永久免费精品| 久久视频在线直播| 国产精品无码一区二区三区| 国产精品字幕| 亚洲高清视频中文字幕| 一区二区日本伦理| 天堂视频中文在线| 国产成人在线视频免费播放| 国产精品69av| 日韩精品成人一区| 91精品一区国产高清在线gif | 91精品国产91久久久久久密臀| 精品成人在线观看| 日本在线观看视频一区| 美脚恋feet久草欧美| 一区二区三区小说| 亚洲精品一区二区三区蜜桃久 | 四虎精品在线观看| 欧美日韩亚洲91| 国产91porn| 麻豆tv在线| 日本一区二区久久| 久久人人爽爽人人爽人人片av| 亚洲欧美激情在线观看| 精品在线播放免费| 国产欧美 在线欧美| 亚洲欧美自拍视频| 亚洲伦伦在线| 欧美激情按摩在线| 国产一二三四区| 色狮一区二区三区四区视频| 国产一区二区日韩| 91国模少妇一区二区三区| 巨人精品**| 日韩精品最新网址| 黑人性生活视频| 国产一区二区av在线| 欧美精品久久久久久久多人混战| 丁香啪啪综合成人亚洲| 午夜久久中文| 色综合咪咪久久| 国产99久久九九精品无码| 嗯~啊~轻一点视频日本在线观看| 亚洲综合免费观看高清完整版| 在线天堂一区av电影| 91精彩视频在线观看| 国产蜜臀av在线一区二区三区| 人偷久久久久久久偷女厕| 色视频免费在线观看| 96av麻豆蜜桃一区二区| 久久久久se| 欧美偷拍视频| 久久亚洲精品国产精品紫薇| 欧美日韩在线一区二区三区| 欧美日本网站| 久久久久国产免费免费| 污视频在线免费观看一区二区三区 | 青青国产91久久久久久| 国产精品普通话| 国产精品人人妻人人爽| 国产成人午夜高潮毛片| 国产乱码精品一区二区三区不卡| 色婷婷在线视频| 久久综合久久鬼色| 亚洲成人自拍视频| 国产剧情在线| 无码av免费一区二区三区试看| 国产精品一区二区免费在线观看| 欧美三级网址| 欧美精品第1页| av天堂一区二区| 亚洲免费观看高清完整版在线观| 亚洲夜晚福利在线观看| 三上悠亚作品在线观看| 亚洲全部视频| 国产精品久久久久久影视| 国产精品色综合| caoporn国产一区二区| 欧美日韩一区二| 日本三级在线视频| 午夜精品国产更新| 中文字幕天天干| 999久久久精品一区二区| 亚洲欧美国产高清va在线播| 精品日韩在线视频| 亚洲日产国产精品| 国产精品一区二区三| 亚洲美女综合网| 中文字幕va一区二区三区| 只有这里有精品| 成人免费网站视频| 欧美一级欧美一级在线播放| 日本少妇色视频| 亚洲电影影音先锋| 国产精品av在线播放| 午夜精品一二三区| 日本一二三不卡| 成年人午夜免费视频| 免费视频成人| 精品无人区乱码1区2区3区在线| 我要看黄色一级片| 欧美一级二区| 国产欧美丝袜| 在线中文免费视频| 欧美伦理视频网站| 亚洲码无人客一区二区三区| 午夜日韩av| 国产精品视频xxxx| 免费动漫网站在线观看| 亚洲国产美女搞黄色| 一区二区三区四区毛片| 欧美极品在线观看| 91精品国产自产91精品| 亚洲av无码国产综合专区| 中文字幕中文字幕在线一区| 亚洲中文字幕无码专区| 国产精品17p| 欧美床上激情在线观看| 91亚洲精品国偷拍自产在线观看| 2023国产精品| 1024av视频| 国产精品极品| 久久久久久国产精品三级玉女聊斋 | 午夜在线观看一区| 亚洲欧美网站| 久久国产精品 国产精品| 电影k8一区二区三区久久| 91精品国产一区二区三区蜜臀| 最新中文字幕av| 久久国产88| 欧美连裤袜在线视频| 美女扒开腿让男人桶爽久久软| 精品欧美乱码久久久久久1区2区| 国产极品国产极品| 国产揄拍国内精品对白| 永久久久久久| 欧美一级在线| 日韩一区视频在线| 亚洲网站免费观看| 国产精品国模大尺度视频| 国产精品区在线| 婷婷丁香综合| 91偷拍精品一区二区三区| а√资源新版在线天堂| 日韩欧美在线观看一区二区三区| 欧美做爰啪啪xxxⅹ性| 国内成人自拍视频| 国产一区二区三区播放| h视频久久久| 97视频在线观看视频免费视频 | 天堂av中文在线资源库| 欧美日韩一区二区三区在线免费观看 | 欧美爱爱视频| 久久伊人色综合| 亚洲国产精品18久久久久久| 香蕉成人啪国产精品视频综合网| 国产精品无码在线| 久久久国产精品一区二区中文| 日韩av一区二区三区在线| 高清欧美日韩| 久久不射电影网| 人妻无码一区二区三区久久99| 天天av天天翘天天综合网色鬼国产| 大地资源二中文在线影视观看| 日韩不卡一区二区三区 | 成人免费网址| 亚洲二区在线播放视频| 丰满人妻老熟妇伦人精品| 国产精品久久久久婷婷二区次| 日本成人xxx| 国产一区二区三区久久| 蜜桃传媒视频麻豆第一区免费观看| 亚洲成人激情社区| 久久综合伊人77777尤物| 日韩有码第一页| 日本高清不卡一区| 欧美日韩在线视频免费| www.久久久久久久久| 一区二区成人网| 国产中文一区| 欧美一区二区综合| 清纯唯美激情亚洲| 日本久久久a级免费| 成人在线网址| 亚洲欧美日韩区| 国产色片在线观看| 日韩欧美一区视频| 精品爆乳一区二区三区无码av| 99精品国产99久久久久久白柏 | 成人黄色av网站在线| 日韩一级理论片| 精品成人免费| 手机成人av在线| 国产中文精品久高清在线不| 91pron在线| 黄色成人在线观看网站| 992tv成人免费视频| fc2ppv国产精品久久| 亚洲三级av在线| 欧美在线 | 亚洲| 在线综合+亚洲+欧美中文字幕| 日韩一区二区视频在线| 亚洲免费观看在线观看| 国产视频不卡在线| 26uuu精品一区二区在线观看| 免费不卡av网站| 奇米888四色在线精品| 亚洲不卡中文字幕无码| 欧美午夜视频| 青少年xxxxx性开放hg| 精品一区二区三区在线| 久久精品女人的天堂av| 成人黄色av网址| 91亚洲精品视频| 亚洲伦理久久| 国产在线观看不卡| 日韩欧美2区| 国产91色在线| 伊人网在线播放| 欧美性做爰毛片| 嗯~啊~轻一点视频日本在线观看| 九九热r在线视频精品| 日本免费中文字幕在线| 在线播放国产精品| 福利视频在线导航| 国产亚洲欧美日韩精品| 国产在线你懂得| 亚洲性69xxxbbb| 国产网站在线播放| 夜夜嗨av色综合久久久综合网| 九色视频在线播放| 国产一区二区三区在线| melody高清在线观看| 伊人青青综合网站| 自拍视频在线免费观看| 色老头一区二区三区| 第九色区av在线| 伊人久久大香线蕉av一区二区| 欧美18xxxxx| 亚洲性无码av在线| av一区在线观看| 久久精品国产亚洲精品2020| 日韩免费观看视频| 欧美 中文字幕| 精品国产一区a| 午夜av免费在线观看| 亚洲美女av网站| 都市激情在线视频| 久久精彩免费视频| 青春草在线免费视频| 午夜精品一区二区三区在线视频 | 午夜精品毛片| 国产成人三级视频| 亚洲电影成人| 国产成人久久婷婷精品流白浆| 日韩电影在线免费看| 中文字幕免费高清在线| 国产精品羞羞答答xxdd| 污污污www精品国产网站| 91美女片黄在线| 国产三级在线观看完整版| 亚洲免费观看在线视频| 日本在线视频免费| 精品视频免费在线| 亚洲av无码乱码国产麻豆| 亚洲爱爱爱爱爱| 成人精品一区二区三区免费| www国产亚洲精品久久网站| 免费在线国产视频| 日韩免费观看高清| 秋霞一区二区| 日产精品一线二线三线芒果| 午夜激情久久| 成人免费在线小视频| 麻豆视频观看网址久久| 国产大尺度视频| 日本一区二区不卡视频| 国产在线一区视频| 欧美午夜精品一区二区三区 | 亚洲色图美腿丝袜| 91国内在线| 国产精品video| av日韩精品| 亚洲巨乳在线观看| 亚洲狠狠婷婷| 欧美成人三级在线播放| 91网站黄www| 91九色丨porny丨极品女神| 色婷婷精品久久二区二区蜜臂av| av资源免费看| 在线播放日韩专区| av中文在线资源库| 国产自产女人91一区在线观看| 美女呻吟一区| 日本a级片在线观看| 日本视频一区二区三区| 亚洲激情 欧美| 亚洲女同女同女同女同女同69| 在线免费观看国产精品| 亚洲第一视频网站| 国产黄色在线观看| 国产精品女主播视频| 欧美丝袜美腿| 香蕉精品视频在线| 日韩高清在线电影| 成人影视免费观看| 一区二区三区精品| 国产一区二区三区在线观看| 亚洲欧美一区二区激情| 99热99re6国产在线播放| 91亚洲精品在线观看| 久久一区91| 亚洲黄色a v| 久久久久久久久久久久久久久99| 国产一级二级三级视频| 欧美一区二区三区免费在线看| 日本在线免费播放| 国产精品视频999| 日韩电影二区| 污污视频网站免费观看| 91毛片在线观看| 国产精品美女久久久久av爽| 欧美变态凌虐bdsm| 婷婷av在线| 懂色一区二区三区av片| 欧美精品偷拍| 91porn在线| 亚洲一区av在线| 亚洲精品国产片| 国模精品系列视频| 成人av激情人伦小说| 99在线免费视频观看| 成人福利视频在线看| 国产精品黄色网| 日韩av在线资源| 欧美特黄aaaaaaaa大片| 欧美亚州在线观看| 青青青伊人色综合久久| 国产探花视频在线| 欧美日本不卡视频| 国产日产一区二区三区| 成人h在线播放| 国产精品久久777777毛茸茸| 国产麻豆xxxvideo实拍| 欧美视频专区一二在线观看| 美国一级片在线免费观看视频| 日本久久精品视频| 91欧美国产| 久久国产免费视频| 精品久久久国产| 高清av电影在线观看| 成人免费激情视频| 欧美视频亚洲视频| 亚洲少妇18p| 日本韩国一区二区三区视频| 福利在线观看| 亚洲最大激情中文字幕| 亚洲精品社区| 国内精品卡一卡二卡三| 777午夜精品免费视频| 黄页网站在线观看免费| 欧美日本亚洲| 另类综合日韩欧美亚洲| 精品无码人妻一区二区三区| 亚洲欧美激情在线视频| 青青久久精品| 成人免费性视频| 久久久久久久免费视频了| 国产永久免费视频| 97精品国产aⅴ7777| 欧美一区二区三| av漫画在线观看| 欧美日韩国产高清一区二区三区| 欧美人与牲禽动交com| 欧美日韩精品免费看| 国产一区在线视频| 亚洲av中文无码乱人伦在线视色| 久久精品国产亚洲| 日韩精品导航| 久久成年人网站| 欧美午夜精品久久久久久久| 日本成a人片在线观看| 国产主播一区二区三区四区| 麻豆精品精品国产自在97香蕉| 日韩女优在线观看| 久久香蕉频线观| 国产伦精品一区二区三区视频| 免费看三级黄色片| 欧美日韩一区二区三区不卡|