Thinking, Coding, and Learning.

先生不知來自何方,亦不知歸去何處,年過而立,參悟生與死,淡泊名與利,但憂天下蒼生。蹤跡走紅塵,藏身山林田野,撫琴於搖滾,振筆於網路,傳道於教學;神遊金庸武俠,往返程式思考,常以此樂而忘眠。... 更多關於我

Stages in Software Testing 2017-03-18 11:08:00

這幾年 DevOps 盛行,大家都在討論,然後都在喊要 CI 、要自動化測試 ….

我從 Developer, SQA, System Operation / Administrator 三種角色 / 職務都走過,做了幾年的 System Operation 之後,最近開始有機會回到 Developer 身份,專注 Micro Service 與架構,反思測試的重要性感覺又更深刻。

How to be an SQA? 有過去經驗的分享。

整理一下過去做 SQA Manager 時的 Test Strategies (測試執行策略) 與心得。

Read More

Redmine Plugins and Themes 2017-03-18 08:45:00

整理一些不錯的 Redmine Plugins and Themes。

Read More

產品 / 專案進行中,經常會有 新功能需求,有時候是來自老闆的突發奇想、或者市場反饋、或內部發想。這些資訊的流通,在組織內部是很重要的,畢竟大家要了解『需求』的來龍去脈之後,才能設計出有意義的功能,打到重點,所以 需求管理 (Requirements Management) 我覺得是件非常重要的事情。

不過現實跟理想總是有差距的。

Read More

Service Using Single IP in Global 2017-03-05 12:20:00

這是個我心裡埋藏已久的問號: Service Using Single IP in Global … 怎麼可能 @@?

但是看到 GCP 的文件說 “Global Load Balancing with Single Anycast IP“, 他是 Google ,所以我相信了 ….

心裡會這麼疑惑是因為很久以前在研究 ELB 原理 時,就一直在猜背後應該是靠 ASG + EC2 組出來的,然後每個 EC2 都有 EIP,所以 IP 不會是固定 …. bala bala … 認知上,實體的 Load Balancing 通常會是一台,但是通常也很貴。軟體的 LB 通常就是用 AutoScaling 實作,而且很難跨地區。 ….

Read More

Study Notes - CloudWatch 2017-03-02 03:30:00

CloudWatch 是開始學習 AWS 之後,除了 EC2, S3 之外,最重要的 Services 之一,重要的功能如下:

  • CloudWatch Alarms
  • CloudWatch Events / Rules
  • CloudWatch Logs
  • CloudWatch Metric, Filter
  • CloudWatch Dashboard

常見的應用場景:

  • 系統資源的監控
  • Dashboard 系統訊息看板 (即時)
  • 自訂監控指標 (Metric)
  • 即時 Log 蒐集與儲存
  • Log 批次備份 (S3)

在還沒深度的研究之前,其實我對 CloudWatch 只是一知半解,大概只知道 CloudWatch Alarm + SNS …

深度 Study 過整個服務之後,發現這真的是不得了的東西,以下整理重要的基本概念。

Read More

Resource Provisioning and DevOps 2017-02-11 09:53:00

DevOps Taiwan Group 看到有人分享這篇文章:Microservice Prerequisites,其中的重點有三:

  • Rapid Provisioning
  • Basic Monitoring
  • Rapid Application Deployment

剛好最近工作上這些事都有關係,整理關於第一個 Rapid Provisioning 的心得。

Read More

整理 AWS 很重要的核心功能之一:Auto Scaling Group 學習筆記,這篇整理基本的概念以及重要的名詞。

Read More

去年 2016 re:Invent 宣布 IPv6 的訊息,當時只有在 ohio region 可以使用,現在已經可以在全部的 region 還有相關的服務 GA 了!

Read More

Cost in Context Switch 2017-01-23 03:21:00

Context Switch 中文翻譯成環境切換,wikipedia 的解釋:

是一個儲存和重建 CPU 的狀態 (內文),因此令多個進程 (process) 可以分享單一 CPU 資源的計算過程。

把它放在人身上,就是一心多用。Context Switch 的成本很大,五顆球同時丟給一個人,最後可能只接著一顆,也可能一顆都接不住。所以創造能「專注」的環境很重要,不管是在工作環境,還是個人的學習。

Read More

寫在介紹 Redmine 之前 2017-01-21 08:45:00

RedmineRuby on Rail (RoR) 開發的專案管理、團隊協同合作、議題管理工具。

我一直很想把他帶入公司,因為覺得每家公司應該都有這樣的協作平台,他可以扮演組織內部重要的潤滑劑,同時減少 溝通成本

不過在介紹 Redmine 之前,先整理一些問題:

  • 專案管理是什麼?
  • 專案管理要呈現什麼?
  • 協同合作工具在團隊裡是阻力還是助力?
  • 有了這個工具能為組織帶來什麼好處?
Read More

最近在幫公司規劃 VPC,遇到以下的狀況與需求的組合:Cross Regions、Multiple VPCs、Multiple AWS Accounts、PCI DSS 的需求,另外畫了一個 VPC 給 Vault (保險櫃) 單獨使用,加上因為開發環境與正式環境的 AWS 帳號,形成相當複雜的環境。整理有以下要考慮:

  • VPC CIDR 的規劃
    • Multiple VPCs
    • VPC for PCI DSS Vault
    • 如果有其他 Cloud, e.g. Azure, GCP, 也要考慮
  • Routing, Connections, and Network Topologies:
    • VPC between different Region:BGP or Static Route
    • Site to Site VPN, including HA and Failover
    • VPC to On-Premises: VPN and Transit VPC
    • VPC to VPC: VPC Peering
    • Routing Policy
  • 控管問題: Network ACL 以及 Security Group 的規範
    • 異動管理 (Change Management)
    • IPv6 與 IPv4 的管理規範
    • 異動流程
  • 多個 AWS Account 的管理
    • 形成 AWS IAM 多帳號的管理問題
    • IAM Role and Policy in Cross Account 的管理

AWS re:Invent 有個 Session 專門在說明這樣的需求:From One to Many: Evolving VPC Design (ARC302), Slideshare,整理一些重點:

Read More

Support IPv6 in VPC 2016-12-31 01:27:00

AWS 終於支援 IPv6,目前只在新的 Region - Ohio (us-east-2) 可以使用。

IPv6 in the Cloud: Virtual Private Cloud Deep Dive (NET307), Slideshare 有詳細說明。整理一些筆記。

Read More

AWS 去年十月發表 Are You Well-Architected?,主要說明四個良好架構必要的 支柱

  • Security
  • Reliability
  • Performance Efficiency
  • Cost Optimization

今年除了這四個,把 AWS Well-Architected (Nov 2016) 擴大成獨立課題,同時增加了另一項 Operational Excellence,每一個支柱也都有各自更深入的說明。

Read More

Read More

EC2 Run Command and SSM Agent 2016-10-25 14:35:00

EC2 Run Command 是用來執行遠端指令,管理 EC2 Instance、或者自己的 VM (on-primises) ,可以執行像是 Unix Scripts 和 Windows PowerShell 等。

SSM 全名是 Amazon EC2 Simple Systems Manager (SSM),主要就是用來控管 EC2 的代理程式,透過他可以自動化很多維運任務,常見的像是 Windows Update、SSM Agent Upgrade、Remote Script (bash or powershell),也可以做像是 CodeDeploy 的事情,然後用來做 CD。

EC2 Run Command & SSM Agent 不會另外收費。

感覺跟以前我在寫 Automation Test Framework 用的 STAF 概念類似,可以作為 Ops as Code 的底層架構。

Read More

Open Guide to AWS 2016-10-16 23:53:00

在 Twitter 上看到這個:The Open Guide to Amazon Web Services

心裡想的就是:『把我想做的都做玩了』。我在整理 AWS Study Roadmap by Categories 的時候,也想整理過類似的東西。

把他的目錄條列出來,前面有一些資訊很重要,特別說明。

Read More

AwsOps Security Group Updater 2016-10-16 14:35:00

我自己有好幾個 AWS Accounts 作為學習用途,但因為是自己的帳號,所以在 Security GroupsBilling 會特別管理。

我開了一台 EC2 Instance 在 Public Subnet,為了避免不必要的安全性問題,加上現在居住的環境不是固定 IP (每天都會變動),所以寫了一隻小程式,透過 Raspberry Pi 每天自動更新指定的 Security Group,在安全與便利取得平衡。

Read More

Migrate to AWS NAT Gateway 2016-10-10 10:30:00

將公司在 AWS 上的 NAT Instance 換成 NAT Gateway,事前評估、驗證、溝通與執行紀錄。

Read More

新聞來源:AWS CloudFormation Update – YAML, Cross-Stack References, Simplified Substitution

有三個很重大的更新:

  • YAML Support: 主要的新功能,可以用 YAML 寫 Template。CloudFormation 的 Function 則是用 !GetAtt 表示。
  • Cross Stack References: 可以用 ImportValue function 參考其他 stack 的變數。被參照的 stack reference 就不能刪除。
  • Simplified Substitution: 可以用 This is ${VarName} 的方式做字串取代。
    • 原本要都要透過 Fn:Join 做字串串接,Template 會變得很難閱讀。
    • 現在可以透過這樣的方式: !Sub | "This is ${VarName}"
    • 很多地方需要使用 userdata 啟動 ec2 時,需要把整段 bash 放入,透過這個新的表示方式就很容易閱讀
Read More

Integrate GIT in Redmine 2016-09-17 08:45:00

整理如何設定 git (github, bitbucket, gitlab) 與 Redmine Issue 整合.

這個目的是讓 commit 的東西跟 issue 做關聯性,可以讓相關人員知道到底改了些什麼?

這方法不需要另外安裝 Redmine Plugins, 設定分以下步驟:

  • Git Repository 與 Redmine 同步 (系統管理者)
  • 訊息關鍵字設定 (系統管理者)
  • 專案設定 (專案負責人)
Read More