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

前阿里員工技術分享:持續集成和“云”

云計算
本文作者在2009年至2015年4月曾就職于阿里,負責持續集成服務平臺等相關技術工作。在本文中,他將對持續集成和“云”,就他的工作和個人對技術的思考進行分享。

今天的話題是,持續集成和“云”,主要部分是我之前兩年的工作和我的一些個人思考。

這個話題我之前在中國的ruby大會上講過,slides在這里 ,供參考,不過但是現在講的內容根據最近多半年的工作進展又有所變化。

先自我介紹一下,我是軟件工程師,從業13年,主要從事的領域都是應用系統開發,涉及OA、電信網管/增值業務、互聯網等領域。

2009年底加入阿里,2015年4月離職,主要做的事情:廣告應用系統 -> 運維自動化平臺 -> 持續集成服務平臺。

最后的持續集成服務平臺是來自于實踐需要,我最先在做廣告業務系統的研發工作,廣告系統雖然復雜,但是其中的應用系統從軟件架構上看并沒有什么特別的地方,所以希望將精力投在可以改進團隊工作水平的地方。

一開始是一個運維自動化平臺,由于團隊人手有限,我基本是一個人做的,發現開發效率很好,軟件質量也不錯,所以在工作中總結了一些質量改進的實踐,在團隊中推廣,這是我從研發進入QA的起點。

經過一段時間摸索,我們發現測試自動化搞不起來的原因之一是成本太高。

我之前習慣用ruby或者rails,所有的測試都可以單機完成,用cucumber這樣的工具可以做BDD,用vagrant可以避免環境污染,所以自動化沒問題。而java就沒有這些條件了,數據庫掌握在DBA手里,測試的linux是大家公用的,很容易引起沖突。

于是我和主管商量,決定搞一個平臺,通過它降低研發成本,在本團隊開展一段時間以后,又帶著系統轉到技術質量部,把CISE做大,測試部門成立了專門的團隊,離職前已經開始在各bu和研發團隊廣泛運用

對CI的理解

持續集成平臺究竟解決什么問題呢?

簡單說,就是兩個自動化:

  1. 構建自動化
  2. 測試自動化

測試自動化好理解,構建自動化比想象中要復雜一些,我一般用下面這張圖來解釋——

 

 

前阿里員工技術分享:持續集成和“云”

 

我們手里的軟件,總是可以進行不斷地分解,從系統到模塊,最后到類和方法。由于整體和部分的功能不能完全劃等號,所以測試需要在各個層面上進行,但是這些測試的成本和收益有所不同。

 

前阿里員工技術分享:持續集成和“云”

如圖,我之前感到java開發的痛苦,就源于工程師手中沒有更上層的“武器”,所以只能在單測上用力。

所以,如果我們能做好更大尺度系統的自動化的構建,那么研發人員也就有機會使用“高層”的自動化測試,而避免在細節上寫太多的用例。

但這個并不容易,我們的努力也只是起到了一部分作用。

#p#

平臺介紹

下面說一下這個平臺本身,由于涉及到阿里巴巴內部系統,有些是不能說的,不過還好,核心部分并沒啥技術含量 :-)

很多人對CI的了解是基于jenkins,當然也有些人接觸過travis CI或者circle CI,我們的系統更像后者,當然功能上要更強些。

平臺的起點是公司的gitlab和svn服務,通過自動監控或者hook觸發,每一次代碼提交都會觸發一個自動化過程,在這個過程中,平臺負責分配虛擬機、數據庫等必要資源,然后將代碼編譯打包構建運行。

編譯打包構建運行看起來是一個自動化過程,但每個環節實際上都可以有驗證——這其實就是各種測試。

  • 編譯前可以做代碼掃描(有的語言是編譯后做代碼掃描)
  • 編譯之后可以做單測
  • 打包運行后可以做集成測試
  • ......

和travis不同的是,如果目標涉及多個應用,之間存在服務調用,那么我們還會自動的將相關應用也部署好,然后在一個機器群里面做更接近真實場景的功能測試。

做過類似工作的同學一定知道這一點的代價有多大,但這樣會有很大好處——我們可以在一次commit后自動進行所有層面的測試——從單測到系統交付測試。

當然這是理論上的,實際中可以根據研發團隊需要進行選擇。

總結一下,我們認為,CI平臺應該能進行所有粒度的測試,最小針對函數,最大可以針對分布式系統。作為前提,CI平臺需要支持整個系統的自動化構建。

這個大概是和travis CI之間最大的不同,下面再列幾個不是很重要的區別。

1.使用云平臺解決虛機問題,身在阿里巴巴,所以我們使用阿里云的ECS,需要資源是隨時申請,用過以后立即釋放重置。

這樣可以解決環境污染的問題(即使是java應用,有些團隊也會留下本地文件操作,這些東西會導致測試不可重復)。

2.數據庫自動分配,我們構建了mysql集群,不過不是一般意義上的那種協作集群,而是一個數據庫池,讓數據庫和虛機一樣隨用隨取,用后重置。

這樣做是為了讓java程序員也可以像rails的db migration一樣可以用到干凈的數據庫。

對這個平臺的介紹就這些,下面討論一些經驗教訓。

經驗教訓

UI應該盡量輕

這個話題要和jenkins/hudson做對比,這兩個系統我其實不是很熟,不過也知道它們都是很強大的自動化系統。但是,jenkins/hudson的最大問題是,它們的UI做的太多了,用戶可以在UI上做很多事——很多和CI沒關系的事情。

舉個例子:

jenkins的任務是可以排隊調度的,而對于CI來說,排隊是什么意思呢?研發工程師養成持續小步提交代碼這個好習慣以后,又硬生生由于資源不足而被迫等待,最終可能會放棄這個好習慣,實在是不劃算。

我們的辦法是——敞開供應,只要有代碼提交就分配機器,當然有人會質疑,因為這會導致需要一個很大的資源后備池,不過這可能正是“云”時代的不同思考方式——在“云”的時代,資源的使用毛刺應該通過大規模后備池來抹平。

當然,濫用資源還是要避免的,只是我們認為需要“后置懲罰”,比如通過審計,找出資源消耗大戶,打他的板子 :-P

當我們把所有的額外功能都剝掉以后,發現UI其實就一個作用——展現,因為CI需要的是完全的自動化,人工本來就不需要介入,只要最后被notify一下,或者偶爾過來在web上看看報表趨勢什么的就夠了。

CI是服務加最佳實踐

我們理解的第二個經驗就是,搞CI,是服務加最佳實踐,所以一定要指導研發團隊,而不能完全任由研發團隊提要求,很多團隊的工程師良莠不齊,對各種編程api比較熟悉,但是可能缺乏做事的好習慣,這時需要指導他們,當然前提是你也要對開發很了解才行,否則會被鄙視的 :-P

對CI來說,最大的常見麻煩是不寫測試,這個一般是通過管理教育,比較簡單。

另外一個隱藏的比較深——開發人員對系統的運行并不了解,比如開發的系統運行在linux上,但是基本的命令都不會。

這個問題我們遇到了挑戰,有人認為這涉及到分工,研發工程師不應該了解線上,但是這個觀點是有問題的。

因為很多bug和環境相關,如果開發人員不能在”真“的環境中嘗試,一旦系統報錯,很難不發生扯皮——這個扯皮可能發生在開發和測試之間,更可怕的是發生在線上,光定位就需要N多人參與,成本極大。

插件

最后是插件的問題,這個說來簡單——插件能解決一些問題,不過插件設計之初實際上就限制了其使用,所以我總結的教訓就是:先別急著做插件,想好了設計再動手。

#p#

更進一步

先進一步談談對CI平臺職責的理解,然后結合這些理解最后說說“云”和docker的作用

CI平臺的職責

關于CI平臺的職責,我上次已經提過,基本上就是這些:

  1. 構建自動化:提供環境
  2. 測試自動化:提供平臺

先說構建

構建工作主要產出兩個東西:最終輸出的軟件包和待測的應用系統(有時后者會包含前者),這兩個產出的核心要點有所不同。

最終輸出的軟件包大多數公司都會做的,重點是構建過程環境無關而且可重復,因此需要提供配管服務,比如最好有yum、npm、gem等軟件包服務。

但是這里有個問題——間接依賴的軟件包如何鎖定的問題,ruby的bundle機制很不錯,通過Gemfile.lock讓依賴包都有明確的版本(而不是“最新版本”這種含糊的說法),但是maven就沒有這樣的支持,目前沒有很好地辦法,只能讓構建號和軟件包號建立關聯,便于回溯。

而待測的應用系統是比較難的地方,它也需要配管系統支持,同時還需要資源的就緒能力,一個關鍵要點是——資源必須是隔離的,否則很難避免測試時互相干擾。

這個隔離應該做到什么程度呢?舉個例子,我們為了進行系統聯調,自動構建了一套涉及N個系統的集群,這個集群是為了進行自動的聯調測試。而理論上我們如果需要,CI平臺應該可以再構建另一個集群,各種架構細節和前一個集群完全相同,但這兩個集群進行工作時應該互不影響。

這要求應用需要符合一些最佳實踐的要求,比如12 factor里面說的不要硬編碼ip地址等等

為什么要這樣?因為持續集成是不斷前進的工作節奏,一個人的工作有了階段性結果后,需要進行驗證,這種驗證應該是獨立的,如果和其他人共享測試環境,要么測試結果不穩定,要么變成我上次說到的排隊,那就降低了效率。

前阿里員工技術分享:持續集成和“云”

前阿里員工技術分享:持續集成和“云”

這兩張圖說的就是這個意思,同一團隊的兩個程序員公用數據庫進行測試,測試結果就會不穩定,同樣,如果他們的應用依賴了另一個公共服務,那么測試依然不能穩定。

 

不知道第二種情況會不會難以理解,簡單說就是那個公共服務也是有存儲的,所以那個數據庫里面的數據會造成干擾。

構建自動化比較復雜,而測試自動化相對來說簡單一些,不過這里的重點是對各種測試的抽象和區分

前阿里員工技術分享:持續集成和“云”

根據上次分享的反饋,發現有相當多的人不太理解這張圖。

我們把測試分為UT/FT/IT/ST等等,但其實它們可以抽象成一個東西——都是對某個軟件單元的驗證,區別在于單元的粒度

補充說明一下上面說的一些名詞:

  • UT:單元測試
  • FT:功能測試
  • IT:集成測試
  • ST:系統測試

所謂的“上層用例變化慢“,是相對的,因為應用系統常常是需求一變,整個推翻,所以上層需求用例的變化常常帶來下層大量用例的變化,而反之則未必.

考慮到需求和測試用例直接聯系很緊密,我們可以認為需求用例的變動頻率和測試用例的變動正相關。

當然,測試自動化還有一個要做的工作是對結果的分析匯總,主要是各種測試手段的輸出千差萬別,需要進行數據匯總,這個和普通的數據處理沒啥區別,我也不是這方面的專家,就不獻丑了。

但是,作為CI平臺,對結果數據的分析匯總要建立在測試階段的界定上,簡單說就是要明確區分UT、IT等環節階段,這是后續報表很重要的信息,不能小看。

#p#

CI職責講完了,我下面想說一下自己對“云”在CI方面價值的理解——簡單說就是標準化。

CI的自動化測試和普通測試一樣,有天生就要面對的問題:

  • bug確認(可重現)
  • 代碼覆蓋
  • 測試的真實性

先說bug確認的困難,在測試團隊待過的人一般都能理解問題確認有多麻煩,很多的bug是辛辛苦苦發現的,結果被開發同學一句“環境不一樣”就打發了。

所以測試非常需要標準的環境,而這正是“云”可以提供的,要是進一步考慮自動化測試,那是比普通測試更需要標準環境的場合,因為它是無人值守的,對意外的適應能力更弱。

代碼覆蓋也是測試的一個重要指標,幾乎所有的開發語言和框架都有不止一個代碼測試覆蓋率統計工具,而代碼覆蓋其實是涉及到測試層次的,在上層測試一個系統,往往能夠覆蓋不少下層用例,如果能從多個層次測試系統,可以讓工作事半功倍。

最后再說一下測試的真實性,這里是指對mock技術的使用。我們很多時候使用mock技術只有一個原因——對方系統太難打交道了,所以做個mock先繞開(有時需要模擬對端錯誤,這種情況還是需要mock的)。

但是真實情況下我們訪問的不是白板方法,這么做的有風險,最后還是要聯調,所以這種情況是把測試推后了,是轉移矛盾而不是解決矛盾。

我之前做的CI平臺,正是想通過云技術,可以相對低成本的構建“全部系統”,因為(借助我們的平臺)有時候這個做法比mock要簡單,更重要的是,這種做法肯定比mock要真實。

以上都是云的價值,也是docker的價值,不過docker有個獨特的價值,就是有可能將測試甚至運維工作變成服務。

這里說的服務不是那種在公司里某個部門為其它團隊提供的服務平臺,那很容易模糊邊界(比如開發要求測試幫忙等等)。

這里的服務是指成立公司,把這些工作變成business的東西

當然,這塊其實不稀奇,我之前說過的Traivs CI、shippable、coding應該都在做,docker創業團隊大多都在做這個,不過我想說的是——為什么這事變得可行了?

這是由于標準化,一個應用應該是個什么樣子?在docker的語境中是比較一致的,這為用戶和服務平臺提供了相對簡單的協作邊界。

舉個例子,這是我們平臺自己的一個模塊在進行自動化構建時寫到描述文件(相當于 .tavis.yml)中的內容:

 

  1. prepare: 
  2. exec: 
  3. - yum remove taobao-jdk -q -y 
  4. - yum install -b test ali-jdk -y -q 
  5. - echo 'export PATH=/xxxxxx/bin:$PATH' >> /etc/bashrc 
  6. - echo 'export JAVA_HOME=/xxxxxx/java' >> /etc/bashrc 
  7. - yum install jemalloc -b current -y -q 
  8. - yum remove mysql* ruby19 -y -q 
  9. - yum install mysql-devel -y -q 
  10. - yum install ruby21 -b test -y -q 
  11. - echo /usr/local/lib >> /etc/ld.so.conf.d/ruby21.conf 
  12. - ldconfig -v 
  13. - gem sources -r https://rubygems.org/  

 

這么一大坨,我不相信會有人能受得了,但是如果在docker中呢?

 

  1. prepare: 
  2. exec: 
  3. - docker build -t xxxxx . 

 

這樣還符合我之前說的原則——開發人員自己管理環境

在這種變化下,我覺得我們做的東西可以大幅度簡化,以至于變為一個對外服務的business,根據這個想法,我自己做了一點簡單的嘗試,不過是用青云做的,錄了兩段很短的視頻,在這里:

http://v.youku.com/v_show/id_XODAzNzgyMjUy.html

http://v.youku.com/v_show/id_XODAzNzgxOTky.html

我要講的基本上就這些,今天應該沒超時,最后關于docker上的CI再多說兩句,提個想法——docker應該依靠但不依賴IAAS。

借助SDN,避免通過Docker來劃分安全域:我看了一點最近docker大會的介紹,老實說,有一種觀點是把vm廢掉,我是不以為然的,所謂vm所帶來的成本其實正是我們獲得安全隔離的原因,這兩者是一體的,我們直接拿來用vm做安全隔離最好,讓docker解決安全問題應該是一條歧路。

深度依賴compose機制,建立聯調/系統測試的構建標準:應該會有很多人和我想的一樣——將compose.yml作為重要信息來源,外部的系統通過它理解應用間的聯系,即使不使用 docker compose 這個軟件,也應該遵循 compose.yml 的規范,這樣我們不但能讓單兵(容器)的外部邊界清晰,還能讓戰陣(分布式系統)也能被管控系統理解和支撐。

深度依賴compose需要讓compose.yml目的變得純粹些,我知道compose描述的內容很容易變成“不同環境”,其實這個想法也許不正確,我認為一個git分支就對應一種場景——比如某些分支是用來開發局部功能的,它不需要系統測試和聯調,而master必然要聯調——所以不用在代碼中留下多份 compose_xxx.yml ,而應該在不同分支上編寫不同的 compose.yml ,其內容由分支維護者負責。

分享人李建業,前阿里巴巴員工(花名:李福),2002年本科畢業,之后一直從事軟件開發,涉及辦公自動化、電信網管/增值業務系統以及互聯網;2009年12月加入淘寶的廣告應用開發團隊;從2011年底開始,關注軟件研發本身,主要工作包括運維自動化系統和持續集成服務平臺。

原文鏈接:http://dockone.io/article/470

 

責任編輯:Ophira 來源: dockerone
相關推薦

2023-03-19 11:47:57

Taro小程序持續集

2020-06-23 10:41:08

云計算DevOps持續集成

2015-09-29 10:08:26

DockerJava持續集成

2021-06-18 09:00:00

云計算開發存儲庫

2017-02-27 18:35:23

集成交付部署

2016-08-05 17:19:37

持續集成持續交付系統運維

2017-10-19 09:47:55

容器化微服務集成

2021-03-31 09:00:00

管道集成工具

2016-03-22 13:25:14

2018-11-20 08:00:00

持續集成持續部署Git代碼倉庫

2009-06-14 18:05:58

ibmdwWebSphere

2015-07-27 11:32:24

Docker持續集成Docker部署

2015-09-24 09:43:08

阮一峰持續集成

2019-04-18 10:35:30

持續集成工具Buddy

2017-03-01 08:56:28

VSTSTFSiOS

2012-02-23 10:22:03

JavaTeamCity

2011-09-15 09:21:46

持續集成

2018-01-08 14:18:14

代碼互聯網持續集成

2017-02-27 18:24:34

交付開發工具

2015-07-22 14:59:30

OpenStac持續集成持續交付
點贊
收藏

51CTO技術棧公眾號

97在线免费视频| 欧美高清dvd| 欧美日韩在线播放一区二区| 无码人妻精品一区二区三区蜜桃91| 国产欧美久久一区二区三区| 欧美日韩国产乱码电影| 国产一二三区在线播放| 国产一二在线观看| 九九视频精品免费| 国产91精品久| 中文字幕在线有码| 亚洲人挤奶视频| 日韩精品最新网址| 欧美日韩在线观看不卡| 久久www人成免费看片中文| 久久免费精品国产久精品久久久久| 91精品久久久久久久久久另类| 亚洲精品在线观看av| 日韩精品欧美激情一区二区| 精品国产一区二区三区av性色| 天天影视综合色| 久久免费电影| 亚洲欧美电影一区二区| 日韩电影免费观看在| 国产综合视频在线| 久久99久久久欧美国产| 日本精品一区二区三区在线 | 欧美激情一二三区| 成人欧美一区二区三区在线观看| 欧美性受xxx黑人xyx性爽| 亚洲二区精品| 大胆人体色综合| 国产传媒在线看| 美日韩中文字幕| 精品国产污污免费网站入口| 国产精品自在自线| 国产91在线精品| 色婷婷综合激情| 欧美精品一区免费| а√天堂8资源在线| 有码一区二区三区| 一区二区三区四区视频在线观看| 户外极限露出调教在线视频| 99精品久久99久久久久| 国产精品区免费视频| 精品人妻少妇嫩草av无码专区| 久久国产精品色婷婷| 国产精品一区二区久久久久| 国产99免费视频| 丝袜美腿亚洲综合| 日韩男女性生活视频| 亚洲熟女综合色一区二区三区| 欧美黄色一区二区三区| segui88久久综合9999| 洋洋av久久久久久久一区| 69精品丰满人妻无码视频a片| 毛片免费不卡| 亚洲人午夜精品天堂一二香蕉| 91免费网站视频| 麻豆影院在线观看| ㊣最新国产の精品bt伙计久久| 伊人久久大香线蕉av一区| 91精品大全| 亚洲欧洲国产日韩| 992tv成人免费观看| 日本一级理论片在线大全| 亚洲尤物在线视频观看| 久久久久久www| 中文字幕高清在线播放| 欧美中文字幕一区二区三区亚洲| 亚洲高清在线免费观看| 国产精品亚洲成在人线| 91精品欧美久久久久久动漫 | 自拍偷拍欧美亚洲| 久久中文在线| 国产综合久久久久久| 精品国产av 无码一区二区三区 | 香蕉成人久久| 国产精品成人aaaaa网站| 中文字幕第315页| 国产曰批免费观看久久久| 国产精品xxxx| 国产永久免费高清在线观看视频| 国产精品国模大尺度视频| 日本中文字幕一级片| 天堂网在线最新版www中文网| 色视频欧美一区二区三区| 一个色综合久久| av毛片精品| 亚洲网址你懂得| 黄色a级片在线观看| 一区二区91| 国产精选久久久久久| 亚洲av永久无码国产精品久久| 99久久国产综合色|国产精品| 色婷婷精品国产一区二区三区| jyzzz在线观看视频| 亚洲综合av网| 日本www.色| 国产精品调教| 久久精品视频99| 久久久久久少妇| 激情综合网天天干| 鲁丝一区二区三区免费| 精品欧美色视频网站在线观看| 亚洲高清在线精品| 久热精品在线观看视频| 日韩深夜福利| 欧美成人合集magnet| 免费在线不卡av| 99国产精品国产精品毛片| 中文字幕一区二区三区四区五区| 成入视频在线观看| 这里只有精品视频在线观看| 精品无码人妻一区| 91久久视频| 96国产粉嫩美女| 国产黄在线观看| 狠狠躁夜夜躁人人躁婷婷91| 国产探花一区二区三区| 亚洲h色精品| 国产精品∨欧美精品v日韩精品| 国产精品免费久久久| 青草草在线视频| 九九精品视频在线看| 欧洲一区二区在线观看| 免费看男女www网站入口在线| 日韩欧美国产三级| 亚洲人与黑人屁股眼交| 日韩av不卡一区二区| 麻豆亚洲一区| 国产伦子伦对白在线播放观看| 欧美一区二区视频在线观看2020 | 高清国产mv在线观看| 最新日韩在线视频| 欧美婷婷精品激情| 蜜桃一区二区| 日本一区二区三区在线播放| 欧洲成人一区二区三区| 亚洲午夜精品久久久久久久久| 日韩欧美亚洲另类| 98精品久久久久久久| 国产噜噜噜噜噜久久久久久久久 | 精品一区二区三区的国产在线观看| 久久免费在线观看| 免费看黄色一级视频| 亚洲一区二区精品久久av| 91精品国产高清91久久久久久 | 日韩啪啪网站| 8050国产精品久久久久久| 人人妻人人玩人人澡人人爽| 亚洲午夜精品一区二区三区他趣| 大桥未久恸哭の女教师| 宅男噜噜噜66一区二区| 欧美日韩国产一二| 中文字幕日本一区二区| 在线播放日韩av| 91国内精品视频| 亚洲美女偷拍久久| 亚洲欧洲日韩综合| 一区二区三区精品视频在线观看| 久久精品国产美女| 成人开心激情| y97精品国产97久久久久久| 国产精品视频a| 亚洲一区二区三区四区五区黄| 妖精视频一区二区| 久久久一二三| 在线电影看在线一区二区三区| 国产精品毛片无码| 国内精品久久影院| 国自产拍在线网站网址视频| 欧美日韩国产在线播放网站| 久久久久亚洲av无码专区体验| 波多野结衣视频一区| 黑森林福利视频导航| 成人激情在线| 99精品国产高清一区二区| 三级在线观看视频| 日韩在线中文视频| 天堂网av2014| 欧美日韩在线不卡| 国产精品theporn动漫| 久久精品亚洲一区二区三区浴池 | 国产精品午夜一区二区| 亚洲欧洲在线观看av| 日本50路肥熟bbw| 日韩精品一二区| 日本成人在线不卡| 九九久久婷婷| 97超级碰碰| 少妇一区视频| 欧美激情一区二区久久久| 国产精品99999| 亚洲成人网久久久| 亚洲一区二区人妻| 精品久久久久久久久久国产| 亚洲色图27p| 成人午夜电影小说| 国产色视频在线播放| 亚洲免费播放| 午夜探花在线观看| 国产精品一区高清| 国产精品一区二区三区四区五区| 四虎影视4hu4虎成人| 久久久久久尹人网香蕉| 91在线导航| 日韩精品在线播放| 亚洲xxx在线| 欧美日韩国产一级| 秋霞精品一区二区三区| 亚洲一区二区中文在线| 国产视频123区| 久久久国产综合精品女国产盗摄| 精品人妻一区二区乱码| 老色鬼精品视频在线观看播放| 丰满爆乳一区二区三区| 欧美激情麻豆| 特级毛片在线免费观看| 国产一区国产二区国产三区| 国产视频不卡| 午夜久久av| 91在线播放国产| 欧洲午夜精品| 国产精品精品久久久| 伊人久久视频| 55夜色66夜色国产精品视频 | 午夜精品久久一牛影视| 欧美做爰爽爽爽爽爽爽| 国产精品久久久久四虎| 午夜精产品一区二区在线观看的| 26uuu色噜噜精品一区二区| 国产a级片视频| 国产成人午夜99999| 中国黄色片免费看| 免费成人你懂的| 亚洲不卡视频在线| 首页国产欧美日韩丝袜| 精品视频无码一区二区三区| 西西裸体人体做爰大胆久久久| 男女啪啪免费视频网站| 激情婷婷亚洲| 日韩五码在线观看| 亚洲精品影视| 大j8黑人w巨大888a片| 一本久道久久综合狠狠爱| 男人操女人逼免费视频| 一区二区毛片| 少妇性l交大片| 免费观看久久久4p| 日韩va在线观看| 国产成人精品免费网站| 在线播放第一页| 成av人片一区二区| 蜜桃传媒一区二区亚洲av | 欧美午夜视频在线| 偷拍亚洲精品| 日韩免费毛片| 97精品一区| av在线com| 国产一区成人| 久久精品午夜福利| 免费av网站大全久久| 欧美视频亚洲图片| 成人一区二区三区视频在线观看| 人妖粗暴刺激videos呻吟| 99国产精品久久久久久久久久| 精品国产av无码| 中文字幕欧美激情| 2021亚洲天堂| 日韩欧美国产激情| 亚洲一区中文字幕永久在线| 日韩一区二区三区三四区视频在线观看| 国产三级在线观看视频| 亚洲精品av在线播放| 丁香婷婷在线| 欧美精品一区二区免费| 色多多在线观看| 国产主播欧美精品| 国产劲爆久久| 亚洲国产综合自拍| 在线欧美三区| 手机视频在线观看| 国产精品 欧美精品| 自拍偷拍中文字幕| 136国产福利精品导航| 亚洲精品1区2区3区| 色妞www精品视频| 99久久久久久久| 亚洲欧美日韩网| 动漫一区在线| 日韩av片免费在线观看| 99视频有精品高清视频| 国产尤物99| 亚洲欧洲美洲一区二区三区| 91国视频在线| 国产伦精品一区二区三区免费 | 国产不卡一区二区在线播放| 粉嫩av国产一区二区三区| 久久久人人爽| 欧美日韩午夜| 亚洲欧美日韩一级| 久久综合五月天婷婷伊人| 99热精品免费| 欧美日韩亚洲另类| 天天色综合久久| 欧美成人精品一区二区| 欧美与亚洲与日本直播| 国产富婆一区二区三区| 婷婷成人基地| 亚洲三级视频网站| 91免费观看在线| 久久成人在线观看| 这里只有精品电影| 日本免费视频在线观看| 日韩av片免费在线观看| 日本午夜精品| 日本手机在线视频| 国产精品一二三四| 老熟妇高潮一区二区三区| 在线精品亚洲一区二区不卡| 人妻无码中文字幕| 久久久久久久久久久亚洲| 精品国产麻豆| 亚洲小说欧美另类激情| 狠狠色综合日日| 99re6热在线精品视频| 在线观看区一区二| 欧美69xxxxx| 日本精品久久久久久久| 香蕉视频一区二区三区| 成人毛片视频网站| 99re66热这里只有精品3直播 | 中文字幕91视频| 欧美日韩国产欧美日美国产精品| 成人影视在线播放| 国产精品都在这里| 国产精品中文字幕亚洲欧美| 国产xxxxx视频| 国产精品三级在线观看| 中国女人真人一级毛片| 在线电影欧美日韩一区二区私密| 桃花岛成人影院| 日韩免费av一区二区三区| 日本伊人精品一区二区三区观看方式| 怡红院一区二区三区| 欧美中文字幕亚洲一区二区va在线| 麻豆影视在线| 国产精品v片在线观看不卡| 国产在线日韩精品| 午夜在线观看av| 成人免费小视频| 国产成人精品白浆久久69| 久久久久久久91| 欧美爱爱网站| 少妇高清精品毛片在线视频| 久久精品一区二区三区av| 在线观看日韩一区二区| 久久影院中文字幕| 国产伦理久久久久久妇女| 日韩av片在线看| 欧美激情一二三区| 99久久久久成人国产免费| 97视频色精品| 欧美精品一二| 五月天婷婷在线观看视频| 亚洲电影一级黄| 国产剧情在线观看| 成人在线播放av| 亚洲精品九九| 在线观看日本黄色| 日韩一区二区在线看| 午夜av不卡| 异国色恋浪漫潭| 99久久精品国产精品久久| 久久精品国产亚洲av麻豆蜜芽| 久久中文久久字幕| 外国成人在线视频| 久久久精品高清| 午夜精品久久久久久久久久久| 国产三级视频在线播放线观看| 成人在线激情视频| 国产精品久久久久毛片大屁完整版| 天天操天天干天天操天天干| 日韩欧美第一区| 亚洲一区二区三区四区| 日韩中文字幕在线不卡| 久久精品夜色噜噜亚洲aⅴ| 99久久夜色精品国产亚洲| 热久久免费视频精品| 91欧美日韩| 三级电影在线看| 欧美一级生活片| 深夜视频一区二区| 欧美精品在欧美一区二区| 中文字幕免费不卡| 手机看片福利在线| 91嫩草免费看| 蜜臀av一区二区在线免费观看| 国产无套粉嫩白浆内谢|