2021年7月13日,bilibili 出現(xiàn)了一次服務(wù)不可用的宕機(jī)事故。一年以后,bilibili 技術(shù)團(tuán)隊(duì)以一篇事故復(fù)盤的文章刷爆了技術(shù)人的朋友圈,這一次典型的技術(shù)事故,卻成了一個非典型的技術(shù)故事。
類似的黑天鵝事件時(shí)有發(fā)生,有的或出于單體應(yīng)用的代碼規(guī)范問題,有的或出于瞬時(shí)流量的峰值涌入,有的或因?yàn)樵茝S商的服務(wù)抖動受到牽連?梢哉f,后端研發(fā)人員的成長之旅,往往伴隨著對黑天鵝事件的防范、處理、教訓(xùn),互聯(lián)網(wǎng)服務(wù)這么多年發(fā)展至今,高可用能力到了什么程度,是否能幫助企業(yè)規(guī)避黑天鵝事件的發(fā)生?上云是否是這個時(shí)代保證服務(wù)穩(wěn)定性的有效途徑?企業(yè)技術(shù)管理者又該如何居安思危,調(diào)整技術(shù)架構(gòu)?
9月25日,騰訊云 TVP 走進(jìn) B 站,暢聊「高可用 VS 黑天鵝」的那些事兒,相信能給你一些不一樣的啟發(fā)。本文為本次活動精華總結(jié)。
bilibili云原生架構(gòu)演進(jìn)
bilibili 技術(shù)委員會主席、騰訊云 TVP 毛劍帶來了題為《bilibili 云原生架構(gòu)演進(jìn)》的主題分享。
毛劍老師介紹道,bilibili 的云原生演進(jìn)大體上始于2015年,主要?dú)v程涵蓋了微服務(wù)、容器化和中間件三個關(guān)鍵環(huán)節(jié):
微服務(wù): 伴隨著業(yè)務(wù)的發(fā)展、DAU 的爆發(fā),2015年開始從單體轉(zhuǎn)向微服務(wù),面對單體架構(gòu)無法擴(kuò)展、可靠性低的問題,應(yīng)對的思路概括為“化繁為簡,分而治之。
容器化: 15年最初部署在裸金屬上;16年開始使用 Mesos+Marathon 進(jìn)行容器編排,17年遷移到 Kubernetes,之后很快在線應(yīng)用彈性公有云上線。20年離線 Yarn 和 在線 K8S 做了在離線混部(錯峰使用),基于混部 Agent,協(xié)調(diào)分配資源。22年離線 Flink、Spark Native on K8S,開始逐漸嘗試覆蓋,統(tǒng)一調(diào)度架構(gòu),完成統(tǒng)一調(diào)度。
中間件: 容器+微服務(wù)的組合帶來的應(yīng)用爆發(fā)式增長給架構(gòu)帶來了巨大挑戰(zhàn),為此引入了開源社區(qū)的組件,在性能、穩(wěn)定性能達(dá)到要求的情況下,盡可能使用開源方案,少量組件需要二次開發(fā)和迭代。
從架構(gòu)設(shè)計(jì)的層面上看,從CDN到接入層再到服務(wù)/中間件/存儲、可觀測、效率體系、穩(wěn)定體系,每個環(huán)節(jié)都有穩(wěn)定性、可用性的保障,每一層都有不同技術(shù)人員去做維護(hù)和迭代。毛劍老師表示,設(shè)計(jì)很美好,但黑天鵝該來還得來。
毛劍老師表示,從技術(shù)人員的視角看,可用性保障的核心就是流量能否得到有效管控。無論是網(wǎng)絡(luò)故障、機(jī)房故障、組件故障還是服務(wù)故障,每一層都應(yīng)該設(shè)計(jì)備有相應(yīng)的容錯機(jī)制,以避免事故發(fā)生或在事故發(fā)生時(shí)能快速定位、及時(shí)修補(bǔ)。
在 bilibili 2021年發(fā)生的7.13事故中,引發(fā)的原因就是接入層SLB不可用了。毛劍老師詳細(xì)分享了本次事故所暴露出的基礎(chǔ)技術(shù)建設(shè)方面的問題,諸如:
用戶鏈路和辦公網(wǎng)鏈路未徹底隔離
多活未按預(yù)期立即生效,不支持寫
人力不足,故障止損和排查無法并行
組件故障預(yù)案不完善,處理耗時(shí)久
復(fù)雜事故影響面極大,定位成本高
……
毛劍老師表示,多活是機(jī)房級故障時(shí)容災(zāi)止損最快的方案。在這樣的背景下,bilibili 做了多活基架能力建設(shè)、多活管控能力提升的針對性改進(jìn)。在 bilibili 技術(shù)委員會成立后,選擇了擁抱云原生,以強(qiáng)調(diào)工程一致性的方式做云原生的落地建設(shè)。
另一方面,針對容災(zāi)、快速切換的高可用能力方面,設(shè)計(jì)了同城雙活的架構(gòu),具體如下圖所示。
隨著業(yè)務(wù)的快速演進(jìn),bilibili 開始從 Global Zone(單點(diǎn)全局業(yè)務(wù))演進(jìn)到同城雙活、異地 AZ 的建設(shè),逐漸也過度到異地多活。毛劍老師表示,實(shí)現(xiàn)單元化用戶流量的混合云架構(gòu)是 bilibili 一直在追求做的事情,包括在急需擴(kuò)容的情況下,可依托于云廠商的云原生技術(shù)基礎(chǔ)能力,在云上新建一個 RZone/CZone Shard,遷移部分用戶 bucket 流量,發(fā)揮云的彈性優(yōu)勢,實(shí)現(xiàn)共贏。
分享最后,毛劍老師也基于 bilibili 的業(yè)務(wù)場景,解釋了 bilibili 為何要在私有云架構(gòu)之上再上公有云的實(shí)際思考。
大變革時(shí)代研發(fā)團(tuán)隊(duì)的重塑
有贊技術(shù)副總裁、顧問,騰訊云 TVP 沈淦帶來了題為《大變革時(shí)代研發(fā)團(tuán)隊(duì)的重塑》的主題分享。
分享伊始,沈淦老師為大家介紹了大變革的時(shí)代背景下,舊經(jīng)濟(jì)模式與新經(jīng)濟(jì)模式的變化。當(dāng)前的企業(yè)從以前的“活得好”到現(xiàn)在開始思考如何“活下去”,這背后折射的是經(jīng)濟(jì)底層范式的重置:從經(jīng)濟(jì)優(yōu)先轉(zhuǎn)變?yōu)榭沙掷m(xù)、社會公平、數(shù)據(jù)安全、自主可控的新經(jīng)濟(jì)模式。在內(nèi)卷的舊經(jīng)濟(jì)時(shí)代,技術(shù)管理的核心價(jià)值,是打造技術(shù)團(tuán)隊(duì)超(無限)高的交付效率。
從舊經(jīng)濟(jì)到新經(jīng)濟(jì)的轉(zhuǎn)變過程中,技術(shù)團(tuán)隊(duì)的使命和價(jià)值也發(fā)生了相應(yīng)的變化。從行為到職責(zé),需要改變的地方有很多。如下圖所示,當(dāng)前大部分的技術(shù)團(tuán)隊(duì)仍舊處于圖中的第二階段,效率和成本仍是核心價(jià)值,但新經(jīng)濟(jì)要求的的速度和適應(yīng)性的價(jià)值已經(jīng)更為突出。
沈淦老師以 SaaS 行業(yè)為例,介紹了價(jià)值驅(qū)動業(yè)務(wù)模式的三條主線:其一是高技術(shù)密度的產(chǎn)品力;其二是商業(yè)化能力;其三是從客戶之聲到 CSGB 的客戶成功。這三條線大多數(shù)業(yè)務(wù)團(tuán)隊(duì)都有在做,但大部分彼此之間都比較孤立,沒有形成有機(jī)結(jié)合,效果不佳。
另一方面,對于考核體系的理解也有待革新。過去的考核體系主要關(guān)注點(diǎn)落在“做了什么”的動作上,聚焦功能、非功能需求的實(shí)現(xiàn)。當(dāng)前階段開始由做了什么到做成了什么轉(zhuǎn)變,關(guān)注GMV增長、PV/UV、穩(wěn)定性等等。而對技術(shù)人員而言,的目標(biāo)應(yīng)該是價(jià)值的實(shí)現(xiàn)——達(dá)成了什么?是爆款?是增購?還是客戶的推薦?
沈淦老師將以上所體現(xiàn)的理念總結(jié)為了“找價(jià)值、設(shè)指標(biāo)、拆流程、建團(tuán)隊(duì)”的端到端流程四步法。這四個步驟拆開來看,單個環(huán)節(jié)可能每個技術(shù)團(tuán)隊(duì)都有涉及到,但只有按照一定的順序、有機(jī)結(jié)合地去做,才能產(chǎn)生更大的業(yè)務(wù)價(jià)值。
“流程四步法中最難的也許是建團(tuán)隊(duì)”,從組織結(jié)構(gòu)上去撬動杠桿往往是最難的地方,因?yàn)檫@背后涉及到人與人之間的連接。沈淦老師舉例指出,建團(tuán)隊(duì)有三個基本理論需要關(guān)注,其一是康威定律,其二是認(rèn)知負(fù)荷,其三是隧道視野。技術(shù)團(tuán)隊(duì)的管理者應(yīng)該從大處著眼,小處著手,由點(diǎn)及面地完成高效能團(tuán)隊(duì)的構(gòu)建工作。
騰訊自研業(yè)務(wù)上云背后的高可用實(shí)踐
騰訊云云原生產(chǎn)品中心技術(shù)總監(jiān)王濤帶來了題為《騰訊自研業(yè)務(wù)上云背后的高可用實(shí)踐》的主題分享。
王濤老師首先簡要分享了騰訊自研業(yè)務(wù)容器化上云的歷程。技術(shù)路線上,從胖容器到富容器再到微容器,演化到 Serverless、FaaS 的形態(tài),同時(shí)持續(xù)著在離線混部、在線混部的實(shí)踐,包括 Service Mesh 也都有持續(xù)的應(yīng)用。
王濤老師介紹到,經(jīng)過3-4年的大規(guī)模自研業(yè)務(wù)云原生實(shí)踐,騰訊在各個技術(shù)方向和業(yè)務(wù)場景都沉淀了大量的解決方案。與此同時(shí)持續(xù)反哺給公有云產(chǎn)品,提升各種業(yè)務(wù)場景下的核心技術(shù)競爭力。
在這樣的背景下,騰訊的云原生成熟度模型演進(jìn)到 V2.0 版本,從平臺和業(yè)務(wù)兩個維度,考察云原生的能力。在這樣的模型考量下,騰訊自研業(yè)務(wù)上云的規(guī)模及成熟度也保持了一個持續(xù)上揚(yáng)的趨勢,業(yè)務(wù)和平臺的云原生成熟度都得到了持續(xù)提升,價(jià)值得以量化。
王濤老師分析到,容器平臺穩(wěn)定性主要涵蓋平臺層穩(wěn)定、集群層穩(wěn)定、節(jié)點(diǎn)層穩(wěn)定、業(yè)務(wù)層穩(wěn)定幾個方面。他重點(diǎn)分享了節(jié)點(diǎn)穩(wěn)定性和業(yè)務(wù)穩(wěn)定性的case,持續(xù)深耕云原生OS,提供更好的容器隔離性能力和可觀測性,與此同時(shí)騰訊也在逐步大規(guī)模使用 Serverless K8s(EKS)的產(chǎn)品能力,徹底解決容器隔離性問題,并實(shí)現(xiàn)了統(tǒng)一大資源池的調(diào)度能力。
在業(yè)務(wù)容災(zāi)的成本方面,過去面向集群業(yè)務(wù)管理效率低、容災(zāi)部署成本高,改造的目標(biāo)是快速實(shí)現(xiàn)業(yè)務(wù)的多地域多活部署、一鍵發(fā)起應(yīng)用的全球灰度變更,業(yè)務(wù)灰度期間只需偶爾關(guān)注應(yīng)用大盤視圖即可掌控整體灰度情況,極大的提升了應(yīng)用管理效率,這對大規(guī)模的應(yīng)用管理極其重要。
王濤老師表示,這背后涉及到的關(guān)鍵技術(shù)有很多,比如騰訊開源的多集群管理項(xiàng)目Clusternet、多集群的應(yīng)用聲明、面向應(yīng)用的多集群協(xié)同彈性伸縮能力和動態(tài)拆分調(diào)度能力等,最終以面向應(yīng)用的”屏蔽集群、模糊可用區(qū)“等產(chǎn)品能力,幫助業(yè)務(wù)快速實(shí)現(xiàn)同城多活、兩地三中心等容災(zāi)部署能力。全球多地域一次性高可用部署以及豐富的多集群業(yè)務(wù)灰度變更策略等,幫助業(yè)務(wù)提升容災(zāi)部署/變更的效率以及可用性。
在服務(wù)路由的高可用方面,通過騰訊內(nèi)部自研的服務(wù)東西向流量管理“北極星Polaris”,提供解決包括遠(yuǎn)程過程調(diào)用(RPC)的服務(wù)注冊與發(fā)現(xiàn)、動態(tài)路由、負(fù)載均衡、服務(wù)熔斷等一系列的超大規(guī)模和高性能的服務(wù)路由管理能力。輔以Kubernetes Controller的方式對接北極星,進(jìn)一步提升了Pod狀態(tài)和服務(wù)實(shí)例可用性的聯(lián)動實(shí)時(shí)性,加快了實(shí)例故障自動剔除等關(guān)鍵動作。
在混沌工程方面,騰訊云所有云產(chǎn)品都必須參與日;煦缪菥,提前發(fā)現(xiàn)產(chǎn)品隱患,提升云產(chǎn)品的可用性。由此也孵化出了公有云混沌演練平臺,日常通過高可用攻擊演練的方式,鍛煉運(yùn)營質(zhì)量與架構(gòu)的高可用改造,在故障真實(shí)發(fā)生時(shí)從容應(yīng)對。
云上高可用能力建設(shè)
騰訊云高可用專家服務(wù)負(fù)責(zé)人廖行星帶來了題為《云上高可用能力建設(shè)》的主題演講。
分享伊始,廖行星老師從黑天鵝和高可用的關(guān)系上做了一個論斷——黑天鵝是一個現(xiàn)象,是一個結(jié)果,但高可用/異構(gòu)系統(tǒng),以及技術(shù)側(cè)的能力,是對應(yīng)的治理手段和方法,我們是期望通過這樣的方法來降低,或者說控制黑天鵝事件對業(yè)務(wù)的影響時(shí)長和范圍。
對于高可用能力的度量指標(biāo),廖行星老師總結(jié)了以下幾個關(guān)鍵:RTO 恢復(fù)時(shí)間目標(biāo);RPO 恢復(fù)點(diǎn)目標(biāo);WRT 工作恢復(fù)時(shí)間;MTD 可容忍停機(jī)時(shí)間。高可用能力的價(jià)值體現(xiàn),如下圖所示:
廖行星老師表示,異地多活的能力是服務(wù)高可用的關(guān)鍵,在技術(shù)目標(biāo)上主要可以分為以下幾個維度。
DNS 調(diào)度。 常見影響 DNS 調(diào)度的因素有 locallands 多出口、locallands 不支持 ECS、NS 不支持 ECS、NS 的 IP 庫不準(zhǔn)確等,由此帶來的技術(shù)目標(biāo)是需要能夠保證大部分流量調(diào)度的準(zhǔn)確性。
路由層流量糾偏。 利用openresty流量糾編實(shí)現(xiàn),確保流量流入某一region。
邏輯層單元化建設(shè)。 徹底單元化,確保region間無數(shù)據(jù)流動。
數(shù)據(jù)層數(shù)據(jù)同步。 數(shù)據(jù)回環(huán),一致性,數(shù)據(jù)沖突。
在災(zāi)難切換方面,重點(diǎn)步驟可以總結(jié)為以下幾點(diǎn):
1.多活規(guī)則中心下發(fā)禁寫通知和禁寫時(shí)間基線
2.數(shù)據(jù)庫SDK收到禁寫數(shù)據(jù)庫寫入和更新
3.雙向復(fù)制器收到超過禁寫時(shí)間基線不再復(fù)制
4.雙向復(fù)制器上報(bào)復(fù)制完成狀態(tài)
5.多活規(guī)則中心下發(fā)流量切換通知
6.Nginx&網(wǎng)關(guān)層收到將流量切換到機(jī)房B并上報(bào)切換完成狀態(tài)
7.多活規(guī)則中心下發(fā)取消禁寫通知
廖行星老師介紹道,騰訊云在高可用能力建設(shè)方面做了很多技術(shù)上的實(shí)現(xiàn)工作,在路由層面上,API網(wǎng)關(guān)+SCF可以實(shí)現(xiàn)復(fù)雜的流量染色場景;在接入層方面,CLB 具備就近接入、VIP 漂移的高可用能力;在邏輯層方面,騰訊云微服務(wù)平臺 Tencent Service Framework(TSF)提供微服務(wù)全生命周期管理、服務(wù)可觀測、配置管理、服務(wù)治理及業(yè)務(wù)容災(zāi)架構(gòu)能力;在數(shù)據(jù)層方面,CDB&DTS 能夠有效實(shí)現(xiàn)數(shù)據(jù)的一致性、數(shù)據(jù)回環(huán)等。
觀點(diǎn)眾議
精彩的分享結(jié)束后,TVP 們還在線下展開了一場別開生面的小組討論會,在場嘉賓分為三組針對三個高可用話題展開了討論,并派出了三位小組代表(劉意、毛劍、大漠窮秋)做要點(diǎn)總結(jié)。
對于體量較小的企業(yè)而言,是否有必要提前搭建高可用的容災(zāi)體系?
劉意 :我們這桌正好有創(chuàng)業(yè)者,他們公司跟 bilibili 有點(diǎn)類似,都是重 IT 的客戶。對于類似的小體量企業(yè),不具備 bilibili 的業(yè)務(wù)體量時(shí),是不需要重度發(fā)展高可用容災(zāi)體系的,更多可以用多云多活的架構(gòu)來部署自己的業(yè)務(wù)系統(tǒng)。這樣做的好處是可以確保自己的業(yè)務(wù)在 A 云中發(fā)生故障時(shí)可以平滑地遷移到 B 云,平時(shí)也可以通過演練確保切換動作的絲滑流暢。還有一個好處就是可以利用兩方云平臺的成本體系去平衡成本,實(shí)現(xiàn)降本增效。
毛劍 :對于小體量企業(yè)而言,PaaS 平臺的搭建的確很花精力。很多人以為用了云就具備了高可用能力,其實(shí)不然,小企業(yè)仍舊需要懂 SRE 去主動培養(yǎng)高可用的意識。服務(wù)穩(wěn)定性的影響因素有很多,僅僅是研發(fā)人員寫的一個 bug,同樣會對其造成不可估量的影響。這背后需要一系列的手段去做避免,本質(zhì)上是一個系統(tǒng)工程。小企業(yè)可以不建平臺,可以只用云的能力,但一定要具備 SRE 的意識。
大漠窮秋 :我職業(yè)生涯里經(jīng)歷過兩次自己搞出來的故障,影響都比較大,一次是在某電力系統(tǒng)公司搞掛了監(jiān)控系統(tǒng)的庫,另一次是在接手舊系統(tǒng)的維護(hù)升級工作時(shí)優(yōu)化了代碼格式刪除了多余空行導(dǎo)致系統(tǒng)故障,這兩次都是在相對互聯(lián)網(wǎng)而言較小的企業(yè)里。對于小企業(yè)而言,體量只是其中的一個因素,另外還需要去考量企業(yè)是否會在某個階段突然獲得爆發(fā)式的增長,比如最近很火爆的一些現(xiàn)象級的小游戲,判斷增長的空間才有足夠合理的提前搭建高可用容災(zāi)體系的必要。
目前眾多的冷備、熱備、雙活、多活、同城、異地、多云等災(zāi)備方案中,如何更好的選擇貼合自身要求的高可用和容災(zāi)架構(gòu)方案?
劉意 :多云多活的方案中,bilibili 和喜馬拉雅都選擇了混合云的模式。大部分企業(yè)并不常遇到數(shù)據(jù)庫爆炸一樣的極端情況,也不像銀行業(yè)一定要異地多活高規(guī)格的容災(zāi)體系,一般而言雙活就能起到高可用的作用足夠滿足需求了。相比其他而言,提高 IT 團(tuán)隊(duì)的管控能力可能更為重要。此外,要讓業(yè)務(wù)在自建 IDC 和上云之間做好選擇,哪些核心系統(tǒng)上云,哪些不用,充分利用自建 IDC 數(shù)據(jù)的可靠性,確保業(yè)務(wù)跑得更快、更好。
毛劍 :很多人對系統(tǒng)的多活容災(zāi)有誤解,多活在技術(shù)上對時(shí)間、精力的消耗很大,但幾乎沒有產(chǎn)生附加價(jià)值,所以技術(shù)團(tuán)隊(duì)在做多活方案之前一定要考慮到業(yè)務(wù)的 ROI。類似交易型電商、金融行業(yè),對異地多活的需求會比較高,但大部分業(yè)務(wù)做到同城雙活就足夠了。建設(shè)多活的核心其實(shí)就是兩點(diǎn),第一是思考出現(xiàn)停機(jī)問題時(shí),業(yè)務(wù)損失和投入建設(shè)的資源之間比例是否劃算;第二,因?yàn)橐粋機(jī)房放不下,花錢買資源的同時(shí)實(shí)現(xiàn)多活能力。
大漠窮秋 :并不是所有的事故都需要做容災(zāi),技術(shù)人員還是要去提前評估好業(yè)務(wù)和事故之間可能存在的聯(lián)系。有些東西掛了就掛了,重啟就能解決,未必一定要用容災(zāi)的方式去做建設(shè)。這背后一個是技術(shù)體系與人員操作規(guī)范的問題,兩者都是重要的影響因素。另一個問題就是性價(jià)比的問題,對很多中小團(tuán)隊(duì)來說,建容災(zāi)冗余的投入遠(yuǎn)大于事故發(fā)生時(shí)的損失,成本對于中小企業(yè)而言就是最敏感的影響因素。
在「黑天鵝」事件發(fā)生,導(dǎo)致業(yè)務(wù)癱瘓時(shí),作為企業(yè),如何進(jìn)行應(yīng)急處理?
劉意 :類似刪庫的黑天鵝事件發(fā)生時(shí),作為云廠商而言應(yīng)該在力所能及的范圍內(nèi)去幫助客戶恢復(fù)業(yè)務(wù)系統(tǒng)和關(guān)鍵數(shù)據(jù),這是云廠商應(yīng)盡的義務(wù)。從企業(yè)的角度看,首先應(yīng)該在構(gòu)建系統(tǒng)的時(shí)候就充分做好業(yè)務(wù)的保障,然后充分利用內(nèi)部的技術(shù)資源、外部云廠商的資源能力,去盡可能地挽救業(yè)務(wù)損失。
毛劍 :作為企業(yè)不要局限在技術(shù)側(cè)的處理,更要從全局上看問題。其中從事件本身的公關(guān)角度來說,可以這樣分:第一,統(tǒng)一口徑回復(fù)給來自 C 端客戶的客訴;第二,同步 PR 部門的同事,在媒體層面上去做危機(jī)公關(guān);第三,通過 GR 等政府關(guān)系部門去向上報(bào)備同步。
技術(shù)側(cè)處理時(shí),首先不要慌,把相關(guān)人員組織好,統(tǒng)一事故協(xié)調(diào)和回復(fù)的對接人;第二,盡快通知其他部門事故的發(fā)生,在日常工作中也要多做事故演練;第三,做好事故的復(fù)盤,對事不對人,規(guī)范化流程和人的問題;谶@些想法理念可以建設(shè)一個平臺,我們目前建的平臺叫事件中心,保留事件發(fā)生前做了什么,事中做了什么,事后的復(fù)盤等等。
結(jié)語
線上服務(wù)的穩(wěn)定性對企業(yè)而言至關(guān)重要,穩(wěn)定性差的服務(wù)在帶給用戶不佳體驗(yàn)的同時(shí),甚至可能給企業(yè)造成直接的經(jīng)濟(jì)損失。而影響線上服務(wù)穩(wěn)定性的因素又有很多,無論是業(yè)務(wù)研發(fā)人員還是云平臺的技術(shù)人員,都在不斷地持續(xù)求索那提升高可用能力的可能,不斷地逼近『4個9』、『5個』的可用性極限。
TVP 從成立之初,所追求的用科技影響世界,讓技術(shù)普惠大家,也跟這樣追求的技術(shù)精神所一脈相承、互相輝映。TVP 們走進(jìn)的是 B 站,走出來的卻是更多高可用技術(shù)背后的思考與實(shí)踐。
免責(zé)聲明:本文僅代表作者個人觀點(diǎn),與每日科技網(wǎng)無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實(shí)相關(guān)內(nèi)容。
本網(wǎng)站有部分內(nèi)容均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),若因作品內(nèi)容、知識產(chǎn)權(quán)、版權(quán)和其他問題,請及時(shí)提供相關(guān)證明等材料并與我們聯(lián)系,本網(wǎng)站將在規(guī)定時(shí)間內(nèi)給予刪除等相關(guān)處理.
精彩推薦
-
采購拿回扣問題,教你一個小妙招,看看怎么做!
2017-09-18 11:09 廣告 閱讀
-
苦逼的老板,教你一個小妙招,怎么防采購拿回扣!
2017-09-18 11:09 廣告 閱讀
-
紅人新經(jīng)濟(jì)平臺“天下秀”和“傳播易”未來競爭
2022-04-29 17:21:11 更新 閱讀
-
尖貨爆料!速來【數(shù)碼預(yù)爆臺】領(lǐng)取618福利和AI新
2024-06-21 18:33:22 更新 閱讀
-
喜獲國際設(shè)計(jì)大獎丨十字勛章減重大師Pro商務(wù)背包
2024-06-12 14:04:28 更新 閱讀
-
Baseus倍思音頻品鑒會:一場產(chǎn)品與技術(shù)的對話
2024-05-29 11:13:32 更新 閱讀
-
212攜手極致軍工品質(zhì),煥新出發(fā)
2024-05-22 21:16:00 更新 閱讀
-
第四屆全球應(yīng)用算法BPAA大賽再度升級,增添三大
2024-05-17 17:55:36 更新 閱讀
-
三維天地助力實(shí)驗(yàn)室質(zhì)量管理工作無紙化、流程化
2024-05-09 15:35:04 更新 閱讀