DevOps-持續(xù)交付的價(jià)值

轉(zhuǎn)自高效運(yùn)維

前言

隨著云計(jì)算燎猛、容器等新興技術(shù)的發(fā)展,“持續(xù)交付”這個(gè)老生常談的問(wèn)題照皆,忽如一夜春風(fēng)來(lái)扛门,仿佛找到了從理想通向現(xiàn)實(shí)的大門(mén)。各類(lèi)相關(guān)工具纵寝、產(chǎn)品、服務(wù)星立,也是紛紛出現(xiàn):如 Jenkins 2.0爽茴,Jenkins X,阿里云效绰垂,Netflix Spinnaker室奏,Jfrog Artifactory 等等。

你了解持續(xù)交付嗎劲装?

持續(xù)交付胧沫,到底是什么意思昌简,它的定義是什么?《持續(xù)交付:發(fā)布可靠軟件的系統(tǒng)方法》一書(shū)中把“持續(xù)交付”定義為:

持續(xù)交付是軟件研發(fā)人員绒怨,如何將一個(gè)好點(diǎn)子纯赎,以最快的速度交付給用戶(hù)的方法。

即使熟知了定義和方法論南蹂,其實(shí)也還是如海市蜃樓一般犬金,無(wú)法落地,因?yàn)榇蠹宜暙I(xiàn)的最佳實(shí)踐才是持續(xù)交付理論的核心六剥。只有真正在工作中貫徹和使用這些實(shí)踐工具晚顷,才能體會(huì)持續(xù)交付的真正含義和作用。

持續(xù)集成疗疟、持續(xù)交付和持續(xù)部署的關(guān)系

了解了持續(xù)交付该默,你可能會(huì)說(shuō)“持續(xù)集成”、“持續(xù)部署”又是什么意思策彤,

它們和“持續(xù)交付”有什么關(guān)系呢栓袖。那我就給你簡(jiǎn)單解釋一下。

我們通常會(huì)把軟件研發(fā)工作拆解锅锨,拆分成不同模塊或不同團(tuán)隊(duì)后進(jìn)行編碼叽赊,編碼完成后,進(jìn)行集成構(gòu)建和測(cè)試必搞。這個(gè)從編碼到構(gòu)建再到測(cè)試的反復(fù)持續(xù)過(guò)程必指,就叫作“持續(xù)集成”。

“持續(xù)集成”一旦完成恕洲,則代表產(chǎn)品處在一個(gè)可交付狀態(tài)塔橡,但并不代表這是最優(yōu)狀態(tài),還需要根據(jù)外部使用者的反饋逐步優(yōu)化霜第。當(dāng)然這里的使用者并不一定是真正的用戶(hù)葛家,還可能是測(cè)試人員、產(chǎn)品人員泌类、用戶(hù)體驗(yàn)工程師癞谒、安全工程師、企業(yè)領(lǐng)導(dǎo)等等刃榨。

這個(gè)在“持續(xù)集成”之后弹砚,獲取外部對(duì)軟件的反饋再通過(guò)“持續(xù)集成”進(jìn)行優(yōu)化的過(guò)程就叫作“持續(xù)交付”,它是“持續(xù)集成”的自然延續(xù)枢希。

那“持續(xù)部署”又是什么呢桌吃?軟件的發(fā)布和部署通常是最艱難的一個(gè)步驟。

傳統(tǒng)安裝型軟件苞轿,要現(xiàn)場(chǎng)調(diào)試茅诱,要用戶(hù)購(gòu)買(mǎi)等等逗物,其難度可想而知。即使是可達(dá)度最高的互聯(lián)網(wǎng)應(yīng)用瑟俭,由于生產(chǎn)環(huán)境的多樣性(各種軟件安裝翎卓,配置等)、架構(gòu)的復(fù)雜性(分布式尔当,微服務(wù))莲祸、影響的廣泛性(需要灰度發(fā)布)等等,就算產(chǎn)品已是待交付的狀態(tài)椭迎,要真正達(dá)到用戶(hù)可用的標(biāo)準(zhǔn)锐帜,還有大量的問(wèn)題需要解決。

而“持續(xù)部署”就是將可交付產(chǎn)品畜号,快速且安全地交付用戶(hù)使用的一套方法和系統(tǒng)缴阎,它是“持續(xù)交付”的最后“一公里”。

可見(jiàn)简软,“持續(xù)交付”是一個(gè)承上啟下的過(guò)程蛮拔,它使“持續(xù)集成”有了實(shí)際業(yè)務(wù)價(jià)值,形成了閉環(huán)痹升,而又為將來(lái)達(dá)到“持續(xù)部署”的高級(jí)目標(biāo)做好了鋪墊建炫。

雖然從概念上你可以這樣理解,但從實(shí)踐和我個(gè)人多年的經(jīng)驗(yàn)來(lái)說(shuō)疼蛾,往往是從“持續(xù)部署”(自動(dòng)化發(fā)布)開(kāi)始推進(jìn)“持續(xù)交付”肛跌,這才是一條優(yōu)選的路徑。

持續(xù)交付的顯性?xún)r(jià)值

持續(xù)交付也通常以“發(fā)布流水線(xiàn)”的方式來(lái)解釋?zhuān)?strong>研發(fā)團(tuán)隊(duì)從開(kāi)發(fā)察郁,到測(cè)試衍慎,再到部署,最終將產(chǎn)品交付給最終用戶(hù)使用的過(guò)程皮钠。如下圖:

image.png

雖然持續(xù)交付著重打造的是發(fā)布流水線(xiàn)的部分稳捆,但它所要達(dá)到的目標(biāo)是在“最終用戶(hù)”和“研發(fā)團(tuán)隊(duì)”之間建立緊密的反饋環(huán):通過(guò)持續(xù)交付新的軟件版本,以驗(yàn)證新想法和軟件改動(dòng)的正確性麦轰,并衡量這些改動(dòng)對(duì)軟件價(jià)值的影響乔夯。

這里說(shuō)的“軟件價(jià)值”,說(shuō)白了就是收入款侵、日活末荐、GMV等KPI指標(biāo)了。

在互聯(lián)網(wǎng)應(yīng)用盛行喳坠、速度為王的今天,持續(xù)交付的價(jià)值更是被突顯出來(lái)茂蚓。持續(xù)交付的能力壕鹉,正成為評(píng)定一家互聯(lián)網(wǎng)公司研發(fā)能力的重要指標(biāo)剃幌。

持續(xù)交付的隱性?xún)r(jià)值

除了上面這些你一眼就能看出來(lái)的價(jià)值外,如果作為不同的角色晾浴、站在不同的角度去看持續(xù)交付之后的變化负乡,你還會(huì)發(fā)現(xiàn)其他一些隱性?xún)r(jià)值,而其中有一些影響甚至遠(yuǎn)遠(yuǎn)超過(guò)你的預(yù)期脊凰。

或者可以這么說(shuō)抖棘,通過(guò)介紹持續(xù)交付的隱性?xún)r(jià)值,我希望你能夠了解到狸涌,無(wú)論是什么企業(yè)切省,無(wú)論你的職位高低,都可以或者應(yīng)該去嘗試持續(xù)交付帕胆,它一定會(huì)讓你覺(jué)得物超所值朝捆。

如果你是CTO或者是一個(gè)較大規(guī)模研發(fā)團(tuán)隊(duì)的管理者

1.你是不是時(shí)常困擾于技術(shù)選型的問(wèn)題?

技術(shù)選型最大的難點(diǎn)在于影響大懒豹,又難以驗(yàn)證(或者驗(yàn)證效率低下)芙盘。而造成這些困境的絕大多數(shù)原因是沒(méi)有合適的測(cè)試環(huán)境,比如環(huán)境差異造成測(cè)試數(shù)據(jù)缺乏說(shuō)服力脸秽,又比如缺少隔離環(huán)境造成服務(wù)沖突等等儒老。而這正是持續(xù)交付的用武之地。

持續(xù)交付的實(shí)施记餐,將全面改善企業(yè)對(duì)測(cè)試環(huán)境的管理方法驮樊,使得環(huán)境管理更合理、更自由剥扣。我也將在后續(xù)章節(jié)里介紹如何做好環(huán)境管理巩剖。

2.你是不是經(jīng)常頭痛于已制定的標(biāo)準(zhǔn)難以落地?

標(biāo)準(zhǔn)钠怯、規(guī)范佳魔、流程的落地,都需要載體晦炊,而最好的載體就是平臺(tái)工具赂蠢。而持續(xù)交付是一整套平臺(tái)工具的落地堕汞,幾乎涵蓋了研發(fā)的整個(gè)生命周期,是天然的、最佳的載體场仲。

另外,持續(xù)交付的落地本身就伴隨著各類(lèi)標(biāo)準(zhǔn)瘟忱、規(guī)范蚀狰、流程的制定和實(shí)施,可以說(shuō)兩者相互依存薄疚,是非常好的管理思想落地方案碧信。

3.你是不是時(shí)成蘖眨考慮如何提高跨部門(mén)協(xié)作的效率?

我看到的每一個(gè)持續(xù)交付實(shí)施團(tuán)隊(duì)砰碴,都可以說(shuō)是最厲害的“拆墻大隊(duì)”躏筏,拆的就是各個(gè)研發(fā)協(xié)作部門(mén)間的“隔離墻”。

持續(xù)交付能夠向各個(gè)協(xié)作部門(mén)輸出統(tǒng)一的標(biāo)準(zhǔn)呈枉、流程和工具趁尼,提升溝通效率;并且通過(guò)大量的自動(dòng)化猖辫,進(jìn)一步提升各部門(mén)工作效率酥泞;還可以快速集成,把各個(gè)分散的團(tuán)隊(duì)住册,無(wú)論是橫向的業(yè)務(wù)研發(fā)團(tuán)隊(duì)婶博,還是縱向的技術(shù)框架團(tuán)隊(duì),緊緊地聯(lián)系在一起荧飞,共同進(jìn)退凡人。

4.你是不是擔(dān)心“黑天鵝”的降臨?

既然叫“黑天鵝”叹阔,那就是說(shuō)明它的產(chǎn)生有一定的必然性挠轴。正應(yīng)了一句老話(huà)“是福不是禍,是禍躲不過(guò)”耳幢,既然躲不過(guò)岸晦,那就解決它唄。其實(shí)任何故障都有一個(gè)天敵睛藻,叫作:快速恢復(fù)启上。

假設(shè),所有的故障都可以在3分鐘內(nèi)恢復(fù)店印,你是不是覺(jué)得天下無(wú)敵了冈在。那恢復(fù)故障最快、最有效的手段又是什么呢按摘?當(dāng)然就是回滾(或重新部署)了包券,而這正是持續(xù)交付所包含和著力打造的能力之一。

如果你是Team Leader

1.你一定希望團(tuán)隊(duì)的知識(shí)能夠傳承炫贤。

互聯(lián)網(wǎng)公司的人才流動(dòng)之頻繁已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)了你我的想象溅固。人來(lái)人往,如何將知識(shí)傳承下來(lái)呢兰珍?其實(shí)在這方面侍郭,持續(xù)交付也能為團(tuán)隊(duì)提供很多幫助。

首先,持續(xù)交付將團(tuán)隊(duì)賴(lài)以生存的工作流程進(jìn)行了固化亮元;其次汰寓,利用代碼靜態(tài)檢查等工具,能夠很好地傳承團(tuán)隊(duì)多年來(lái)的代碼規(guī)范苹粟,并作為檢查項(xiàng)進(jìn)行自動(dòng)化校驗(yàn);再次跃闹,自動(dòng)化測(cè)試的腳本嵌削,同樣是團(tuán)隊(duì)經(jīng)驗(yàn)的產(chǎn)物。

2.你一定希望團(tuán)隊(duì)專(zhuān)注于業(yè)務(wù)而非工程望艺。

目前越來(lái)越多的公司或研發(fā)組織意識(shí)到苛秕,持續(xù)交付體系也如同中間件一樣,能夠從日常的業(yè)務(wù)研發(fā)工作中抽象出來(lái)找默,其不同只在于中間件解決架構(gòu)問(wèn)題艇劫,而持續(xù)交付解決工程問(wèn)題。這樣研發(fā)團(tuán)隊(duì)能夠全力應(yīng)付業(yè)務(wù)的需求惩激,而不用總是重復(fù)奔波于一些煩人且耗時(shí)的工程問(wèn)題店煞,比如安裝測(cè)試機(jī)、準(zhǔn)備編譯服務(wù)器等等风钻。

3.你一定希望以一個(gè)較平穩(wěn)的節(jié)奏持續(xù)工作顷蟀。

雖然在實(shí)施持續(xù)交付的初期,團(tuán)隊(duì)為了適應(yīng)新的流程和工具骡技,會(huì)有一定的效率下降鸣个,但之后在自動(dòng)化的幫助下,團(tuán)隊(duì)效率會(huì)有一個(gè)明顯的提升并逐漸穩(wěn)定下來(lái)布朦。

持續(xù)交付就是這樣通過(guò)穩(wěn)固的流程囤萤、自動(dòng)化的工具和公開(kāi)而真實(shí)的數(shù)據(jù),來(lái)避免發(fā)布前夕容易發(fā)生的“死亡行軍”式開(kāi)發(fā)階段是趴。

如果你是產(chǎn)品經(jīng)理

1.你應(yīng)該是產(chǎn)品真正的第一個(gè)用戶(hù)涛舍。

持續(xù)交付不僅僅是可以保證每一個(gè)變化都能及時(shí)得到測(cè)試以及反饋,更多的是解決測(cè)試與實(shí)際發(fā)布時(shí)存在差異的問(wèn)題右遭。產(chǎn)品人員再也不會(huì)陷入“為什么用戶(hù)端運(yùn)行的結(jié)果做盅,和在測(cè)試環(huán)境中的不一致”這樣的窘境,他們將真正成為第一個(gè)用戶(hù)窘哈,而不再是最后一個(gè)QA吹榴。

2.你應(yīng)該完全知悉當(dāng)前的進(jìn)度和質(zhì)量。

作為產(chǎn)品人員滚婉,你是不是一直有這樣的感覺(jué):和研發(fā)團(tuán)隊(duì)之間總有一扇墻图筹,程序員們似乎并不樂(lè)意告訴產(chǎn)品人員項(xiàng)目的真相;而最終總有這樣那樣的理由造成延期,產(chǎn)品人員往往無(wú)話(huà)可說(shuō)远剩。那么扣溺,持續(xù)交付就能夠?qū)崟r(shí)地反應(yīng)當(dāng)前的開(kāi)發(fā)情況,從而幫助產(chǎn)品人員決策和調(diào)整瓜晤。

3.你的產(chǎn)品應(yīng)該隨時(shí)能發(fā)布锥余。

計(jì)劃永遠(yuǎn)趕不上變化,任何產(chǎn)品人員都希望自己的產(chǎn)品能夠隨時(shí)處于可發(fā)布狀態(tài)痢掠。這樣就能靈活地交付已完成的功能驱犹,迎合市場(chǎng)或業(yè)務(wù)的需要。本質(zhì)上足画,做到代碼上線(xiàn)和業(yè)務(wù)上線(xiàn)的解耦分離雄驹,這也正是持續(xù)交付方法論強(qiáng)調(diào)的一個(gè)重點(diǎn)。

如果你是一個(gè)程序員

1.你可以通過(guò)對(duì)持續(xù)交付的學(xué)習(xí)淹辞,進(jìn)一步加強(qiáng)自己對(duì)整個(gè)軟件工程的認(rèn)識(shí)医舆。

持續(xù)交付涵蓋了軟件交付端到端的整個(gè)周期,其覆蓋面不僅僅包括編碼象缀,還包括:設(shè)計(jì)蔬将、測(cè)試、部署央星、運(yùn)維娃胆、運(yùn)營(yíng)等等。

如果你對(duì)自己的發(fā)展有更高的要求等曼,那么你就應(yīng)該學(xué)習(xí)一下持續(xù)交付的內(nèi)容里烦,它能讓你看到更多與編碼有關(guān)的其他東西,比如不同的編碼方式等禁谦;也能讓你站在更高的角度去看待自己的工作:研發(fā)效率的提高往往不是個(gè)人能力的提高胁黑,而是集體協(xié)同效率的提高。

2.你可以利用持續(xù)交付的工具或最佳實(shí)踐州泊,提高自己的工作效率和質(zhì)量丧蘸。

隨著持續(xù)交付的流行,其配套的實(shí)踐和工具也層出不窮遥皂。如果你玩過(guò)ping-pong式的結(jié)對(duì)編程(A寫(xiě)測(cè)試力喷,B寫(xiě)實(shí)現(xiàn),然后B寫(xiě)下一個(gè)測(cè)試演训,A寫(xiě)重構(gòu)和實(shí)現(xiàn))弟孟,你一定會(huì)覺(jué)得編程如此輕松有趣,而這種TDD的方式也很好的保證了代碼質(zhì)量样悟。

3.你可以參與到持續(xù)交付實(shí)施中去拂募,享受為其他程序員提供效率工具的挑戰(zhàn)和樂(lè)趣庭猩。

試想一下,如果你是一個(gè)出租車(chē)司機(jī)陈症,而你的乘客卻是舒馬赫(F1世界冠軍)蔼水,此時(shí)你開(kāi)車(chē)的壓力會(huì)有多大。其實(shí)參與到持續(xù)交付的實(shí)施中也是一樣录肯,因?yàn)槟阏谟贸绦騿T的方式改造程序員的工作習(xí)慣趴腋,為程序員提供工具。

雖然挑戰(zhàn)和壓力巨大论咏,但這又是如此有趣于样,你將會(huì)站在另一個(gè)高度去看你曾經(jīng)的工作,不想試試嗎潘靖?

如何評(píng)估持續(xù)交付的價(jià)值

我跟你說(shuō)了這么多持續(xù)交付的價(jià)值,那如何評(píng)估它呢蚤蔓?這是一個(gè)非常難的問(wèn)題卦溢,我自己每年在績(jī)效考評(píng)時(shí)也都會(huì)問(wèn)自己這個(gè)問(wèn)題:我到底應(yīng)該怎么給老板匯報(bào)呢?我可以量化持續(xù)交付的價(jià)值嗎秀又?

首先单寂,你一定會(huì)說(shuō),我可以衡量產(chǎn)品的交付速度是否變快了吐辙。但是宣决,實(shí)際情況下影響產(chǎn)品交付速度的因素實(shí)在太多,雖然我們一定知道持續(xù)交付有積極作用昏苏,但到底占比是多少呢尊沸?好像非常模糊,難以回答贤惯。

然后洼专,你又想到,我們可以衡量各個(gè)自動(dòng)化過(guò)程的速度是否變快了孵构,比如:編譯速度屁商、發(fā)布速度、回滾速度颈墅、自動(dòng)化測(cè)試速度等等蜡镶。是的,這些指標(biāo)確實(shí)很好地反應(yīng)了持續(xù)交付的價(jià)值恤筛,但總覺(jué)得這些并不是全部官还,持續(xù)交付的標(biāo)準(zhǔn)化、推行的新流程毒坛、改革的環(huán)境治理架構(gòu)妻枕,好像都沒(méi)有體現(xiàn)出來(lái)。

那到底應(yīng)該怎么評(píng)估持續(xù)交付的價(jià)值呢?這里和你分享一下攜程的大牛是怎么解決這個(gè)問(wèn)題的屡谐。

我除了會(huì)評(píng)估一些常規(guī)的KPI外述么,更多地會(huì)換一種思考方式。既然很難量化持續(xù)交付的價(jià)值愕掏,那么我們就具象化度秘,來(lái)看看整個(gè)工程生命周期中有多少被開(kāi)發(fā)人員詬病,或者阻礙開(kāi)發(fā)人員自助處理的問(wèn)題點(diǎn)饵撑,即“不可持續(xù)點(diǎn)”:

  • 開(kāi)發(fā)不能按需產(chǎn)生隔離的測(cè)試環(huán)境剑梳;
  • 生產(chǎn)代碼回滾后,要手工處理代碼分支滑潘;
  • 預(yù)發(fā)布(Staging)流量要能自動(dòng)分離垢乙,以便預(yù)發(fā)布測(cè)試。

在攜程语卤,他們們會(huì)將所有的“不可持續(xù)點(diǎn)”進(jìn)行記錄和分解追逮,通過(guò)OKR的考評(píng)方式,將消滅這些點(diǎn)作為目標(biāo)粹舵,拆解出來(lái)的可行動(dòng)點(diǎn)钮孵,作為關(guān)鍵結(jié)果,以這樣的方式來(lái)完成績(jī)效考評(píng)眼滤。

雖然巴席,有些“不可持續(xù)點(diǎn)”已經(jīng)超越了一般傳統(tǒng)持續(xù)交付的概念,甚至有些已經(jīng)超越了純技術(shù)改進(jìn)的范疇诅需,但是持續(xù)交付仍會(huì)一直關(guān)注于消滅這些“不可持續(xù)點(diǎn)”漾唉。

所以,我們就是要持續(xù)交付我們的價(jià)值堰塌!

總結(jié)

持續(xù)交付的價(jià)值不僅僅局限于簡(jiǎn)單地提高產(chǎn)品交付的效率毡证,它還通過(guò)統(tǒng)一標(biāo)準(zhǔn)、規(guī)范流程蔫仙、工具化料睛、自動(dòng)化等等方式,影響著整個(gè)研發(fā)生命周期摇邦。

持續(xù)交付最終的使命是打破一切影響研發(fā)的“阻礙墻”恤煞,為軟件研發(fā)工作本身賦能。無(wú)論你是持續(xù)交付的老朋友還是新朋友施籍,無(wú)論你在公司擔(dān)任管理工作還是普通的研發(fā)人員居扒,持續(xù)交付都會(huì)對(duì)你的工作產(chǎn)生積極的作用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丑慎,一起剝皮案震驚了整個(gè)濱河市喜喂,隨后出現(xiàn)的幾起案子瓤摧,更是在濱河造成了極大的恐慌,老刑警劉巖玉吁,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件照弥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡进副,警方通過(guò)查閱死者的電腦和手機(jī)这揣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)影斑,“玉大人给赞,你說(shuō)我怎么就攤上這事〗没В” “怎么了片迅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)皆辽。 經(jīng)常有香客問(wèn)我柑蛇,道長(zhǎng),這世上最難降的妖魔是什么膳汪? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮九秀,結(jié)果婚禮上遗嗽,老公的妹妹穿的比我還像新娘。我一直安慰自己鼓蜒,他們只是感情好痹换,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著都弹,像睡著了一般娇豫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上畅厢,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天冯痢,我揣著相機(jī)與錄音,去河邊找鬼框杜。 笑死浦楣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咪辱。 我是一名探鬼主播振劳,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼油狂!你這毒婦竟也來(lái)了历恐?” 一聲冷哼從身側(cè)響起寸癌,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弱贼,沒(méi)想到半個(gè)月后蒸苇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哮洽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年填渠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸟辅。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氛什,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匪凉,到底是詐尸還是另有隱情枪眉,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布再层,位于F島的核電站贸铜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏聂受。R本人自食惡果不足惜蒿秦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛋济。 院中可真熱鬧棍鳖,春花似錦、人聲如沸碗旅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祟辟。三九已至医瘫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旧困,已是汗流浹背醇份。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吼具,地道東北人被芳。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像馍悟,于是被迫代替她去往敵國(guó)和親畔濒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容