安德魯的部落格

Running Jekyll on NAS - 高效率的新選擇

| |

自從發現了 GitHub Pages 這好用的服務,原來是源自 Jekyll 這 open source project 後,想說靜態網站產生器這麼好的東西, 怎麼沒人拿來用在 NAS 上? 與其在 NAS 貧弱的硬體上面,安裝 wordpress, 還不如在上面放靜態的 HTML 來的快速且安全。不過順手 Google 了一下,還真的沒什麼人這樣用,於是一時手癢,就…

Blogging as code !!

| |

TL;DR

想想我開始寫 blog 的這十幾年 (Orz, 這麼久了),用的部落格系統也換了不少套了, 從最早我自己土炮寫的 asp.net 1.1 blog 開始算, 中間光是系統就換了 5 套, 還不包括 同一套系統的版本升級… 這些 post 都還能留下來也真算是奇蹟了.. 不過再怎麼換, 終究是有套 “系統” 需要去維護,不管是自己管還是代管都一樣,開始想走純樸路線,省點 運算資源,好好照顧一下北極熊…

於是就決定改採最低科技的路線,丟掉所有的 “系統”,直接採用最單純的靜態檔案。至於 Hosting 的方式,就用最宅的 GitHub 附屬的服務: GitHub Pages… 現在流行什麼都冠上 xxxx as code, 那就來個 blogging as code 吧 XD

微服務架構 #1, WHY Microservices?

| |

八月底,接受了 Microsoft 的邀請,參加了 Community Open Camp 研討會,講了這場 “微服務架構 導入經驗分享 - .NET + Windows Container”。 其實這個主題涵蓋範圍還蠻大的,不過我一直認為,container 技術單獨介紹的話,那他就是個技術而已,若從他存在的目的來介紹,那他就是能解決 問題的好東西。因此我特地訂了這個主題: container + microservices.

Windows Container FAQ - 官網沒有說的事

| |

原本,Windows Container 單純就我自己研究而已,因為工作上用到的都是 ASP.NET Web Form 居多 (有部分早已轉移 到 MVC,但是主要還是 WebForm),加上商用軟體,用到一堆外面的第三方套件,想要藉由升級到 .NET Core, 然後直接 享用 Docker 帶來的一堆好處,那真的是想都不用想了… 所以前陣子研究完 .NET Core, 把我想搞懂的 都弄清楚後,就把重心移到 Windows Container, 這個實際一點,目前的 Legacy Windows Application 都可以在上面用,只要 耐心等 Windows Server 2016 上市就可以了..

不過,有幸參加了 8/27 Community Open Camp 活動,擔任 一場 session speaker 後發現, 其實還不少人對 Windows Container 有興趣的,不論是學員還是講師… 但是因為用的人還不多,而且到現在也還只有 Tech Preview 5 .. 使用起來還不少問題,現在切入是得花點時間克服障礙的。

既然我都花時間搞懂了,我就把官方 FAQ 沒告訴你的部分紀錄一下吧~ 如果有你想知道的,官網跟我這篇都沒講,歡迎底下留言,我再補上來~

專為 Windows 量身訂做的 Docker for Windows (Beta) !

| |
總算輪到我了!! 排隊等 Docker Beta Program Token 等好久了~  4 月初登記,5 月中才排到名額... 前陣子忙,一直到現在才有空研究 @@。這版是 Docker 在三歲生日時一起公布的 beta test program, 為 Windows / Mac 開發的新板 Docker, 企圖改善在非 Linux 平台上的 Docker 使用體驗。既然到手了,當然要體驗看看 :D  

[架構師觀點] .NET 開發人員該如何看待 Open Source Solutions?

| |
  開始之前,先來看一個實際的案例... StackOverflow (stackoverflow.com), 開發人員很愛用的網站,每隔幾年都會在官方的部落格上面公布他的系統架構。來看看 2016 版的架構演進成什麼樣子 (原文: Stack Overflow: The Architecture - 2016 Edition)

為何我特地拿 stackoverflow 網站的架構當作例子? 其實這個例子蠻特別的,導致我幾年前第一次看到就留下深刻的印象。這網站核心的部分,其實都是用 .NET 開發的,包含 Web Tier 跟 Service Tier 都是。理所當然的,資料庫也用 Microsoft SQL Server。但是這麼大規模的網站,也混搭了不少的 Linux Server, 負責 Search (Elastic) 跟 Cache (Redis), 前端的 Load Balancers 也沒有用 Microsoft ARR, 而是採用了 Linux + HAProxy.. 令我好奇的是,這種混搭的架構,一定會讓它的複雜度提高。我相信他考量的絕對不是 Windows Server 比較貴這種層次的理由 (畢竟他為了這架構,連管理用的 AD 都包進去了,還會搭配 Linux 一起使用一定有更強烈的動機)。複雜度的問題,包含系統架構層面,開發人員的能力經驗層面,網站維運層面都是如此。那麼,這樣真的是個好的設計嗎? 什麼情況下我們需要這樣的設計? 這樣的設計會有甚麼困難跟挑戰?

Rancher - 管理內部及外部 (Azure) Docker Cluster 的好工具

| |
  過去快20年的經驗裡,很少看到有哪個技術在短短的三年就可以發展成這個樣子的... 半年前剛開始研究 Docker 時,就想找個好用的 WEB / GUI 管理工具,結果都沒滿意的,沒想到現在就一堆選擇了... 這次要介紹的 Rancher, 除了是套完整的 Docker Engine 管理工具之外,也是個 Docker Cluster 管理工具及平台,讓你在佈署 Containers 的時候,不用去傷腦筋你要怎麼分配資源等等瑣碎的事情,你只管把你的 Container 組態設定好,丟上去就行了。這感覺跟當年 (2009) 初次接觸到 Winows Azure 的 Cloud Service 一樣令人感動。當年只要把你的 Application 打包成 Cloud Service Package,開發階段設定好組態,佈署階段可直接手動或自動的設定 Scale,具備 Production / Staging Environment 切換上線,可以不中斷服務的升級系統...,整個就是靠 Visual Studio Deploy 就足以取代過去要 OP team 搞半天的升級程序。 只可惜 Azure Cloud Service 的種種優異的管理及佈署能力,至今都還只限於 Azure Only,沒有下放到地面版本的 Platform ... 真的是 "此物只應天上有" 啊... 但是站在地上的凡人沒機會用啊...  現在看到 Docker Cluster + Management Tools 的發展,這種威力已經變成隨手可得了... 為了紀念一下當年 Microsoft 早在 Azure 就達成的成就 (而且早已商業化),這次的實作案例就拿 Azure 示範位於公有雲的 Production Environment,如何做到服務的管理及升級程序吧!

//build/2016 - The Future of C#

| |
    在寫這篇文章之前,一定要先秀一下我用了好幾年的桌布... :D 從開始學寫 code 的第一天起 (正規開始學 coding 是大一計概,學寫 Fortran & C),我就很講究 code 到底寫的漂不漂亮? 好不好懂? 好不好維護? 寫到後來,連 code 寫的夠不夠優雅都開始計較起來... 學了 OOP / Design Patterns 之後,就開始計較起 code 的結構到底正不正確? 是否跟真實要描述的事物有沒有正確的對應? 沒有的話就要改到滿意為止才罷休... 所以,當年在 MSDN 逛到這張桌布的時候 (現在找不到原始連結了) 就立刻拿來用了。我平常是不用桌布的,一裝好 windows 就把它改成黑色來用... 直到看到這張桌布為止...

如何在 VM 裡面使用 Docker Toolbox ?

| |
這篇一樣是意料之外的文章,不在原本的寫作計畫內 XD 上個禮拜是 Docker 三周年的生日,很難想像一個才剛滿三歲的技術,就已經在整個資訊業界掀起一陣風潮了.. 這次剛好無意間在 FB 的 Docker 社團,看到保哥問了個問題 (借保哥的圖用一下):
 

請問有人知道如何在 Hyper-V 下執行 Docker Toolbox 嗎?

一時手又癢了起來,於是就多了這篇意料之外的文章 XD

[設計案例] “授權碼” 如何實作? #3 (補) - 金鑰的保護

| |
前一篇 #3 介紹了如何利用 "數位簽章" 簡單又可靠的做好 "授權碼" 的驗證,主要都在說明程式架構的實作,沒有對實際運作的情況做太多補充,這篇就來補足這些遺漏的部分。運用這些公開的加密演算法,既安全又可靠,不過這些東西大家都拿的到啊,因此安全與否,完全取決於你的金鑰是否有妥善的被管理。