靖本

分享與交流知識和資訊是追求進步的第一步

運用 POWERS 導入與改善你的 DevOps 系列(一)

運用 POWERS 導入與改善你的 DevOps 系列(一)

說到 DevOps 免不了會讓人直接聯想到各式各樣的工具,而這也是 DevOps 之所以能夠加速軟體生產力的方法之一。 工具的使用,如果只限於個人,那麼就只是個人的意願問題而已,但如果把工具引入團隊內,那麼這問題就會稍稍變得複雜!比方說: 團隊內的成員是否熟悉這類工具? 工具要如何融入團隊目前的工作模式? 如果是工具舊換新,那麼資料要如何遷移? 團隊是否有空做出改變? 工具使用的成本是否可以承擔? 講到這裡是不是開始覺得一陣頭昏腦脹了呢?不過就用個工具嘛! 可別在這邊危言聳聽~ 上述的問題,運氣好的話的確有可能經過一陣摩擦後順利落地。運氣好不好這得端看工具影響的範圍和深度而定,結局就又回到上述各個問題。筆者就曾經遇過團隊花了大價錢買了工具全年的訂閱也請了外部講師做了一套培訓,結局是工具從一開始的零星使用到最後無人使用。這樣的故事並不少見,而當工具導入擴及到全組織時,那問題就又顯得更加麻煩。當然講到這邊都還只是提到工具而已,而 DevOps 可不只有工具,還有許多工程上的最佳實務做法… 所以到底該怎辦比較好? 掌握工具或實務做法的影響範圍是做出任何改變的重要第一步! 流程說穿就是完成一件事情的一連串活動和做法。如果我們能夠了解導入目標所相關的流程的話,那不就可以順著流程知道哪些活動、人和工具會受到影響,從而掌握影響範圍。因此,筆者在協助企業進行各式 DevOps 導入時,第一件會做的事情就是進行流程對照(Process Mapping)的活動。流程對照名詞聽起來很厲害,但其實就是透過視覺化的方式來把做事過程塑模下來的活動。進行這類活動有以下幾個步驟:

繼續閱讀
DevSecOps 人才培養與發展

DevSecOps 人才培養與發展

今年剛好有機會受國家資通安全研究院的邀請去參加 DevSecOps 人才培養的討論,與會者有的來自學界而有的來自產業界。整個討論以核心、次核心、外圍的任務、知識和技能的超大表來進行,項目總計應該有近百項,所幸研究員設計了一個討論方式,讓整個討論不至於按表操課到枯燥乏味,但是最後討論還是持續了三個半小時多。過程中,還有一些共同表達意見的部分,則又提供了一些貼心的小舉牌(如下圖)。 特別提出這個小舉牌其實是因為這種做法是相當值得稱許的。直觀來說,想法表達大致上就是「是」或「不」,這種極端答案,但實際上團隊討論時的確會存在實質願意配合而沒有特別想法的成員。這種時候逼迫他們非要選隊站,很容易提升作出選擇的困難或是導致討論變得極端。 回到 DevSecOps 人才職能的議題上,目前職能的項目和類型是以歐盟標準為核心,輔以美國的標準。 標準設計上,DevSecOps 工程師一職是被設計在安全交付此面向上,但安全「交付」的交付二字為這個職能帶來許多挑戰。面對不同類型的組織,其組織內的資安角色並不見得有如這類標準所列出的精美配置,所以這也使得該職能工程師的工作範圍可大可小。不過,可能會有人認為 DevSecOps 它是一種機制、文化或做事的方法,而非一個角色,這說法自然也沒什麼毛病,但就像 DevOps 本質上也是種軟體開發的做法、機制和文化,但最後市場還是多了很多 DevOps 工程師和部門,所以 DevSecOps 也很自然地往這方向發展。往好的方面看,這也代表這樣的機制、做法和文化被期待內建到組織中。或許文化這樣的概念會因為這些內建的演進漸漸地在組織中形成吧!? 所以簡單來說,從當前標準的職能定位來看,DevSecOps 這類角色有點像是昔日的安全工程師加上 DevOps 工程師的味道! 有這麼簡單!!!?? 這幾年在現場協助企業落地實施 DevSecOps 時,我比較容易感覺到這類角色常常就是我們半驕傲半苦笑說的一條龍工程師 再加上需要了解「安全知識」並且「知道如何將安全左移到每個軟體生命周期階段」,以便確保軟體在「端到端“交付”是安全的」。講到這兒~我不禁為這職能捏把冷汗,心裡直嘆好厲害的一個角色。

繼續閱讀
BizDevOps 力量:從需求轉換到團隊內外溝通

BizDevOps 力量:從需求轉換到團隊內外溝通

溝通是一切的起點,而最有效的溝通在於面對面 BizDevOps 的目標在於讓商業人員、管理人員和工程師能夠有一致的目標,並且在具備共同認知的情況下協同達成目標。為了能夠達成目標且提供客觀的基礎,資料驅動是必要的方法,透過資料我們可以將產出、任務、需求、流程和商業關係聯繫起來,從而能夠透過整體的角度來思考需求並且制定權衡的政策。 有了權衡的政策,下一步便是找出需求和制訂計劃,並且透過團隊的工程能力來實現需求。這一連串的過程涉及了不同人事物的溝通和資訊交換。單純地透過文字是很難在第一時間將彼此對齊在同一個認知上,需求的利害關係人必須面對面地確認和協調需求的樣貌。 基於面對面的溝通也才能有效地勾勒出需求的輪廓並且找出具體的實例來協助團隊中的每一個成員,運用自身的能力來實現需求。 完整的團隊仍然是一個關鍵要點 傳統組織按職能區分人員結構,這讓組織人才的技能得以深化且經驗得以順利傳遞,但這也使得面對面的溝通變得困難,甚至是讓不同職能的人對齊組織的價值目標也變得困難。畢竟每個人都專注於一整件事情的某一部分,對該部分負責也對專責的技能負責。 為了突破這種僵局,思考如何在組織內按照價值目標組建一個 5~15 人以內的完整團隊,就變得關鍵,但只是把一群人集合起來就想要獲得一個高效的團隊,這仍然是把事情想得過於簡單!不同的背景、不同的能力、不同的個性和各種不同會讓新組建的團隊深陷在風暴中,難以逃出,所以想要讓團隊快速脫離磨合期並且持續改善成長。團隊務必找出: 團隊協定:人與人之間合作的方式 任務標準:處理事情的標準 透過找尋協定與標準,會幫助團隊更加了解彼此,並且知道團隊內的障礙。 一個團隊就能夠頂全部的產出? 除非公司自行開發的資訊軟體很少或沒有,而且也不太使用軟體服務,否則單靠一個小團隊就要面對各種問題,恐怕團隊也會隨著組織的增長而慢慢吃不消。 因此,我們必須思考如何組建一個有機的大團隊! 有機的大團隊以拓樸的角度看待每個自組織的小團隊,讓大團隊中的各種能力可以發揮在必要的目標上,而且也不會因為強迫拆分所造成部門牆導致價值目標的破碎和工作依賴所造成的浪費。 不過,就像團隊內需要有協定與標準!團隊之間也需要有協定和標準,以便讓各團隊之間可以快速地進行協作達成目標。團隊期待他人(團隊)與其合作的方式和標準就是團隊的 API。簡單說就是團隊的使用手冊 不管組織是透過自組織方式來組建各種團隊還是透過組織情境與需求來組建團隊,我們都可以透過團隊拓樸1的概念來思考。按照《Team Topologies: Organizing Business and Technology Teams for Fast Flow》一書中所言,組織裡的團隊按照其交付內容的質性可以分為四種基礎類型:

繼續閱讀
當 VEX 碰到 Kubernetes

當 VEX 碰到 Kubernetes

SBOM 雖說 VEX 並不盡然需要依賴於 SBOM,但在討論 VEX 之前,肯定必須先了解一下 SBOM(Software Bill of Materials, 軟體物料清單),因為這樣才能了解 VEX 的必要性和它所想解決的問題。 軟體物料清單提供了軟體組成的相關資訊。這些相關資訊會說明這些組成是由誰提供、由誰開發、包含哪些項目、何時建置和依賴訊息等訊息。這些資訊對於提升軟體的透明度相當有幫助。因為使用者能夠透過這些資訊了解該軟體所採用的套件或其他工具是否存在可被利用的漏洞而需要立即進行修補。 SBOM 之所以受到關注還是要歸因於從 2020 年後的三起重大的資安事件,包括 Solarwinds[1]、燃油管事件[2]和 Log4j[3]。這三個重大資安事件促使美國總統在 2021 年時簽署了行政命令,責令美國商務部和美國國家電信暨資訊管理局(National Telecommunications and Information Administration, NTIA)需要在 60 天內制定 SBOM 的最基本要件。雖然 SBOM 對提升透明度的確有所幫助,但它畢竟仍是一個靜態的資訊。軟體使用者仍需要從軟體供應者處取得該軟體相關組成的漏洞狀態,才能夠進一步確認當前軟體受到漏洞影響的狀態,而 VEX 正是提供此關鍵訊息的機制。

繼續閱讀