【電商掛點是好事】不是足夠大的公司,還沒機會遭遇技術問題

犯錯,重要的是汲取經驗,並且讓這次的傷口成為自己成長的印記。
評論
評論

原文出自作者 Medium

今天是雙 11,不過台灣兩大電商平台 PChome 跟 momo 卻在今天疑似 乘載不了突然湧入的壓力而掛點 ,我想平台與技術團隊應該壓力山大,但我覺得這是一件很好的事,所以要特別恭喜他們。

不是足夠大的公司,不具有這樣的規模量,你還沒機會遭遇此問題,就如我們過去說的:

技術債是屬於那些活下來的公司,至於那些撐不下去的,技術債跟你一點關係也沒有。

換句話說,就是你夠大,你才有機會碰到這樣的問題。

大多數一流的網路公司都曾發生過大規模的系統問題,差別只在於局部崩潰或是全面性的崩潰,但在它們長到這麼大之前,這種異常問題還會少見嗎?一點也不,AWS、Facebook、阿里雲、Netflix、LinkedIn 這些公司其實都發生過大規模的異常事件,這些公司的工程師的高水平我想大家都略知一二。

一家公司的技術水平,往往都是在遭遇到營運面的困難時,才踏上加速突破的道路。

台灣網路圈這些年來因為市場規模的關係,網站的交易量 (transaction) 與併發用戶量 (concurrent user) 一直都不會太大,每秒上千個交易或 10 萬個併發用戶已經是一線網站,基本上很少有機會讓大家實戰演練一下如何搞定每秒十萬交易跟千萬級併發用戶。

這次雙十一的事件跟兩年前訂票系統的案例,都會推升台灣技術團隊的水平,我們應該更樂觀看待這樣的事件。

很多人,學了一輩子架構設計,但一直都沒有機會在工作中實踐,而各位有這樣的機會,我真心覺得運氣太好了。當然,短期內面對的壓力肯定很大,公司內部甚至會有人建議要殺兩個工程師來祭旗...XD。

不過長期來說,因為痛過,你更能理解架構設計的重要性,而在這過程中,技術團隊也該把握機會,好好對公司內部陳述技術架構在商業上的重要性,可以將目前潛在的問題做好分析,並提出改善建議。

雖然此時你心裡一定不太爽,但請務必記得不要見獵心喜,用「我早說了吧」、「你們就不重視技術,只重視銷售」,這樣容易挑起紛爭的發言,因為這不會讓你的建議獲得採納。請記得,此時只要站在公司的角度去討論這件事,提出目前技術架構上的問題,並提出資源的需求,一般來說大多能得到不錯的結果。

犯錯,重要的是汲取經驗,並且讓這次的傷口成為自己成長的印記。

來自我親身的經驗

三年前我接下公司的維運負責人,當時我們也面臨了許多系統端問題,以下是其中一個當時讓我燃燒了不少生命,但也學到非常多的案例。

隨著業務量成長,資料庫的存取量也大幅提升,每天到了尖峰時刻,系統就快要乘載不了,最慘的是我們的主資料庫,每天晚上的 CPU Usage 都是逼近 100%,而且一旦上去,短時間內都不會降下來。這是什麼概念,等於同一時間在存取資料庫的所有 user,全部都會卡住,動彈不得。

第一次發生,我們只能選擇重新啟動資料庫服務,釋放掉所有的連線,讓所有的 user 重新連上。當然了,當天晚上的客訴電話可是沒有斷過,公司內的微信群整個炸開,大家都想殺兩個 RD 來祭旗 (笑),但大家都知道,當務之急是找到原因以及解法,當公司的用戶數量每年以倍數在增加時,這樣的問題勢必會成為往下成長的瓶頸。

當天晚上我們當然招集了各系統的負責人以及 DBA,討論了很多可能的原因,從資料庫與系統的 log 中找蛛絲馬跡,一開始大家猜測的原因命中率其實很高:

  1. 資料庫肯定有許多 lock
  2. 肯定有一些寫得特別爛的 SQL,消耗了大量的 DB 運算資源,所以 CPU 衝高
  3. 太多很多 inline SQL
  4. 太多排程服務對 DB 發出 request
  5. 太少 cache

至於到底是什麼原因,DBA 很快地也找出來了,基本上上面這五條全部都中獎,接著又花了幾天把一些執行頻率高,且資源耗損較大的語法都找了出來,我印象中不少於 200 條,而我們挑選了其中的 3 條優先處理,因爲能爭取到 10% 使用率的下降,對當時的我們來說就有很大的幫助了。

但改這種沉痾問題,不是一兩天就能搞定的,因此往後的幾天,我們先做了很多 workaround,包含尖峰時段所有的 RD 都避開會存取主資料庫的系統,上線若涉及資料庫存取的,都要先提供給 DBA review,確保問題不會持續加重,甚至是在進入尖峰時段前,先將部分服務重新啟動。

若不幸當天晚上的 CPU 使用率還是爆表,那就先做資料庫重新啟動,那段時間,每天晚上我們就是在監控螢幕前盯著螢幕,隨時準備應付突發狀況。

在還無法優雅面對前,只能選擇最笨的方法,這就是真實的維運生活。

後來在我們將那幾支改寫好的 SQL 重新上線後,CPU 使用率開始平穩地維持在 70-80% 左右,發揮了一些成效,但我們很清楚,這樣的數字一點也不保險,因此在接下來的一個多月內陸續進行了爛 SQL 的修復,以及為 SQL 的寫法做好規範,後來 CPU 使用率便降到 30-40% 上下。

那段時間幾乎天天都被 highlight,酸言酸語也在所難免,但藉著這種國安等級的重大事件,我們也趁機讓大家知道一些技術性專案的重要性,藉此預警三個月半年內可能會再發生的狀況,並打鐵趁熱,將一些技術性專案的優先順序往前挪,爭取到一部份時間把問題徹底解決。

在問題解決前,每天就是面對著千萬營業額可能流失的壓力,現在想想還是覺得超級幸運...XD。

技術重在有實踐的場景

如我前面所說,大家都知道系統會有問題,發生時,也大多能點出問題所在,但這樣的問題卻還是在發生,這意味著,技術的學習與實踐中間,其實存在很大的落差。而我們何其幸運,可以在這樣的時間點,遭遇到一個這種規模的問題,唯一能做的,就是解決它。

資料庫,其實是整個系統中相對難 scale 的,過去幾年也有多次因為資料庫的問題而搞得我們蓬頭垢面,但我每次面對這樣的問題還是備感興奮,雖然當下的壓力或情緒不見得很好,但我告訴團隊處理過這樣的問題,自己的技術經驗會更加完善。

分庫分表、讀寫分流、異步同步、大規模開發的資料庫管理、高可用的 DAO 設計、多層資料快取 (最多曾思考過 6 層)、資料庫解耦合、資料架構的重新規劃與設計,這些都是在那段時間內我們討論過的議題,而其中最少有八成,我們後來真的實踐了,如果沒有那樣的挑戰出現,根本沒機會累積這樣的經驗。

也非常感謝當時 DBA 團隊的眾家高手們,不厭其煩的跟我們一塊找問題,並提供很專業的建議,讓我在處理問題的過程中,同時也學習了工程部門如何與 DBA 做良好的溝通協作。

上禮拜我在 FB 分享了一位 LinkedIn 的 SRE 工程師分享他有一次 將 LinkedIn 搞掛的經驗 ,其實我非常期待有一天台灣也能有一線網站的工程師出來分享類似的經驗,我相信這對台灣技術水平的提升會大有幫助。


Cookie 消失?試試看全新 AI 影像內容辨識:讓用戶看的內容決定看到的廣告

Google Chrome 即將淘汰幫助廣告主的工具—— Cookie ,它的離去將再一次地影響數位廣告產業。
評論
Photo Credit:<a href="https://www.shutterstock.com/zh/image-photo/ai-artificial-intelligence-big-data-internet-1075853384" target="_blank">shutterstock</a>
評論

透過GA分析進站者發現, Safari的新客數越來越多,難道這表示 iOS 的用戶數也跟著增加了嗎?注意了,這有可能是 Apple 封鎖第三方 Cookie 帶來的影響。隨著 Google 即將淘汰 Chrome 上的 Cookie ,這個幫助廣告主記住用戶受眾的小工具,將要再一次地影響數位廣告產業。

Photo Credit:驚點股份有限公司( FreakOut Taiwan )

後 Cookie 時代的廣告受眾如何鎖定?

各大廣告平台在過去幾年不斷地透過 Cookie 以及其它方式,悄悄收集使用者的用戶數據,隨著這幾年用戶的隱私權意識抬頭, Apple 與 Google 對於藉由 Cookie 辨識用戶資料的廣告投遞方式,持有不同的態度,這也將是所有廣告主的極大挑戰。當 Cookie 不復存在,要如何辨識使用者資料?

Cookie 消失了,或許會有新的數據辨識工具來取代,但是任何試圖跟蹤受眾的方式,都難以符合大眾對於保護隱私權的期望。另一方面,也極有可能無法再通過日趨嚴格的媒體監管限制。無論如何,數位廣告不能像過去一樣,無條件地使用類似 Cookie 的追蹤方式,來達到與現在同樣的廣告效果。

後 Cookie 時代內容辨識類型的廣告鎖定方式,將成為未來具指標性的投放策略。廣告與瀏覽平台或內文主題的高相關性,不僅能顯著提高受眾的互動度,更重要的是,完全不需要收集任何個人數據。

FreakOut Taiwan 不斷嘗試更友善的廣告投遞形式, 自 2016 年進入台灣市場的原生廣告,到 2020 年末引進「 Mirrors 」 AI 影像視覺內容辨識系統,都是以網路使用者的角度出發。「 Mirrors 」不需要使用傳統的受眾興趣設定,即可針對「目標受眾在觀看的影像內容」、「品牌自身競爭對手或相關指定系列產品出現的影片」來投遞 YouTube 上的影音廣告。

Photo Credit:驚點股份有限公司( FreakOut Taiwan )

AI 人工智慧影像技術突破,推動新一代內容辨識功能

傳統的內容比對廣告皆為自然語言處理 NLP 中心,基於「純文字」的比對來顯示相關廣告,如大家很熟悉的 Google AdSense 。但是,結合新興的 AI 演算和複雜的圖像辨識,已然能夠達到「影片」的內容偵測,透過增加多個比對層和基於自然語言處理 NLP 的基準定位,可深度學習並提供更精細的辨識洞察力。

舉例來說,若想要將汽車廣告投放給對汽車有興趣的人,我們要先從可能對汽車感興趣的受眾中開始推估,並且根據過去的經驗加入不同的興趣條件,最後針對素材更進一步地測試。透過 Mirrors ,我們可以讓廣告出現在有滿足特定條件的影片內,例如:在消費者觀看的影片中,出現汽車評測報告、自家品牌或競爭對手的 LOGO 、代言人等指定條件,再依照不同廣告主設定的預算判斷是否露出廣告。

藉由這樣的影像比對方式,可以更有效地根據消費者行為觸發廣告投遞條件,而不再是現行的用戶受眾數據。人的興趣是多樣且多變的,當對汽車有興趣的用戶在完成汽車的選購後,短期內將不會再瀏覽相關資訊,轉而瀏覽其他更具時效性的內容。透過消費者當下正在觀看的影片內容,取代消費者身上被貼上的數位標籤,將更貼近消費者本身的使用行為。

Photo Credit:驚點股份有限公司( FreakOut Taiwan )

Mirrors AI 影像辨識:用消費者看的內容決定廣告

2021 年台灣數位報告指出,台灣人在各網路內容服務中,最愛「網路影片」的比例高達 97.9%,遠超過 Vlog、串流音樂、網路廣播、Podcast 。

影音廣告早已是品牌經營的趨勢:根據 DMA 2019 年台灣數位廣告量統計報告指出,台灣各類型廣告中,影音廣告以 37.2% 的成長比例大幅領先奪冠。其中 YouTube 持續蟬聯台灣最常被造訪網站第 2 名(僅次於 Google ) ,在台灣各大影音平台中的觸及率及影響力不容小覷。

2021 年 FreakOut Taiwan 已與客戶合作,進行搭載新系統的 YouTube 串流內廣告投遞,在針對品牌及產品客製化的多層鎖定策略建議下,房地產廣告的 CTR 表現高於平均,並發現「人臉」群組辨識表現為佳,其中多為財經、名嘴等名人。而美妝品牌廣告 VTR 表現優異,則以品牌「 Logo 」、「人臉」群組有最出色的表現。

本文章內容由「驚點股份有限公司( FreakOut Taiwan )」提供,經關鍵評論網媒體集團廣編企劃編審。