<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # UltraDNS 如何處理數十萬個區域和數千萬條記錄 > 原文: [http://highscalability.com/blog/2012/10/8/how-ultradns-handles-hundreds-of-thousands-of-zones-and-tens.html](http://highscalability.com/blog/2012/10/8/how-ultradns-handles-hundreds-of-thousands-of-zones-and-tens.html) ![](https://img.kancloud.cn/d5/3e/d53e1eec5a0ad141389d3f4a00bc8780_258x73.png) *這是 [Neustar](http://twitter.com/jeffreydamick) 的首席軟件工程師 [Jeffrey Damick](http://twitter.com/jeffreydamick) 的來賓帖子。 Jeffrey 在過去兩年半的時間里,對 [UltraDNS](http://www.ultradns.com) 的軟件體系結構進行了全面的復興。* UltraDNS 是頂級 DNS 提供商之一,為許多[頂級域(TLD)](http://en.wikipedia.org/wiki/Top-level_domain)以及[二級域(SLD)](http://en.wikipedia.org/wiki/Second-level_domain)提供服務。 這需要處理數十萬個區域,每個區域包含數百萬個記錄。 盡管 UltraDNS 取得了全部成功,但幾年前它卻陷入了一片混亂,其發布計劃充其量只是一個雜亂無章的事情,并且該團隊仍在努力以瀑布式開發風格滿足功能要求。 ## 發展歷程 意識到必須要做的事情,團隊聚在一起,確定了首先要進攻的最重要區域。 我們從代碼庫入手,穩定了我們的旗艦專有 C ++ DNS 服務器,建立了通用的最佳實踐和自動化。 測試是非常手工的,并且不容易重現,因此我們將質量檢查工程師和開發人員緊密聯系在一起,以創建和審查設計,代碼和自動化測試。 他們的目標是消除交付物的可變性。 我們介紹了以下工具: * 單元測試:gtest * 性能測試:dnsperf(已修改)&定制 pcap 工具 * 靜態分析:cppcheck * 測試&構建自動化:Jenkins * 任務跟蹤:吉拉 * 代碼評論:魚眼和坩堝 * 通用框架:基于 Boost 的選定部分 ## 環境 我們的各種部署環境(包括生產環境)是另一個需要立即關注的領域。 這些環境缺乏任何同質性。 數十種口味和版本的 Linux 被積極使用。 由于目標數量眾多,沒有統一性的開發非常復雜且容易出錯,因此我們對 1 個發行版的 1 個版本進行了標準化。 為了獲得更好的安裝和相關軟件包的可復制性,我們選擇 puppet 來管理此任務。 我們采用了以下內容: * 發行:RHEL(移至 Ubuntu) * 配置管理:人偶 * 指標制圖:石墨 * 監控:Nagios ## 建筑 為了保持市場競爭力,需要 DNSSEC,增強的定向答案和增強的流量服務等功能。 當前的體系結構很大程度上基于 Oracle,以至于它直接影響了我們 DNS 服務器的每秒查詢(QPS)速率。 UltraDNS DNS 服務器需要有效地支持具有獨特使用模式的 TLD 和 SLD。 TLD 通常包含數百萬條記錄,并且不經常(通常每天)更改,但是更改可能占記錄的很大一部分。 SLD 是較小的區域,記錄在數萬至數十萬之間,但變化率較高,占記錄的百分比較小。 所有類型都要求盡快在全局范圍內傳播更改。 DNSSEC 帶來了額外的麻煩,因為簽名記錄集以及對它們進行簽名的密鑰必須一起在邊緣可用。 因此,我們構建了 DNSSEC 區域簽名服務來滿足我們對速度和擴展功能的要求。 但是我們仍然需要確保將區域的正確狀態呈現給我們的 DNS 服務器并以有效的方式進行傳輸,因此我們用 Java 創建了專門的數據饋送服務。 我們利用 Thrift 及其基于 HTTP 的緊湊編碼,使我們能夠輕松地使用標準 Web 緩存進行擴展。 ### 數據饋送服務: * 數據存儲:嵌入式 OrientDB * 傳輸:使用碼頭& apache-cxf 通過類似 HTTP REST 的接口進行節儉 * 測試:Cucumber-jvm * 靜態分析:pmd,checkstyle * 代碼覆蓋率:JaCoCo * 依賴管理:常春藤 結果,我們的 DNS 服務器能夠遷移到一個模型,該模型將幾乎每個區域都保留在內存中,同時通過無鎖管道提供數據。 這帶來了顯著的性能改進,從而使每個 DNS 服務器的> QPS 處理能力提高了 7 倍。 現在,我們不再依賴數據庫復制,因為我們只將所需的數據傳輸到邊緣,因此我們的數據傳播更加可預測和穩定。 這兩項增強功能使我們的節點數幾乎增加了一倍,并改善了 DDoS 緩解措施,因為我們必須不斷處理每秒每秒數十吉比特的攻擊流量。 ## 人 技術只是被攻擊的一個方面,我們也轉向使用瀑布模型中的 scrum。 這種變化花費了相當長的時間,并且在今天仍在發展,但是它已經帶來了可觀的收益。 另一個重要的變化是收緊我們的招聘流程,以確保我們雇用的人員符合我們的流程和技術目標。 我們從其他大公司吸取了一些教訓,并完善了招聘流程,以解決候選人的技術和非技術方面的問題。 結果,我們建立了一支強大的團隊,能夠復興該產品。 ## 結論 路上遇到了許多坎 bump,但現在我們處于一個更好的地方,可以快速適應和調整。 現在,我們的發布時間表大約是在 sprint 快要結束時每兩周發布一次,但是通常會有臨時更改始終在所有時間推出。 為了跟蹤自己,我們現在旨在收集所有方面的指標,包括我們的軟件,硬件,網絡,支持問題以及交付情況,以便我們不斷改進。 ## 服務可用性 *為說明我們的改進,以下是來自加利福尼亞圣何塞的單個節點內的圖表* ### 穩定度: ![](https://img.kancloud.cn/16/6c/166c7b4ab3cb17b037592a9130c17fd7_527x242.png) ### 最新版本(2012): ![](https://img.kancloud.cn/aa/1e/aa1e099ea9caf9136f29b5be8dfc62e2_455x299.png) *如果聽起來有意思,我們正在[招聘](http://www.neustarlife.biz/job-openings/)!* 嗨,謝謝你的這篇非常有趣的文章! 您能否提供一些詳細信息,說明為什么從 RHEL 遷移到 Ubuntu? 謝謝!! 卡爾 我們已經評估了 ubuntu 12.x 和 rhel 上較新的工具,庫和內核所帶來的任何性能優勢,但更重要的是,這對于已經在本地計算機上運行 ubuntu 的開發人員來說更容易了。 啊,好吧,:-) 謝謝! 好的,我花了一秒鐘的時間閱讀了更改顏色(或顏色)編碼的 b / c 圖形。 非常令人印象深刻。 -XC 我想知道您還在使用 orient db 嗎? 你好。 請您詳細說明 OrientDB 的使用方式和性能如何? 我們目前正在研究 OrientDB。 感謝您分享。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看