ICT 每周速報(Week 34, 2021)

Willis WAN, Chun Yu | 2021-08-27

🖊 本周重點

  • 閏秒令各地 Programmer 頭痛萬分
  • 數據管治嘅六個原則
  • 單點故障:DNS 錯誤導致 Amazon 等大企業服務受阻

🗞 News 1: 閏秒令各地 Programmer 頭痛萬分

Bert Hubert 發表咗一篇網誌,講述點解閏秒(Leap Second)唔發生都會引致好多程式錯誤。文章詳細咁講述全球定位系統(Global Positioning System;GPS)一類嘅衛星導航系統(Global Navigation Satellite System;GNSS)係點樣進行定位同報時。

我哋用開嘅時間系統 UTC 假設咗一日有 86,400 秒。但係由於地球會轉得快啲或者慢啲,UTC 時間會同平太陽時間出現偏差。係呢個時候就要靠係 UTC 加減閏秒嚟做修正。

一個 GNSS 嘅衛星會係每一秒向地球傳播依家嘅時間同埋下一次閏秒出現嘅日期。但係傳送嘅方式會引致唔少程式出現錯誤。

ICT 重點

記唔記得係中四,ICT 一開波嘅時候,我哋學過電腦嘅數字表示(Number Representation)?簡單嚟講,我哋會用二進制(Binary)嚟代表所有數字,例如:

1010=1010210_{10} = 1010_2

然後電腦會決定我哋用幾多個 1 同 0 (位元;Bit)嚟儲低呢個數字。例如,我哋會用 8 個位元嚟儲低個數字,咁我哋就會話個系統嘅「字長 Word Size」係 8 個位元:

1010=0000 1010210_{10} = 0000\space 1010_2

咁同潤秒有咩關係?GPS 係廣播下一次潤秒嘅時候,會俾三樣嘢我哋:依家嘅 GPS Time(呢個時間未加 Timezone 同潤秒)、一個周份號碼(Week Number)同一個星期號碼(Day Number;1-7)。係 GPS 開發嘅時候,美國嘅開發人員定義 Week 1 係 GPS 時間嘅 1980-01-06 00:00:00,然後每經過 7 日,Week Number 就加 1。Day Number 就以星期日做 Day 1,如此類推。上一次潤秒發生係 2016 年 12 月 31 日,呢一日嘅 GPS Week Number 係 1929,用二進制表示:

Week Number WN=192910=0111 1000 10012\text{Week Number WN} = 1929_{10} = 0111\space 1000\space 1001_2

但係,由於太空對地球嘅通訊好貴,係開發嘅時候,開發人員會盡量減低要傳送嘅訊息大小。其中一個 Assumption 係:假設潤秒係每 256 個星期入面會發生至少一次。(個 Assumption 無乜大問題,因為科學家無辦法準確預測一年之後我哋幾時需要潤秒。)如果係咁嘅話,我哋就只需要傳送 Week Number 嘅右手邊八個位(即定義字長為 8 位元),呢件事係 Computing 嘅世界叫 Least Significant First (LSF):

WNLSF=1000 10012=13710WN_\text{LSF} = 1000\space 1001_2 = 137_{10}

所以,GPS 會傳送最近一次嘅潤秒發生係 Week 137。咁我哋係地球嘅接收器(例如係手機),收到個時間之後,就可以計翻出依家嘅地球時間係幾多。

好啦,溫書溫咗咁耐,咁個 Bug 係邊呢?其中一個 Bug 係,我哋準備經歷連續 256 個星期無潤秒。Week 137 亦都可以對應 2021-11-20 嗰個星期。一啲接收器好大機會係嗰一日唔小心加咗潤秒落去。另外,由於地球嘅自轉速度有減慢嘅趨勢,我哋可能會經歷負潤秒(Negative Leap Second)。大部分嘅程式都未必有為負潤秒而做好準備。

ICT 入面嘅 Programming,離離去去都去 if-then-elsefor loop 啊之類,唔會難得去邊。寫 Programme 最難就係要 Capture 人類生活種種嘅 Rules,就好似幾時有潤年潤秒咁。所以,都係個句:The problem is human.

相關課題

  • 必修部分第 3 課:關於數字表示
  • 必修部分第 16 課:關於衛星寬頻
  • 選修單元 B 第 8 課:關於衛星網絡(Please kindly help Willis say hi to Mr Kwan, the book author ❤️)

新聞來源/詳細閱讀

🔖 News 2: 數據管治嘅六個原則

「數據管治 Data Governance」係指一套決策權同責任嘅管理系統,用嚟決定邊個係乜嘢情況底下可以運用乜嘢數據。一間公司無數據管治嘅話,就會導致數據質素下降 、數據難以使用、無法確保數據完整性(Integrity)、成為保安漏洞、係需要時無法獲取數據。

數據量嘅增加、更多嘅數據私隱嘅條例同法規、同埋更多公司間商業合作令到數據管治嘅需求大大提升。CIO.com 提供咗六個原則,令到公司可以更好咁建立數據管治:

  1. 分析重點數據及視數據為戰略資源;
  2. 為數據周期訂立政策同程序;
  3. 在管治過程中諮詢商業用戶;
  4. 主數據(Master Data)加強管理(Master Data 係指對商業交易有直接影響嘅數據,例如係客戶嘅數據、商品嘅數據等);
  5. 明白資訊嘅價值;
  6. 唔好過份限制數據使用。

ICT 重點

我哋嚟溫 ICT 第 1 課資訊處理。仲記唔記得資訊周期 Information Lifecycle 嘅七個階段呢?唔記得唔緊要,我哋搵啊 Bob 嚟幫大家畫:

01

So far so good. 咁之後,記唔記得數據(Data)同資訊(Information)有乜嘢分別?其中一個大分別就係,資訊係經過處理嘅:

02

如果將呢兩幅圖擺埋一切,我哋就唔難睇出個相似點:

另外,記唔記得係第 28 課,我哋講過個人數據(私隱)條例(Personal Data (Privacy) Ordinance;PD(P)O)要求公司為個人數據建立保留政策(Retention Policy)?將佢擺埋落去幅圖入面:

啊Bob就會好驚訝。 我哋就會睇到數據同資訊嘅整個生命周期。明白呢幅圖,就係公司建立數據管治嘅第一步。

相關課題

  • 必修部分第 1 課:關於數據同資訊嘅差異
  • 必修部分第 1 課:關於資訊周期
  • 必修部分第 28 課:關於數據私隱

新聞來源/詳細閱讀

📱 News 3: 單點故障:DNS 錯誤導致 Amazon 等大企業服務受阻

Amazon、Airbnb、Fedex 同 Delta Airway 有咩嘢共同點?有兩點:

  1. 佢哋都係 Akamai Technologies 嘅客戶;
  2. 係七月嘅時候都經歷過大型斷網事件。(我知七月唔算得上「新聞」,但係呢單嘢堅好睇)

Akamai Technologies 係一間提供「內容傳遞網絡 Content Delivery Network」(CDN)服務嘅公司。呢間公司有唔少大企業客戶,確保佢哋嘅網站可以更快咁傳送到用戶嘅裝置上。

係七月嘅時候,Akamai Technologies 由於係設定網域名稱系統(Domain Name System;DNS)上出錯,導致所有用戶都無法連上 CDN,從而出現斷網事件。

ICT 重點

先講講 CDN 呢粒字。睇落好陌生,但係換個名你哋就知係咩嚟:分布式處理系統(Distributed Processing System)。簡單嚟講,一個 CDN 服務供應商係全球各地有唔同嘅伺服器(Servers),令到用戶可以用更短嘅時間攞到網站嘅內容。

一般嚟講,我哋想攞到網上嘅任何資源,好多時間都係透過網域名稱(Domain Name)去代表個伺服器。要用 Domain Name 嘅話,就一定要有伺服器去將個網域名稱轉譯(Translate)成 IP 位址。問題係:DNS 伺服器係伺服器嘅一種,伺服器係電腦嘅一種,而電腦係會壞嘅。如果 DNS 伺服器壞咗嘅話,就會導致我哋攞唔到伺服器嘅 IP 位址,自然地我哋就上唔到想去嘅網到。

如果我哋無後備嘅 DNS 伺服器嘅話,我哋就會話 DNS 伺服器係「單一故障點 Single Point of Failure」(又譯「單點故障」)。最簡單解決 Single Point of Failure 嘅方法,就係有後備嘅設備,提高系統嘅冗餘度(Redundancy)。

相關課題

  • 必修部分第 15 課:關於分布式處理系統
  • 必修部分第 17 課:關於網域名稱及網域名稱系統
  • 選修單元 B 第 13 課:關於容錯

新聞來源/詳細閱讀

問題回顧

  1. 點解 GPS 發射器係傳送下一潤秒嘅周數時,淨係傳送最右手邊嘅 8 個 Bits?
  2. 點解公司要建立數據保留政策?
  3. 點解話 DNS 伺服器係單點故障?

鐘意篇文嘅話,麻煩係下面個 IG Post 上面俾個 Like ❤️ 感謝感謝

更多內容