Blog

微服務架構 – 以醫療領域為例

** 本文同步發表於 FB社群-軟體設計鮮思維 **

單體式的挫折,導致微服務的架構風格 – 將應用程序建構爲多個微服務

醫療領域的微服務系統架構

  • 每一個微服務均視爲是一個小型的系統。
  • 微服務各自擁有自己的私有倉儲 (資料庫)。
  • 微服務之間的互動是透過 API 的介接。
  • 每一個微服務是獨立的個體,所以可以爲各自的微服務採用不同的實作技術與系統的建置、部署及維護方式。

Windows Terminal 美化 for WSL 2 Ubuntu (zsh + zim + powerlevel10k)

Windows Terminal @WSL 美化

執行 Ubuntu@WSL 最好用的就屬 Windows Terminal,這是在 Microsoft Store 就可以找到直接安裝的。從 Terminal 運行 Ubuntu,最好是給它美化一番,視覺化與介面操作性會好上很多。

看到這篇:「用 zsh + zim + powerlevel10k 讓你的 Terminal 潮又快」,以前我所使用的 oh-my-zsh 的 zsh 配置框架,看來現在有了效能更佳的 Zim 可以選擇,而且設定更是容易,所以也更着依樣畫葫蘆主要照該篇介紹再佐以 Zim 與 Powerlevel10K 的官方說明安裝與設定。

底下就摘記下安裝 zsh + zim + powerl10k 的步驟:

閱讀全文 »

爲何會使用微服務架構?!

** 本文同步發表於 FB社群-軟體設計鮮思維 **

要談及微服務,就需要回頭檢視典型單體 (Monolithic) 式的系統建構與開發方式。下圖可能是一個醫療領域的單體式系統架構。

醫療領域的單體式系統架構

這個「Monolithic」可以翻譯爲「單體」或「整體」,也就是我們一般典型的大堆頭式的開發系統,它有以下特點:

  • 應用程序被建構爲單個單元 (single unit)。
  • 多個功能模組共用同一個資料庫。
  • 使用同一種技術框架 (ex. .NET or Java/Spring Framework) 實作。
  • 對系統的任何變更都涉及建構與部署伺服端應用程序的新版本。
  • 伺服器系統的延展性主要採以運行多個複製實例 (clone instance) 以達成負載平衡的需求。

閱讀全文 »

[安裝筆記] Windows 10 安裝 Linux 子系統 (WSL2)

在 Windows 10 上跑 Linux 子系統,實在太過方便了!尤其是近年所推出 WSL 2 (Windows Subsystem for Linux version 2),利用其內建的虛擬機器 (其實就是輕量化後的 Hyper-V),可以充分完整支持原生 Linux 核心 (kernel),擁有比前一版 WSL 1 更好的效能與穩定性。

如何安裝 WSL 2 @Windows 10 環境,相當簡單,可以參考官網 WSL 文件:
Windows 10 上適用於 Linux 的 Windows 子系統安裝指南」。這裏僅摘要記錄下安裝的要項:

啓用 WSL 功能與所需組件

開啓「控制台 —> 程式和功能 —> 開啟或關Windows功能」,勾選如圖必要功能:「Windows 子系統 Linux 版」與「虛擬機器平台」,至於「Hyper-V」則不需要,原來以爲需要,再爬文才知「虛擬機器平台」就是輕量化 (lightweight)的 Hyper-V 虛擬機。勾選完畢後重新開機。
啓用 WSL 功能與所需組件

閱讀全文 »

關於微服務 (Microservices) 的定義

** 本文同步發表於 FB社群-軟體設計鮮思維 **

醫療領域的微服務界定

所以,微服務的定義是什麼呢?(What is Microservices)

它其實是一種架構設計的風格 (architecture design style) ,並沒有一種很絕對嚴謹的定義,要說較通用的說明,可以參考如下:
「用以描述將系統依據業務能力 (business capability) 分解為多個可獨立 (independent) 被建構 (built)、部署 (deployed) 與延展 (scaled) 的服務 (services)。」

微服務的表現 (represent) 可以參考如圖所繪製的醫療業務領域 (health care business domain),這是可以建構微服務系統的最佳應用。

  • 將單個應用程序開發爲一組小服務。
  • 每組小服務均有自己的進程 (Process)。
  • 每組小服務各自建構、部署與維護。
  • 每組小服務可透過輕量化的溝通機制,例如 HTTP based 的 API,與其它小服務互動。
  • 這些小服務有最低限度的集中管理,它們可以使用不同的程序語言,並使用不同的資料儲存技術。

父親節禮金購買的 Asus VP247HA-P 護眼螢幕與 ErgoGrade 旋轉升降螢幕底座

Asus

話說年初所購入的 BenQ EX3203R 32吋護眼螢幕使用得相當滿意。但沒多久後,竟然當成副螢幕所使用的 Dell U2410 無法開機顯示 (其實我估計是開關而非螢幕老化問題,找時間自己打開檢修看),沒有副螢幕在旁,還是顯得不太方便。

然後恰好月初大女兒蓁妮要送我她們公司給予的五千元父親節禮金,可以自行購買然後給發票核銷就可。真是太棒了!立馬我就找尋24吋、可直立、護眼加有 HDMI 連接的螢幕。沒想到要合我要上述規格的螢幕根本就找不到!好容易找到的這款- Asus VP247HA-P 有超低藍光不閃屏的 Eye Care 護眼螢幕,且有支援 HDMI 連接,但螢幕卻無法旋轉。

嗯,原來打算買個壁掛自行鑽孔,但嫌麻煩了些;在查找過程中,看到這款 - ErgoGrade EGHA741Q 旋轉升降螢幕底座,雖有些貴,但越看越覺質感甚佳,所以還是入手搭配上述護眼螢幕。在 P家刷卡總價是 6,491,小超一些部份只好自補,晚上訂購隔天中午就送來了,這效率確實很好。
Asus

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal