為你的自動化基礎設施拉上保險系列之三 - 單元測試
作為基礎設施的工具,Pulumi 主要可以採用以下三種方式進行測試,而除了驗證的範疇外,在程式語言的支援上也有所不同,下方的表格總結了三種方式主要的差異: 表格一:Pulumi 測試方法比較 單元測試 屬性測試 整合測試 實際部署基礎設施 否 是* 是 需要 Pulumi CLI 否 是 是 執行時間 毫秒 秒 分 語言 同 Pulumi 支援的程式語言 Node.
繼續閱讀作為基礎設施的工具,Pulumi 主要可以採用以下三種方式進行測試,而除了驗證的範疇外,在程式語言的支援上也有所不同,下方的表格總結了三種方式主要的差異: 表格一:Pulumi 測試方法比較 單元測試 屬性測試 整合測試 實際部署基礎設施 否 是* 是 需要 Pulumi CLI 否 是 是 執行時間 毫秒 秒 分 語言 同 Pulumi 支援的程式語言 Node.
繼續閱讀COVID-19 的疫情進一步地加速了全球數位轉型的腳步,按微軟 CEO Satya Nadella 所述1「當前兩個月所獲得的數位轉型進展是過去需要兩年才能達到的成果」。數位轉型透過數位的力量為客戶帶來更好的使用經驗,提升企業競爭力的同時,也進一步地擴大了可被攻擊的接觸面積,根據 Ponemon2 的 2020 研究報告指出,受訪者中有 82% 表示其數位轉型項目至少經歷一次資料外洩的問題。另外,為了能夠更了解客戶,提供更完善的服務,資料的收集與應用更是當前商業競爭的重中之重,然而隨著日漸提升的資料隱私保護意識,與相關規範的建立與落實,資訊安全已然無法視為NICE TO HAVE的選項,而是MUST TO HAVE的因子。因此,在考慮數位轉型策略的同時,將安全納入考量,並且雙軌併行,才是當前企業所應該考量的作法。 鑑於此,筆者認為企業把資訊安全融入數位轉型中,有五個關鍵步驟! 1. 了解組織的資訊安全能力 唯有了解自身當前的狀況,才能知道與需求之間的落差! 在規劃數位轉型計畫的同時,誠實地面對組織當前實施安全的現況與能力,才能夠了解與期待之間的落差,並且建構可行的路徑。所謂可行的路徑,便是逐步地將安全工具、驗證能力、與安全文化逐步地與數位工具與商業服務進行融合。也只有透過一開始便考量安全,才能夠務實地將安全融入數位轉型的過程中。 數位轉型所涉及的層面包含了工具採用、文化和流程變更、與人才培養,過程必然對組織裡的每個人產生衝擊。如果將安全作為轉型成功後,才進一步加強的目標。可以想見的是安全將永遠會是拖慢並且減損轉型成果的障礙! 2. 將所屬產業的安全需求納入規劃 企業經營自然無法自外於當地法規對於所屬產業的要求,也無法無視消費者對於企業的期待。因此,數位轉型絕非暫緩合規要求的理由,相反的是一開始便將合規需要納入轉型中,才是事半功倍的最佳途徑。試想當組織內的成員好不容易適應新作法後,卻要立即地面對加入額外要素的作法變更。調適與落實所產生的成本將會是企業無法承受之重。 對於並無具體法規規範的產業來說,基於自動化工具所採用的安全規範與指引,將會是比較直覺且成本較低的選擇,比方說 NIST 與 OWASP。
繼續閱讀Policy (政策) 政策! 是什麼東東 ? 提到政策,就會不小心想到治理、授權等等讓人頭皮發麻的詞。然而,政策在軟體服務中是相當常見的某種需求。簡單來說,軟體服務的政策是什麼呢? 一組管理軟體服務行為的規則。 舉凡,定義哪些是受信任的主機、使用者能夠存取哪些功能、網路路由、和服務可以部署到何處等,都能視為服務管理政策。所以當你試著實作 feature toggle、試著實作管理員和一般用戶等功能時,便已經涉及到服務政策的機制了。 傳統上的作法,工程師會在服務中實作相關的資料存取與檢查。先不論此類實作所耗費的額外運算資源,如果有多個團隊在實作多個服務,而都需要基於相同規則進行檢查時,要如何進行?如何能夠和服務管理政策管理者有更好的合作?落實管理政策與提供服務彼此之間如何不互相拉扯等待,而導致服務提供效率降低? 追根究柢,可以把問題濃縮成: 如何讓開發團隊專注在產品主功能開發,讓政策管理者能夠用一致的方法進行管理,而且兩者之間的更動不會輕易地影響對方? Open Policy Agent 為這個問題提供了一個新的解決方式! Open Policy Agent (OPA) Open Policy Agent(OPA, 讀音為 歐趴) 最初是由 Styra 所建立,後來貢獻到 CNCF。目前由 Styra、Google、Microsoft、和 VMWare 構成開源專案的主要貢獻者團隊,撰文的當下它也已經順利地從 CNCF 畢業了。OPA 實現了一個輕量的政策管理服務,因此可以作為服務的 sidecar 運行,也能作為獨立的政策管理服務運行於整體服務群內。軟體服務可以基於給定的資訊透過 RESTful API 的方式「查詢」相關政策的判斷結果。此舉成功地解耦了政策管理的相關實作,讓軟體服務可以專注於使用者功能,至於政策則可以透過一個獨立的服務來實現。政策的管理者與資源的提供者,可以透過統一的管理服務來更新相關政策,從而改變團隊的合作模式,並且可以更高效且一致地施行政策。
繼續閱讀作為基礎設施的編撰工具,Pulumi 額外提供了基於屬性測試 (Property testing) 概念的 Policy as Code 工具 (“CrossGuard”)。基於這個工具,專案團隊或者是組織可以為所有採用 Pulumi 所撰寫的基礎設施程式,建立獨立於所有 IaC 專案的普遍規則 (比方說資源區域、數量、網路設定、IAM 等),團隊亦可基於此再添加關於專案的額外限制。透過建立完成的可測試規則,開發者可以在本地端、持續整合流水線、以及在最後佈署前(已經產生基於各公雲或基礎設施服務的組態檔時)進行測試確認,避免需要透過人工檢閱比對,或者是已經佈署完畢後再進行確效,所產生的人力或資源的浪費。 本篇文章作為 Policy as Code 系列文章的起頭,會採用 Python 建立一個簡單的 Policy as Code 專案,為稍後建立基礎設施全面性的規則作暖身。 在開始之前 擁有一個 GCP 的帳號,更重要的是,它必須設定好如何付 $$ 安裝 Google Cloud SDK,並且確認已經設定好 application-default Python 為 3.
繼續閱讀