SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
1
Chapter 27
Reliable Product Launches at Scale
可靠地進行大規模發行
2
Authors: Rhandeev Singh, Sebastian Kirsch,
Vivek Rau (CH5)
P351 - P368, 17 (繁中版)
3
https://www.linkedin.com/in/rhandeev-singh-378883/
4
https://research.google.com/pubs/SebastianKirsch.html
Agenda
● 上線協調工程師
● 建立發行流程
● 擬定一份上線檢核表
● 可靠發行所需要的方法論
● LCE 的發展
5
6
Agenda
● 上線協調工程師
● 建立發行流程
● 擬定一份上線檢核表
● 可靠發行所需要的方法論
● LCE 的發展
7
上線協調工程師
● Google 軟體工程師
○ 有很豐富開發經驗,了解 產品
○ 對發行給幾百萬使用者的挑戰不了解,最小化故障的可能性、最大化 產品的效能指標
● 上線協調工程師 (LCE, Launch Coordination Engineers)
○ SRE 內部專職的顧問團隊
○ 軟體工程師 + 維運工程師組成
○ 負責指引建構符合 Google 標準的可靠、可擴展、穩定、效能的一流 產品
8
LCE 建立的發行流程與標準
● 審核新產品與內部服務,確保他們符合 Google 的可靠標準與實踐規範
● 發行過程中,負責多個團隊之間的協作與聯絡
● 追蹤發行所需任務進度
● 負責發行過程中所有技術相關的問題
● 整個發行過程中的守門員,決定否像發行是否安全
● 針對 Google 的實踐典範,和各項服務的整合來培訓開發者
9
上線協調工程師的角色
● 組成:直接招聘的工程師 + 有經驗的 SRE
● 技術能力要求與 SRE 一樣
● 很強的溝通能力與領導能力
● 將分散的團隊聚合在一起,一起達成目標
● 處理衝突
● 提供建議與指導
10
上線協調小組的優點
● 經驗廣泛
● 跨職能的角度
● 客觀性
11
12
Agenda
● 上線協調工程師
● 建立發行流程
● 擬定一份上線檢核表
● 可靠發行所需要的方法論
● LCE 的發展
13
14
建立發行流程 (Setting Up a Launch Process)
Google 用十年打造的發行流程:
● 輕盈 (Lightweight)
● 穩健 (Robust)
● 周全 (Thorough)
● 可擴展 (Scalable)
● 適應性 (Adaptable)
有些需求相互衝突,例如同事滿足輕量級和完整性是很困難的。Google 透過以下手
段達到目的:
● 簡化
● 高度客製化
● 快速的共通模式
15
建立發行流程 (Setting Up a Launch Process)
上線檢核表 (The Launch Checklist)
● 問題:是否需要一個新的域名?
● 問題:是否儲存持久化訊息?
● 問題:該服務是否有可能被某個使用者濫用?
16
大型組織裡:
● 工程師不可能了解基礎設施
● 這些工程師,會經常重新發明輪子
● 消除重複勞動,使各服務之間的知識更容易傳遞
● 確保基礎設施有足夠的關注
推動融合和簡化 (Driving Convergence and Simplification)
17
Google 所有團隊都參與同一個通用的發行流程,上線檢核表成為推動通用基礎設施
融和的載體。
使用通用基礎設施的優點:
● 經過多年的最佳化、強化
● 已經消除容量、效能、擴展性的不確定性
推動融合和簡化 (Driving Convergence and Simplification)
18
常見基礎設施的功能 (existing infrastructure as building blocks)
● 限速功能 (rate limiting)
● 使用者配額 (user quotas)
● 伺服器資料推送 (pushing new data to servers)
19
發行未知的產品 (Launching the Unexpected)
● 建立全新的檢核表
● 需要相關領域的專家
● 檢核表應關注廣泛的主題:可靠性、故障模式和流程
20
21
Agenda
● 上線協調工程師
● 建立發行流程
● 擬定一份上線檢核表
● 可靠發行所需要的方法論
● LCE 的發展
22
擬定一份上線檢核表 (Developing a Launch Checklist)
● 可靠發行新服務、新產品的重要組成
● 檢核表隨時間不斷變長
● LCE 團隊週期性調整
● 檢核表具體事項,每家公司不一樣
● 跟公司內部的服務與基礎設施相關
23
上線檢核表項目
1. 架構與依賴
2. 整合
3. 容量規劃
4. 故障模式
5. 用戶端行為
6. 流程與自動化
7. 開發流程
8. 外部依賴
9. 發行計畫
24
1. 架構與依賴 (Architecture and Dependencies)
● 審查架構
● 確認是否正確使用通用基礎架構
● 確認負責人將基礎設施加入發行流程
● 在容量規劃中,確保依賴清單中的服務都有足夠容量
25
架構與依賴
問題範例:
● 從使用者到前端,再到後端,請求流程的順序是什麼?
● 是否存在不同延遲要求的請留類型?
待辦事項:
● 將非使用者與使用者請求隔離
● 確認預計的請求數量
○ 單頁面的背後,會造成後端多個請求
26
2. 整合 (Integration)
● 給新服務建立 DNS
● 設定 Load Balancing
● 設定監控系統
27
3. 容量規劃 (Capacity Planning)
● 首次發行限制在單一區域或國家,有助於建立大規模發行的信心
● 容量規劃和冗餘度、可用性有直接關係
○ 需要三個點服務 100% 極端流量
○ 需要維護四到五個部署點
○ 資料中心和網路資源需要提前申請
● 問題範例
○ 發行是否與新聞、廣告、部落格文章有關?
○ 發行過程和之後預計的流量和增速是多少?
○ 是否已經取得需要的全部運算資源?
28
4. 故障模式 (Failure Modes)
依照檢核表,檢查元件相依性,檢查以下:
● individual machine failures?
● Datacenter outages?
● Network failures?
● How do we deal with bad input data?
● Are we prepared for the possibility of a denial-of-service (DoS) attack?
● Can the service continue serving in degraded mode if one of its dependencies fails?
● How do we deal with unavailability of a dependency upon startup of the service? During runtime?
29
故障模式 (Failure Modes)
問題範例:
● 系統設計中是否包含單點故障源?
● 服務遇到相依系統不可用時,如何處理?
待辦事項:
● 為請求設定截止時間,防止因請求持續過長導致資源耗盡 (timeout)
● 加入負載丟棄功能,超載時可以丟棄新請求 (rate limiting)
30
5. 用戶端行為 (Client Behavior)
問題範例:
● 該服務是否實作自動儲存、自動完成、心跳檢查功能?
待辦事項:
● 確保用戶端在請求失敗之後,以指數型增加重試延時
● 確保在自動請求中時做隨機延遲抖動
31
Source: Error Retries and Exponential Backoff
DyanmoDB Error Handling
32
6. 流程與自動化
● 自動化不可能完美
● 每個服務需要有人工執行的流程:
○ 建構一個新版本
○ 移轉服務到另一個資料中心
○ 從備份復原資料
● 自動化以外的流程,應該在發行前文件化
● 確保工程師記住細節之前,就完成文件化
● 流程文件化要做到每一個團隊成員都可以在緊急事件中處理問題
33
6. 流程與自動化
問題範例:
● 維持服務執行是否需要某些手動執行流程?
待辦事項:
● 將所有手動執行的流程文件化
● 將移轉到另一個資料中心的流程文件化
● 將建構和發薪新版本的流程自動化
34
7. 開發流程 (Development Process)
● Google 重度使用版本控制系統
● 大部分的開發都在主幹 (mainline) 進行
○ 發行版本是在分支進行
○ 這種方式讓分支上修復每次發行的 Bug 更簡單
● 存放組態檔
● 待辦事項
○ 將所有程式碼和組態檔放到版本控管系統
○ 為每個發行建立新的分支
35
8. 外部依賴 (External Dependencies)
發行依賴不受控的因素,確認其存在,並做好準備。
● 依賴第三方的類別庫
● 另一家公司提供的服務
● 問題範例:
○ 這次發行依賴哪些第三方程式碼、資料、服務、或者事件?
○ 是否有任何合作夥伴依賴你的服務?發行時是否需要通知他們?
○ 當我們或者第三方供應者無法在指定日期完工時,會發生什麼事?
36
9. 發行計畫
● 市場部門需要在會議簡報中啟用某個功能,簡報之前要隱藏
● 待辦事項:
○ 為該服務擬定發行計劃,將每個任務指派給特定的人
○ 針對發行計劃每部分析危險性,並制定備用方案
37
38
Agenda
● 上線協調工程師
● 建立發行流程
● 擬定一份上線檢核表
● 可靠發行所需要的方法論
● LCE 的發展
39
可靠發行所需要的方法論
1. 灰度與階段性發行
2. 功能開關框架
3. 處理用戶濫用行為
4. 超載行為和負載測試
40
1. 灰度和階段性發行
● SysOps 最常講的就是:『永遠不要改變執行中的系統』
● Google 的發行很少是『立即可用』 (push-button,在某個時間點之後立即可用)
○ 逐漸的發行產品和服務,降低風險
○ 幾乎都是灰度進行
● 灰度進行
○ 先在某個 DC 的幾台機器上安裝,並且嚴密監控一段時間 ← 『金絲雀』
○ 沒有異常,安裝在 DC 上所有機器,持續監控
○ 安裝到全球所有 DC
● 金絲雀:Google 內部自動化的核心理念。
○ Android APP 發行
○ 流量限定 (rate-limited): 註冊邀請制
41
2. 功能開關框架
● 建立可控更新機制,允許在真實負載狀況下,觀察系統的整體行為
● 驗證更改流程之後,能否提升使用者的感受
● 新功能開放給 0-100% 的使用者
● 上線發布後,不需要 LCE 參與
42
2. 功能開關框架 - 需要滿足的要求
43
● 同時發行多個變更,每個變更可針對不同服務器有作用
● 灰度發行到一定的使用者比例 1% ~ 10%
● 將流量根據使用者、連線、對象,發送到不同服務器上
● 新程式出現問題時,可以自動處理,不影響使用者
● 發生嚴重 Bug 時,可以迅速單獨封鎖某個變更
● 度量每個變更對使用者的體驗
3. 處理用戶濫用行為
● 故意或無意的自動請求,會造成驚群效應 (CH24, 25)
● 夜間更新:APP 晚上版本更新造成的大量請求
● 週期性的程序
○ 引入隨機性: Error Retries and Exponential Backoff
● 服務端控制客戶端的行為能力
○ 下載組態檔: 啟用或禁用某些功能或參數,像是同步頻率
○ 如果出問題,可以透過組態檔控制功能的開關
44
4. 超載行為和負載測試 (Overload Behavior and Load Tests)
● 理想:CPU 用量和服務負載成線性關係
● 實際:
○ 負載到某一個數量後,進入非線性轉折點
○ 超載後服務進入鎖死狀態
● 舉例:
○ 某個服務會記錄錯誤 Log,紀錄錯誤過程比處理後端成本還高
○ 進入超載後,服務就入鎖死狀態
○ JVM 的 GC thrashing (垃圾回收死亡螺旋)
45
46
Agenda
● 上線協調工程師
● 建立發行流程
● 擬定一份上線檢核表
● 可靠發行所需要的方法論
● LCE 的發展
47
LCE 的發展
● Google 組織快速成長,組成拆分小團隊,但是新手工程師容易重蹈覆轍
● 為減少問題重複發生,上線工程ㄕ LCE 發行檢核表如下:
○ 什麼時候需要向法務部門諮詢
○ 如何選擇域名
○ 如何註冊域名及正確設定 DNS
○ 工程設計和正式部署常見的問題
● 上述流程稱為『發行審查』,在新產品發行幾天或者幾週前的 SOP
● 檢核表隨時間越來越複雜,越來越長
○ SRE 2004 年建立全值得 LCE Team,負責加速新產品審查速度
○ 確保相關團隊能夠了解為了加速採用捷徑所帶來的風險
○ 顧問程序標化,最後變成『正式作業審 查』 (Production Review)
48
LCE 檢核表的變遷
● LCE 檢核表每個問題都很簡單,但背後緣由和對應答案很複雜
● LCE 新員工需要六個月的培訓,用來充分了解檢核表的複雜度
● 30% 是低風險發行:經過簡化程序、流量增長在 10% 以內的
● 發行限制隨需求改變,例如 Google 併購 Youtube 之後,網路擴展變成是必要的
49
附錄 E
50
LCE 沒有解決的問題
● LCE 努力解決審查中的官僚主義
● Google 2009 年內部小型專案發行難度很高
● 大型專案更不用說,很多問題 LCE 都解不了
51
LCE 沒有解決的問題 - 擴展性的改變
● 產品大幅超出早期的預測,且非常成功時
● 需要進行設計變更、擴展性改變、結構改變、大量重構
● 導致新功能無法正常發行
52
LCE 沒有解決的問題 - 不停增加維運壓力
● 自動化通知太多
● 部署流程太複雜
● 手工維護工作增加
● 團隊開發新功能時間越來越少
● 不斷追蹤維運工作來源,以維持 SRE 50% 的上限
53
LCE 沒有解決的問題 - 基礎設施的改變
● 開發團隊不斷修改基礎設施:叢集管理系統、儲存、監控、附載平衡、資料傳輸
○ 不斷的修改設定檔、配置檔
○ 重新建構可執行檔
● 這些都超出 LCE 的範疇
54
小結
● LCE Team 是 Google 面對快速改變中,保障安全性的解決方案
● 如果要將服務擴展到數億的使用者,快速更改並能確保可靠性,LCE 很有價值
55
56

Mais conteúdo relacionado

Mais procurados

導讀持續交付 2.0 - 談當代軟體交付之虛實融合
導讀持續交付 2.0 - 談當代軟體交付之虛實融合導讀持續交付 2.0 - 談當代軟體交付之虛實融合
導讀持續交付 2.0 - 談當代軟體交付之虛實融合Rick Hwang
 
Wiki in Teamroom - Connected Mind
Wiki in Teamroom - Connected MindWiki in Teamroom - Connected Mind
Wiki in Teamroom - Connected MindRick Hwang
 
[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例
[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例
[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例TIM WANG
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹Philip Zheng
 
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱TIM WANG
 
Tdd with rspec.md
Tdd with rspec.mdTdd with rspec.md
Tdd with rspec.mdLeo Chang
 
Full Stack Monitoring with Prometheus and Grafana (Updated)
Full Stack Monitoring with Prometheus and Grafana (Updated)Full Stack Monitoring with Prometheus and Grafana (Updated)
Full Stack Monitoring with Prometheus and Grafana (Updated)Jazz Yao-Tsung Wang
 
How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )Roberson Liou
 
淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用Rick Hwang
 
VSCode Remote Development
VSCode Remote DevelopmentVSCode Remote Development
VSCode Remote DevelopmentPhilip Zheng
 
十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則Philip Zheng
 

Mais procurados (11)

導讀持續交付 2.0 - 談當代軟體交付之虛實融合
導讀持續交付 2.0 - 談當代軟體交付之虛實融合導讀持續交付 2.0 - 談當代軟體交付之虛實融合
導讀持續交付 2.0 - 談當代軟體交付之虛實融合
 
Wiki in Teamroom - Connected Mind
Wiki in Teamroom - Connected MindWiki in Teamroom - Connected Mind
Wiki in Teamroom - Connected Mind
 
[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例
[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例
[DevOpsDays] 硬體產業的DevOps導入與實踐 - 以工控產業為例
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
 
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
過來人經驗 - 在企業中推行 DevOps 前該具備的認知與工具箱
 
Tdd with rspec.md
Tdd with rspec.mdTdd with rspec.md
Tdd with rspec.md
 
Full Stack Monitoring with Prometheus and Grafana (Updated)
Full Stack Monitoring with Prometheus and Grafana (Updated)Full Stack Monitoring with Prometheus and Grafana (Updated)
Full Stack Monitoring with Prometheus and Grafana (Updated)
 
How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )How we migrate TFS to Git ( using Azure DevOps )
How we migrate TFS to Git ( using Azure DevOps )
 
淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用淺談系統監控與 AWS CloudWatch 的應用
淺談系統監控與 AWS CloudWatch 的應用
 
VSCode Remote Development
VSCode Remote DevelopmentVSCode Remote Development
VSCode Remote Development
 
十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則
 

Semelhante a SRE CH27 - Reliable Product Launches at Scale

微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构Chen Fei
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路AgileCommunity
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationnetdbncku
 
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践Trinea Trinea
 
未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇Yao-Wei Ou
 
光載無限監控平台的變革與演進
光載無限監控平台的變革與演進光載無限監控平台的變革與演進
光載無限監控平台的變革與演進Yao-Wei Ou
 
Network security reesjohnson
Network security reesjohnsonNetwork security reesjohnson
Network security reesjohnsonITband
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进Jun Liu
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
开源软件营销策略
开源软件营销策略开源软件营销策略
开源软件营销策略linhaicaoyuan
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOpsAndrew Wu
 
浅谈架构升级
浅谈架构升级浅谈架构升级
浅谈架构升级Hardway Hou
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌Tun-Yu Chang
 
使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲
使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲
使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲悠識學院
 
10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望drewz lin
 

Semelhante a SRE CH27 - Reliable Product Launches at Scale (20)

微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践
 
未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇
 
光載無限監控平台的變革與演進
光載無限監控平台的變革與演進光載無限監控平台的變革與演進
光載無限監控平台的變革與演進
 
Network security reesjohnson
Network security reesjohnsonNetwork security reesjohnson
Network security reesjohnson
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
开源软件营销策略
开源软件营销策略开源软件营销策略
开源软件营销策略
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
浅谈架构升级
浅谈架构升级浅谈架构升级
浅谈架构升级
 
迭代试验
迭代试验迭代试验
迭代试验
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
 
使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲
使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲
使用者中心的網站設計原則 以英國政府入口網gov.uk 為例 / 悠識 蔡明哲
 
QIoT ,QuAI
QIoT ,QuAI  QIoT ,QuAI
QIoT ,QuAI
 
Xpp
XppXpp
Xpp
 
10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望10th.霍泰稳.info q中文站2011年技术趋势展望
10th.霍泰稳.info q中文站2011年技术趋势展望
 

Mais de Rick Hwang

在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生Rick Hwang
 
20230829 - 探索職涯,複利人生
20230829 - 探索職涯,複利人生20230829 - 探索職涯,複利人生
20230829 - 探索職涯,複利人生Rick Hwang
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會Rick Hwang
 
20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)
20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)
20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)Rick Hwang
 
軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大
軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大
軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大Rick Hwang
 
CH02 API Governance
CH02 API Governance CH02 API Governance
CH02 API Governance Rick Hwang
 
Chapter 8. Partial updates and retrievals.pdf
Chapter 8. Partial updates and retrievals.pdfChapter 8. Partial updates and retrievals.pdf
Chapter 8. Partial updates and retrievals.pdfRick Hwang
 
Ch09 Custom Methods
Ch09 Custom MethodsCh09 Custom Methods
Ch09 Custom MethodsRick Hwang
 
AWS Career Exploration Day
AWS Career Exploration DayAWS Career Exploration Day
AWS Career Exploration DayRick Hwang
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)Rick Hwang
 
SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路
SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路
SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路Rick Hwang
 
導讀持續交付 2.0 - CH02 價值探索環
導讀持續交付 2.0 - CH02 價值探索環 導讀持續交付 2.0 - CH02 價值探索環
導讀持續交付 2.0 - CH02 價值探索環 Rick Hwang
 
2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構
2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構
2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構Rick Hwang
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Rick Hwang
 
第三章 建立良好的人際關係網路
第三章 建立良好的人際關係網路第三章 建立良好的人際關係網路
第三章 建立良好的人際關係網路Rick Hwang
 
Study Notes - Event-Driven Data Management for Microservices
Study Notes - Event-Driven Data Management for MicroservicesStudy Notes - Event-Driven Data Management for Microservices
Study Notes - Event-Driven Data Management for MicroservicesRick Hwang
 
Study Notes - Using an API Gateway
Study Notes - Using an API GatewayStudy Notes - Using an API Gateway
Study Notes - Using an API GatewayRick Hwang
 
從緊急事件 談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
從緊急事件  談 SRE 應變能力的培養 - DevOpsDays Taipei 2018從緊急事件  談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
從緊急事件 談 SRE 應變能力的培養 - DevOpsDays Taipei 2018Rick Hwang
 
AWS Well-Architected Framework (nov 2017)
AWS Well-Architected Framework (nov 2017)AWS Well-Architected Framework (nov 2017)
AWS Well-Architected Framework (nov 2017)Rick Hwang
 
91APP API Gateway 導入之旅
91APP API Gateway 導入之旅91APP API Gateway 導入之旅
91APP API Gateway 導入之旅Rick Hwang
 

Mais de Rick Hwang (20)

在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生在生命轉彎的地方 - 從軟體開發職涯,探索人生
在生命轉彎的地方 - 從軟體開發職涯,探索人生
 
20230829 - 探索職涯,複利人生
20230829 - 探索職涯,複利人生20230829 - 探索職涯,複利人生
20230829 - 探索職涯,複利人生
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
 
20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)
20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)
20230215 - 凝聚團隊共識的溝通方法 (Effective Team Communication)
 
軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大
軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大
軟體測試實務新書發表會 - 從品質與測試,讓軟體再次偉大
 
CH02 API Governance
CH02 API Governance CH02 API Governance
CH02 API Governance
 
Chapter 8. Partial updates and retrievals.pdf
Chapter 8. Partial updates and retrievals.pdfChapter 8. Partial updates and retrievals.pdf
Chapter 8. Partial updates and retrievals.pdf
 
Ch09 Custom Methods
Ch09 Custom MethodsCh09 Custom Methods
Ch09 Custom Methods
 
AWS Career Exploration Day
AWS Career Exploration DayAWS Career Exploration Day
AWS Career Exploration Day
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路
SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路
SRE Conf 2022 - 91APP 在 AWS 上的 SRE 實踐之路
 
導讀持續交付 2.0 - CH02 價值探索環
導讀持續交付 2.0 - CH02 價值探索環 導讀持續交付 2.0 - CH02 價值探索環
導讀持續交付 2.0 - CH02 價值探索環
 
2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構
2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構
2020 AWS Summit - 如何有效管理 AWS 的成本結構與系統架構
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214
 
第三章 建立良好的人際關係網路
第三章 建立良好的人際關係網路第三章 建立良好的人際關係網路
第三章 建立良好的人際關係網路
 
Study Notes - Event-Driven Data Management for Microservices
Study Notes - Event-Driven Data Management for MicroservicesStudy Notes - Event-Driven Data Management for Microservices
Study Notes - Event-Driven Data Management for Microservices
 
Study Notes - Using an API Gateway
Study Notes - Using an API GatewayStudy Notes - Using an API Gateway
Study Notes - Using an API Gateway
 
從緊急事件 談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
從緊急事件  談 SRE 應變能力的培養 - DevOpsDays Taipei 2018從緊急事件  談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
從緊急事件 談 SRE 應變能力的培養 - DevOpsDays Taipei 2018
 
AWS Well-Architected Framework (nov 2017)
AWS Well-Architected Framework (nov 2017)AWS Well-Architected Framework (nov 2017)
AWS Well-Architected Framework (nov 2017)
 
91APP API Gateway 導入之旅
91APP API Gateway 導入之旅91APP API Gateway 導入之旅
91APP API Gateway 導入之旅
 

SRE CH27 - Reliable Product Launches at Scale