Quantcast
Channel: iThome
Viewing all 32119 articles
Browse latest View live

自由軟體之父要微軟收回講過的開源碼壞話

$
0
0

雖然近年微軟逐漸擁抱開源碼,但是自由軟體之父Richard Stallman認為,還需要觀察微軟在開源碼界的做法,此外,他也給了微軟一些建議,包括收回對於過去它對開源碼的惡言批評,像是說Linux是一種癌症。

Stallman 9月到微軟研究院(Microsoft Research)演講引發議論。有人認為微軟想藉此「招降」Stallman離開自由軟體陣營,又有人說這是微軟為了敵營研究而發出的邀請。

Stallman在其部落格中說道,他不是那麼容易被動搖的人,而且微軟也不可能從他的演講中學到什麼。Stallman秉持他一貫對商業軟體的不信任,所以他也駁斥外界說他的受邀演講是對微軟現行擁抱開源碼作法的背書。

但是Stallman相信微軟高層對軟體的倫理議題是真的有興趣,因此對於他的幾點建議,微軟高層也可能有意願聽聽看。

在月初的演講中,Stallman給了微軟幾點建議,包括促使硬體廠商公開規格以便跳過Secure Boot機制(一種防止安裝未授權作業系統的機制)。協助周邊產品(像鍵盤、磁碟機、記憶棒、攝影機)韌體消除後門。鼓勵app和函式庫程式碼的「著作傳」(copyleft)。反對介面的著作權(copyright)。協助實現關閉JavaScript的Web。此外,還要微軟以GitHub促進GPL v3的使用、及開放HoloLens等產品的介面,以便不必執行任何非自由軟體。

最後,他要求微軟公開收回2000年初期對開源碼的攻擊,包括前執行長Steve Ballmer曾說Linux是「一種癌症」,Windows前任部門主管Jim Allchin說開源碼是智財權摧毁者(Intellectual property destroyer),且「很不美國」(un-American)。此外Stallman還追加建議微軟在GNU GPL下開源Windows。

針對上述給微軟的建議,Stallman認為要做到難度很高,但從他的所見所聞來看,也並非完全不可能。Stallman認為,或許微軟真的有可能改變某些作法而有實際幫助到自由軟體。他也說這只是可能;微軟沒有給任何承諾,他也沒有要求微軟承諾,不過與其因人廢言,不如花更長時間來觀察微軟態度。


微軟想在Linux上跑Edge,要Linux開發商幫忙給意見

$
0
0

微軟Edge除了要改用Chromium專案的引擎,或是在Azure及Windows中加入Linux支援,現在試圖將Edge帶到Linux平台上。

Edge團隊成員上周透過推特公告,目前Edge正在蒐集在Linux上跑Edge的要求,邀請在Linux上撰寫程式、測試或上網的開發人員填寫問卷。

截至目前為止,Microsoft Edge支援平台包括Windows 7、8/8.1、10及macOS版,但Edge團隊6月時透露推出Linux版是下一階段要做的事,而目前還有安裝器、更新器、使用者同步工具、功能臭蟲修補,以及一些「可以自豪拿出來」的東西,需要做上市前最後打磨的工作。

透過問卷調查,微軟想知道開發人員是否以Linux為主要開發平台、用的是Redhat、Debian、Ubuntu、openSUSE、 Fedora之中的哪些Linux發行版、是否為不同開發情境使用不同平台、以及開發人員偏好怎麼安裝Edge到Linux裝置上,是用原生套件管理員或是用安裝器(installer)等?

針對其他平台的Chromium-based Edge,微軟在8月釋出最後一個公測版,祭獎金要大家幫忙抓臭蟲,不過正式版何時釋出則一直未見說明。

Windows虛擬桌面全球上線

$
0
0

微軟本周釋出奠基在Azure上的Windows虛擬桌面(Windows Virtual Desktop,WVD)正式版,且已部署至全球市場。

微軟宣稱此一官方的WVD為全球唯一針對Office 365 ProPlus最佳化,並具備Windows 10多工階段(multi-session)體驗的服務,也支援Windows伺服器遠端桌面服務(RDS)與應用程式,只需要幾分鐘就能在Azure上大規模部署所需的Windows桌面與應用程式。

WVD為一虛擬桌面基礎設施(VDI)解決方案,或者稱為桌面即服務,過去使用者只能透過RDS連結Windows Server OS以存取應用程式,但現在的WVD則允許使用者以Windows 10或Windows 7作為底層作業系統,擁有更桌面化的體驗

去年9月微軟就發表了WVD,並在今年3月於美國市場開放公開預覽,參與預覽活動的BEI Networks技術長Jake Hovermale表示,WVD讓員工不管在何處,都能透過各種裝置或瀏覽器使用熟悉的Windows 10。

目前微軟已釋出支援Windows、Android、macOS、iOS等平台的WVD客戶端程式,也能使用基於HTML 5的各式瀏覽器造訪WVD服務。

官方的WVD還有一項優勢,儘管Windows 7的延伸支援會在2020年的1月結束,但微軟允許WVD用戶可免費存取Windows 7的延伸安全更新直至2023年1月。

為了改善虛擬環境中的Office體驗,微軟也把去年收購的桌面虛擬化技術FSLogix整合到WVD中,讓WVD用戶能享受更流暢與高效能的Office服務。

微軟有2FA保護的個人雲端硬碟服務推向全球

$
0
0

微軟周一宣佈,提供雙因素驗證(2FA)等安全防護的Personal Vault服務將正式在全球上線,免費版OneDrive也能存3個檔案。

Personal Vault首度於6月推出。它是OneDrive中一個受保護的區域,讓用戶只能以強認證或二步驟驗證方式,像是指紋或臉部辨識、PIN碼、或是以簡訊/電子郵件傳送的驗證碼才能存取檔案。此外,用戶還能以OneDrive 手機版App掃瞄檔案或拍照、攝影,直接存入Personal Vault中。用戶解鎖Personal Vault一段時間沒有使用後,Personal Vault會再度為PC、裝置及雲端加鎖,之後用戶就得重新驗證解鎖。在Windows 10 PC上,Personal Vault中的檔案,也會和PC硬碟中以BitLocker技術加密的區域同步,使這些資料在雲端和PC上都被保護到。

微軟6月推出時這項服務僅開放給澳洲、紐西蘭和加拿大OneDrive用戶。今天起全球擁有OneDrive帳號的消費者,都可以使用這項功能。在OneDrive下會有Personal Vault的圖示,點入後即可使用。免費版OneDrive或獨立版100GB空間的用戶,最多能在Personal Vault儲存3個檔案。付費版Office 365 個人(Personal)或家用(Home)版用戶,則可以存到硬碟空間滿為止。

微軟強調以OneDrive備份的好處,包括利用OneDrive的「電腦資料夾備份」功能,即可設定將桌面、文件夾或相片資料夾中的檔案,自動備份到OneDrive上。OneDrive最多允許檢視和回覆30天以內的文件版本。

微軟周一還宣佈,Office 365 個人(Personal)或家用(Home)版用戶,可以分次擴增200GB的硬碟空間,每月最低僅2美元。此外,iOS 13版的OneDrive app,也支援深色模式(dark mode)了。

Levi's再和Google Project Jacquard合推新款智慧夾克

$
0
0

2017年初第一彈後,牛仔褲品牌Levi's本周再推出二款和Google合作的智慧型牛仔夾克。

這是Levi's和Google先進科技與專案(ATAP)從2015年合作的智慧服飾專案 Project Jacquard的最新合作成果。這個專案將具有導電纖維的布料縫在袖口,使用者觸碰袖口即可遠端控制手機。2017年秋天推出第一款智慧單車外套Commuter Trucker系列,售價350美元。

最新推出的外套不但更接近Levi's設計風格,價格也更便宜。標準Trucker Jacket 售價198美元,另一款適合冷天穿著的Sherpa Jacket定價248美元,兩者都分男、女版。

新外套採用的Jacquard藍牙模組體積更小,因而外套袖口不再像前版那麼厚。現在它支援以手指滑、點不同組合下指令,支援10多種行為,像是開/關音樂、手機轉靜音、在地圖上加大頭釘、設定手機報時或報告當日行程、遠端按相機快門,以及叫喚Google Assistant執行預設動作,還能啟動Bose耳機的降噪功能。

新智慧外套將在美、英、德、法、澳洲、日本及義大利數家實體Levi's專賣店及Levi.com網站上販售。

iOS 13臭蟲太多?蘋果釋出iOS 13.1.2

$
0
0

蘋果繼於9月19日釋出iOS 13之後,9月24日釋出iOS 13.1,9月27日釋出iOS 13.1.1,昨天(9月30日)又釋出iOS 13.2,不到10天就釋出3個更新版,讓iOS裝置用戶應接不暇。

一般來說,iOS 13是隨著蘋果最新的iPhone裝置出爐,為求準時上線,蘋果會忽略一些小臭蟲,並等待之後進行修補,當時也有不少評論指出,iOS 13頗為粗糙,讓有些程式無法順利啟動,或者是明明沒開閃光燈但iOS卻顯示有開,於是蘋果在iOS 13問世的一周內就釋出了iOS 13.1,解決了數十項臭蟲。

三天後蘋果又發表iOS 13.1.1,主要是為了修補第三方鍵盤程式可直接被賦予完整存取權限的安全漏洞,並順道修補其它臭蟲。

最新的iOS 13.1.2看起來也是為了解決iOS臭蟲,它修正了iCloud 備份的進度列在完成備份後,仍會持續顯示的問題,修正相機可能無法運作的問題,解決閃光燈無法啟動的問題,也解決了藍牙在某些汽車上可能會中斷連線的問題。

總之,iOS 13的不穩定讓蘋果忙於修補臭蟲,使得用戶亂了頭緒,也多少損及蘋果聲譽。

社交平台遊戲開發商Zynga遭駭客入侵,逾2億用戶資料外洩

$
0
0

你有玩過Draw Something或Words With Friends填字遊戲嗎?打造這兩款遊戲的的知名社交平台遊戲開發商Zynga在9月中坦承遭到駭客入侵,駭客存取了這兩款遊戲的特定用戶資料,儘管Zynga並未公布太多細節,但代號為Gnosticplayers的巴基斯坦駭客向The Hacker News透露,這起攻擊事件是他的傑作,而且他取得了多達2.18億名的Zynga用戶資料。

2007年創立的Zynga以虛擬農場遊戲FarmVille打出名號,已在臉書上推出數十款遊戲,當中有少數遊戲特別開發了行動程式版,也有些遊戲只有行動程式版。Zynga的遊戲都是免費的,並在遊戲中置入廣告或銷售虛擬商品,於2011年登上那斯達克股市。

Gnosticplayers向The Hacker News表示,他所存取的是在今年9月2日以前,安裝了Android與iOS版Words With Friends填字遊戲的用戶資料,內含姓名、電子郵件帳號、登入ID、加鹽雜湊密碼、電話號碼、臉書ID,以及Zynga的帳號ID等。

Gnosticplayers還存取了Zynga其它遊戲的用戶資料,包括Draw Something及OMGPOP等,總計約有2.18億名使用者的資料外洩。不過此一數字並未經Zynga證實。

Zynga則說在得知駭客入侵事件之後已展開調查,亦採取措施來保護用戶的帳號,而駭客並未存取用戶的金融資訊,該公司已陸續通知受影響的使用者。

TensorFlow 2.0正式版釋出,與Keras更緊密整合

$
0
0

開源深度學習函式庫TensorFlow團隊在今年初不斷釋出2.0的消息,春季也推出了Alpha測試版,而現在終於在TensorFlow World大會上,正式發表了TensorFlow 2.0.0。這個版本重點擺在易用性的改進,加強與Python開源神經網路函式庫Keras的整合,並且簡化API降低功能重複。

TensorFlow 2.0整合Keras作為建置和訓練模型的中央高階API,Keras提供了一些模型建置的API,可用來建立像是序列式(Sequential)、功能式(Functional)和子類別(Subclassing)等模型。而這些API可以與Eager Execution功能結合使用,Eager Execution是TensorFlow的命令式程式開發環境,能立即執行程式碼評估操作,讓開發者快速對程式碼除錯並進行迭代。另外,Keras 模型建置API也可以結合tf.data,建置可擴充的出入工作管線。

而TensorFlow 2還更新了分散式訓練策略,開發者可以使用tf.distribute.Strategy API,以最少的程式碼更動分散模型訓練,進而獲得良好的效能,這個API也支援Keras model.fit分散式訓練以及自定義訓練迴圈,同時還支援多GPU訓練,目前多重Worker和Cloud TPUs進入實驗性支援階段。

官方提到,他們不鼓勵開發者使用傳統的宣告式程式設計模型建置圖(Graph),接著並透過tf.Session來執行,而是應該要以正規的Python函式寫法代替。使用tf.function裝飾器(Decorator)可以將函式轉換為圖,這些圖可以遠端執行、序列化以及進行效能最佳化。

現在TensorFlow交換格式都與SavedModel統一,所有TensorFlow生態系的專案,像是TensorFlow Lite、TensorFlow JS、TensorFlow Serving和TensorFlow Hub專案都接受SavedModel。SavedModel格式內容具有完整的TensorFlow程式,包含權重和計算,不需要原始建置模型的程式碼就能執行,這對於模型共享或是部署非常有用。

開發團隊為TensorFlow 2的API進行了調整,許多API符號經重新命名或是刪除,參數名稱也被更改,整體來說,調整後能讓API的使用經驗更加一致清楚。


Windows 10的BitLocker預設就加密你的SSD

$
0
0

微軟在9月24日釋出了Windows 10 1709的累積更新(Build 16299.1420),主要解決切換應用程式或停留於工作列上時,會造成CPU使用過度的問題,但代號為SwiftOnSecurity的資安專家發現,該版本改變了BitLocker的配置,預設就會加密系統上的固態硬碟(SSD)。

微軟此舉可能跟去年資安研究人員所發現的SSD漏洞有關,當時研究人員指出,固態硬碟雖然採用自我加密磁碟(Self-Encrypting Drive,SED)來替硬碟加密,但市售的5款固態硬碟含有安全漏洞,將允許駭客回復硬碟上的加密資料。

雖然該遭到撻罰的應是這些固態硬碟的製造商,然而研究人員也察覺,相關漏洞並不影響macOS、Linux、Android或iOS,卻只影響Windows,原因是除了Windows以外的平台都會以軟體再替硬碟加密,只有Windows中的BitLocker會「尊重」(或相信)固態硬碟的加密能力,而會在偵測到固態硬碟的加密功能時,關閉軟體加密。

現在微軟似乎也決定自己來保護Windows用戶的硬碟安全,在Build 16299.1420中變更了BitLocker用於自我加密硬碟的預設設定,預設值會針對新的加密磁碟機執行軟體加密,但對既有的磁碟則不會改變其加密型態。

Uber在臺營運模式急轉彎,將和多元計程車隊業者合作

$
0
0

交通部在今年6月修正「汽車運輸業管理規則第103條之1」(俗稱Uber條款),並提供4個月執法緩衝期,在10月初緩衝期即將終止之前,Uber今天宣布將配合交通部政策調整營運模式,未來將和國內的多元計程車隊業者合作。

「汽車運輸業管理規則第103條之1」修法主要針對「小客車租賃業與資訊平台業者合作提供附駕載客服務者」,重點包括要求租賃車不得外駛巡迴、排班待客租賃,以及至少租賃1小時等等。

因修法首當其衝者為2017年開始和租賃車業者合作的Uber,被外界視為Uber條款,引發了Uber及合作的租賃車業者及駕駛的反彈,Uber更多次呼籲交通部暫緩修法,並兼顧計程車、租賃車業者多方利益。修正後新法於今年6月上路,為減少衝擊,交通部提供4個月執法緩衝期,同時鼓勵租賃車業者及駕駛轉型為多元計程車,以符合法規,但Uber、租賃車業者及代雇駕駛、計程車業者對如何租賃車如何順利轉型為多元計程車、緩衝期延長仍有爭議。

Uber今天宣布在經過幾個月與交通部的協商後,將配合政府政策改變營運模式,將以科技資訊平台身分和多元計程車隊業者合作,這是Uber第二次配合政府政策調整營運模式,持續經營臺灣市場。在此之前,因國內計程車業者反彈,2017年Uber一度暫停臺灣地區的服務,數個月後再和計程車隊,租賃車業者及代雇駕駛合作,重啟臺灣的乘車服務。

這次在運輸法修正期間,交通部鼓勵租賃車及駕駛順利轉型多元計程車祭出多項措施,包括開放多元化計程車免用計費錶,採用App「預告車資」及牌照活化等。

Uber對政府推出的轉型措施表達肯定,強調未來仍會和交通部積極協商,讓合作的代雇駕駛、租賃車業者可以順利轉換至多元計程車,以有充裕時間取得計程車駕駛執業登記證及計程車牌照。

但Uber並未說明調整後的營運模式何時上線,還有新的模式是否會改變現有收費方式。

Nokia、華為等中階手機掀起規格戰,4000萬以上高畫素、多鏡頭來了!

$
0
0

過去高階手機才有的高畫素、多鏡頭,現在在中階手機上也愈來愈普及了。Nokia、OPPO及華為本周相繼推出新手機,搭載4000萬以上高畫素相機及多鏡頭設計,以高解析、彈性的多鏡頭設計為訴求,吸引喜愛以手機拍照的族群。

HMD Global今天發表Nokia 7.2,搭載Android One平臺,採用6.3吋FHD+螢幕,內建高通Snapdragon 660處理器、6GB記憶體及128GB儲存容量,國內定價為8990元。

Nokia 7.2一大特色是搭載4000萬以上的高畫素相機,背後為三鏡頭設計,分別是4800萬畫素蔡司認證的標準鏡頭,500萬畫素景深鏡頭及800萬畫素的廣角鏡頭,以滿足高畫素、景深及廣角等多元的拍照需要,前置鏡頭則是2000萬畫素。

使用者可依不同場景選擇拍照的模式,當想要拍攝較廣闊的風景,例如高山或高聳的建築物時,就能選擇118度的廣角鏡頭,至於4800萬畫素的主鏡頭除了用於拍攝高解析度影像,還能利用Quad Pixel技術,將4個畫素合併為1個較大的畫素,以提高4倍的感光量,適合夜晚或是室內的低光源環境拍照,由於Quad Pixel會自動合併畫素,照片總畫素也從4800萬降到1200萬。

另外,該手機也在人像拍攝模式中提供了多種散景模式,包括蔡司現代、旋渦、滑順等不同模式,以模擬出不同的背景模糊效果,實際試用不同的散景模式,能夠產生不同的模糊背景效果,但不容易控制聚焦的主體,散景效果也較少有深淺變化。

Nokia 7.2內建影像處理器,支援高動態成像範圍成像HDR功能。相機拍照除了JPEG,還支援RAW檔拍攝功能。

華為、OPPO也跟進

看準高畫素、多鏡頭的趨勢,華為也將在10月初在臺灣推出一款中階手機HUAWEI nova 5T,採用6.26吋FHD+螢幕,內建麒麟 980處理器、8GB記憶體及128GB儲存容量,售價11990元。

nova 5T採4鏡頭設計,包括4800萬畫素主鏡頭,還有1600萬畫素超廣角鏡頭、景深鏡頭,及支援4公分近拍的微距鏡頭,華為強調相機整合AI,可根據場景選擇不同的鏡頭配置。另外,前置鏡頭則是3200萬畫素。

另一家業者OPPO也將推出售價9490元起的A9 2020,同樣為4鏡頭設計,4800萬畫素主鏡頭、可拍攝119度的800萬畫素廣角鏡頭,以及各200萬畫素的黑白與人像鏡頭。

台大醫院驚傳駭客入侵,院方表示:已依規定通報,無資料外洩

$
0
0

九月底,台大醫院驚傳駭客入侵事件,國內多家媒體報導此事,指出疑似有資料外洩,並傳出院方列為三級資安事件,已經通報教育部與行政院,由行政院技術服務處協助調查。對此,我們向台大醫院詢問是否真有此事,他們的公共事務室管理師梁世箴出面回應,院方系統確實遭受到駭客攻擊,但沒有資料外洩情事發生。

至於這次駭客入侵的調查現況,梁世箴則不願多做說明,因此,我們詢問行政院資通安全處,他們則回應進行中的事件不會公開。目前看來,對於這次遇駭的具體情況,有待相關單位進一步公布調查結果。

對於這次台大醫院遭入侵,雖然院方表示沒有資料外洩的情況,但也再次喚起國人與重要首長的個資安全問題,以及醫療系統安全議題。因為,去年新加坡曾經發生SingHealth醫療系統遭入侵,發生個資外洩事件,由於關係到總理李顯龍的病例資料,因此受到莫大關注。

而且,由於上個月底,國內也發生了22家醫療院所遭勒索軟體的事件,衛福部表示僅有應用系統重要檔案被加密而不能運作,沒有個資外洩的狀況,但一連串的醫療系統安全問題,已經成為國人關注焦點。

國內醫療院所通報體系不同,後續是否進一步調整成民眾關切焦點

另一方面,我們注意到這次事件在通報流程上的現況,因為台大醫院是依照現行體制通報到教育部。據瞭解,這次事件是由台大醫院自行通報,送台大審核通過後,再通報到教育部,而依據資安法相關規定,凡三級以上事件則需通報至行政院,因此,再由教育部依規定轉送行政院。

對此,梁世箴僅表示,他們都有依政府規定通報,但其他方面則不願多做回應。後續,我們再詢問到衛生福利部資訊處處長龐一鳴,他表示,依目前資安法的規定,除軍醫院不適用之外,公立學校的醫院是向教育部通報,榮民醫院是向退輔會通報,縣市立醫院則向縣市政府通報。對於這樣的通報現況,他指出,其實衛服部已經與資安處討論過,資安處後續將會有所決定。

擁抱微服務不需一步到位,找對目標比全面重構更重要

$
0
0

「容器、微服務試了才知道!」大半生投入銀行IT的彰化銀行資訊處處長陳顯龍,談起最新的容器技術,衝勁滿滿。

這家百年老店正在思考銀行架構的大改造,不只要展開銀行核心系統大升級,為了更快速反應市場變化,陳顯龍還計畫,引進最夯的微服務架構、容器技術、商用Kubernetes產品等,來優化現有的系統。他希望改用「服務」來取代過去以業務為導向的功能模組,打造一套可以彈性組合和擴充的新一代分行端末系統。

陳顯龍早在多年前就推動過一波彰銀IT集中化架構的改造,可以做到全球全行一日結帳。相比自己過去熟悉的VM、SOA架構,他認為,容器和微服務架構的核心概念其實也很類似,開始導入這些技術時,銀行IT團隊仍然大概可以知道該如何進行。

但是,「沒有踩進去,就無法知道前置作業得準備到什麼程度才夠,做過一次就知道。」他坦言:「第一次不見得能做好,就算這次失敗,下次就可以調校得更棒。」所以,趁著核心系統升級之際,他打算先從分行端末系統開始擁抱容器技術和微服務,讓IT團隊練手。

彰化銀行不是唯一一家想要擁抱當紅微服務和容器架構的臺灣企業,除了網路公司、新創公司早就積極擁抱之外,這兩年如第一金人壽、國泰世華銀行、遠傳電信、中華電信等也開始嘗試用於特定領域或應用上,更有不少機器學習或深度學習分析團隊背後所用的運算環境,就是靠K8s和容器來調度,例如臺灣最新款的超級電腦台灣杉2號上就部署了一套K8s環境。

傳統企業擁抱微服務的挑戰,遠比新創公司、網路原生服務業者或行動應用業者,來得更困難,最大的挑戰就是大量單體式既有應用的包袱。如何踏出第一步,一步到位全面採用?還是分批進行?該從何下手?這都是CIO的困擾。

Gartner資深研究總監Kevin Matheny建議,導入微服務要先找對目標,可從面對顧客、需要快速改變的AP入手,一步到位全面重構的成本太高。(攝影/洪政偉)

Gartner資深研究總監Kevin Matheny建議,擁抱微服務最好不要一步到位,更不要趕流行,「導入微服務要先找對目標,可從面對顧客、需要快速改變的AP入手,一步到位全面重構的成本太高。」

他從兩個角度來看微服務架構,微服務的內部架構是容器技術和應用程式的程式碼,大多是企業IT開發團隊熟悉的領域。「微服務的精神是將大型應用打破成小單位,來實現最小變動,做到每次改變,都剛好是需要的最小調整。」

不過,解構了大型應用程式之後,將內部元件移到應用程式外來運作時,為了控制這些元件之間的存取,「微服務架構的外部環境,需要有一套支持系統和管理系統。」

這些讓微服務順運作的機制,除了用來管理容器的Kubernetes之外,還需要CI/CD自動化機制、用於服務互通管理用的服務網格(Service Mesh)機制、確保微服務運作的監控機制、面對不同前端應用的對外應用閘道器,以及其他後端服務機制等。

「擁抱微服務的代價是,複雜的維運和痛苦的導入過程。」Kevin Matheny指出。後者正是高度e化傳統企業的第一個挑戰,他認為,若有應用程式需要經常改變,就很適合改用微服務架構,否則不需要。

「若企業的應用程式一個月才需要異動一次,就不需要這樣的架構,太浪費了。」例如現有銀行核心系統,他就不建議先套用微服務架構。

他解釋,微服務架構是一種專供持續變革用的架構,企業可以進行最小幅度的修改,又能同時了解這些修改的影響,作為日後變動的回饋,「通常是面對顧客的系統,例如Web應用,才需要尋求持續不斷的變動。」

【微服務設計架構】Gartner提供了一套微服務設計架構,不同的微服務透過容器封裝,部署在容器管理平臺(如K8s)上,還需搭配CI/CD自動化工具,Service Mesh機制、後端服務、監測機制和對外Gateway。(圖片來源/Gartner)

三階段導入微服務,選對目標是第一步

Kevin Matheny也提供了一套企業三階段導入微服務的作法。「第一步要選對目標!」先辨識出需要經常改變的應用或服務,而且要從業務利益角度來挑選,同時還要評估企業對於微服務架構的準備度。

第二步則是要強化開發能力。包括要提升IT團隊的能力,同時要從產品或應用程式生命週期來思考,並大力擁抱自動化的開發流程和工具,例如CI/CD。

完成了第一、第二步之後,開始從小地方入手,梳理出可從單體式應用中剝離出來的功能API,再從中抽出最小單位的微服務,作為打造微服務的目標和起點。

就算是IT資源較充沛的銀行,他認為,最好也先從顧客系統開始擁抱微服務,累積足夠的人才和經驗後,評估真有需要經常變動的效益,才需要將微服務延伸到核心系統上。

「微服務架構不應該是企業的目標,」Kevin Matheny再三強調這件事,他觀察,未來企業IT不會只需管理微服務架構,而是微服務和傳統架構並行管理,所以,不要問如何擁抱微服務架構?而要思考,你有什麼問題,需要靠微服務才能解決?儘管IT要有大架構和藍圖策略,「先從小服務,開始感受到微服務的好處,遠比IT架構大躍進更為可行。」曾在年營收4百億美元的美國零售巨頭Best Buy擔任過電商架構總監13年的Kevin Matheny,這是他對有意擁抱微服務的臺灣企業,最重要的建議。

 相關報導 企業K8s實戰在臺灣 

【K8s臺灣企業實戰經驗談:中華電信】因應短暫而量大的預購壓力,以微服務實現彈性部署與標準化維運

$
0
0

雲端服務當道,接連掀起了伺服器虛擬化、容器化、微服務化的風潮,應用系統的開發、整合、測試、上線的速度有了劇烈的提升,承載應用系統的平臺發生量變與質變,在企業IT環境裡面的工作負載,除了支撐日常關鍵應用系統的穩定運作,也面臨更多極端的需求,像是持續時間不長、負載量卻超高的應用服務,越來越常出現,該如何因應這樣的挑戰?

在iThome主辦的Kubernetes Summit大會當中,今年就有兩家臺灣電信業者談到他們導入容器服務平臺的經驗,中華電信就是其中之一,他們目前是將這樣的架構用在既有的預購系統上,而且,建置的平臺是企業級軟體──紅帽的OpenShift Container Platform,不過,即便如此,他們在系統搬遷過程中,仍經歷了預期以外的狀況,有意採用這類環境的企業,若能及早掌握可能影響搬遷作業的各種細節,應能減少出錯機會。

先拿預購系統開刀,因其服務特性很適合移植到雲端環境

身為成立時間最久的臺灣電信業者,中華電信所經營的各種通訊、網路與加值服務,背後都由資訊系統支撐,當中有許多都是十年以上的老舊系統,因此,他們近期開始思考把這些系統搬到雲端服務的環境,而預購系統的搬遷就是率先進行的工程。

為什麼是這套系統先行?中華電信資訊處工程師黃昭文表示,傳統預購系統最大問題就是瞬間的搶訂壓力,許多網站往往承受不住,為了解決問題,業界提出的作法是運用分散式架構,但同時也須面對一些問題,像是網路管理、多臺設備管理、資料庫系統負荷能力、儲存管理,建置這些環境的成本也很高。

第二個考量是預購系統的另一個特性:使用時間很短。一般而言,電信業者的預購系統,運作時間並不長,可能上線為期三天、一週,之後就會下架,若要建置專屬環境,不敷成本效益。

這是一般電信業者預購系統的運作架構,在設計上,是以分散負載的方式來考量,希望能夠妥善消化瞬間搶購的壓力,但需要針對網路管理、設備管理、儲存管理、高可用性的需求,來配置IT資源,搭建成本相當高,而且這類系統服務時間並不長,之後又需要撤下、回收,想要以更經濟的方式快速擴展(縮回)應用系統規模,相當不容易。(圖片來源/黃昭文)

這是中華電信建置的容器服務平臺,他們採用的是Red Hat OpenShit Container Platform,在Kubernetes Summit大會上,他們首度揭露目前系統的架構。(圖片來源/黃昭文)

歷經容器化、解構,進入微服務

在系統搬遷的作業時程上,中華電信規畫了下列3個階段。

第一階段:原貌搬遷

系統搬遷初期,他們對應用系統的調整幅度不大,優先考量服務正常運作。此時主要的工作,是將應用程式的執行環境,從實體伺服器、虛擬機器,搬到OpenShift。過程當中,他們先把虛擬機器當中的應用程式,放到Docker container,再將容器搬到OpenShift。以耗費時間而言,從VM轉到Docker較短,從Docker到OpenShift較久。

關於這階段的搬遷,黃昭文列出7大工作重點。首先是盤點程式行為,因為當應用程式改到OpenShift執行之後,開始會有一些橫向擴充(Scale out)的活動,可能就會相互衝突;其次是參數需重新設計,若能用對參數、改變參數餵送的方式,對於K8s的操作比較友善。

第二階段:系統解構

此時,中華電信開始執行預購系統的解構,提高邏輯的清晰度。相較之下,前一個階段,他們是把整個應用系統包進容器當中,但在這個階段,則是開始進行合理拆解,導入微服務的概念,讓系統上下游之間可透過RESTful API去串接,應用程式當中的不同部分,可以橫向擴充規模。同時,他們也選用輕量的Web應用程式框架,像是Spring Boot來進行改寫,而不再採用WebLogic這類應用程式伺服器。

關於Kubernetes平臺的使用上,黃昭文也特別提醒,要注意Pod的串接數量。他們發現,串連路徑越長,效能折損越大。所謂的Pod是指一群容器的代稱,對於K8s環境而言,是最小的物件模型單位。

他也秀出效能測試的圖表,當Pod串接到兩個站點時,網路呼叫的效能就會瞬間降至低點。若要增加效率,他提出以下幾個建議:我們可以在應用系統上游的呼叫端,導入共用連線(Connection Pool),或是運用非同步作業的機制,也可以在應用系統下游的服務端,採用高效能的應用程式框架。若需要非常高的效能,我們可以多個相關的容器封裝在同一個Pod裡面,如此可以大幅減輕網路流量的負擔。

第三階段:微服務、DevOps

在預購系統的搬遷進入最終階段之際,中華電信期望可以跨入微服務、DevOps的應用。

在此之前,黃昭文呼籲企業應評估自身體質是否適合,確認應用系統架構的調整,究竟是想要還是必要。同時,也要注意單位組織分工的變化,如果是橫向切割,未來在DevOps的流程當中,彼此合作會更為密切,在系統維運的慣性上,IT人員也要有心理準備,因為複雜度可能會提升。

在資料處理的結構與流程,這時也可能需要重新設計。例如,應用程式連接的資料庫系統可能需要拆解,才能支應微服務的存取需求,而拆解之後的資料內容同步,也需要注意。

事實上,這個階段的目標更為宏觀,希望達到獨立開發、高效率部署、維運標準化的要求。黃昭文坦言,其實在中華電信內部有太多系統,每一套系統都有不同維運的方式,對於經驗傳承、未來招募新人而言,都是困難的地方,於是,他們希望應用系統的開發與維運,從需求管理延伸到交付部署,都有一模一樣的流程,對於企業而言,不論是成本或管理考量,都會比較簡單、穩定。

掌握不同環境差異,可少走冤枉路

除了規畫三大階段,黃昭文也列出多項過程當中需注意的技術細節。首先是底層環境,有些商用軟體的登錄機碼或組態授權,會綑綁處理器或伺服器的型號,如果沒有處理好,系統搬移到另一個環境時,可能無法啟動。

軟硬體的相依性上,由於部分軟體授權有處理器核心數量授權限制,因此,若搬遷到新環境,提供的處理器核心數量很多時,也可能無法啟動系統。

系統軟體本身也有一些相依性的議題,那就是與作業系統核心(Kernel)版本之間的捆綁。舉例來說,若底層伺服器的作業系統更新核心,應用系統可能就會受到影響而停擺。

在容器的部份,黃昭文建議,每個容器裡面不要放置太多處理程序,否則當多個容器同時執行,可能會相互干擾。

接著要注意的部份,在於容器的執行權限,以及K8s或OpenShift本身的環境變數,在配置上,應避免與其衝突,因為若發生這樣的狀況,原本自定的部份,將會被系統覆蓋。

容器的Volume設定也要關照一下,當我們包好容器或採用他人的容器之後,請記得打開裡面的組態,例如,查看Dockerfile,確認儲存Volume掛載的位置,以防出現資訊遺漏的狀況。

在Kubernetes的部份,我們要注意ConfigMap的唯讀限制,有些應用程式需要修改設定時,若沒有考慮到這個因素的影響,可能就無法啟動。對於實體儲存配置上,也要關注可用空間的多寡,因為若出現容量不足的狀況,Kubernetes系統會停用Pod。

 相關報導  企業K8s實戰在臺灣 

【K8s臺灣企業實戰經驗談:遠傳電信】告別單體架構,以多個微服務協同合作,更易擴展規模

$
0
0

經歷過伺服器虛擬化、雲端服務,以及容器(Container)等浪潮的洗禮,如今我們已開始邁入多雲、混合雲的環境,然而,為何應用系統平臺的發展必須持續追逐這樣的趨勢,而且,每隔幾年就可能需要轉進新的架構?在遠傳電信IT基礎架構轉型的過程當中,我們看到了答案。

而在今年的Kubernetes Summit大會當中,遠傳電信也首度對外透露,他們如何從三層式(3-tier)架構、服務導向架構(SOA)架構,一路轉換到微服務(Microservices)架構。原來,一切的決策考量,都源於「擴展(Expansion)」,尤其對於臺灣的電信業者而言,從逢年過節的車票搶訂、知名品牌智慧型手機的大量預購,到2018年的行動網路499元吃到飽之亂,都造成極大的業務營運挑戰,他們也持續思考IT架構該如何配置,才能因應時間短暫、負載龐大的系統執行需求。

快速、大規模、簡便的擴展,成為企業應用系統架構變革關鍵

關於微服務,以及容器、Kubernetes等新興IT技術的導入,今年,臺灣終於有大型企業公開實際應用的經驗,例如,遠傳電信經理謝逸凡在9月的Kubernetes Summit大會,首度揭露他們IT架構轉型的歷程。

近年來,IT基礎架構的轉型,主要聚焦的部份,在於擴展、可用性、敏捷,而遠傳電信的IT環境,從原有的大型主機,陸續開始採用x86運算架構、伺服器虛擬化、私有雲、容器、公有雲,如今走向混合雲、多雲、雲端原生的架構。

在此同時,他們對於採用雲端服務的態度,也更為積極。因為在這樣大型的業務活動期間,原本資料中心預留10%到20%的系統資源,在那時幾乎全部都用上了,卻仍不夠用,導致許多消費者在申請時,還是得不到門號,他們必須要在一兩天之內,將系統資源擴增到原有的5、6倍之多,才能因應暴增的需求,所以,他們積極評估採用雲端服務的可行性,並且認知到每一朵雲各自的特色,於是,遠傳電信今年開始有混合雲、多雲的解決方案。接著,他們在2012年開始採用伺服器虛擬化的架構,而隨著虛擬機器(VM)部署規模的日益龐大,之後也導入一些自動化管理的機制。到了2017年,遠傳電信開始採用容器架構,原本他們想透過這樣的方式來取代伺服器虛擬化,節省伺服器虛擬化授權,但後來發現容器並不能取代虛擬機器,而在去年499行動通訊方案席捲市場之際,他們也試著用容器架構來支撐暴增的工作負載,雖然當時並沒有成功,但也讓他們意識到需要同時注意其他的環節,例如資料處理的方式(資料庫的分割、資料讀寫負載的分流、快取的配置),才能充分發揮容器架構的特性。在這段期間,他們首先面臨的挑戰,在於大型主機建置成本昂貴,而且只能縱向擴展(Scale up),若要擴展底層IT基礎架構的規模,也需要長時間的預算規畫、提案,後來,隨著x86架構的盛行,改用大量x86伺服器來擴充資源。

回顧這段轉型的歷程,遠傳電信經理謝逸凡表示,這一路走來,他們每天都在做的事情,就是擴展(Expansion),每遇到一個資源瓶頸點,就必須要設法跨到下一步,一關關突破。換言之,IT人員面臨的挑戰在於,如何擴展既有資源,讓上層的應用程式和服務,能夠快速而順利執行,保持可用性與穩定度。

因此,他們持續投入IT基礎架構底層的建置、系統平臺的建置,都是為了承載上層應用程式或服務,做到執行規模的瞬間放大或縮小。

然而,在不同時期所採行的IT基礎架構,皆有其相對的優勢。例如,在採用專屬伺服器架構的時期,從提案到實際部署完成,可能長達幾週,甚至幾個月,而且需同時考量的因素,最為複雜,包含硬體、作業系統、執行時期環境,以及程式碼;到了伺服器虛擬化、私有雲的環境,部署時間可縮短至幾天、幾小時,甚至幾分鐘,而且,不需考量硬體的相依性;而在容器的應用架構裡面,程式碼寫好之後,最快能在幾秒鐘的瞬間,完成應用程式的部署,又進一步擺脫作業系統的影響。

遠傳電信的應用系統架構,經歷了幾次變革,先從大型主機/主從式架構,換到三層式架構,之後,改用服務導向架構,近年來,他們也已經開始導入微服務架構。在這三種架構之下,應用系統的元件有不同的粒度與耦合度,在規模擴展與管理的難度上,都有不同的挑戰。(圖片來源/謝逸凡)

為了擴展規模,將應用程式拆成多個微服務也成考量點

導入伺服器虛擬化、雲端服務的環境,雖然為用戶提供快速擴展IT基礎架構資源規模的方式,再加上虛擬機器、容器的採用,也能帶來快速部署應用程式的成效,但就整體服務而言,若要穩定擴展規模,應用系統架構仍需調整。

以三層式架構而言,應用程式本身是緊密耦合的,以一套系統適用所有需求,程式碼修改較為困難,在應用程式發行、測試的步驟,會耗費許多力氣,若要擴展系統規模,作法也相對複雜。以遠傳電信而言,他們的應用系統在這段期間,已陸續經歷了幾次轉型,從過往的大型主機主從式架構、三層式架構、服務導向架構,如今則是繼續朝微服務架構邁進,而之所以改弦易張的關鍵,仍在於擴展能力的優劣。

到了服務導向架構、企業服務匯流排(ESB),應用程式是鬆散耦合的,拆分為多個元件,粒度較適當,利於服務重複使用,快速支援業務需求。然而,這類架構採用的協定,像是WSDL或是SOAP,效能不太理想。此外,應用程式存取資料來源,仍是同個資料庫。

在近幾年盛行的微服務架構,應用程式拆分粒度更細緻,且是鬆散解耦的(Loosely decoupled),不單將系統拆分、重新安裝多份、重新部署,還要有獨立運作、無狀態(stateless)、自我管理、去中心化(decentralized)等特性。

然而,相較於既有應用系統的單體式架構(Monolithic),雖然體型龐大,不易擴展,但好處是只需要考量單一實體,若把應用系統拆開成多個微服務,因為需要彼此相互呼叫,對於狀態與資料存取的需求也不一樣,將導致管理複雜性和維運難度變高的狀況。

因此,若要將應用系統拆分為多個微服務,該如何切割,執行起來才會順暢、理想,是許多開發人員面臨的重大挑戰。遠傳電信採取的作法,是先針對應用程式的運算部分,接著是處理資料層,此時會遭遇到非同步模式與狀態不一致,或是狀態、功能切分得不夠精細,因此也會涉及事件的處理。

等到應用系統開始建立之後,他們開始處理開發與維運的流程(Pipeline),因為系統完成開發好、進入穩定執行的狀態,接下來,該如何持續修改、調整,使其保持妥善運作,又是個挑戰。

而在上述的工作階段當中,如何擴展需要的資源也很重要,因為當本地端資源不足時,我們要懂得運用多個資料中心的資源,並在這樣的環境布建服務。

建構微服務的要點

要該如何切分微服務?因為資源有限,很難把應用系統的所有功能拆掉,基本上,還是回到原點:我們需要的是擴展性?快速?穩定?可用?謝逸凡以他們本身需求來說明,以門市運作而言,像是確認消費者能否購買、決定用戶是否有續約資格,都是最常使用的核心功能,若將這些改為微服務,效果最為顯著,至於其他功能不一定要在第一時間改成微服務,因為需求量相對少。

基本上,應用系統若切得越細、分割得越多,雖然可以擁有越好的彈性,但是,管理複雜度也會越來越高,導致管理成本可能超過開發成本的狀況。因此,面對微服務的粒度該如何取決的考量,謝逸凡表示,應該要在自身的管理能力與切割程度,找到平衡點,因為,相關的監控機制如果沒有到位,卻硬是切割出來,一旦運作上出問題,就很難復原,等於陷入另一個風險。

所以,他也認為,建構微服務不能想要一步到位,這麼做耗費的資源太大,後來會無法執行下去,應該要謹慎為之、逐漸轉換,可先從應用系統著手切割,再處理資料,再處理後面的事件。

之所以會有這樣考量,謝逸凡坦言,這是他們內部討論出來的作法,因為既有系統太多,需要逐步轉換,但這還是需要很多額外的資源,而且,還要從底層去調整架構。所以,他建議,可以各個擊破,「先建後拆」,把關鍵服務慢慢抽出來,等到看到成效之後,大家才會去想要修改舊的部分;而且,有些舊服務並沒有高速擴展的需求,在原來的架構還是可以執行,因此,企業不用花太多資源去改成微服務。

當應用系統改成微服務架構,執行方式會有哪些改變?會有API呼叫的請求,啟動幾個微服務,由API Gateway做服務管理,進行Service Discovery的程序,了解微服務的狀態與服務等級;而在微服務之間,是透過RESTful API呼叫來互動,也可能有推送或訂閱(Push and Subscribe)的非同步作業,將記錄發布至事件佇列(Event Queue),或從這裡取得記錄,然而各自執行各自的服務;而在資料存取的部分,也可能會用到資料庫或資料庫加上快取的作法。而在這樣的架構下,我們要把應用系統拆成好幾個,當中有執行狀態的轉換(有狀態改為無狀態)、API呼叫、資料流切割的程序。

在實際維運時,原本每個應用系統服務由一個開發單位負責的狀況,如今也可能會有改變。因為,採用微服務架構之後,會面對的是多個開發單位,該如何協調彼此,促進共同的控管、障礙排除、開發,所以,這也會是考驗之一。

微服務架構的組成,不光是容器技術的應用,以及應用系統的切割,在上層還有API管理、Service Discovery,以及應用程式框架,其底層則有Kubernetes平臺、網路、硬體設備的區分。同時,這樣的架構也需要搭配完備的系統監控、事件記錄,以及管理機制。(圖片來源/謝逸凡)

打破單體執行藩籬,轉為彼此協同運作的生態系統

微服務應用系統若由Kubernetes平臺來支撐,謝逸凡認為,從架構來看,最上層是應用程式的管理員,透過API來呼叫服務;接著是Service Discovery,探尋合適的微服務;下層是Spring Cloud這類應用程式框架, 再下層是Container,而Container底下會是Kubernetes平臺;到了最底層,則是網路與硬體設備。

而橫跨上述所有堆疊的功能,則是監控、記錄中心、管理,它們也扮演很重要的角色,因為當應用系統架構拆得如此分散,若要確保系統運作正常,要有很強大的監控、很詳盡的事件記錄,支撐整體架構的維運,如此也能做到集中化管理。謝逸凡表示,如果沒有這些機制,很難同時管理眾多微服務,以及持續更新軟體版本,提供穩定運作環境。

而經歷過這樣的變革,謝逸凡體認到,微服務的運作體系,並非一套獨立的應用系統,而是依靠好幾個部分一起協同運作,轉為生態系統的概念,因此,在這樣的架構之下,一個應用系統無法單獨存在,一定要互相合作。

相對地,若要維運和管理這樣的環境,也會變得很複雜。謝逸凡說,微服務化的應用系統可以執行得很順暢,一旦出問題,恐怕很難快速找到根本原因,因為它不是單一的軟體,若有影響,就會是全面的,所以,我們必須設法觀察資源的瓶頸所在,關注如何建立監控機制及整個維運體系。

當微服務結合K8s平臺

應用系統經過容器化、微服務化,實際運作在Kubernetes平臺,整體架構會變得如何?謝逸凡介紹遠傳電信的作法,他們用社群維護的Kubernetes版本,並在Intranet和DMZ兩個網路區域,建立叢集,共用容器映像登錄。

除了運用Kubernetes本身的API,他們也撰寫工具,協助部署與資源的管理。面對檔案交換的需求,他們也設置了共用儲存池。而在監控的部份,他們用了Kafka來接收事件記錄,然後交給ELK(Elasticsearch, Logstash, Kibana)處理,同時,這裡也運用Prometheus軟體來接收Kubernetes平臺,以及上層系統的重要資訊。

對於容器映像的管理,遠傳電信採取比較嚴謹的作法,他們不允許開發人員隨意到網際網路下載,須使用公司驗證過的容器映像,而他們也將列管的容器映像,根據用途的差異,區分兩大類型——維運(Operation),以及生產(Production),並且檢查當中的安全性,做好存取控制,例如,確認是否潛藏惡意程式,以及開放哪些作業系統層級的使用者存取通道。

此外,為了提升容器映像的適用性,符合開發、維運、測試人員的需求,遠傳電信也對環境變數的設定做了一些處理,當中運用ConfigMap的組態資訊來對應,達到參數化的設計,讓容器映像執行起來更順暢。

在資料處理的部份,也要特別注意,遠傳電信的經驗值得借鏡。他們在因應499行動上網吃到飽的業務暴增需求時,就曾使用微服務與Kubernetes,當時,應用系統已妥當分割為微服務,部署到Kubernetes平臺,Kubernetes系統規模的擴展很順利,容器也順利建立起來,最後卻因資料庫存取方式的限制,而無法承擔負載,還是敗下陣來。

對此,他們採取了3種作法來改善,分別是資料庫分割(Database Partition)、讀寫分流(Read/Write Splitting),以及快取(Cache),以便分散存取的I/O。

結合容器與K8s的開發與維運流程

當應用系統的整體架構建立起來,資料庫的分散存取也導入適合的作法,接著要考量的部分,是規畫可持續運作的DevOps流程,能夠整合、更新應用系統,並且維持系統的穩定運作,協助用戶執行持續交付、持續整合、持續測試、持續維運的所有工作。

遠傳電信DevOps流程是怎麼做的?以部署應用系統的作業為例,他們提供兩種作法,一是將程式碼打包在容器映像當中,一是將程式碼和容器映像分開,程式碼會放在共用的儲存空間,直接掛載到容器,再執行應用系統。

而在應用系統開發過程當中,若要進行持續整合、持續交付,遠傳電信也區隔出系統整合測試(SIT)環境,以及生產環境,分別設立對應的容器映像登錄,以及Kuberenetes叢集,位於系統整合測試階段的應用系統(容器映像),必須經過一定的預先部署、測試、更版等程序,才能將同步到生產環境,進行部署與上線切換的動作。

在容器映像的部署方式上,遠傳電信Kubernetes平臺提供兩種選擇:一種是包含程式碼,另一種是不含程式碼,可用於開發、測試、生產等不同階段的環境當中。(圖片來源/謝逸凡)

 相關報導  企業K8s實戰在臺灣 


【K8s臺灣企業實戰經驗談:露天拍賣】K8s解決機器學習複雜的工作流程痛點,撐起電商AI服務

$
0
0

「機器學習工作流程不只是清理資料、訓練模型,還包括模型部署、轉換為線上服務、維持服務不中斷,甚至還有GPU資源調度等問題。」露天拍賣研發創新部主任張家棠指出,能解決機器學習(ML)工作流程痛點的幫手,就是容器管理平臺Kubernetes(K8s)。

K8s三大特點優化ML工作流程

Kubernetes擁有三大特點,分別是組合性(Composability)、可攜性(Portability)和擴展性(Scalability)。就第一點來說,機器學習工作流程包括資料前處理、模型訓練、部署和維運等數十個階段。而Kubernetes提供了可組合的控制流程,讓使用者依其需求,透過模組化來完成這些步驟,也不須要集中式控制流程。

再來,可攜性能解決模型訓練問題,比如開發環境。舉例來說,相同的程式碼由不同工程師執行,可不一定每次都成功,「這就是環境問題。」張家棠指出,Kubernetes微服務可將環境內容標準化,解決開發環境問題,而且「不管是透過筆電還是本機開發,只要將內容封裝好,就能輕鬆在正式環境執行。」

接下來則是擴展性。Kubernetes擴展性優點包括對CPU、GPU和記憶體資源的調度,但在張家棠眼中,擴展性真正的價值,在於能應付企業中不同團隊所需的作業環境要求。

專屬套件降低K8s與ML工作流程執行門檻

不過,要真正駕馭Kubernetes,並非易事。為了讓開發者更快上手,張家棠點名Kubeflow,也就是一套開源機器學習工具,「有如一個組合包,內含許多機器學習套件,供使用者安裝,」簡化了在Kubernetes上執行機器學習任務的流程。再加上Kubeflow以Kubernetes為基礎,因此只要在Kubernetes環境中,就能執行Kubeflow,達到簡單、可攜且可擴充的目的。

然而,Kubeflow並非適用於所有機器學習工作,它的強項在於模型建置、訓練,以及平行處理和模型部署(Serving)等流程。

其中,就平行處理來說,由於機器學習工作並非只是資料搜集、訓練模型、模型部署等如此直線進行的流程,而是由多個任務(Task)組成,有些任務必須要按照事先定義的順序來執行,有些任務則會依賴其他任務,還有些任務則是要同時執行。這個現象,就有如點狀發散的有向無環圖(DAG)般複雜,需要平行處理才能應付。

而Kubernetes CRD原生套件Argo Workflow,能夠解決這個問題。Argo Workflow是一套工作流程任務調度工具,可針對多步驟(Step)的工作流程來建模,使之成為一序列任務,也能利用DAG來找出不同任務間的相依性。它的特點包括跨程式語言、能即時更新日誌(Log),方便工程師隨時掌握工作流程狀態,此外還提供視覺化的使用者介面,方便監控作業動態。

在Argo Workflow提供的多種工作流程功能中,張家棠最推薦Loop、DAG-Diamond-step和Daemon-nginx。他指出,有別於一次只能執行一個步驟的傳統程式化腳本(Shell script),Loop可一次平行執行兩個以上的步驟,而DAG-Diamond-step則更進一步,專門鎖定如DAG般複雜的流程,使用者可根據自身需求,來彈性設計任務執行的架構。再來,Daemon-nginx讓使用者在執行批次工作排程時,先設置一個Daemon,之後排程的內容照著Daemon即可。

露天研發創新部主任張家棠推薦Kubernetes CRD原生機器學習任務調度工具Argo Workflow中的DAG-Diamond-step功能,可以處理如DAG般複雜的機器學習工作流程,讓使用者自行設計任務執行的架構。(圖片來源/張家棠)

事件管理器彈性觸發和執行工作流程,露天靠它打造Chabot服務

設計完工作流程後,開發者還需要觸發(Trigger)和執行這些事件(Event),而Kubernetes事件管理器Argo Event則能彈性完成這兩項動作。

這個管理器主要由3個元素構成,分別是Event Source、Gateway和Sensor。Event Source是用來定義事件內容,再透過Gateway來處理事件,之後由Sensor定義事件相依性,並觸發Argo Workflow或Kubernetes資源,來執行事件。此外,Argo Event還擁有多項功能,像是網站訂閱通知(Webhook)、排程(Schedule)等。

露天也實際利用這些工具,來開發自家的客服機器人。張家棠指出,露天參考許多坊間聊天機器人,特別是Google的Chabot平臺Dialogflow,並以此為藍圖,開發出自家的客服機器人熊咩。

熊咩為任務型聊天機器人,只針對露天平臺提供問題選項與回答,而非由顧客輸入字句來進行開放式對話。也因此,模型訓練原理就像訓練分類器,目的是要將問題對應到正確解答。

於是,露天先建置了一個後臺,讓客服人員來處理資料前置工作,比如分類問題等。之後,團隊再設置一個按鈕,當客服人員處理完前置工作後,就可點擊來觸發重新訓練聊天機器人。「這個觸發就是Argo Event中的Webhook功能,可以連結Argo Workflow來取得資料、重新訓練模型。」

但是,機器學習模型經過不斷重新訓練、YAML設定檔不斷更新時,Argo Workflow也就變得複雜了。為解決這個問題,Kubeflow Pipline釋出一款軟體開發套件,不只大幅簡化撰寫複雜度,還附加了Metadata的設定,方便開發者在工作執行完後,來檢視工作內容。張家棠表示,這一點,對機器學習開發者來說特別有幫助,因為有利於比較兩套模型的差異和表現。

善用模型部署利器,露天以此建置點擊轉換率指標

模型訓練完成後,接下來,就是要將模型轉換為服務(Serving)。張家棠指出,這時有兩個工具可選擇,一個是TensorFlow Serving,另一個是Seldon。

首先,如果開發者利用TensorFlow開發模型,就可直接透過TensorFlow Serving來部署模型。TensorFlow Serving有幾個優點,包括只要將新訓練好的模型檔,存放於舊模型檔的資料夾,就能直接切換為新模型;再來則是加速機器學習模型訓練效果,透過批次功能,可一次輸入數百個樣本給機器,有效利用GPU資源。這一點,也能用來提高AI推論效率,也就是透過累積請求(Request)數量,到達設定時間後,再全部送往GPU處理。

另一方面,除了TensorFlow Serving,如果開發者使用TensorFlow以外的框架來開發模型,比如PyTorch、MLflow、XGBoost等,就可透過Seldon平臺來部署模型。

而露天的商品點擊轉換率指標,就是透過TensorFlow Serving來運行。張家棠解釋,點擊轉換率指標,是要來了解不同消費者對哪些產品有興趣;要做到這一點,首先要收集露天平臺上所有使用者的Log,將這些資料整理、標註之後來訓練模型,並利用每天更新的Log來重複訓練。最後,再透過TensorFlow Serving整合這些結果,交給後端API來呈現點擊率與轉換率的效果。

另一個應用案例則是商品個人化搜尋,露天透過個別使用者的搜尋歷史,來訓練AI模型、預測商品搜尋結果的排名。張家棠舉例,比如用關鍵字搜尋「三國」,就可能出現電視劇、遊戲等不同類型的商品,但根據使用者搜尋歷史,就能找出使用者的興趣領域,進而提升相關商品的搜尋排名。

張家棠也揭露,露天目前也正利用K8s進行以圖搜圖的AI專案,目標是要「跟上國際電商的腳步。」

 相關報導  企業K8s實戰在臺灣 

企業K8s實戰在臺灣

$
0
0

容器技術、微服務架構是新一代的IT架構,Kubernetes更是管理大規模容器化微服務的關鍵,但對背負大型傳統應用包袱的企業而言,如何踏出第一步仍是課題?臺灣已有不少企業率先擁抱K8s推動轉型,提供了寶貴的先行者經驗

臺灣企業終於出現應用K8s案例

$
0
0

最近我經常看幾支網路影片,都是歌手蔡依林在2018年新北市歡樂耶誕城晚會的彩排,其中,比起有歌手一起出場的影片,單純只有舞群的影片點閱數多了3萬次,雖然跟粉絲俱樂部剪出來的晚會直播影片點閱數相比,差了十幾萬,但這還是很了不起。

為什麼這麼多人會看彩排的版本?歌手和舞群當時並未穿上正式服裝,也沒有華麗的燈光,體驗應該是略遜一籌,我個人其實是比較喜歡彩排的版本,因為對於臺上舞者的表演可以看得很清楚(正式演出已經是晚間,表演服裝較為寬鬆,遮擋了部分肢體,因此,舞蹈力道反而沒有下午彩排的顯著)

而且,當時臺下觀眾記錄這段過程的鏡頭是單一視角,不像電視臺轉播正式表演時,會持續變換拍攝位置,所以,彩排時的舞者,肢體動作和走位變化更是一目了然。在片尾彩排演練結束後,蔡依林與現場觀眾的短暫互動,也很親切有趣。

這樣樸素又直接的體驗,讓我想到今年iThome所主辦的Kubernetes Summit大會,終於有好幾家臺灣企業揭露實際應用微服務、K8s的經驗。從當天活動議程來看,遠傳電信和露天拍賣的露托邦人工智慧實驗室,是比較有可能介紹所屬企業的相關使用經驗,而在現場的演講,我們意外發現,在紅帽介紹OpenShift Container Platform場次的後半段,中華電信的人員突然出現,介紹他們在預購系統陸續導入容器化、微服務架構的歷程。在Java界享有盛名的松凌科技總經理李日貴(Jini)在2018 IBM Cloud & Data全球高峰會台北場,曾介紹第一金人壽應用微服務的經驗,在2019 Kubernetes Summit大會,則是分析相關技術的現況與挑戰。

就透露的技術細節而言,遠傳電信經理謝逸凡的經驗分享,讓我印象很深刻,因為他所談的內容,正是我們過去較不易得知的臺灣企業整體IT架構變革歷程,對於應用系統的容器化、微服務,他們有很明確的理由,就是為了具備更快、更好的「擴展(Expansion)」能力,因此,在他的演講當中,回答了建構微服務所需要的各種要點,對於應用系統的分割、資料處理方式,以及整體架構的規畫,提出相當詳細的說明,並以他們的產業需求作為範例,相互印證。

他們對於DevOps流程的規畫,搭配的企業級與開放原始碼軟體,也都有很清楚的說明,不同版本的應用程式要進行部署、測試、上線,也都充分運用Docker container和K8s叢集來進行,對於容器映像的管理、K8s叢集的區分,以及不同開發階段,都有相當值得參考的規畫。

我認為當中最精采的闡釋,在於遠傳電信對於資料處理的作法,考慮得相當全面,也列出通用的作法與他們的選擇,而在演講的最後一部分,謝逸凡還介紹了微服務維運的要點,可惜我在本次封面故事的報導中,限於篇幅與時間,已來不及做相關的整理,但整體來說,他的報告相當完整,值得臺灣企業好好借鏡。

他們之所以能累積這樣的實務經驗,或許正在於過去的努力嘗試、甚至是許多慘痛的失敗教訓,因此,才能提出如此詳盡卻又如此真實的經驗分享。這也讓我們好好上了寶貴的一課,以IT媒體的角度,我們比較關注廠商端的解決方案進展,雖然想得知企業實際的應用情況,但總是不得其門而入,然而,我們還是非常期待類似的經驗分享,企業對於這樣的活動應該要多多支持,因為這些競爭優勢並不是別人看了就能上手,關鍵仍在於能否實際經歷、去多多嘗試,才能找到屬於自己的成功之道。我們除了希望能夠眼見別人努力的完美成果,對於過程的甘苦,以及進退取捨的考量,這背後的努力其實才是更動人的。

 相關報導  企業K8s實戰在臺灣 

KDE社群採用GitLab作為軟體生命周期管理平臺

$
0
0

國際自由軟體社群KDE開始在DevOps平臺GitLab上進行開發工作。KDE社群所開發的高階圖形桌面環境,提供使用者通訊、工作、教育和娛樂等各種應用程式,同時KDE也是一個平臺,讓第三方可以輕易的在上面建立新的應用程式。

採用GitLab可為KDE社群的貢獻者提供額外基礎架構的選項,使得程式碼審核能整合git,同時也簡化了基礎設施和工具,並與GitLab社群建立開放溝通的管道。GitLab提到,現在KDE社群中的2,600個貢獻者,都可以存取GitLab平臺上開發和程式碼審核等功能,而GitLab所提供的這些功能,是作為KDE社群當前開發工具的補充。

KDE社群可以將GitLab的應用程式DevOps生命周期,逐漸整合到開發工作流程中,包括從計畫、開發、部署到監控各階段。另外,GitLab也提供Concurrent DevOps給KDE社群使用,貢獻者能以新的創建與發布軟體的方法協作,跨階段管理並保護應用程式,由於提高資訊的可見度以及更全面的治理,能幫助加速軟體生命周期。

KDE e.V.總裁Lydia Pintscher提到,對KDE這類開放社群來說,採用易於使用的基礎架構非常重要,在過去兩年,KDE大幅降低開發人員進入KDE社群的障礙,而搬遷到GitLab更是這個過程重要的一步

沒註冊就ICO,Block.One被罰2,400萬美元

$
0
0

美國證券交易委員會(SEC)本周指出,區塊鏈技術公司Block.one因未向SEC註冊就擅自展開首次代幣發行(Initial Coin Offering,ICO),在一年的時間就違法募集了數十億美元的資金,雙方近日達成和解,Block.one願意支付2,400萬美元的一次性罰款。

Block.one為一區塊鏈軟體開發商,在去年6月發表了EOSIO開源區塊鏈協定,以作為分散式應用的基礎設施,同時協助企業與開發人員利用EOSIO打造企業等級的區塊鏈解決方案。從2017年6月到2018年6月,Block.one持續在市場上銷售基於ERC-20的代幣。

SEC則表示,Block.one在該委員會發表DAO調查報告沒多久之後,就開始銷售90億個代幣,持續將近一年,最終在全球募集了價值數十億美元的數位資產,其中有部份投資人來自美國。Block.one既未根據聯邦證券法案進行註冊,也不符合不需註冊的豁免資格。

另一方面,Block.one亦發表聲明,指出雙方的和解協議代表SEC將既往不究,不會再要求Block.one將代幣註冊為證券。

根據CoinDesk的報導,Block.one透過ICO在全球募集的資金多達41億美元,而SEC所祭出的罰款,只不過佔了Block.one募資規模的0.0058%。

Viewing all 32119 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>