<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 為 David Guetta 建立無限可擴展的在線錄制活動 > 原文: [http://highscalability.com/blog/2016/1/20/building-an-infinitely-scaleable-online-recording-campaign-f.html](http://highscalability.com/blog/2016/1/20/building-an-infinitely-scaleable-online-recording-campaign-f.html) ![](https://img.kancloud.cn/eb/c2/ebc245235b87e628fc384751e4f2382e_205x205.png) *這是 [Ryan S. Brown](https://twitter.com/ryan_sb)* 最初發布在 [serverlesscode.com](https://serverlesscode.com/post/david-guetta-online-recording-with-lambda/) 上的一次采訪*的來賓帖子。 它繼續了我們對 Lambda 頂部建筑系統的探索。* 分頁 [David Guetta](https://en.wikipedia.org/wiki/David_Guetta) 粉絲:本周,我們采訪了在其最新廣告系列背后建立網站的團隊。 在網站上,歌迷可以錄制自己演唱的單曲“ This One’s For You”,并制作專輯封面。 后臺**該站點建立在 Lambda,API Gateway 和 CloudFront** 上。 社交廣告系列通常會變得很尖刻–當大量媒體報道時,如果您還沒有準備好,大量的用戶涌入便可以使基礎架構開始爬行。 [parall.ax](https://parall.ax/) 的團隊之所以選擇 Lambda,是因為它沒有使用壽命長的服務器,而且他們可以根據亞馬遜的需求來分擔上下擴展應用程序的所有工作。 來自 [parall.ax](https://parall.ax/) 的 James Hall 將會告訴我們他們如何構建一個國際化的應用程序,該應用程序可以在短短六周之內滿足任何水平的需求。 # 面試 ## 什么是 [parall.ax](https://parall.ax) ? 告訴我您的公司(規模,專長等) Parallax 是一家數字代理商。 我們提供一系列服務,包括應用程序開發,安全性和設計服務。 我們有 25 名全職員工以及一些外部承包商。 我們專注于提供可大規模擴展的解決方案,尤其專注于體育,廣告和快速消費品(FMCG)。 ## 告訴我一些有關該應用程序的信息,它可以解決什么問題? 該應用程序是 David Guetta 的新發行版“ T [他的一生為您](https://www.youtube.com/watch?v=MAQIb2lYFV0)”(這是 2016 年 UEFA EURO 決賽的官方主題曲)的大規模營銷活動的一部分。 我們正在邀請粉絲-希望到三月時達到一百萬-進入虛擬錄音室,并為他們提供與 Guetta 一起唱歌的機會。 不僅他們的聲音會出現在最后一首歌中,我們還將用他們的名字和最喜歡的團隊創作個性化的專輯插圖。 可以在朋友之間共享,從而增加參與度,并允許更多粉絲加入廣告系列。 整個網站以十二種語言構建,融合了 DJ 自己的視頻內容以及贏得巴黎之旅的機會。 您可以在 [thisonesforyou.com](https://thisonesforyou.com/) 上進行檢查。 ## 除了 Lambda 之外,該應用程序還使用哪些其他技術? 這包括前端,移動數據庫以及任何您可以共享的數據庫。 ![](https://img.kancloud.cn/c9/2e/c92e2d9e5e759f6a5ebd2276115193e0_640x410.png) *圖片來源:Parallax Agency Ltd.* 在后端,我們使用各種技術來提供完全可伸縮的體系結構。 我們使用[無服務器](http://serverless.com)(以前稱為 JAWS)和 CloudFormation 在代碼中協調整個平臺。 請求通過 CloudFront 路由,靜態資產緩存在距離請求它們的用戶最近的 Edge 位置。 頁面首次加載時,所有內容都是完全靜態的。 在客戶端瀏覽器中會生成一個 UUID-該 UUID 用于將來的所有 API 請求,并允許我們將頁面中的不同操作關聯在一起,而不必提供 Cookie。 此值的隨機性很重要,因此該庫使用計時和加密函數(如果可用)來導出隨機種子數據。 ![](https://img.kancloud.cn/50/8b/508b100ca6ab4ec19b3b3cee813f7bf9_500x311.png) *圖片來源:Amazon Web Services* 靜態資產的來源是一個簡單的 S3 存儲桶。 這些通過部署腳本上載。 然后,語言檢測端點發送回 Accept-Language 標頭以及接收請求的國家代碼。 這是使用基本的 Lambda 函數。 另一個端點將訂戶數據添加到 DynamoDB,以及通過 Amazon SES 向他們發送歡迎電子郵件。 為了使錄制工作正常進行,我們有一個端點,該端點為以提供的 UUID 命名的路徑發行 S3 令牌。 然后,將上傳的內容從瀏覽器直接發布到 S3。 Lambda 最有用的應用是圖像生成端點。 我們拍攝用戶最喜歡的球隊標志的圖像,覆蓋 Guetta 的照片,然后添加他們的名字。 然后將其與 Facebook 和 Twitter 大小的圖形一起上傳到 S3。 我們還上傳了一個靜態 HTML 文件,該文件指向此唯一的圖形。 這樣可以確保當人們共享 URL 時將顯示其自定義插圖。 為此,我們在頁面中使用 Open Graph 圖像標簽。 在前端,我們使用 Brunch 來編譯車把模板,編譯 SASS,為 CSS 加上前綴以及任何其他構建任務。 記錄接口本身具有三種實現。 WebRTC 錄音機是“ A 級”體驗,它使用新的 HTML5 功能直接從麥克風錄音。 然后,我們會有一個 Flash 回退來獲得相同的體驗,這適用于不支持 WebRTC 的桌面瀏覽器。 最后,我們有一個文件輸入,提示用戶在手機上進行錄制。 ## 您是否考慮過其他解決方案? 如果是,還有哪些其他選擇? 如何決定使用 Lambda? 是的,一點沒錯。 我們的常規堆棧是 LAMP,構建在 CloudFront,Elastic Load Balancer 和 EC2 節點之上。 這本來可以擴展,但要像使用基于 Lambda 的體系結構一樣快速和簡單地擴展,則要困難得多。 我們必須構建一個用于生成圖像的排隊系統,然后啟動專用于根據吞吐量制作這些圖像的 EC2 節點。 編寫簡單的 Lambda 函數并讓 Amazon 進行所有艱苦的工作似乎是顯而易見的選擇。 ## 團隊有多大? 是否有/已經有過 Lambda 的經驗,或者他們來自其他專業領域? Parallax 的團隊由五人組成。 Tom Faller 是客戶經理,負責項目的日常運行。 我是后端開發人員,創建 Lambda 函數并設計云架構。 阿米特·辛格(Amit Singh)主要是前端,但是從事接口和后端 JS 之間的許多粘合部分的工作。 克里斯·米爾斯(Chris Mills)是質量保證和系統部門的負責人,并首先鏈接到無服務器(以前的 JAWS)項目。 杰米·塞夫頓(Jamie Sefton)是另一位 JS 開發人員,致力于將兼容性后備功能集成到代碼庫中,包括基于 Flash 和基于輸入的錄制體驗,作為不支持 WebRTC 的設備的后備功能。 我以前有過 Lambda 的經驗,但這對其他團隊成員來說是新的。 ## 您花了多長時間開發應用程序? 它比在其他框架中編寫要快嗎? (Express,Rails,無論您的“家庭草皮”是什么) 我總共要花大約 6 到 7 周的時間,盡管事先進行了大量的研究和原型設計才能得出正確的架構設計。 對于所需的可伸縮性,要使用我們的“家用草皮”確保它具有同等的健壯性,將花費更長的時間。 ## 您如何部署應用程序? 您是否正在使用 CI / CD 服務? 該應用程序是從 Atlassian Bamboo 部署的。 該代碼庫位于 Stash 中。 每個分支機構都有自己的部署 URL,一旦構建,該 URL 就會發布到我們公司的聊天室中。 這使我們可以快速測試并確定更改是否可合并。 ![](https://img.kancloud.cn/ae/c0/aec08c3ecbca372ebe5cff19d3f29234_497x71.png) *圖片來源:Parallax Agency Ltd.* ## 您有什么監控? 您有什么要監視但不需要/無法監視的東西嗎? 對于前端 JS 錯誤,我們使用 Bugsnag。 對于這種類型的應用程序,這是查看堆棧中是否存在問題的最簡單方法。 如果錯誤峰值大于流量峰值,您就會知道有些問題。 我們通常將 NewRelic 用于后端,但是由于所有后端代碼都存在于 Lambda 函數中,因此我們選擇使用 CloudWatch。 ## 在變更投入生產之前,您如何進行測試? 您有測試/暫存環境嗎? 是的,絕對是。 推送到 Stash 的每個提交和分支都部署到測試環境。 對于靜態資產和前端 JavaScript,它使用 Bamboo,并為每個分支和內部版本號創建一個新文件夾。 對于 lambda 函數,已使用`serverless dash`將其更新到每個環境。 ## 一路上有什么讓您感到驚訝的嗎? 某些任務比您預期的要難還是難? 運行 Lambda 的服務器上缺少日文和中文字符的字體,這是可以預料的,但是這并不是我們在開發中計劃的。 當操作系統呈現特定字體并且不包含特定字形時,它將回退到系統安裝的多語言 Unicode 字體。 這會自動在網絡上發生,但是在裸機上的 ImageMagick 內部不會發生。 這意味著我們必須在端點中附帶大型 Unicode 字體。 通過僅將非拉丁名稱路由到 Unicode 端點,我們減少了此功能對性能的影響。 例如, ![](https://img.kancloud.cn/80/a3/80a39a4b428c5f5e6f071040fdd1e39e_500x312.png) Helvetica 不包含任何亞洲字形 ![](https://img.kancloud.cn/99/fc/99fc891a7bbc47e6fe3bc6c943a8c5ed_500x312.png) ## 您發現開發過程中有痛點嗎?您想如何解決它們? 多個分支機構和早期的無服務器(以前的 JAWS)框架存在一些問題。 假設我們要在一個分支中添加一個端點,而在另一個分支中添加另一個端點,則不能將它們都部署到同一環境階段。 這是我們正在努力解決的問題,我們將尋求為 Serverless 提供一些有用的工具來解決此問題。 ## 您是否想找到讓更多人了解的特別有用的工具或庫? 我強烈建議您使用幾種測試工具。 相機和麥克風在仿真器中的行為有很大不同-有時甚至根本沒有仿真! 這意味著我們必須使用真實的設備進行測試。 我們使用了 [Vanamco 設備實驗室](https://www.vanamco.com/devicelab/)以及五個我們認為是很好的傳播設備。 我們將其與 Ghostlab 一起使用,這使我們能夠在所有設備上打開同一頁面,并使它們保持同步。 它包括一個 Web 檢查器,用于調整 CSS 并運行調試 JS。 然后,為了增加 Android 覆蓋率,我們使用了 [testdroid](http://testdroid.com/) 。 這是一項出色的服務,可讓您遠程使用真實設備。 打開相機應用程序,您可以在數據中心內看到。 我一直在熱切地等待著一個測試機器人工程師,將他的頭戳進架子,但是到目前為止,我感到失望! ![](https://img.kancloud.cn/13/5f/135fa4c75678da17c9f0f757e73e8992_500x348.png) * Testdroid 使用 Google Nexus 10* # 包起來 再次感謝 James Hall 提供有關所有 Lambda 后端的 CI,移動測試和 Unicode 解決方法的內部視圖。 要了解有關無服務器應用程序框架的更多信息,請查看其[網站](http://serverless.com)或 [gitter.im 聊天室](https://gitter.im/serverless/serverless)。 **披露:**我與 Parallax Agency Ltd.沒有關系,但是他們建立了很酷的項目,而這次采訪只涉及其中一個。 訂閱[無服務器代碼郵件列表](https://serverlesscode.com/mail/),以跟上以后的帖子。 如果您有任何建議,問題或意見,請通過 [[受電子郵件保護]](/cdn-cgi/l/email-protection#7b171a16191f1a3b09021a15081955181416) 給我發送電子郵件。 [關于 HackerNews](https://news.ycombinator.com/item?id=10955158)
                  <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>

                              哎呀哎呀视频在线观看