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

得物容器SRE探索與實踐

開發 前端
關于什么是SRE,以及在業務上有哪些具體的輸出,網上資料眾多但都只是對基本概念做描述。那容器SRE究竟要怎么結合業務,得物容器SRE又有哪些最佳實踐,本文就得物容器SRE的一些事情向大家做介紹。

0、前言

關于什么是SRE,以及在業務上有哪些具體的輸出,網上資料眾多但都只是對基本概念做描述。那容器SRE究竟要怎么結合業務,得物容器SRE又有哪些最佳實踐,本文就得物容器SRE的一些事情向大家做介紹。

1、SRE定義

穩定性工程師,用軟件工程解決復雜的運維問題,50%的時間用于運維瑣事,50%的時間用于軟件工程保障業務的穩定性和可擴展性,包括開發監控,日志,告警系統,業務性能調優等

圖片

2、對于SRE的理解

2.1 SRE的監控和Oncall應急響應

2.1.1 一個團隊 Oncall 至多需要兩個人 (另外一個是新手 shadow),oncall人員需要具備以下能力:

(a)清晰的問題升級路線

(b)清晰定義的應急事件處理步驟

(c) 監控巡檢,如下:

查看監控,分析服務可用性下降或者耗時增加等影響服務質量的問題的根部原因。

  • 2. 整理以上事件的數據
  • 3. 分析根本原因,優化并且解決(運維手段,代碼,或者腳本 / 代碼自動化運維手段)
  • 2.1.2 遇到重大故障時的各種重要角色
  • IC(Incident Commander):故障指揮官,這個角色是整個指揮體系的核心,最重要的職責是組織和協調,而非執行,下面所有角色都要接受他的指令并嚴格執行。
  • CL(Communication Lead):溝通引導,負責對內和對外的信息收集及通報,這個角色一般相對固定,由技術支持、QA或者是某個SRE來承擔,要求溝通表達能力要比較好。
  • OL(Operations Lead):運維指揮,負責指揮或指導各種故障預案的執行和業務恢復。
  • IR(Incident Responders):即所有需要參與到故障處理中的各類人員,真正的故障定位和業務恢復都是他們來完成的,如具體執行的SRE、運維、業務開發、平臺開發、DBA,甚至是QA

2.2 SLO和SLA制定和保障

100%穩定的系統是不存在的

  • 服務質量指標 SLI(indicator):量化指標,包括延遲、吞吐量、錯誤率、可用性、持久性等
  • 指標不宜過多,應關注用戶的真實需求
  • 常用的指標度量應該盡量標準化(如時間間隔、頻率等)
  • 服務質量目標 SLO(Objective):對特定 SLI 的目標值
  • 服務質量協議 SLA(Aggrement):與用戶間的明確協議,一般伴隨著代價
  • 維護服務可用性的成本不是線性增長的,到一定程度,增加一個9可能需要10倍100倍的成本,通過SLO讓成本和收益取得很好的平衡,假設一個業務增加SLO等級,可以計算一下需要的成本和帶來的收益,如果得不償失就可以不用增加SLO等級

2.3 變更管理

  •   SRE的經驗大概 70% 的生產事故由某種部署的變更而觸發
  •   變更管理的最佳實踐:
  •   1. 采用漸進式發布機制
  •   2. 迅速而準確地檢測到問題的發生
  •   3. 當出現問題時,安全迅速地回退改動

2.4 容量規劃

  • 容量規劃必需步驟:
  • 必須有一個準確的自然增長需求預測模型,需求預測的時間應該超過資源獲取的時間。
  • 規劃中必須有準確的非自然增長的需求來源的統計。
  • 必須有周期性壓力測試,以便準確地將系統原始資源信息與業務容量對應起來

2.5 監控系統

  •   SRE的四個黃金指標是構建成功的監控和告警系統的一些基本原則和最佳實踐
  • 延遲:延遲是信息發送方和接收方之間的時間延遲,以毫秒(ms)為單位。而原因往往是由于數據包丟失網絡擁塞和網絡抖動造成的,稱為“數據包延遲差異”延遲對客戶體驗有直接影響,轉化為成功請求的延遲和失敗請求的延遲。
  • 流量:流量是系統工作量帶來的壓力。它通過每秒查詢數(QPS)或每秒事務數(TPS)來衡量。企業通過數量來衡量這一點:關鍵績效指標(KPI)是在給定時間來到站點的人數。這與商業價值有直接關系。
  • 錯誤:錯誤是根據整個系統中發生的錯誤來衡量的。被認為是服務錯誤率的重要指標!有兩類錯誤:顯式錯誤,如失敗的HTTP請求(500個錯誤代碼,例如);隱含錯誤是成功的響應,但內容錯誤或響應時間長。
  • 飽和度:飽和度定義了服務的過載程度。它衡量系統利用率,強調服務的資源和整體容量。這通常適用于CPU利用率、內存使用、磁盤容量和每秒操作數等資源。儀表板和監控警報是幫助你密切關注這些資源并幫助你在容量飽和之前主動調整容量的理想工具

2.6 可靠性衡量

  • 可靠性是MTTF(平均失敗時間)和MTTR(平均恢復時間)的函數。評價一個團隊將系統恢復到正常情況的最有效指標,就是MTTR。
  • 任何需要人工操作的事情都只會延長恢復時間。一個可以自動恢復的系統即使有更多的故障發生,也要比事事都需要人工干預的系統可用性更高

圖片

3、得物容器SRE的實踐

3.1 Oncall應急響應的總結

Oncall是直接體現SRE價值所在,能夠直接影響MTTR時間的主要核心系數,一個好的Oncall甚至可以幫助公司挽回很多資損甚至是公司的形象,所以Oncall是每個SRE最重要的工作。

我們有自己的Oncall機制、適用范圍、人員構成、復盤跟進、不同場景會邀請不同隊員參與排障。有基本的故障處理原則,事故處理后的閉環。下圖為整個Oncall流程的進行方式:

圖片

當然每次都只是處理故障,恢復后不做總結歸納是不會有任何沉淀的,容器SRE會記錄每次有意義的故障進行文案撰寫并在故障中總結現有系統存在的工具類、平臺類、代碼類隱患點,分等級高中低進行推進push幫助業務,基架不斷完善系統健壯性;

3.2 一次容器故障的分享

3.2.1 延遲問題背景:

某天下午SRE側開始陸續接到業務研發反饋redisRT 增長導致超時,其中某服務有多個 pod 存在redis RT 突增導致部分請求超時(截圖如下)

圖片

經過了一系列的驅逐與資源規整等止血操作后,該故障在30分鐘后恢復。在這種場景下排查根因通常是一個很辣手的問題,因為第一現場很難在短時間內再進行模擬、恢復,第二在生產環境下不易做太多的測試工作。這種背景下就要發揮SRE的價值了。下面是敘述我們整個問題的排查思路與過程,希望能給大家一些借鑒。

3.2.2 問題排查思路:

排障過程描述只是說了一個思路,部分時間點可能和故障產生的時間重合

先排查是否是網絡問題引起的,當問題發現解決后后我們梳理了對應的宿主機的信息,想發現一些規律來確認故障的根因;

圖片

圖上可見,這三臺并不是一個網段的,唯一相同的也就是同一個區域,這個范圍較大,不像是一個局部事件。所以我優先想到了云商故障;

為了進一步確認問題,我將對故障的 ecs ID 給到了阿里并進行了一個授權,隨后還拉群做了語音討論

接下來是整個根因排查分析:

  • 排除鏈路問題

翻閱故障時的監控發現,網絡耗時在故障時間點附近比較平穩、經過和阿里內部監控的核對,當時問題宿主機網絡延遲在故障時間點延遲僅從 2ms 增加到 4ms 所以可以排除是由于網絡問題導致的

  • 發現異常現象

node監控有大量的異常包,drop 計數異常,常規情況下應該為0(上圖),我們對這些drop 包做了分析(下圖)發現Drop 的統計數非常高,同時tcpofo,tcprcvq這兩個指標指向了TCP內存限制,需要擴充內存空間。

為了更進一步知道根因所在,我們又去觀察了對應的 io夯、調度(任務等待)、 夯住(應用進程鎖)、用戶態內存等待、網絡 (系統 5狀態分類左圖) (這里第一步已經排除了“網絡”故障所以這里做了刪除線處理),可以看到排查到io等待時間過長(下圖)

  • 深挖排查到IO平均等待時間上存在問題

IO平均等待時間在秒級以上,遠超了正常范圍,故開始排查percpu iowait 狀況。經過一系列的操作最終我們使用sls 導入tidb 的方法數據做了一個可視化;

select * from cpus where time > now() - 4h and host = 'i-bp11f8g5h7oofu5pqgr8' and iowait > 50.0

我們對那些 CPU iowait 比較高的篩選出來,看看能不能找到對應的業務(當時就懷疑是不是由于混部原因導致的)但是找了一圈沒有發現什么問題。

3.2.3 最終根因定位:

繞了一圈發現線索又斷了,還是回到那個TCP 內存限制的問題,為什么會判斷tcpofodrop 指標會與tcp_mem 有關呢?可以直接看代碼邏輯

內核源碼網站推薦https://lxr.missinglinkelectronics.com/linux+v4.19/net/ipv4/tcp_input.c#L4459

(一個展示源代碼存儲庫的軟件工具集)

上面的邏輯簡單敘述:TCP的核心預分配緩存額度函數為tcp_try_rmem_schedule,如果無法分配緩存額度,將首先調用tcp_prune_queue函數嘗試合并sk_receive_queue中的數據包skb以減少空間占用,如果空間仍然不足,最后調用tcp_prune_ofo_queue函數清理亂序數據包隊列 (out_of_order_queue)。簡單說:如果內存分配失敗,對應drop計數就會遞增

另外當時我們也發現了dmesg日志里tcp oom的日志,如下圖所示

于是就搜了一些實踐準備將線上連接數比較高的那幾臺機器做一個替換處理試試

#命令查看方法
sysctl -a|grep -i tcp_mem|tcp_rmem|tcp_wmem

當時想準備替換的配置(當時這個調整低于線上目前的值)

# 擴大TCP 總內存大小
# 擴大到 32G 最小值不動 中間數為max 的 70%
echo "net.ipv4.tcp_mem = 1104864 5872026 8388608">> /etc/sysctl.conf
#單個 socket 讀分配最大內存
#原先16MB 擴大到 32MB (中間數為最佳實踐推薦)
echo "net.ipv4.tcp_rmem = 4096 25165824 33554432">> /etc/sysctl.conf
#單個 socket 寫分配最大內存
#原先16MB 擴大到 32MB (中間數為最佳實踐推薦)
echo "net.ipv4.tcp_wmem = 4096 25165824 33554()432">> /etc/sysctl.conf

當時線上內存

cat /proc/sys/net/ipv4/tcp_mem
6169920 8226561 12339840,這里是最小值24G 壓力值32G 最大值48G

在check這些參數的過程中突然就發現了一個問題,我們線上的參數換算成內存值是48G左右,已經算大了,可以想象一下 tcp 鏈接總的內存已經用了48G!這部分還不光是網絡開銷只是一個 TCP 鏈接,我們就有 ss 看了下當時的鏈接情況:

通常出現這種情況的原因有以下兩種:1、應用沒有正確close他的socket進程 2、沒有處理異常情況下的socket??

感興趣的同學可以看下這個文檔(推薦)

??https://stackoverflow.com/questions/38837724/linux-too-many-closed-connections??

然后我們怎么找到是誰呢?通常情況下可以這么理解,一個 soket 就是一個 fd (句柄),對應soket 大必然fd 也大!(因為linux 一切皆文件)隨后我們用了 for 循環查找對應的/proc 下的文件數量,結果如下:

附上命令參考:

#看進程對應哪個容器
for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i &&echo ID=$i; done |grep -A 15 4078683
#看FD誰占用的多
for pid in `ls -1 /proc/|grep -Eo '[0-9]{1,}'`; do pnum=$(ls -1 /proc/${pid}/fd/|wc -l); if [ $pnum -gt 1000 ];then echo "${pid} ${pnum}"; fi; done

為了確認又去容器中查看,確認無疑!

拉了對應引用的負責人后將結果反饋,業務得到信息后立即響應并將自己的應用做了下線處理,隨后觀察指標立馬恢復了 - 破案~

這次故障我們深刻反省,同事建議將我們的系統參數的監控覆蓋完全,所以之后我們立即就成立了一個項目,優化推進監控覆蓋

3.3 容器底層對于內核參數監控與優化

繼上文說到的故障后,我們意識到了容器監控上的不足故成立了專項來做內核參數上的監控。但是內核參數上千個我們怎么來做?

3.3.1 圈定監控指標范圍

所以第一步就是完成內核指標羅列范圍。我們對以往的故障和反饋分析來看,網絡故障發生較為頻繁,所以范圍圈定為宿主機網絡指標為主;網絡指標在系統中主要由/proc/net/netstat提供,所以我們羅列了他所提供的所有指標;(如圖是netstat的所有指標)

3.3.2 內核指標的采集實現

有了范圍我們要制定采集方案有些是node-export需要特殊配置才能采集到的具體方案;比如下面要增加netstat的監控是需要啟用node-export對應的擴展包

第二個就是通過開源的采集組件監控不到的數據比如tcp.socket.mem這部分只能靠自己開發完成。如下圖通常采用截取字段方式將os的狀態指標采集到

3.3.3 指標的展示可視化

有了采集后就是完成指標的展示與統計,我們通過/proc/net/netstat獲取到了46個網絡指標,同時也借鑒了業內的最佳實踐總共55個指標的羅列與代表的意義,并將各內核常見參數 含義及公式形成文檔,解決了很多參數不目的不明確的問題,下圖是我們展示這些指標的案例截圖

3.3.4 場景分類逐個優化

完成了展示后,我們就需要對這些核心內核指標參數進行分類(這些指標存在問題可能會影響業務正常運行)

以上55個指標大多為輔助定位的指標,作為業務類型不同,關注的指標與內核參數的調整是有區別的

通用類型default資源池模型;(注重并發,多鏈接,多請求的場景)監控參考如下:監控統計可以看到資源使用比較平均,需要均衡的參數配置

參數

作用

是否合理

備注

vm.min_free_kbytes

用于保留空閑內存最小值

redhat官方建議小于5%,但沒有給出最小值,參考網上建議一般設置為總內存的2%

如果過大,會導致空閑內存過多,浪費內存,并且可能會頻繁觸發oom;過小可能會導致觸發程序direct claim,從而導致應用hang住

fs.file-max

系統級的進程可打開句柄數

合理

通過/proc/sys/fs/file-nr可以看當前打開句柄占用比

net.netfilter.nf_conntrack_max

連接跟蹤表上限

偏大但無副作用

連接跟蹤自身占用內存空間不大,但實際要考慮的資源負載,一臺機器并發上百萬時

net.ipv4.tcp_max_syn_backlog

影響系統半連接全連接隊列大小

合理

從當前收集的tcp各種指標看,沒有出現過隊列滿的情況

net.ipv4.tcp_rmem/wmem

每個tcp socket的讀寫緩沖區大小

待觀察-目前合理

涉及到net.ipv4.tcp_rmem

irate(node_netstat_TcpExt_PruneCalled{instance=~"$instance",job=~"$job"}[5m]) 歷史上有大量上報的數據

net.ipv4.tcp_max_tw_buckets

當前系統允許最大的time_wait狀態的tcp連接數

偏大 (考慮到內存不緊張暫時不做修改)

當一個客戶端有20w以上的tw時,可用端口,句柄資源存在較多浪費

算法類型高密度計算類型資源池;(主動睡眠,被動睡眠,看調度延時,cpu消耗在用戶態還是內核態)監控參考如下:監控統計可以看到 cpu大多使用率較高

參數

作用

是否合理

備注

各cpu核心中斷是否均衡

用于確定是否存在網卡存在硬件問題,從而導致cpu熱點

均衡


cpu整體負載是否超過cpu核心

負載過高時任務調度可能存在延遲

中等

-

是否有跨numa

跨numa會導致內存訪問延遲增加

單node節點

-

cs上下文切換(nvcswch)

非自愿進程切換

合理

如果頻繁出現,說明分配的cpu資源不夠,存存資源爭搶

大數據類型 專有集群資源池;(關注網絡IO,磁盤IO,文件系統cache,網絡開銷大)監控參考如下:監控統計可以看到網絡上開銷較大

參數

作用

是否合理

備注

net.netfilter.nf_conntrack_max

連接跟蹤表上限

偏大但無副作用

連接跟蹤自身占用內存空間不大,但實際要考慮的資源負載,一臺機器并發上百萬時

net.ipv4.tcp_max_syn_backlog

影響系統半連接全連接隊列大小

合理

從當前收集的tcp各種指標看,沒有出現過隊列滿的情況

net.ipv4.tcp_rmem/wmem

每個tcp socket的讀寫緩沖區大小

待觀察-目前合理

涉及到net.ipv4.tcp_rmem

irate(node_netstat_TcpExt_PruneCalled{instance=~"$instance",job=~"$job"}[5m]) 歷史上有大量上報的數據

/proc/sys/vm/dirty_ratio

控制內存臟頁百分比

建議適當提高并觀察

(目前io寫入寫出量比較大)vmstat

net.ipv4.tcp_max_tw_buckets

當前系統允許最大的time_wait狀態的tcp連接數

偏大 (考慮到內存不緊張暫時不做修改)

當一個客戶端有20w以上的tw時,可用端口,句柄資源存在較多浪費

3.3.5 參數優化管理與兜底保障

然后我們就對這三個類型的主機分別做了參數調整和鋪平,由于文章長度關系親,就不做詳細描述了。完成了調整后我們怎么去維護和管理這些內核參數呢?這里我們對內核參數管理也做了一個方案,保障這次治理后是長久有效的。具體的流程如下:

圖片

有整理出的內核指標后還會通過日常的監控、巡檢對某些需要調整的內核參數做出修改,由于是wget統一拉取的,所以在update的時候只要通過修改oss里面的批量類型init.sh就可以做到了,不需要修改每一個資源池配置

圖片

為了更安全起見,我們還做了內核初始化兜底保障功能,當然我們在以往的經歷中發現,有些節點會因為網絡變更等原因拉不到oss的初始化文件,且Ali沒有這塊初始化的提示,所以kube-node會有一個初始化的兜底,如果節點啟動初始化失敗會檢測到對應的錯誤數據并將其修改為正常值

圖片

整套上線后,我們配置了7個監控告警項,在實際運行中發現5次以上隱患問題提前在故障發生前就預先進行了處理,保障了產線的穩定性運行。至此,整個故障算是畫上了圓滿的句號

3.4 容器安全的一些保障

上面正好說到兜底保障,其實我們在整個容器集群里部署有多個保護系統,下面我就舉例一個防誤刪場景的方案。

3.4.1 簡介業內防控體系

首先我們來參考下某知名大廠的防控體系

圖片

從架構看來,大致分為三大塊:權限、風控、流控

權限管控:

2018年某大廠整體架構開始往社區K8S方向遷移。遷移是個非常漫長的過程,需要考慮很多的細節。最開始自然是K8S權限體系管控問題,不同BU、不同平臺、基礎組件,都要跟新的ASI對接,第一件事情就是 申請項目專用賬號 。當時SRE開了個Git倉庫,專門用于各個 基礎業務方 提交 賬號申請信息,格式是按照 K8S標準權限資源 進行提交。

除了 RBAC,SRE還管控 CRD、WebHook 、Kubeconfig 等核心資源

風險控制Webhook風控:

不同平臺方、業務方一般在自己的前端或者后端都有對應的邏輯進行風險控制。但是也搞不好業務方在邏輯上存在Bug或者不夠完善的地方,因此在最基礎的底層上,需要有個SRE的WebHook對所有請求進行攔截校驗兜底。

流量控制K8S-Defender

阿里搞的 K8S防火墻主要針對于API流量風控,早期是Webhook機制實現,但是K8S-Webhook天然存在一些缺陷,比如無法站起全局視角進行精準流控,因此后面是獨立出來了。做成了C/S模型,但需要強制讓所有接入ASI的基礎組件在關鍵的位置統一使用 Defender 做K8S流量風制,這個目前在得物這個階段很難推得動,所以可以降級到Webhook機制去實現。

他山之石,可以攻玉。我們可以參考

3.4.2 得物現在防護具備的功能

3.4.2.1 Namespace 防誤刪:

這里分為硬性和軟性兩種方式。

對于核心的Namespace,例如 kube-system、monitoring。不應該以任何理由刪除,這類Namespace可以 普通賬號直接鎖死,即便你RBAC里面擁有刪除NS的權限,就不允許刪除。

對于 Addons 或者 純業務類型的Namespace,因為可能出現調試場景,比如:調試或者測試某個復雜的Addons組件,因為牽涉到太多的配置和資源,過程中已經混亂不堪,想徹底干凈地重裝一遍,回到初始狀態。這種情況下是需要利用K8S級聯刪除特性,把該Namespace包括下面所有資源清理一次。如果鎖死該Namespace,業務方遇到這種情況,就會很麻煩,所以這個場景走 硬性防刪 就不是明智之舉。

相對于硬性防刪,我們引入了軟性防刪策略。也就是對于非核心的Namespace,在一定的時間內,我們對刪除的請求做計數統計,在沒達到閥值之前,會一直拒絕刪除。并在返回的結果上給予風險提示,如果N秒內再提交X次,則真的執行刪除動作。這種方式對業務方明顯會更加友好一些,一方面起到了一定防誤刪效果,另一方面也不至于在你真正想刪除的時候刪不掉。

另外我們還開發了一種策略,專門針對批量刪除Namespace的場景。對于我們目前Namespace的使用方式是不合理的,說不定哪天可能會對Namespace做治理,以域的方式來確定Namespace。這個時候就會涉及到大量Namespace的清理工作。這種合法的刪除,如果不斷地被Webhook攔截中斷,這不是個合理的設計。所以我們支持以管控標降級策略,也就是給對應的Namespace打一個管控標,則Webhook對這類Namespace就主動做降級處理,不再校驗攔截。這樣運維就可以正常地做批量刪除動作。

3.4.2.2 NS-CRD|CR 防誤刪:

K8S WebHook 機制,是可以對任意帶Namespace的CRD|CR進行攔截。其攔截邏輯是可以共享的,只是資源類型不一樣。所以我們可以動態配置,攔截邏輯對哪些資源生效。

支持 Ingress、WorkLoad、Service、ConfigMap、Secret、Pod ... 類型資源,并支持標簽篩選能力

3.4.2.3 高危配置校驗:

對于 Ingress 規則配置比較復雜,很多初學者會犯一些低級錯誤。比如:rule.host 配置為 '*' ,這意味著該規則匹配所有域名,所有請求都會過這條規則進行轉發,顯然生產環境這種配置是不合理的。而且一旦配置上可能會覆蓋掉大量的rule,導致生產故障。所以這類低級錯誤配置一定要攔截,不允許配置。

這里就簡單畫下方案圖,大致基本借助于webhook的能力,對一些刪除動作的時候加強校驗與攔截的機制。

圖片

4、總結

上述幾個案例都是得物容器SRE團隊在日常工作中真實發生的事件,覆蓋的也只是多項工作中的冰山一角,寫這篇文章也是想讓大家認知到我們團隊,了解我們容器SRE。由于篇幅有限其余細節不再展開了,大家有疑問歡迎找我討論。同時也歡迎對容器/云原生/SRE 等領域感興趣的同學加入我們。

我們是得物容器SRE團隊。

我們團隊的宗旨是為全司提供穩定、高效、安全的支撐和服務。

服務項目:業務穩定性保障,線上業務系統變更,業務性能&狀態監控,容量評估;核心業務場景梳理,識別關鍵鏈路和關鍵接口,制定服務保障預案,對關鍵鏈路實施故障演練,確保服務的連續性。得物容器化集群維護、系統網絡維護以及系統基礎組件維護。保障基礎環境的穩定、高效,并提供豐富的工具和平臺提升系統的自動化、可視化、智能化。

責任編輯:武曉燕 來源: 得物技術
相關推薦

2022-12-09 18:58:10

2023-12-27 18:46:05

云原生容器技術

2023-10-09 18:35:37

得物Redis架構

2023-03-13 18:35:33

灰度環境golang編排等

2023-09-13 18:59:40

SRE視角藍綠發布

2023-04-28 18:37:38

直播低延遲探索

2023-03-30 18:39:36

2025-11-11 01:55:00

2023-09-04 18:57:01

API接口數據中心

2025-03-13 06:48:22

2023-02-06 18:35:05

架構探測技術

2023-11-27 18:38:57

得物商家測試

2022-12-14 18:40:04

得物染色環境

2023-08-09 20:43:32

2023-07-19 22:17:21

Android資源優化

2022-10-26 18:44:33

藍紙箱設計數據

2025-07-31 00:00:25

2023-04-04 14:40:46

2022-10-20 14:35:48

用戶畫像離線

2025-03-20 10:47:15

點贊
收藏

51CTO技術棧公眾號

91丨九色丨海角社区| 91传媒理伦片在线观看| 日日夜夜精品一区| 国产精品99久久久久久宅男| 欧美高清视频在线| 五月开心播播网| 欧美日韩精品一区二区三区视频| 国产精品久久久久精k8 | 中文字幕在线观看日韩| 欧美视频亚洲图片| xxx欧美xxx| 亚洲男人的天堂在线aⅴ视频| 国产伦精品一区二区三区四区视频 | 国产成人av影视| 18加网站在线| 久久综合九色综合97婷婷女人 | 国产精品福利电影一区二区三区四区| 91精品国产一区二区三区动漫| www亚洲视频| 一精品久久久| 亚洲偷熟乱区亚洲香蕉av| 天天爽夜夜爽视频| 成人精品三级| 亚洲成人动漫一区| 最新不卡av| 激情小视频在线| 99在线热播精品免费| 91亚洲精品在线观看| 日本一区二区三区精品| 欧美/亚洲一区| 最近中文字幕日韩精品| 先锋资源av在线| 欧美激情三级| 欧美日韩国产首页| 男女啪啪免费视频网站| а√天堂在线官网| 欧美国产日韩精品免费观看| 精品久久久久久乱码天堂| 999免费视频| 卡一卡二国产精品| 国产精品黄色av| 六月丁香婷婷综合| 91久久亚洲| 欧美日韩国产成人在线| 国产一区二区精彩视频| 岳的好大精品一区二区三区| 亚洲国产精品福利| 久久久久久无码精品人妻一区二区| 欧美午夜三级| 欧美三级中文字幕在线观看| 亚洲天堂av线| 日韩av超清在线观看| 欧美视频裸体精品| 成人综合视频在线| 手机在线观看av网站| 亚洲mv大片欧洲mv大片精品| 99国产精品白浆在线观看免费| av网址在线| 一区二区视频在线看| 亚洲精品天堂成人片av在线播放 | 亚洲无线观看| 精品久久久久久亚洲综合网 | 91在线云播放| 麻豆91av| аⅴ资源新版在线天堂| 欧美国产在线观看| 在线观看欧美一区| 成人影欧美片| 亚洲成人一区在线| 国产视频九色蝌蚪| 自拍偷自拍亚洲精品被多人伦好爽| 色综合欧美在线视频区| 欧美在线观看视频网站| 播放一区二区| 在线综合视频播放| 潘金莲一级淫片aaaaaaa| 加勒比久久高清| 亚洲精品资源美女情侣酒店| 美女爆乳18禁www久久久久久 | 亚洲欧美在线一区| 日韩av片在线| 欧美.日韩.国产.一区.二区| 97视频免费在线看| 天天射天天干天天| 黄色资源网久久资源365| 成人在线观看av| 欧美69xxxxx| 国产精品国产三级国产aⅴ中文| 精品少妇人妻av一区二区| brazzers在线观看| 日韩欧美国产骚| 国产又黄又猛的视频| 99re6热只有精品免费观看| 日韩精品一区二区视频| 日韩一区二区三区四区视频| 国产精品a久久久久| 45www国产精品网站| 一级特黄特色的免费大片视频| 精品在线你懂的| 狠狠色综合欧美激情| 8888四色奇米在线观看| 亚洲激情图片qvod| 国产免费人做人爱午夜视频| 国产精品美女久久久久| 精品亚洲精品福利线在观看| 亚洲女人毛茸茸高潮| 伊人久久久大香线蕉综合直播 | 欧美高清一级片| 亚洲品质视频自拍网| 99久久99久久精品国产| 亚洲欧美日韩国产综合精品二区 | 伊人久久亚洲综合| 99久久久国产精品| av不卡在线免费观看| 午夜伦理福利在线| 日韩精品一区二区三区中文不卡 | 欧美 中文字幕| 国产精品女主播在线观看| 男人的天堂avav| 欧美日韩伦理一区二区| 亚洲色图在线观看| 久久精品国产亚洲av麻豆色欲| 麻豆视频观看网址久久| 久久综合狠狠综合久久综青草| 国产乱色在线观看| 欧美性大战久久久久久久| 日韩精品视频一区二区| 综合激情一区| 国产精品无码专区在线观看| 蜜桃视频在线观看网站| 姬川优奈aav一区二区| 亚洲精品久久久久久| 欧美3p视频| 国产福利精品av综合导导航| 欧美日本韩国一区二区| 五月激情综合婷婷| 欧美一级片在线免费观看| 91精品婷婷色在线观看| 国产精品日本精品| 国产三区四区在线观看| 一本色道久久综合狠狠躁的推荐| 无码人妻精品一区二区三区99不卡| 99精品在线观看| 国产精品视频精品| eeuss影院在线观看| 在线看一区二区| 一色道久久88加勒比一| 欧美亚洲一区二区三区| 精品一区2区三区| 国产夫妻在线播放| 亚洲精品乱码久久久久久按摩观| 全网免费在线播放视频入口| 国产乱码精品一区二区三区av| 制服诱惑一区| 国产精品视频一区二区三区| 久久久国产一区| 99精品免费观看| 亚洲精品免费在线观看| 中文写幕一区二区三区免费观成熟| 欧美日韩国产色综合一二三四| 91亚洲国产成人精品性色| a黄色片在线观看| 日韩欧美在线综合网| 久久久久亚洲AV| 成人h精品动漫一区二区三区| 福利视频一区二区三区四区| 狼人天天伊人久久| 欧美最猛性xxxxx(亚洲精品)| 每日更新在线观看av| 在线一区二区三区四区五区| 天天操天天舔天天射| 狠狠色丁香久久婷婷综合_中| 做爰高潮hd色即是空| 欧美国产中文高清| 51精品在线观看| 爱久久·www| 日韩视频在线永久播放| 日韩久久精品视频| 国产午夜精品福利| 九一精品久久久| 欧美午夜a级限制福利片| 久久久久国产精品视频| 国产麻豆一区| 欧美精品成人在线| 精品欧美不卡一区二区在线观看| 欧美日韩激情在线| 久久综合亚洲色hezyo国产| 91女人视频在线观看| 久久国产这里只有精品| 欧美日韩天堂| 日本一区二区三区四区在线观看| 亚洲三级电影| 91精品国产91久久久久久吃药| а√天堂中文在线资源bt在线| 91精品欧美福利在线观看| 国产精品视频久久久久久久| 国产精品久久久久永久免费观看 | 中文字幕av在线免费观看| 一区二区在线电影| 四虎成人免费影院| 成人亚洲一区二区一| 亚洲第一中文av| 欧美日韩国产色综合一二三四| 欧美三级网色| 试看120秒一区二区三区| 国产精品91在线观看| 日本一级理论片在线大全| 国产一区二区三区丝袜| 后进极品白嫩翘臀在线视频| 欧美日韩亚洲国产综合| 国产大片中文字幕| 国产精品福利av| 波多野结衣一本| 成人免费视频caoporn| 色多多视频在线播放| 99热这里只有成人精品国产| 国产精品久久成人免费观看| 久久不见久久见国语| 成人xxxxx色| 日韩黄色在线| 国产成人高清激情视频在线观看| 国产亚av手机在线观看| 日韩一区二区精品视频| 欧美日韩国产综合视频| 日韩av在线一区| 精品久久久久久亚洲综合网站 | 国产精品久久无码一三区| 欧美性色xo影院| 99免费在线观看| 亚洲精品菠萝久久久久久久| 欧美成人久久久免费播放| 久久久久免费观看| 黄色录像a级片| av爱爱亚洲一区| 国产a级片视频| 国产99精品国产| 男插女视频网站| 国产一区二区福利| 三日本三级少妇三级99| 激情文学综合插| 亚洲一级片网站| 麻豆精品一区二区三区| 爱情岛论坛vip永久入口| 蜜桃av一区| 国产精品亚洲αv天堂无码| 国产精品主播| 欧美日韩一区二区在线免费观看| 亚洲少妇在线| 男人揉女人奶房视频60分| 亚洲精品美女| 自拍日韩亚洲一区在线| 国产精品人人爽人人做我的可爱 | 奇米一区二区三区av| 欧美日韩在线成人| 日韩高清一级片| 日日干夜夜操s8| 麻豆国产精品一区二区三区| 8x8x成人免费视频| 国产在线播放一区| 18禁一区二区三区| 不卡av在线免费观看| 欧美丰满少妇人妻精品| 久久久美女毛片| 精品在线观看一区| 亚洲欧美日韩国产综合在线| 欧美日韩中文字幕在线观看| 亚洲一区二区精品视频| 中文字幕亚洲精品在线| 午夜精品久久久久久久99水蜜桃| 亚洲GV成人无码久久精品| 色88888久久久久久影院野外| 又色又爽又黄无遮挡的免费视频| 69av一区二区三区| 亚洲免费黄色片| 日韩精品视频免费在线观看| 不卡在线视频| 欧美激情成人在线视频| 最近高清中文在线字幕在线观看1| 国产成人av网| 亚洲精品aaa| 国精产品一区二区| 超碰成人久久| www.激情网| 日韩精品每日更新| 欧美国产日韩在线视频| www..com久久爱| 五月婷婷六月香| 亚洲一区在线视频观看| 黄色av网站免费观看| 制服丝袜亚洲网站| 亚州男人的天堂| 久久精品国产清自在天天线| 91超碰在线| 国产精品一区二区久久久久| 老司机aⅴ在线精品导航| 性欧美.com| 日韩网站在线| 999这里有精品| 91网站在线播放| 欧美卡一卡二卡三| 欧洲一区在线电影| 亚洲av无码乱码国产精品| 一个色综合导航| av2020不卡| 92国产精品视频| 欧美性感美女一区二区| 久久久亚洲国产精品| 久久国产精品一区二区| 三级黄色片网站| 亚洲一区二区三区四区在线免费观看| 欧美日韩 一区二区三区| 亚洲成人黄色网| 麻豆网在线观看| 国产福利精品av综合导导航| 97品白浆高清久久久久久| 伊人久久大香线蕉av一区| 在线综合视频| 日本久久久久久久久久| 国产精品久久久久久久久免费丝袜 | 99久久激情| 久久综合久久色| 91免费视频大全| 国产精品99无码一区二区| 欧美一区二区三区在线视频| 北岛玲日韩精品一区二区三区| 51精品在线观看| 久久91在线| 国产激情在线看| 国产制服丝袜一区| 懂色av粉嫩av蜜臀av一区二区三区| 日韩欧美国产高清91| 性xxxfllreexxx少妇| 欧美激情一级二级| 欧美一区一区| 懂色av一区二区三区四区五区| 日本美女一区二区三区| 精品无码一区二区三区| 偷拍日韩校园综合在线| 成人午夜福利视频| 欧美日韩国产va另类| 涩涩屋成人免费视频软件| 免费的av在线| 国产精品一区二区在线观看不卡 | 国产精品黄页免费高清在线观看| 日韩成人动漫在线观看| 一女被多男玩喷潮视频| 91色|porny| 在线观看日本网站| 亚洲女在线观看| 日韩一级二级| 亚洲一区二区三区在线观看视频| 日本sm残虐另类| 91麻豆精品久久毛片一级| 欧美日韩精品系列| 免费黄色网址在线观看| 96精品久久久久中文字幕| 重囗味另类老妇506070| 免费黄色在线播放| 亚洲444eee在线观看| 免费一级在线观看| 国产精品69av| 欧美成免费一区二区视频| 黄色一级片免费的| 亚洲免费视频中文字幕| 亚洲国产精品suv| 性欧美xxxx视频在线观看| 小说区图片区色综合区| 99热手机在线| 亚洲欧美另类小说| 好吊色在线观看| 奇米影视亚洲狠狠色| 残酷重口调教一区二区| 免费欧美一级片| 精品成人久久av| 大胆av不用播放器在线播放 | 久久午夜影院| 精品久久久噜噜噜噜久久图片| 国产精品欧美一区喷水| 亚洲国产精品久久久久久久 | 欧美无砖专区免费| 337p粉嫩大胆噜噜噜噜噜91av| 一级久久久久久| 免费av一区二区| 亚洲精品动态| www.com污| 天天综合日日夜夜精品| 成人精品一区二区三区校园激情| 成人性生交大片免费看视频直播 | 日本一二三四区视频| 欧美日韩美女在线| 日本美女在线中文版| 国产区日韩欧美| 裸体一区二区三区| 国产网站在线看| 在线观看国产精品日韩av| 免费看一区二区三区| 玩弄japan白嫩少妇hd| 亚洲最新视频在线播放| 超碰97在线免费观看| 国产一区在线免费观看|