




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
浙江移動的DevOps實(shí)踐浙江移動的DevOps實(shí)踐1目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量檢查提前到開發(fā)階段3安全高效的應(yīng)用部署4小結(jié)和思考5目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量2研發(fā)運(yùn)營一體化成熟度評估是什么一級二級三級四級五級初始級基礎(chǔ)級全面級優(yōu)秀級卓越級在組織局部范圍內(nèi)開始嘗試DevOps活動并獲得初期效果在組織較大范圍內(nèi)推行DevOps實(shí)踐并獲得局部效率提升在組織內(nèi)全面推行DevOps實(shí)踐并貫穿軟件全生命周期獲得整體效率提升在組織內(nèi)全面落地DevOps并可按需交付用戶價值達(dá)到整體效率最優(yōu)化在組織內(nèi)全面形成持續(xù)改進(jìn)的文化并不斷驅(qū)動DevOps在更大范圍內(nèi)取得成功研發(fā)運(yùn)營一體化成熟度評估是什么一級二級三級四級五級初始級在組3持續(xù)交付能力成熟度評估根據(jù)配置管理、構(gòu)建與持續(xù)集成、測試管理、部署與發(fā)布管理、環(huán)境管理、數(shù)據(jù)管理、度量與反饋等七大領(lǐng)域,十四個維度進(jìn)行。持續(xù)交付配置管理構(gòu)建與持續(xù)集成測試管理部署與發(fā)布管理環(huán)境管理數(shù)據(jù)管理度量與反饋版本管理構(gòu)建實(shí)踐測試分層管理部署與發(fā)布模式環(huán)境管理測試數(shù)據(jù)管理度量指標(biāo)變更管理持續(xù)集成代碼質(zhì)量管理持續(xù)部署流水線數(shù)據(jù)變更管理度量驅(qū)動改進(jìn)自動化測試持續(xù)交付成熟評估持續(xù)交付能力成熟度評估根據(jù)配置管理、構(gòu)建與持續(xù)集成、測試管理4需
將的
成分構(gòu)實(shí)
一構(gòu)實(shí)持續(xù)部署流水線級別構(gòu)建方式構(gòu)建環(huán)境構(gòu)建計(jì)劃構(gòu)建職責(zé)卓越級 持續(xù)優(yōu)化的構(gòu)建服務(wù)平臺,持續(xù)改進(jìn)服務(wù)易用性持續(xù)改進(jìn)構(gòu)建性能,實(shí)現(xiàn)構(gòu)建資源動態(tài)按需分配回收,如搭建基于云服務(wù)虛擬化和容器化的分布式構(gòu)建集群分級構(gòu)建計(jì)劃,實(shí)現(xiàn)按構(gòu)建并達(dá)到資源和速度有效平衡構(gòu)建能力賦予全部團(tuán)隊(duì)員,并按需觸發(fā)構(gòu)建實(shí)現(xiàn)快速反饋優(yōu)秀級實(shí)現(xiàn)構(gòu)建服務(wù)化,可按需提供接口和用戶界面用于可視化構(gòu)建編排優(yōu)化構(gòu)建速度,實(shí)現(xiàn)增量化構(gòu)建和模塊化構(gòu)建,如可采用分布式構(gòu)建集群、構(gòu)建緩存等技術(shù),實(shí)現(xiàn)構(gòu)建資源的共享級構(gòu)建計(jì)劃,實(shí)現(xiàn)按需建并達(dá)到資源和速度的有效平衡構(gòu)建系統(tǒng)服務(wù)化提供更多用戶使用,構(gòu)建不再局限于專業(yè)團(tuán)隊(duì)進(jìn)行全部級定義結(jié)構(gòu)化構(gòu)建腳本,現(xiàn)模塊級共享復(fù)用和統(tǒng)維護(hù)建環(huán)境配置實(shí)現(xiàn)標(biāo)準(zhǔn)化,有獨(dú)立的構(gòu)建集群明確定義構(gòu)建計(jì)劃和規(guī)則,實(shí)現(xiàn)代碼提交觸發(fā)構(gòu)建和定期自動執(zhí)行構(gòu)建構(gòu)建工具和環(huán)境由專門團(tuán)隊(duì)維護(hù),并細(xì)分團(tuán)隊(duì)人員職責(zé)基礎(chǔ)級有獨(dú)立的構(gòu)建服務(wù)器,多種任務(wù)共享構(gòu)建環(huán)境明確定義版本號規(guī)則,并根據(jù)發(fā)布策略細(xì)分構(gòu)建類型,實(shí)現(xiàn)每日自動構(gòu)建構(gòu)建工具和環(huán)境由專人負(fù)責(zé)維護(hù),并使用權(quán)限隔離現(xiàn)腳本自動化,通過手工配置完成構(gòu)建使用本地設(shè)備,構(gòu)建環(huán)境不可靠沒有明確的版本號規(guī)則和構(gòu)建任務(wù)計(jì)劃構(gòu)建工具和環(huán)境受限于團(tuán)隊(duì)人員能力,頻繁手動干預(yù)維護(hù)初始級采用手工方式進(jìn)行構(gòu)建,構(gòu)建過程不可重復(fù)評估方式在能力子項(xiàng)目里,對每個級別做了明確的要求定基準(zhǔn):確定最快、最好效率的初步行動評估的方式:人員訪談、材料審查、模式演示指方向:躍遷需要做什么查補(bǔ)缺:哪些實(shí)踐必是必須的需將的成分構(gòu)實(shí)一構(gòu)實(shí)持續(xù)部署流水線級別構(gòu)建方式構(gòu)5評估結(jié)果能力域能力子域能力項(xiàng)能力指標(biāo)項(xiàng)能力得分 評級持續(xù)交付配置管理版本控制版本控制系統(tǒng)三級效率和質(zhì)量提升點(diǎn)三級優(yōu)勢點(diǎn)分支管理制品管理單一可信數(shù)據(jù)源變更管理變更過程變更追溯變更回滾構(gòu)建與持續(xù)集成構(gòu)建實(shí)踐構(gòu)建方式四級構(gòu)建環(huán)境構(gòu)建計(jì)劃構(gòu)建職責(zé)持續(xù)集成集成服務(wù)集成頻率集成方式反饋周期測試管理測試分級策略分層方法四級分層策略測試時機(jī)代碼質(zhì)量管理質(zhì)量規(guī)約檢查方式反饋處理測試自動化自動化設(shè)計(jì)自動化開發(fā)自動化執(zhí)行自動化分析部署與發(fā)布管理部署與發(fā)布模式部署方式三級部分過程部署策略部署質(zhì)量持續(xù)部署流水線協(xié)作模式流水線過程過程可視化環(huán)境管理環(huán)境管理環(huán)境類型四級環(huán)境構(gòu)建環(huán)境依賴與配置管理數(shù)據(jù)管理測試數(shù)據(jù)管理數(shù)據(jù)來源三級數(shù)據(jù)覆蓋數(shù)據(jù)獨(dú)立性數(shù)據(jù)變更管理變更過程兼容回滾數(shù)據(jù)監(jiān)控度量與反饋度量指標(biāo)度量指標(biāo)定義三級度量指標(biāo)類型度量數(shù)據(jù)管理度量指標(biāo)更新內(nèi)容和生產(chǎn)方式度量驅(qū)動改進(jìn)數(shù)據(jù)和生產(chǎn)方式數(shù)據(jù)失效性覆蓋范圍反饋改進(jìn)√構(gòu)建和持續(xù)集成構(gòu)建腳本版本管理構(gòu)建環(huán)境容器化構(gòu)建資源彈性高可用√代碼質(zhì)量管理pre-commit檢查代碼環(huán)境管理容器的大規(guī)模應(yīng)用√持續(xù)部署流水線Jar包發(fā)布數(shù)據(jù)與代碼部署分離變更管理變更項(xiàng)多,觸發(fā)來源廣評估結(jié)果能力域能力子域能力項(xiàng)能力指標(biāo)項(xiàng)能力得分 評級版本控制6人流程技術(shù)構(gòu)建和部署活動參與的角色和職責(zé)個人,全棧工程師團(tuán)隊(duì),人員合理地安排在一起,合理地組織起來協(xié)作代碼提交流程,CodeReview代碼構(gòu)建流程,持續(xù)集成流水線應(yīng)用發(fā)布流程,部署流水線線源碼、依賴包、制品的管理工具和方式代碼質(zhì)量檢查和漏洞分析的策略和工具構(gòu)建和部署使用的工具能力和容量構(gòu)建和部署要解決的問題代碼構(gòu)建關(guān)注軟件代碼到可運(yùn)行程序之間的過程,通過規(guī)則、資源和工具的有效結(jié)合,提升構(gòu)建質(zhì)量和構(gòu)建速度,使構(gòu)建成為一個輕量級,可靠可重復(fù)的過程。部署和發(fā)布模式關(guān)注交付過程中的具體實(shí)踐,
將部署活動自動化并前移到研發(fā)階段,
通過頻繁的演練和實(shí)踐部署活動,成為研發(fā)日常工作的一部分,可靠、可重復(fù)的完成部署發(fā)布任務(wù)。打造DevOps工具鏈平臺支撐應(yīng)用構(gòu)建部署人流程技術(shù)構(gòu)建和部署活動參與的角色和職責(zé)代碼提交流程,Co7目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量檢查提前到開發(fā)階段3安全高效的應(yīng)用部署4小結(jié)和思考5目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量8痛點(diǎn):應(yīng)用接入平臺構(gòu)建的困難用戶的困難腳本管理,沒有構(gòu)建腳本,或者構(gòu)建腳本是個黑盒職責(zé)調(diào)整,管理構(gòu)建的職責(zé)集中在BM異常處理,使用平臺后構(gòu)建過程中出錯誰負(fù)責(zé)平臺的困難團(tuán)隊(duì)的差異,代碼、依賴、配置的管理工具和模式不一樣工具的差異,應(yīng)用的差異性很大,語言、版本、工具都不相同規(guī)模,應(yīng)用接入的速度太多,構(gòu)建資源和管理模式跟不上痛點(diǎn):應(yīng)用接入平臺構(gòu)建的困難用戶的困難平臺的困難9舉措一:三步提升構(gòu)建腳本管理應(yīng)用編寫構(gòu)建腳本,實(shí)現(xiàn)構(gòu)建過程腳本化管理。去除腳本對構(gòu)建主機(jī)本地資源的依賴,統(tǒng)一配置和依賴的管理,標(biāo)準(zhǔn)化的應(yīng)用能夠自動生成構(gòu)建指令。構(gòu)建腳本版本管理,腳本快速獲取,變更過程可以追溯。構(gòu)建腳本可以快速獲取版本管理構(gòu)建指令的持久化構(gòu)建腳本版本管理構(gòu)建過程腳本化從無到有為應(yīng)用編寫構(gòu)建腳本規(guī)范代碼目錄結(jié)構(gòu)規(guī)范應(yīng)用依賴管理構(gòu)建腳本可以在任意主機(jī)執(zhí)行從繁到簡統(tǒng)一代碼倉庫統(tǒng)一依賴倉庫管理統(tǒng)一配置管理去除對本地目錄的依賴根據(jù)語言、工具自動生成腳本管理的目標(biāo):腳本可以在任意構(gòu)建主機(jī)構(gòu)建應(yīng)用舉措一:三步提升構(gòu)建腳本管理應(yīng)用編寫構(gòu)建腳本,實(shí)現(xiàn)構(gòu)建過程腳10舉措二:容器化構(gòu)建環(huán)境構(gòu)建環(huán)境容器化,通過容器封裝不同語言、工具導(dǎo)致構(gòu)建環(huán)境的差異,通過容器規(guī)格劃分和彈性提升構(gòu)建環(huán)境的資源利用率。屏蔽編譯環(huán)境差異:不同的容器包含不同的編譯工具和環(huán)境配置。提升構(gòu)建主機(jī)利用率:在同一個構(gòu)建主機(jī)上啟動多個容器,提升主機(jī)資源的利用率。構(gòu)建任務(wù)配置:編譯工具和資源訴求分配對應(yīng)的mesos標(biāo)簽舉措二:容器化構(gòu)建環(huán)境屏蔽編譯環(huán)境差異:不同的容器包含不同11舉措三:搭建彈性高可用的構(gòu)建環(huán)境Jenkins-maser高可用只有一個jenkins
masterNFS共享config文件Jenkins-slave彈性擴(kuò)縮jenkins
master注冊成為Framework一個slave容器只分配一個jobZZZZookeeperquorumMesosMasterStandbyMesosOn
dockerOn
dockerJenkins
SlaveJJoobbJobJenkins
SlaveJJoobbJobMesos
slave/app/dataOn
dockerOn
dockerJenkins
SlaveJJoobbJobJenkins
SlaveJJoobbJobMesos
slave/app/dataOn
dockerJenkins
SlaveJJoobbOn
docker JobJenkins
SlaveJJoobbJobMesos
slave/app/dataMarathonMasterStandbyMarathon數(shù)據(jù)共享NFS服務(wù)域名On
dockerOn
dockerJenkins
SlaveJJoobbJobJenkins
SlaveJJoobbJobMesos
slave/app/dataOn
dockerJenkins
SlaveJoJobbJobMesos
slave/app/dataJenkinsMasterJenkins
申請資源啟動jenkins
slaveJenkins
分配任務(wù)舉措三:搭建彈性高可用的構(gòu)建環(huán)境Jenkins-maser高12舉措四:劃分構(gòu)建流水線類型明確職責(zé)下載 編譯 代碼掃描 單元測試 制品上傳鏡像制作開發(fā)部署團(tuán)隊(duì)內(nèi)部不同角色負(fù)責(zé)對應(yīng)類型的流水線開發(fā)流水線準(zhǔn)發(fā)流水線測試流水線下載編譯代碼掃描單元測試制品上傳鏡像制作測速部署自動化測試漏洞掃描下載編譯代碼掃描單元測試制品上傳鏡像制作準(zhǔn)發(fā)部署入網(wǎng)驗(yàn)收測試報(bào)告作用:快速集成\開發(fā)聯(lián)調(diào)角色:開發(fā)時間:代碼提交,觸發(fā)jenkins自動構(gòu)建手工觸發(fā)代碼構(gòu)建,進(jìn)行開發(fā)聯(lián)調(diào)作用:測試驗(yàn)證
角色:測試,開發(fā)時間:定時構(gòu)建,特定時間點(diǎn)發(fā)布測試環(huán)境代碼合并、手工觸發(fā),驗(yàn)證新功能功能:上線前驗(yàn)證角色:BM,運(yùn)維時間:手工觸發(fā),迭代結(jié)束前生成上線發(fā)布版本通過代碼質(zhì)量管理提升代碼構(gòu)建的成功率,減少流水線中斷舉措四:劃分構(gòu)建流水線類型明確職責(zé)下載 編譯 代碼掃描 單元13目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量檢查提前到開發(fā)階段3安全高效的應(yīng)用部署4小結(jié)和思考5目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量14痛點(diǎn):代碼質(zhì)量檢測難以推行代碼質(zhì)量管理是在軟件研發(fā)過程中保證代碼質(zhì)量的一種機(jī)制,
當(dāng)代碼變更后,
可以對代碼質(zhì)量進(jìn)行檢查、分析,給出結(jié)論和改進(jìn)建議,對代碼質(zhì)量數(shù)據(jù)進(jìn)行管理,并可以對代碼質(zhì)量進(jìn)行追溯。質(zhì)量規(guī)約檢查方式反饋處理不同廠家的開發(fā)標(biāo)準(zhǔn)不統(tǒng)一規(guī)范無法落地,成為一堆紙上文字全員Code
Review不同的人對規(guī)范的理解不一樣全員方式占用太多的時間提升速度太慢,新人從頭開始技術(shù)債務(wù)沒有能及時處理歷史的技術(shù)債務(wù)太大無法償還,大部分團(tuán)隊(duì)沒有勇氣去解決歷史賬務(wù)痛點(diǎn):代碼質(zhì)量檢測難以推行代碼質(zhì)量管理是在軟件研發(fā)過程中保證15Sonar掃描代碼能解決的問題規(guī)則落地:所有的規(guī)則和約定,通過代碼規(guī)則配置到soanr。在構(gòu)建的流水線中對代碼規(guī)則檢查。對質(zhì)量問題進(jìn)行通報(bào)和跟蹤。代碼質(zhì)量可視化:通過質(zhì)量報(bào)表展示個應(yīng)從復(fù)雜度分布、重復(fù)代碼、單元測試統(tǒng)計(jì)、技術(shù)債務(wù)等維度可視化各應(yīng)用代碼情況和變化趨勢。不能解決的問題:流水線中斷:流水線構(gòu)建成功率沒有提升。技術(shù)債務(wù):應(yīng)用的歷史技術(shù)債務(wù)并沒有隨著減少。團(tuán)隊(duì)或項(xiàng)目組 級別規(guī)則次數(shù)研發(fā)一組SQLbinding
mechanismsBLOCKER should
be
used12研發(fā)二組BLOCKERNullpointers
should
not
be
dereferenced6訂單中心BLOCKERNullpointers
should
not
be
dereferenced4賬號中心BLOCKERNullpointers
should
not
be
dereferenced2到期子中心BLOCKERNullpointers
should
not
be
dereferenced1代碼質(zhì)量數(shù)據(jù)采集與分析Sonar掃描代碼能解決的問題團(tuán)隊(duì)或項(xiàng)規(guī)則次數(shù)研發(fā)一組SQL16改進(jìn):引入Gerrit工具對代碼進(jìn)行review(1)引入Gerrit工具進(jìn)行代碼自動review,將代碼缺陷前置到開發(fā)階段解決改進(jìn):引入Gerrit工具對代碼進(jìn)行review(1)引入G17改進(jìn):引入Gerrit工具對代碼進(jìn)行review(2)19312848364651200209月7日9月3日 9月4日 9月5日 9月6日遺留技術(shù)債務(wù) 新增技術(shù)債務(wù)當(dāng)天解決數(shù)提高構(gòu)建成功率使用Gerrit前置解決代碼缺陷提交代碼git開發(fā)分支開發(fā)人員提交代碼技術(shù)債務(wù)Gerrit開發(fā)人員構(gòu)建Sonar掃描不存在 git開發(fā)分支存在代碼提交到倉庫前增加校驗(yàn),杜絕質(zhì)量不合格代碼引入Gerrit前引入Gerrit后缺少校驗(yàn),所有問題都遺留構(gòu)建流水線6584 991050100構(gòu)建成功率減少技術(shù)債務(wù)代碼導(dǎo)致的失敗率實(shí)施效果改進(jìn):引入Gerrit工具對代碼進(jìn)行review(2)19318目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量檢查提前到開發(fā)階段3安全高效的應(yīng)用部署4小結(jié)和思考5目錄浙江移動的成熟度結(jié)果1搭建彈性高可用的構(gòu)建環(huán)境2代碼質(zhì)量19痛點(diǎn):應(yīng)用接入平臺部署的困難用戶的困難交付物多:一次上線交付物眾多,版本難以對齊流程復(fù)雜:上線流程復(fù)雜,參與的角色眾多頻率高:微服務(wù)改造、交付頻率提升,導(dǎo)致交付壓力劇增平臺的困難靈活:不同管控級別的項(xiàng)目流程不一致高并發(fā):集中化部署模式,大量集群的部署統(tǒng)一在同一時刻復(fù)雜度:涉及的平臺眾多,驗(yàn)收平臺、緩存中心、配置中心、微服務(wù)管控平臺、告警平臺。痛點(diǎn):應(yīng)用接入平臺部署的困難用戶的困難平臺的困難20代碼包部署流程及存在問題問題:可用性差:分發(fā)環(huán)節(jié)過多造成發(fā)布可用性差,容易發(fā)生目錄不對,文件覆蓋、傳包失敗、分發(fā)主機(jī)僵。性能瓶頸:
代碼分發(fā)服務(wù)器模式可擴(kuò)展性差,由于計(jì)算節(jié)點(diǎn)數(shù)眾多,同時進(jìn)行多個代碼包發(fā)布,代碼分發(fā)服務(wù)器壓力大容易引發(fā)節(jié)點(diǎn)拉包超時、失敗。無法提前預(yù)發(fā)布:代碼包發(fā)布模式在計(jì)算節(jié)點(diǎn)上只能
保留一個版本,無法進(jìn)行預(yù)發(fā)布來減少發(fā)布窗口時間。版本不一致:發(fā)布過程中部分計(jì)算節(jié)點(diǎn)異常(主機(jī)Down、Docker
hang)或是計(jì)算節(jié)點(diǎn)維修錯過發(fā)布后重新被加入集群,會導(dǎo)致代碼包版本不一致問題。部署流程說明:1、交付平臺將代碼包下載到指定的服務(wù)器目錄2、進(jìn)程將服務(wù)器上的代碼包上傳到代碼包分發(fā)服務(wù)器;3、進(jìn)程通知所有的計(jì)算節(jié)點(diǎn)到代碼包分發(fā)服務(wù)器拉取代碼包;4、容器加載代碼包并啟動應(yīng)用代碼包交付的部署流程代碼包部署流程及存在問題問題:部署流程說明:代碼包交付的部署21改進(jìn)一:鏡像交付鏡像交付的部署流程DevOps平臺容器平臺部署流程說明:1、交付平臺將代碼包制作成應(yīng)用鏡像,并推送的鏡像倉庫2、容器管理平臺將鏡像通過P2P分下載到使用鏡像的主機(jī)。提升:架構(gòu)簡單:分發(fā)環(huán)節(jié)只有鏡像庫這個交互點(diǎn),解決原先發(fā)布流程復(fù)雜帶來可用性差的問題;消除性能瓶頸:
P2P分發(fā)模式只會訪問一次鏡像庫,
分發(fā)在計(jì)算節(jié)點(diǎn)內(nèi)部通過P2P方式完成。版本一致:Docker本身的鏡像機(jī)制來保證整個過程鏡像的一致性,計(jì)算節(jié)點(diǎn)異常(主機(jī)Down、Docker
hang),不會拉起不一致版本的鏡像,而是會在其他節(jié)點(diǎn)重新調(diào)度;快速預(yù)熱回退:計(jì)算節(jié)點(diǎn)客戶端可以保留多個鏡像版本,應(yīng)用回退更快捷。應(yīng)用實(shí)例替換前可以通過預(yù)熱分發(fā)鏡像,在發(fā)布窗口只需要重啟應(yīng)用就完成發(fā)布。改進(jìn)一:鏡像交付鏡像交付的部署流程部署流程說明:提升:22改進(jìn)二、交付物版本對齊featuredevqamaster1.1-SNAPSHOT1.2-SNAPSHOT1.3-SNAPSHOT功能版本驗(yàn)證版本發(fā)布版本歸檔commitcommitcommit1.5.RELEASE1.6.RELEASE2.0.PRODXXX.TAGmergemergemerge測試結(jié)果安全報(bào)告任務(wù)
開發(fā)人員代碼清單入網(wǎng)報(bào)告迭代版本(周期
11-2~11.16)任務(wù)任務(wù)任務(wù)開發(fā)環(huán)境測試環(huán)境準(zhǔn)發(fā)環(huán)境。。。。。。提交測試提交上線建立統(tǒng)一的迭代版本,迭代周期內(nèi)所有的交付物都?xì)w屬該版本需求都拆解為開發(fā)任務(wù),并依據(jù)上線時間與迭代版本關(guān)聯(lián)約定迭代周期內(nèi)的版本與分支的對應(yīng)關(guān)系,每一次構(gòu)建都生成子版本非代碼類交付物與對應(yīng)的子版本綁定上傳腳本選擇
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)公司補(bǔ)充合同范本
- 汽車維修外協(xié)合同范本
- 兼職合同范本15篇
- 幕墻工程合同范本
- 創(chuàng)客合同范本
- 協(xié)調(diào)服務(wù)合同范例
- 南京監(jiān)理公司合同范本
- 古宅出售合同范本
- 變壓器試驗(yàn)合同范本
- 與飯店合作合同范本
- 《全國導(dǎo)游基礎(chǔ)知識》全套培訓(xùn)課件-295p-完整版
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)考試筆試題庫及答案解析
- 玻璃幕墻安全專項(xiàng)施工方案(專家論證版本)
- 教育機(jī)構(gòu)招生合作協(xié)議
- 我的寒假生活課件模板
- ISO37000-2021組織治理-指南(雷澤佳譯2022)
- c語言期末機(jī)考(大連理工大學(xué)題庫)
- 洞頂回填技術(shù)交底
- 貝多芬與《月光奏鳴曲》
- 第18課 罐和壺(一)
- 初二下分式混合計(jì)算練習(xí)1(附答案)
評論
0/150
提交評論