星期日, 2月 26, 2023

【觀念整理】雲端運算的概念與企業的雲轉型第一階段

 


雲原生 (Cloud Native) 最初是由 Pivotal 公司於 2013 年所提出的概念,該公司貢獻了 Spring boot  Spring Cloud 的原始碼,作為 Java 開發雲原生應用的基礎。隨後,Google  2015 年成立了 CNCF (Cloud Native Computing Foundation),使得雲原生應用正式成為資訊科技發展的重要課題。

 

那什麼是雲原生呢?雲這個符號在過去通常用來代表網際網路 (Internet),但在雲端運算 (Cloud Computing)的領域上,我們將雲視為一個提供運算資源的平台可能更為恰當。而雲端運算的本質,就是依據你所需要的運算量彈性地分配運算資源給相對應的應用,以滿足業務上的需求。

 

所以,我們可以進一步回來定義雲原生應用這個名詞代表的是專門為雲端運算平台所設計的應用程式,稱之為雲原生應用。所以,雲原生應用並非一種顛覆傳統的應用程式,它透過雲原生設計模式來改善傳統應用程式,使得應用程式更適合部署於雲平台。

 

在現今的應用程式開發任務中,雲原生應用似乎成為一個必然演進的方向。因為,許多的企業正陸續地調整企業內部資料中心的基礎建設,現行的投資已經慢慢地從過去的虛擬化轉變到容器化的投資。而容器化的技術,正是讓這波雲端運算蓬勃發展的根基。隨者基礎建設的轉變,要靈活運用這些運算資源並發揮其最大的效益,因此新一代的應用程式都將陸續走向雲原生應用模式來發展。

 

近期,我也接觸許多客戶在討論有關將既有的應用程式移轉到企業內部私有雲平台的案例。這時候,很多客戶會將微服務(Micorservice)這個名詞拿出來,開始討論起要怎麼切才能讓既有的服務移轉到雲呢?但,我會認為這是兩個不同的事情,當然微服務本身可能就可以看成是個符合雲原生應用的一種架構模式。但,並不是說只有微服務才是雲原生應用。

 

所以,其實大部分的應用程式即便不做任何異動,也可以運行在基於 Linux 核心的雲平台上。但,就僅只是部署與執行,這些傳統的應用程式尚不具備充分運用雲端運算資源的能力。目前,我們也遇到許多的客戶正在進行這樣的工作,我們可稱之為雲端轉型的第一階段,既有應用的遷移。這是客戶在採用容器化基礎建設後的第一個課題,讓應用程式順利地跑在這些平台上,並發揮雲原生應用的具體效益。


星期六, 2月 11, 2023

【讀書心得】思考的框架

 

 

最近看了一本書,「思考的框架」作者是Shane Parrish (Farnam Street 部落格創辦人、思考教練),這本書是先前參加一場研討會性質活動在外面的書攤上買的。為什麼會想買這本書,主要是怎麼透過一些有脈絡的方式來將自己知道的知識點做一些串連,所以想看看有哪些好用的思考框架可以協助自己做這些知識的整理。

 

在本書的一開始,作者馬上就提到「教育並沒有幫我們做好迎向現實世界的準備」,我想這是許多人出社會後所面臨的問題。在學校的教育教會我們考試,並且弄懂一些學科的基本原理,但這些並不足以讓我們面對複雜的社會問題。在現實上,問題不是單一學科可以涵蓋所有可能的範圍,也不一定已經有一個標準的答案,所以我們不斷地尋找各種協助自己解答的脈絡,透過知識的增長讓自己面對決策的時刻能夠給出當下最好的決定。

 

作者在念 MBA 的時候,開始跳脫教育的基礎框架,並著手研究課堂上經常被提及的成功人士查理、蒙格(Charlie Munger),他是巴菲特的事業夥伴,最後他發現實際有用的知識是來自於你自己想了解事情是如何運作而付出的努力。查理、蒙格透過不斷地實踐驗證習得的理論是否為真,並整理自身經驗與他人分享成果,是大家都想學習的對象。後來,作者將學習心得寫成文章,fs.blog 網站因此誕生,也成就了一個新的事業。

 

羅馬詩人泰倫提烏斯:「太陽底下無新鮮事」,很多事物只是過去我們沒有注意,或是將這些知識以系統化的方式進行整理,所以作者也將他學習的心得整理成本書,協助人們了解一些基礎的思考框架,讓自己在想事情的時候可以透過一些脈絡完善自己做決定的程序。

 

我們可以把本書視為自己思考的一種工具箱,透過書中九種思考工具,來協助自己做思考與決策。而思考的目的就如彼得、貝弗林所說:「我不想成為厲害的問題解決者。我想要避免問題避免問題發生,一開始就做對。」但是,面對許多未知的事情,我們需要透過不斷地嘗試,從錯誤中快速地得到反饋,然後快速提升自己的能力,累積屬於自己思考的工具。

 

很多人會覺得思考是一種天份,但其實思考本身跟你是不是天才並沒有直接的關係,重點是你理解現實後,要怎麼做出相對應的決策。也就是說,你手邊掌握的知識將會影響你思考的深度。知識的面相有很多,除了自己擅長的領域之外,在其他領域我們應該取得這些領域的《基礎知識》。我們要接觸其他學科,讓自己思考的背景裡具備《多樣性》。

 

另一個可能影響我們思考的盲區,在於自己的本位主義,當我們站在比較高的位置就比微觀層級、實際執行的人更容易自我欺騙,堅持自己是正確的,無法體會到現場執行上真正的問題。如果我們自己是執行者,就會實際看到並感受到直接的後果。當「理解」與「真實」脫鉤,我們就會失去力量,所以在思考決策的當下我們應該更貼近真實的情況,避免自己決策失當。

 

書中有舉出九大思考模型:

 

《地圖》用來與現實比對,並了解自己身處於問題領域中的何處。

 

《能力圈》讓自己知道,我擅長的與我所不知道的是什麼,誠實面對自己的能力圈,適時地引用外部資源協助自己達成任務。

 

《第一原理思考》,回歸知識領域的最基礎來做事情的推論,因為是最基礎,正確的機率也會最高。

 

《假想實驗》,可以用來做回顧反省或是面對未知狀況所做的事前演練,想像自己做怎樣的決策將如何影響現實的狀況。

 

《二階思考》,強調不是只有看到眼前的事情,需要更近一步去推敲對更長遠的影響,避免自己只重視眼前短期的效益而犧牲了長期的利益。

 

《機率思考》,機率是做決策很重要的一個基礎知識,或許我可以把他當作是做決策的第一原理吧!很多事情,我們無法百分百確定他會往哪些方向發展,但是懂得機率思考,可以了解自己做這件事情的勝算如何。當成功機率達到某個水準,自己應該就要做出相對的決策。

 

《反演法》,反演法是把問題倒過來,以逆向思考的方式來進行推論的一種思考框架。偵探就是使用反演法思考框架的大師,他們透過出色的觀察能力,推導各種案件的關鍵線索。從假設的邏輯出發,並且驗證這個假設,是一種想像結果反推的思考模式。

 

《奧坎剃刀》:安迪.貝瓦努 (Andy Benoit)說:「多數天才,尤其是領導他人的天才,他們優秀並不是因為能解構複雜,而是因為揭露了大家沒看到的簡單。」 非必要,不要將事情複雜化。如果一件事情有兩三項變數就可以控制 90%,你不需要掌握 30 項變數讓事情達到 100% 可控。

 

《漢隆剃刀》:不需要假設事情是最壞的狀況,很多時候都只是一場誤會。例如:今天你在開車的時候,突然有人在你車前超車,導致你需要減慢車速,這時如果你有路怒症,應該會覺得這個人是故意的。但,實際情況,可能只是一個巧合或是他沒有注意到。有了這樣的思維,你會避免事情往更大的衝突面向發展。

 

這些都是我們經常可以使用的思考模型,我們不僅需要《知道》思維模型,學習之後還需要《會用》。我們必須把自己所做的決策下時地《紀錄》並且時時地加以《反思》。我從許多的學習經驗來看,《紀錄》、《反思》然後再《行動》,是自我成長的主要引擎。

 

【參考資料】

1.     思考的框架 (THE GREAT MENTAL MODELS) 席捲華爾街的思維鍛鍊 減少盲點與認知偏誤,把經驗提煉成智慧

星期六, 2月 04, 2023

金融行動應用 3.0


 金融業的行動應用程式是我們近年來服務客戶的主要任務,一個行動應用程式 (App) 大約經歷五年左右的週期,就會進入大改版的階段。於是乎,我們也算經歷了幾個時期不同的金融行動應用世代。

 

金融行動應用 1.0,有少數幾間廠商,提供金融業公版行動應用程式,讓金融業開始邁向行動應用的領域,這大概是落在 iPhone  Android 手機出現後不久的第一代趨勢。這幾間少數的廠商,在這個時期稱霸了整個金融業行動應用市場。

 

但是,隨者金融業者開始想發展出自己的特色之後,這些提供公版的廠商因為回應客戶的速度不夠即時,讓金融業者興起自己建置 App 或是找其他廠商來協助的商業策略。我們大概是在這個階段開始接觸到行動應用領域。

 

接者,開始有一些金融業者脫離了這些提供公版應用廠商的階段,市場上開始有不同的廠商提供金融業者行動應用的建置服務。讓各個金融機構可以推出自己客制化的應用。在這個時期,大家也認真地思考 UI/UX 使用者體驗的問題,因為可以客製化,大家才可以用不同的思維去提供終端客戶較好的體驗服務。這個時期,我大概先稱之為金融行動應用 2.0 的階段。

 

接著,大家可以客製化之後就有一段時間我們一直在處理著增修的服務,我們也接手了原本各個其他廠商開發的程式,集各家精華之大成。通常,工程師不太喜歡接觸其他人寫的程式,但我覺得好好的把現有的程式管理好,不要動不動就是什麼打掉重練是現代工程師應具備的基礎能力。從 1.0  2.0 的時候,大家把行動應用打掉重練,有一部分可能是因為沒有原始碼而不得不的策略。以現在這些應用的規模,你要打掉重練都需要付出相當巨額的成本,當然近期我們也投入幾個這樣的專案計畫,我自己的體會是有 70% 以上是做著原本的事情,然後僅有少數是新的特性。但因為整個計畫執行方式,我們可能會付出超過 150% 的代價。

 

在行動應用的開發上,通常充滿著許多的血淚,舉一些經驗跟大家分享有哪些代價:

1.     這些活動不是單純地開發一個新的 APP,他是在一個已經有客戶基礎的應用上做調整跟修改,所以需要考量跟既有系統的相容。

2.     業務是永不停止的,沒有人會因為你要重新改寫應用程式而停止提出新的需求,所以你速度必須更快,否則你無法到達專案的終點線。

3.     改版之後的客訴,你覺得你提供新的體驗很棒,它符合很多調查的趨勢與結果。但是,客戶就是找不到他要的東西,別忘了《習慣》也是一種體驗。

4.     以目前技術發展如此快速的年代,改變應該是一個常態。在過去,如果系統穩定就放著讓他跑不要改。但,如同我一位同事常常在說「程式放久了,就會長蟲」。沒錯,我們不斷地備資安監管,這些程式需要不斷地更新,以確保其安全性。所以,系統不是建置完成就結束,那只是個里程碑達成。上線了,一切挑戰才剛開始。

5.     行動應用裝置的破碎性與多樣化,會讓你在上線後體驗各種不同的意外。通常是客戶關鍵人物手上的那隻特殊的機器。我們的心得會是,說不定直接買一台新的手機送他,解決問題的成本會比較小一點。

 

時間到了 2023 年,又有許多的客戶在跟我們討論要《改寫》他們的行動應用。好吧,金融行動應用 2.0 的歷史即將重演!但,我們希望這次我們的成果可以進階到所謂的《金融行動應用 3.0》的狀態。

 

1.     面對技術改變是日常的作業,如何設計一個易於更換調整技術架構的框架,降低客戶每一時間週期後需要打掉重練的模式。

2.     依據過往經驗辨識出改變會從哪些地方發生,基本上客戶業務的本質變動率不高,很多時候是體驗與技術框架合規性的議題,該怎麼讓這些變動成本降低。

3.     測試是一個確保品質的活動,而建立良好的測試模型是一個面對持續改變的應用程式必然的手段。沒有好的測試模式保護,將會耗費大量人力資源來處理每次新功能的建立,導致相關應用無法及時推出市場。

4.     使用數據的收集與管理是一個大議題,行動應用的裝置版本破碎造成問題追蹤不易。透過有效的處理方式,可提高問題辨識的效率,也可以理解客戶操作的狀況。

 

在這一年,期望我們可以協助弄好金融行動應用的新常態,建立一個新的發展模式,在後續的一段時間內,我會隨著發展的狀況更新有關此議題的後續狀況。