「沒有一種完美的架構,只能隨著時代不斷衍進。」這是將來銀行籌備處資訊長兼技術長周旺暾在臺灣雲端大會擔任Keynote的開場白。他在今天(5/15)舉辦的2019臺灣雲端大會(Cloud Edge Summit)以多年的IT架構經歷,進一步剖析企業該如何面臨未來種種IT上的挑戰。
擁有25年的網路經驗的周旺暾,是蕃薯藤(yam)成立公司後的第3號員工,也曾在微軟有將近13年的豐富資歷,主要負責微軟雲端與資安等產品線的事業發展,2017年接任91APP人資長,後又協助91APP拓張海外市場,擔任資深副總經理,今年4月甫接下將來銀行籌備處的IT重責,要以網路思維重新打造一家銀行。
周旺暾建議,企業架構(Enterprise Architecture)要有5大層面,一是資安,資安得綜觀全局,所以得最先被設計出來;二是基礎建設;三是Data Services,不只資料庫的功能,他建議,與對外服務串接的資料也要放在Data Services這層,因為API的背後就是資料的進出。四是應用與商業邏輯;五是UI/ UX(使用者介面/使用者體驗)。
典範轉移:三大經典案例Salesforce、AWS、iPhone
「革命性的創新,會讓我們重啟觀念。」周旺暾舉出3個經典案例,包括全球最大客戶關係管理(CRM)服務供應商Salesforce,在2004年上市股票,確立SaaS(Software as a Service,軟體即服務)是可行的商業模式。這讓大家意識到原來軟體可以不用安裝在自家,只要訂閱就可以使用,這個概念讓我們對雲端有不同看法,他說。
再來是2006年正式發表的AWS,機房、設備都用租的就能使用,使用者只要刷信用卡,就可在幾分鐘內打開一個伺服器,開始提供服務,當不需要租用而關掉時,信用卡便停止收費。周旺暾表示,這個是公有雲的核心觀念,然而,沒有觀念的支持,技術是不會跟上腳步的。
2007年推出的iPhone,則是重新定義客戶與IT的關係。周旺暾認為,iPhone真正重要的價值是走入消費者的生活,讓手機成為企業與消費者直接溝通的方法,也讓IT面臨了巨大挑戰,得要跨裝置,還要有不同的使用者體驗,還得維持一致的消費者溝通。
這3個經典案例,可謂典範轉移(Paradigm shift)。周旺暾提到,企業傳統的作法是買套裝軟體或是自行開發軟體,裝在自有的機房,使用公司提供的電腦,如PC或Mac。世界被改造後,企業可以租服務、運算、套裝軟體、機房,並出現千奇百怪的裝置。企業面臨的挑戰越來越複雜,但架構層次仍然沒有太大改變,只是要解決的問題變多,他說。
未來是Multi-Cloud時代
「雲端這件事,從來就不是誰統一天下,未來一定是Multi-Cloud的時代。」周旺暾強調。他也提到,有些公司會自己買機房,用各式各樣的雲,但這樣做下去管理會變得相當複雜。能不能集中管理,用自動化程式碼取代SOP,這些挑戰才正要開始。
周旺暾更比較了虛擬化(Virtualization)與私有雲的差別。虛擬化是單一硬體之內,承載更多的應用,它把作業系統與硬體層隔離,當企業要移動作業系統到新的硬體時,只要轉移VM影像檔就能跑起來。而虛擬化創造的最大價值,是讓維護的成本降得很低,而不是讓程式跑得比較快,他說。
大型企業IT,要改用資源池管理取代硬體管理
私有雲則是在虛擬化的概念上,進一步把硬體轉換成資源池(Resource Pool),是一種IaaS(Infrastructure as a Service,基礎設施即服務)的模式。他解釋,硬體包含CPU、網路、存儲,這3個東西都以資源池的方式統合管理,用管理工具動態調整資源分配。而只要是能掛入資源池的硬碟,可以是不同的License,甚至是不同的通訊協定,再用軟體來分配什麼程式要跑在什麼地方。
周旺暾建議,大型企業的IT,一定要設法去做資源池的管理。他進一步舉例,傳統IT每個專案的硬體規格長得不一樣,若某個專案因為流量或運算需求超過原來評估時,只好再加機器。但這麼多專案,為何不能把閒置設備橫向調用?傳統IT做不到的原因是,他們在一開始設計時,就讓專案自由發揮硬體、規格、架構,讓橫向調用變得不可行。
但,若是用資源池概念來做,先統合規劃資源後再分配,橫向調用就會在一個標準範圍內直接撥用,不夠的話再加新的硬體,這是把硬體資源以抽象方式調用的作法。周旺暾強調,這對大型機房非常重要,資源池確實可以解決企業長遠問題。
容器的價值,IaaS、PaaS是並存關係
而這幾年蔚為風潮的容器(Container)技術,周旺暾也提到,相較於虛擬化是把硬體與作業系統做隔離,容器是把作業系統與應用程式再做一層隔離。應用程式的封裝不是一大包,而是只有程式那一小包,就可直接布署在一個以作業系統為平臺的資源池上面。他也認為,現在與未來的PaaS(Platform as a Service,平臺即服務),大概都會用容器做。
用容器的好處是,系統升級時,可以先升級好一群機器,把程式移過去後,剩下的機器再升級或是直接銷毀,再把它延伸過來。容器的真正價值是一群機器,就像私有雲一樣,有橫向支援的能力。周旺暾表示,這也是為什麼Docker快要不行,Kubernetes卻還活得好好的,因為Docker只負責一臺機器的技術,而Kubernetes是負責多臺機器的管理。一定要有一群機器,這件事才會有意義。
不過,周旺暾也提醒,PaaS仍有其限制,因為它的應用程式與作業系統被隔離,有些系統應用程式,是無法打到作業系統。所以,只有能被隔離的應用程式,才可能跑在PaaS上。且目前跑在PaaS的程式,都得自己寫。
此外,在容器裡很難做橫向隔離,不像IaaS可以用虛擬網路,把系統隔離成兩個獨立的實體,因為虛擬網路可以讓兩邊網路溝通全部虛擬化。但PaaS是在隔離的內圈裡做事,若再切成兩個邏輯上的實體,其實不太容易。周旺暾提到,如果機房在資安的考量,要隔離成很多不同的區域時,還是得先用IaaS做,之後再用PaaS或是其他應用。他認為,IaaS與PaaS是並存的,沒有哪個技術要取代另一技術。
敏捷開發要做到持續交付,組織架構得做適當調整
談到程式開發,周旺暾預言,「未來所有的公司,都將會是軟體公司。」因為只有軟體才能幫公司產生更大價值,他也預期,未來所有公司都會有內部開發人員,且數字會一直增加。
從瀑布式開發(Waterfall)到敏捷開發(Agile),他認為改變的是流程,敏捷其實不是變快,而是變得更靈活。敏捷開發的基本概念是迭代式開發,每一次都快速設計、開發、驗證,每一塊都快速往前推,最後把一件事完成。
周旺暾指出,軟體、程式會升級,瀑布式開發的系統下次要升級時,得要再瀑布式開發一次。敏捷也是一樣,但敏捷可以讓開發人員少做一些不必要做的事。而且,瀑布式開發在承受風險的能力相對較弱,整個流程做完才能回來看,或是每次要往前推行的難度高。而敏捷是不斷往前滾,好處是改變容易,缺點是不知道何時會把百分之百的功能完成,因為敏捷在乎的是時程而不是功能,瀑布式開發則是在乎功能與需求,時程卻不是那麼要緊。
而敏捷本身就是一種以持續交付(Continuous Delivery)為目的的工作方法,周旺暾提到,現在的市場基本上幾乎是放棄大版本更新,而採取小更新去交付市場的作法。
然而,要做到持續交付,最重要的是公司組織的配合,所有產品、服務都要有專屬對應的人力,持續提供服務,直到產品生命週期結束為止。他認為,公司組織一定要配合,否則要做持續交付,是不可能的事,組織架構得做適當調整,軟體開發才能有效起來。
思考微服務架構,首需滿足3要件
最後,周旺暾提醒,企業在思考微服務(Micro-Services)架構的可能性時,要滿足3個先決條件,一是建構資源池的概念,才不會造成過度資源的浪費,除了公有雲本身就是資源池的架構,他建議可建立私有雲,容器也要有點想法,不能只是虛擬化,若只有虛擬化,便沒有機會做微服務。
二是得快速迭代,且要出現持續交付的組織架構。三是組織得依服務重新調整設計,不能用功能性的組織架構,得按照微服務的架構去組織,所有產品、服務都有專屬對應的人力,持續提供服務,若做不到這件事,微服務就永遠只會是個夢想。文⊙李靜宜
熱門新聞
2024-12-02
2024-11-29
2024-12-02
2024-11-30
2024-12-03
2024-12-02