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

初創公司技術困境:彈性部署與詳盡測試

新聞 前端
作為一家初創公司,構建軟件要堅持創新,要有吸引力和競爭力。因為,市場在不斷變化,新的需求也在不斷出現。

[[280745]]

作為一家初創公司,構建軟件要堅持創新,要有吸引力和競爭力。因為,市場在不斷變化,新的需求也在不斷出現。

從軟件角度來說,要保持這樣的優勢就意味著必須盡可能縮短文檔和開發階段所占的時間。當然,保持軟件的彈性也很重要,提供優秀的服務是 Algolia 的重要目標之一。我們有許多高端用戶,搜索功能對業務有非常重要的影響,所以不能接受宕機時間,尤其是在黑色星期五之類的特殊時間段。

因此,開發者 必須在軟件的彈性與創新之間找到合適的平衡點。 這兩方面是相互牽制的:要讓軟件具有彈性,就要進行詳盡的測試,這會消耗大量精力,占用我們進行創新的時間。因此,一個比較好的折衷方案就是在生產環境進行測試。

為什么要在生產環境進行測試?  

在生產環境進行測試就是把新代碼發布到生產環境中,直接用真實的生產數據和流量進行“測試”的過程。與之形成對比的就是運行全面的測試用例集。這個風險很大,開發者的第一直覺肯定不要這么做。但隨著軟件規模的發展,你會發現進行詳盡的測試越來越不可能了。

讓我們看看 Algolia 引擎。我們有二十多個查詢參數。假設它們全是 Boolean 類型,那么要運行的用例總數就會達到一百萬個,二十個參數,每個有兩個可能值,那就是 2^20 種可能的場景。

談到與測試相關的工作所要消耗的時間,有三方面要考慮:

  • 寫測試用例的時間
  • 維護測試用例的時間
  • 運行測試用例的時間

寫出一百萬個測試用例來,這個工作量已經很驚人了。一旦寫出來,它們就成了項目內容的一部分。就像維護別的源代碼一樣,也要花精力去維護它們,所以每次軟件迭代所要做的事情就更多了。

假設你的團隊足夠大,有充足的人力可以編寫和維護這些測試用例,但運行它們一樣需要不少時間。假設運行每個測試用例只需要 10 毫秒,那全運行一遍就需要 2 小時 45 分鐘。不管代碼中有什么更新,都需要花 2 小時 45 分鐘才能驗證完。

客戶購買我們的產品不止是看中了當前已經具備的功能,更是看中了未來將會發布的功能。他們希望我們可以定期發布新功能,幫助他們成長,變得更容易創新和更具有彈性。因此,我們必須提升自己的效率。

在開發新功能時,我們只會寫些簡單的用例來驗證功能,并對明顯的邊界條件進行測試。要對功能進行全面驗證,我們會采取灰度發布的方式,直接在生產環境中進行測試。這樣即使代碼中有缺陷,也可以把對客戶的影響控制得盡量小。通過這樣的方法,我們就可以按時發布新功能了。

真實案例  

以我們最近重寫的一個 Algolia 的核心功能做具體例子。如果要對它進行充分測試,就要用所有可能的 Unicode 字符(超過一百萬個)對這二十幾個參數組合成的一百萬個用例進行測試。這樣算起來總數會超過十億次。假設運行一個測試要用 10 毫秒,那完成全部測試內容就要 11 天。

我們不得不尋找更好的解決方案。因此我們放棄了這十億次測試。不能因為這件事而顯著地拖慢我們的發布流程,我們決定在生產環境進行測試。

我們最大的顧慮就是可能對用戶造成的影響,因此我們定義了要把它部署出去所必須要做的事:

  • 一個漸進式的發布流程
  • 一種在好的基礎設施之上進行重試的方法
  • 積極主動的問題檢測

所有通過我們的網站發往 Algolia 的請求,最終都是由一個集群來提供服務的,集群由三個節點組成。每個節點中都包含 100% 的數據,可以獨立響應請求,因此可以提供健壯的部署方案。假設普通的服務器平均可用率為 95%,那這種方案可以提供 99.987% 的可用性。只有當所有服務器全部宕機的時候,你的服務才會真的宕機。所以這種可能性是 5% x 5% x 5%,即可能會有 0.0125% 的宕機時間。

但即使是在這樣的架構下,軟件的缺陷仍然可能造成服務中斷。因此,我們采取了漸進式的灰度發布方案。新的軟件全部發布完成需要三天的時間。這樣的部署策略給了我們足夠的時間來發現問題。

另外還有一點很重要的,就是我們的客戶端 API 會采用重試的策略。假如它正好把請求發往了一個有問題的節點,那么在請求失敗之后,它會自動尋找另一個節點進行重試,直到取得成功的響應為止。因此最終用戶對這個問題是沒有感知的。

在我們部署新版本的高亮功能時,曾經發生過一個標準化問題。我們的目標是把所有文本都轉化成標準化的格式,這樣就可以方便地對不同的輸入進行對比。一般來說,標準化后的內容長度不會比輸入的原文更長,這也是高亮功能的前提。結果,我們卻發現有些字符在標準化之后長度會增加:字母ß(德語)就會被標準化成了“ss”。在重寫的時候,我們增加了運行時前置條件檢查,以確保標準化后的長度比原來長度更小,或者相等。這段代碼發揮了作用,把這個問題暴露出來了。

當我們把新版本代碼部署到第一個節點上時,對于那些標準化之后長度會增加的請求,它馬上就停止了響應。幸虧我們的客戶端 API 有重試的功能,所以客戶沒有受到影響,沒有用戶注意到這一點。而在后臺,我們的監控系統則發出了告警,所以我們馬上對發布進行了回滾,以保持整個集群的穩定。通過這種辦法,我們為自己爭取到了足夠的時間來理解問題和完成代碼修復,并進行相應的測試。

一種合適的部署方案  

如果你也想在生產環境進行測試的話,有三個至關重要的前提條件:

  • 可復制的基礎設施;
  • 彈性的軟件;
  • 安全的部署策略;
  • 可復制的基礎設施

在現在這個時代,配置一套可復制的基礎設施是非常容易的:所有云服務商都可以在多個虛擬機的前面提供負載均衡。就我們公司的架構來說,我們在整個集群的級別復制搜索引擎的數據,每個節點都 100% 地擁有全量數據。通過這種方式,每個節點都可以獨立完成對請求的響應。

彈性的軟件  

這一部分就要看你是怎樣構建軟件的了。在 Algolia 引擎的代碼中,有許多關于健康狀態的檢查,會校驗函數的前置條件是否滿足,以及是否處于期望的狀態等。當運行到非正常的狀態時,引擎就會停止處理,以避免返回有問題的數據。它會強制 API 客戶端在別的節點上透明地進行重試。

安全的部署策略  

這一點被最后提到,但它也一樣非常重要。這里提到的部署策略的主要目標,就是要在逐步發布新版本軟件的過程同時,注意控制風險。

Algolia 的基礎設施主要包括四個環境:測試環境、準生產環境、生產環境和安全環境。每個環境都有不同的 SLA:

測試環境只包含供內部使用的集群。出故障時只影響公司內部員工。準生產環境包含面向外部大眾用戶項目的搜索集群。生產環境包含我們客戶的集群。安全環境包含我們最重要的 SLA 客戶的集群。根據部署策略,我們通過使用多個不同的環境來降低風險。也就是說,我們會先在對客戶影響最小的集群上進行部署。

除了不同的環境,我們還利用了三份復制這個特性,制定了如下的 12 步部署流程:

先部署到測試環境的所有三個節點上;部署到準生產環境的第一個節點上,再部署到生產環境的第一個節點,再部署到安全環境的第一個節點上;觀察一天;部署到準生產環境的第二個節點上,再部署到生產環境的第二個節點,再部署到安全環境的第二個節點上;再觀察一天;部署到準生產環境的第三個節點上,再部署到生產環境的第三個節點,再部署到安全環境的第三個節點上;第一步可以幫我們發現分布式系統內部的處理集群里,節點之間交互的代碼問題。

接下來一個節點一個節點的部署,可以幫我們確認集群內部是否可以同時支持兩個不同的版本,以及代碼是否足夠穩定。

為什么在部署節點的過程之中有兩次要觀察一天呢?因為這樣可以讓我們有充足的時間發現性能問題、數據問題或需要長時間運行才能發現的問題。到這一步時,我們就已經解決掉大部分問題了。接下來的部署步驟只是幫助我們發現一些可能的未知缺陷。

每當發現新問題時,我們都會立刻將新版本代碼回滾。這樣我們提供的服務就可以恢復到一個穩定的狀態,我們也可以有充足的時間去修復問題,并增加相應的測試用例。

使用了這樣的方法,我們的測試用例集就是客戶的真實使用場景。這樣效率就非常高了,我們可以每周都發布新版本,滿足客戶的需求。盡管我們的代碼量已經非常龐大,我們仍然做到了這一點。

好比完美更勝一籌  

初創公司的生態環境是相當嚴峻的。小團隊要找到高效的方法,打造出比大公司的大團隊更好的產品。

定期發布新功能的重要性,不亞于有著良好用戶體驗,可以滿足用戶需求的穩定產品。選擇做足夠的測試還是選擇有足夠的測試覆蓋率并可以定期發布?對效率的需求逼著我們在這兩者之間找到了一個中間的平衡點。

在增加新測試用例時你必須特別小心,因為要消耗的時間太多了:要花時間去寫、去維護和運行。那你知道什么時候該寫測試嗎?90-90 法則適用于這種情況:測試一個功能 90% 的內容是非常容易而直接的,再測試剩下的 10% 會花費相同的時間。所以根據客戶的使用情況來處理這剩下的 10% 非常重要,不應該追求完全的覆蓋率。

為了降低風險,請多花些時間對軟件和基礎設施進行設計,讓它們可以支持在生產環境進行測試,并把對客戶的影響限制到最小。 

 

責任編輯:張燕妮 來源: 高效開發運維
相關推薦

2014-09-04 17:39:17

FTTxSDNPON

2017-02-22 13:53:16

2023-10-05 10:32:18

2016-03-22 13:25:14

2023-12-13 14:36:58

2021-12-26 07:38:11

物聯網安全公司收購

2015-09-29 10:55:13

初創技術架構

2013-11-08 09:38:10

亞馬遜云計算開源

2014-02-18 16:50:17

谷歌SlickLogin安全公司

2023-09-01 07:15:58

UnittestPython

2014-06-04 11:04:17

公有云云計算

2024-03-25 18:33:30

漏洞收購

2017-05-16 13:31:52

2013-03-06 09:37:16

微軟云監控MetricsHub

2018-12-05 09:05:31

DevOps初創公司軟件交付

2022-05-13 09:00:00

企業初創公司技術債務

2022-12-02 10:11:50

2014-05-20 14:21:55

谷歌收購BYOD

2020-10-11 16:51:06

PingShoCard威脅情報
點贊
收藏

51CTO技術棧公眾號

国产白丝一区二区三区| 日本不卡二区| 四虎永久免费在线| 日韩精品免费视频一区二区三区| 中文字幕在线观看不卡视频| 国产一区二区视频在线观看| 国产黄色一区二区| av电影院在线看| 国产成人h网站| 色综合久久88色综合天天看泰| 中文字幕第10页| 国产丝袜在线| 粉嫩aⅴ一区二区三区四区| 久久乐国产精品| 亚洲精品中文字幕在线播放| 欧美片第1页| 成人免费视频一区| 欧洲成人在线观看| 中国美女黄色一级片| 国产精品久久久久久久久久辛辛| 一区二区三区欧美日| 九九九九精品九九九九| 男人天堂视频网| 亚洲激情中文| 亚洲成人激情图| 国产裸体免费无遮挡| 91电影在线播放| 国产1区2区3区精品美女| 午夜精品美女自拍福到在线| 泷泽萝拉在线播放| 午夜精品成人av| 亚洲视频免费在线观看| 精品国产日本| 亚洲一区中文字幕在线| 亚洲影视综合| 久久青草福利网站| √天堂中文官网8在线| 国产一区二区三区天码| 亚洲高清一区二| www.偷拍.com| 日韩伦理一区二区| 日本高清免费不卡视频| 97视频久久久| 久草在线资源站资源站| 成人欧美一区二区三区白人| 欧美一区二视频在线免费观看| 亚洲免费成人在线| 国产在线观看免费一区| 国产精品一香蕉国产线看观看| 看片网址国产福利av中文字幕| 欧美黄色精品| 欧美成人网在线| 国产人与禽zoz0性伦| 欧美伦理影院| 国产亚洲精品91在线| 中文字幕5566| 欧美巨大xxxx| 亚洲精品久久视频| 久久久久亚洲无码| 国产suv精品一区二区四区视频| 欧美一区二区免费观在线| 可以看污的网站| 中文成人激情娱乐网| 欧美日韩电影在线| 污污的视频免费| 日韩黄色在线| 91麻豆精品国产无毒不卡在线观看 | av最新在线观看| 欧美电影免费播放| 精品国产区一区二区三区在线观看| 亚洲欧洲综合网| 天天久久综合| 欧美日韩电影在线观看| 国产精品19乱码一区二区三区| 极品中文字幕一区| 51久久精品夜色国产麻豆| 你懂的国产在线| 日韩精品亚洲一区| 成人h视频在线观看播放| 国产999久久久| 风流少妇一区二区| 久久久久久久久久久久久久一区 | 激情亚洲影院在线观看| 日本韩国欧美在线| 日韩高清第一页| 欧美经典影片视频网站| 亚洲第一中文字幕| 中国美女乱淫免费看视频| 精品一二三区| 成人444kkkk在线观看| 92国产精品视频| 国产午夜免费福利| 日韩电影在线免费观看| 91精品在线一区| 日本激情一区二区三区| 久久九九影视网| 桥本有菜av在线| 波多野结衣乳巨码无在线观看| 狠狠躁夜夜躁人人爽天天天天97| 污片在线免费看| 91精品久久久久久综合五月天| 日韩av在线精品| 2014亚洲天堂| 国产精品美女久久久| 欧美激情在线一区| 在线观看日韩一区二区| 成人黄色777网| 亚洲国产另类久久久精品极度| 99自拍视频在线观看| 性做久久久久久免费观看| 日韩在线第三页| 欧美国产中文高清| 中文欧美在线视频| 日本在线小视频| 免费观看久久久4p| 好看的日韩精品| 黄色在线播放网站| 色成年激情久久综合| 深夜视频在线观看| 久久美女视频| 欧洲美女7788成人免费视频| 国产成人麻豆精品午夜在线| 国产夜色精品一区二区av| 污污污污污污www网站免费| 播放一区二区| 亚洲开心激情网| 久久久www成人免费毛片| 美女视频免费一区| 麻豆av一区二区三区久久| 日本高清在线观看| 欧美日韩一区中文字幕| 亚洲男人在线天堂| 女人香蕉久久**毛片精品| 国产精品入口免费视| 天堂网av在线播放| 一区2区3区在线看| 91丝袜超薄交口足| 日韩黄色大片| 国产精品久久婷婷六月丁香| 水莓100在线视频| 亚洲电影第三页| 中文字幕欧美视频| 综合色一区二区| 成人性生交xxxxx网站| 国产毛片av在线| 日本道精品一区二区三区| 国产草草浮力影院| 日韩午夜av| 国产欧美综合精品一区二区| 亚洲精品一线| 日韩欧美一级在线播放| 欧美亚洲日本在线| 国产一区二区影院| 992tv成人免费观看| av在线播放一区二区| 色偷偷91综合久久噜噜| www.久久精品视频| 久久久久亚洲蜜桃| 欧美激情国产精品日韩| 亚洲理论电影| 欧美中文字幕视频| 黄色在线小视频| 91久久奴性调教| 精品一区二区三孕妇视频| 青青草国产成人99久久| 一区二区三区在线视频看| 亚洲男女网站| 欧美精品亚州精品| 韩国av免费在线观看| 亚洲成年人影院| www.免费av| 日本中文字幕一区二区有限公司| 视频一区亚洲| 国产精品久一| 韩国精品美女www爽爽爽视频| 天堂网在线观看视频| 岛国av一区二区在线在线观看| 亚洲黄色在线网站| 蜜乳av一区二区| 992tv快乐视频| 国产精品美女在线观看直播| 欧美激情奇米色| 涩涩视频在线观看免费| 欧美系列在线观看| 国产精品老熟女一区二区| 成人免费av网站| 国产裸体舞一区二区三区| 999久久久精品国产| 高清国产在线一区| jizz内谢中国亚洲jizz| 日韩中文娱乐网| 亚洲精选一区二区三区| 91福利社在线观看| 欧美片一区二区| 久久精品人人做| 欧美专区第二页| 亚洲一区二区三区高清| 麻豆中文字幕在线观看| 国产精品45p| 国产精品网站入口| 久色国产在线| 日韩在线免费视频观看| 日本高清视频网站| 欧美日韩aaaaaa| 国产午夜性春猛交ⅹxxx| 国产精品久久久久影视| 在线天堂www在线国语对白| 看国产成人h片视频| 妞干网在线观看视频| 日韩成人激情| 精品欧美一区二区精品久久| 亚洲成人高清| 日本在线精品视频| 羞羞电影在线观看www| 国产午夜精品一区二区三区| 亚洲精品国偷拍自产在线观看蜜桃| 在线看国产一区二区| 精品视频久久久久| 中文字幕一区二区三区蜜月| 性欧美成人播放77777| 国产乱人伦偷精品视频免下载| 国产无套内射久久久国产| 欧美久久一级| 制服国产精品| 欧美日韩中文一区二区| 精品国产福利| 一区二区网站| 91在线观看免费| 成人自拍视频网| 热久久免费国产视频| 国产盗摄一区二区| 久热99视频在线观看| 成人不用播放器| 亚洲男人av在线| 天堂在线资源8| 精品国产乱码久久久久久1区2区| 国产女人18毛片水真多| 欧美人牲a欧美精品| 中文资源在线播放| 色婷婷综合久久久久中文一区二区 | 日本亚洲色大成网站www久久| 国产精品久久久久久久久久免费看 | 日韩av在线一区| 蜜桃av噜噜一区二区三区麻豆 | 亚洲av无码国产精品永久一区| 精品视频在线免费观看| 午夜一区二区三区四区| 91国在线观看| 亚洲大片免费观看| 色视频成人在线观看免| 成人午夜淫片100集| 欧美性猛交xxxx免费看久久久| 91香蕉在线视频| 激情久久av一区av二区av三区| 亚欧视频在线观看| 精品国产乱码久久久久酒店 | 一本久久a久久精品亚洲| 午夜精品久久久久久久久久久久久蜜桃| 婷婷开心激情综合| 日韩欧美视频在线免费观看| 无码av免费一区二区三区试看| 日本少妇做爰全过程毛片| 黄网站色欧美视频| 国产免费一区二区三区四区五区 | 久久综合电影一区| 国产cdts系列另类在线观看| 欧美成人免费网| av中文字幕在线看| 91sa在线看| 精品成人免费一区二区在线播放| 国产欧美日韩精品丝袜高跟鞋| 91精品一久久香蕉国产线看观看| 91久久精品一区| ccyy激情综合| 国内外成人免费视频| 亚洲人成精品久久久| 色综合久久88色综合天天提莫| 日韩中文字幕高清在线观看| 视频一区二区视频| 亚洲五月婷婷| 情侣黄网站免费看| 国内精品视频666| 日本性生活一级片| 久久影院午夜片一区| 亚洲少妇xxx| 亚洲一区视频在线观看视频| 一级免费在线观看| 在线观看视频一区二区欧美日韩 | 亚洲成人激情在线| 国产一二三在线观看| 久久久av一区| 日本不卡网站| 91精品免费视频| 久久97精品| 亚洲国产精品一区二区第四页av| 欧美成人久久| 韩国一区二区av| 国产乱码字幕精品高清av | 欧美1区二区| 亚洲午夜精品久久久久久浪潮| 韩日视频一区| 国产福利影院在线观看| 国产福利一区二区三区视频在线 | 国产黄色特级片| 国产一区在线精品| 国产偷人妻精品一区| 国产精品第13页| 亚洲男人的天堂在线视频| 欧美日韩精品电影| 午夜国产在线观看| 久久久精品电影| 欧美电影h版| 国产精品中出一区二区三区| 日韩欧美视频在线播放| 每日在线观看av| 美女诱惑一区二区| 疯狂揉花蒂控制高潮h| 亚洲精品视频免费看| 无码日韩精品一区二区| 日韩免费性生活视频播放| 91涩漫在线观看| 69av成年福利视频| 色悠久久久久综合先锋影音下载| 欧美一区2区三区4区公司二百| 欧美日本一区| 色天使在线观看| 久久亚洲精精品中文字幕早川悠里| 欧美日韩免费做爰视频| 欧美人动与zoxxxx乱| 日本一二三区在线视频| 欧美国产日韩在线| 国产精品国产亚洲精品| 视频一区二区在线| 性色av一区二区怡红| 欧美双性人妖o0| 一区二区三区不卡视频在线观看 | 任我爽在线视频| 色吊一区二区三区| 免费黄色片在线观看| 97精品国产97久久久久久| 91欧美极品| 99久久免费观看| 国产精品一级二级三级| 在线免费看av网站| 欧美裸体一区二区三区| www.中文字幕久久久| 国产精品久久久久aaaa九色| 亚洲v天堂v手机在线| 国产极品在线视频| 99v久久综合狠狠综合久久| 国产一级二级毛片| 欧美va亚洲va在线观看蝴蝶网| 18网站在线观看| 91免费看蜜桃| 影音先锋久久| 大尺度做爰床戏呻吟舒畅| 亚洲丶国产丶欧美一区二区三区| 黄色av中文字幕| 国产+成+人+亚洲欧洲| 国产精品对白| 欧美 日韩 国产在线观看| 成人av在线网| 国产精品乱子伦| 亚洲人成在线观看| 中文字幕日本一区二区| 亚洲一区二区三区精品动漫| 美国欧美日韩国产在线播放| 久久精品亚洲a| 日韩一区和二区| 国产盗摄在线视频网站| 久久影院理伦片| 日本亚洲天堂网| 色欲一区二区三区精品a片| 日韩欧美电影一二三| av在线理伦电影| 日本在线播放不卡| 久久精品国产免费| 久久久久亚洲av片无码下载蜜桃| 亚洲成人网在线| 欧美一级大黄| 欧美日韩一区二区三区电影| 国产成人免费视频一区| 日韩欧美一级视频| 这里只有视频精品| 精品国产乱码久久久久久樱花| 全黄性性激高免费视频| 91麻豆免费视频| 在线免费看毛片| 欧美精品激情在线| 国产精选一区| 日本少妇一区二区三区| 懂色av一区二区三区| porn亚洲| 动漫一区二区在线| 日韩在线一区二区三区| 欧美日韩在线视频免费播放| 精品一区二区三区电影| 国产精品亚洲欧美日韩一区在线| 免费成人午夜视频| 国产精品免费久久|