Blog

關於微服務 (Microservices) 的定義

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

關於微服務 (Microservices) 的定義

所以,微服務的定義是什麼呢?(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

閱讀全文 »

使用 UML 圖表達微服務 (Microservices)的架構設計

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

使用 UML 圖表達微服務 (Microservices)的架構設計

這裏藉由一個「放入購物車」的極小型功能案例,並利用 UML 各面向的設計圖,來表達微服務 (Microservices) 的架構規劃與設計的呈現樣貌。下列是幾個主要設計面向的設計圖 (並非是全部) 可以參考。

系統功能與實現程序

利用 UML 使用案例模型 (use case model) 與系統循序 (sequence) 圖表達「放入購物車」的系統功能與主要實現程序。

Microservices Use Case Model

Microservices System Sequence Diagram

  • 從需求模型可以看出共有兩個微服務:「Product Microservice」與「購物車 Microservice」。
  • 每一個微服務均各有資料庫,圖中可看出共有兩個。資料庫是私有倉儲,不能跨微服務直接存取 (即使位於同一區域都不行),只能透過 API 呼叫。

閱讀全文 »

在 WordPress 文章內顯示如 Facebook 鏈結預覽效果 – 安裝 Visual Link Preview 插件

在 WordPress 文章內顯示如 Facebook 鏈結預覽效果 – 安裝 Visual Link Preview 插件

我經常在網路上查找特定主題的文章,當看到內容還不錯的,就會將之儲存到我使用 Notion 建立的閱讀清單,或使用 Hypothes 可以對網頁內容作摘記。當某篇文章我可能想分享個人的評論或重點文摘時,若是軟體本業的類型,我會分享到「FB 社團-軟體設計鮮思維」。如果是一般或生活性,我可能也會分享到個人FB或特定主題的社團。

我覺得分享文章鏈結在 Facebook 或 Tweet 時,所顯現的鏈結預覽效果挺不錯,同時我現在也打算將我在 FB 所分享的文章鏈結,以及心得摘要等,同步在 WordPress 文章內。不過我也希望能有鏈結預覽這種美觀又醒目的效果。查找外掛 (plugin) 資訊,找到這款還算不錯用的 Visual Link Preview。以下就是我使用其外掛所產生的預覽效果。

閱讀全文 »

使用 Notion 建構 ZTD 簡潔風格的時間暨工作管理 (提供模板下載) – 1/2

ZTD in Notion Feature Image

前言

原來一直是使用 Microsoft To Do (併購自 Wunderlist) 記錄我的工作項目,它挺不錯用,符合簡潔 (simplicity) 原則。不過我打算把所有關於生產力 (productivity) 機制都集中到 Notion 統一管理,盡量降低多種工具的使用,所以花了一些時間研究並製作成 ZTD 簡潔風格的時間暨工作管理系統,這裏就分享下這套系統所使用的方法與想法,文後也提供了完整的 Notion 模板供下載,可以自行複製 (duplicate) 並擴展/客製化,打造自己的工作管理 (task management)。

我採用的方法論主要有兩種:ZTD (Zen to Done) 與「吃了那隻青蛙」每天只專注三件最重要的事情。相對於目前主流的 SCRUM、子彈筆記工作管理 這些太過緊湊的方式,並不適合我,我還是比較喜好簡潔風格,不要給自己每天太大壓力,只專注作最重要的事項就好。

ZTD 是一種簡化 GTD (Getting Thing Done) 的時間管理方法論 (methodology),頭字那個 Z 就有「禪 (Zen)」的意味,簡約與樸實,流水不爭先。這裏有篇文章:「時間管理:GTD與ZTD」,解釋兩者的異同之處。

引用該文所述:「ZTD 是一套系統,但不是一系列習慣的改變,而是一次聚焦一個習慣;除了計劃,它更聚焦於行動以及如何用簡單、無壓力的行為完成任務,幫助我們建立有條理的高效能習慣。」

ZTD 簡化後的四種習慣:「搜集、處理、計劃、行動」。

而「每天只專注在做三件最重要的事情」,則是源自於「吃了那隻青蛙」一書,作者 Brian Tracy 是非常知名的成功學大師,他這本著作,強烈推薦必讀,簡單扼要。最精扼的心法就是:每天早晨起床,依據從週與前一日的規劃,來決定今天最大隻的青蛙先把它吃掉,如此這天就再也沒有可以難倒你的事!

閱讀全文 »

聊聊關於 UML 輔導個案的二三事

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

UML System Sequence Diagram

前兩個星期有位上過前一期「軟體架構師」課程的學員,他在某大金融單位擔任技術職PM,特地利用週末時間到我家附近,請教我關於他利用 UML 所繪製的設計圖問題。相當認真,所以我很願意陪他一同討論軟體相關議題,順道一同在肯德基吃午餐。總共花了約兩個來小時吧,該學員還要去參加他的讀書會,真是有夠認真啊,不過起碼有討論出一個比較具代表性的使用案例其實現的主要程序描述。

畫出來是否正確或合理與否是一回事,至少他肯利用 UML 表現出他的設計思維就很值得肯定,這才有機會可以指指點點與討論的。

他只畫了使用案例圖與某一結構設計的類別圖,因爲有公司機密問題,這裏就不方便貼出他的原稿。我只就他的設計給予一些建議與修正,並利用他在 Mac 所使用的 UML 工具繪製出來。

軟體思維顧問

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

Personal