OpenStack nova-scheduler 是如何運作的

OpenStack nova-scheduler 是如何運作的

最近在工作上因為某些緣由看了很多關於 OpenStack nova 的 code,因而打算來寫一些文章記錄一下 nova 是如何運作的。首先第一篇將由 nova-scheduler 的部分開始。會帶讀者從 code level 了解 conductor 如何 call scheduler 到 scheduler 怎麼做決定流程。 本篇文章以撰寫時最新 stable 版本 victoria 為基礎。 nova-scheduler 簡介 nova-scheduler 是設計成一個 plugin based 的 scheduler,使用者可以根據自己的需求撰寫自己的 scheduler driver。在 nova 中預設會啟用的是本身 nova code base 中提供的 filter scheduler。 Filter scheduler 的運作原理非常的簡單,基本上會將所有的 host 經過一系列的 "filter",如果不符合 filter 的條件就會被剔除,符合的就會通過,並且進入最後的選擇的 pool。這些通過 filter 的 host 會在做 […]

KubeVirt 架構介紹

KubeVirt Logo

前幾日在 Cloud Native Taiwan User Group 久違的講了一場 KubeVirt 101,越玩越覺得這個計畫還真有趣。在這裡打算把 KubeVirt 101 講的內容稍微濃縮一下,將重點放在架構的地方來寫一篇介紹。推坑大家來玩玩這個在 Kubernetes 上跑 VM workload 的 operator。 基本介紹 官網原文: KubeVirt is a virtual machine management add-on for Kubernetes. The aim is to provide a common ground for virtualization solutions on top of Kubernetes. 簡單來說 KubeVirt 是一個讓使用者能夠在 Kubernetes 上跑虛擬機應用的 Kubernetes operator,讓使用者可以跑一些還沒容器化或是需要特殊 kernel 的應用。最大的好處在於維運上所有概念都跟一般的 Kubernetes container […]

軟體工程師的 Work From Home 環境

Work From Home Setup

最近因為疫情關係越來越多公司採取在家工作的形式,本人服務的日本 LINE 也從 2 月底開始就在家工作了。也因為如此,為了讓自己有一個良好的工作環境也陸續購入了許多設備來增進自己在家工作的效率。這篇文章將會介紹筆者在家工作的一些設備已使用經驗等等,給因為各種原因要在家工作的讀者參考。 文章架構 本篇會將各種設備分成四大類來介紹,分別是: 電腦相關 視訊會議相關 娛樂相關 其他 裡面有些設備僅因個人興趣購入,一般在家工作可能不需要用到如此設備,在內文中也會有其他方案的簡單介紹。 電腦相關 使用設備: MacBook Pro 13 吋 Dell U2718Q 4K 螢幕 LG 27GL850-B QHD 螢幕 Amazon Basics 螢幕支架 Realforce for Mac 87 鍵鍵盤 筆電或桌上型電腦 一台好的筆電或是桌上型電腦可以大大增加工作效率,尤其是一個軟體工程師,在測試或編譯程式的時候一台好一點的電腦可以讓你省下不少時間。 筆者使用的是公司發的 MacBook Pro 13 吋筆電,拿來打 code 還蠻夠用的,大部分編譯測試等等都是在雲端上面跑,所以其實效能問題影響比較沒有那麼大。 當然 Mac 算是稍稍貴一點,當然如果公司已經有配發筆電的話也不需要另外購買,如果要額外購買的話一台有 SSD 2 萬台幣左右的筆電或桌機其實也是足夠一般使用了。 螢幕 一兩個大螢幕對於一個工程師來說是必須的。通常在 coding 的時候能夠一台顯示 code,另外一台螢幕放參考資料,如此不需要一直切換螢幕能夠提升工作效率。筆者比較習慣 27 […]

Stax SR-009BK/SRM-727A 開箱

SR-009BK Exterior

身為一個軟體工程師在 coding 時怎麼可以沒有一副好耳機呢?於是就有了這篇跟技術毫無關係的 Stax 限量 180 隻 SR-009BK 跟靜電耳機擴大器 SRM-727A 的開箱文。 前言 在疫情之際待在家裡悶著無聊沒事就上各種網購網站亂逛,逛著逛著逛到了 Fujiya-Avic,手又默默的癢了起來。看到竟然有 009BK 而且比 009 還便宜一點…,自從上一次聽完 D8000 pro 後就一直有想升級的耳機的念頭,一不小心手滑就連著一台 727A 整修品一起刷下去了。 開箱 於是昨天在家 Zoom 開會開到一半,突然間門鈴響了。 趕緊跟同事說有包裹,跑去簽收。 黑貓送來一個已知內裝大箱子 廢話不多說開完會趕緊開箱 009BK 外箱: 箱子裡面是個木盒,拿起來意外的很輕,不過外觀還蠻有質感的 打開箱子取出裡面泡棉墊就能看到 009BK 本體了 拿到的是限量 180 隻中的 178 號 外觀非常有質感,工藝品等級 727A 的外箱相對簡單,就是一般的紙箱,打開來就是本體了 直接接上電源上機開聽 心得 曲目: Eagles: Desperado The Last Resort いきものばかかり: SAKURA YELL […]

日本 LINE 工作三個月心得

千鳥ヶ淵の桜

各種因緣際會下, 2019 年年底來到日本,2020 一月入社後,也要在日本領第三份薪水了。從大學畢業後一路當兵又進來當新卒,很久沒有寫文章了。趁最近因為疫情關係 Work From Home,空閒時間比較多,來記錄一下第一份也是第一次來國外工作的心得。本篇主要講講來日本生活三個月的一些心得,除了工作外也會包含下班放假的休閒生活。 為甚麼選擇到日本 LINE 當初在大四上的時候因緣際會得知 LINE 有 Infrastructure Engineer 的職缺,被社群夥伴問了要不要去面面看。當初 Google 轉正職的流程也還沒跑完,想說就面面看多個經驗也不錯。詳細的面試過程可以參考這篇: LINE Tokyo 面試心得。沒想到面試過了,當初在跟彰化 Google 的 offer 猶豫了很久。最後雖然來到 LINE 能夠存的錢比較少,也要脫離原本的交友圈,但考慮到工作內容和未來職涯發展性還是選擇到 LINE 來就職。 工作文化 LINE 基本上工作文化比較不像個人印象中的傳統日本公司,每天穿西裝、對長官要非常尊敬、下班要賠上司喝酒等,反而比較偏向外商的感覺。工程師上班基本上不需要穿西裝打領帶,同事們都是穿著比較休閒的衣服來上班,下班後也沒有要去跟主管喝酒應酬。 上班是採彈性工時,雖然需要打卡,但是基本上是責任制。大部分同事都大約 11 點左右才來上班,如果家裡有事無法出門平時也能 Work From Home,非常的自由。不過我們團隊似乎蠻多工作狂的,有時會看到有人下班了還在送 pull request,回訊息等等,但我個人通常都是下班後除非緊急事件不太會處理公司事情的。 同事互動溝通 同事之間溝通基本上都是使用英文為主,畢竟我們團隊 13 人裡面有 7 人都不是日本人,所以也不用擔心不會日文的問題。不會日文最大的缺點大概就是有時候比較難跟日本同事閒話家常,不過還是可以跟團隊內台灣人、中國人用中文聊天。除此之外,公司也有提供免費的日文、英文、韓文課,有興趣的話都可以去申請參加。 同事之間相處都還蠻融洽的,有問題詢問也都非常有問題詢問也都非常樂意回答,也會一起幫忙找 solution,有時候聽了同事想法都會想到意想不到的一些解法。 工作環境 LINE 的工作環境非常舒適,可以參考一下LINE Fukuoka 工作環境的介紹,裡面有些照片可以參考,東京辦公室基本上長得差不多。每個人基本上一個蠻大的電動升降桌,坐的椅子是 Herman Miller Aeron,大部分人都會選擇申請兩台 […]

Calico 基本架構介紹

Calico 是一個純 L3 的 Datacenter 網路方案,跟 Kubernetes, OpenStack 都有非常好的整合,也是 Kubernetes 常用的 CNI 之一。本篇文章將會介紹 Calico 基本元件以及架構。 基本元件 Calico 由下列獨立的元件組成: Felix,跑在每一台 endpoint 的 Calico Agent Orchestrator plugin,將 Calico 整合至不同 orchestrator 的 code etcd,用來儲存資料 BIRD,發布 routing 資訊的 BGP Agent BGP Route Reflector,在比較大的網路環境需要 RR 接下來會一一介紹這些元件。 Felix Felix 是跑在每一台提供 endpoint 主機上面的 daemon,在多數情況下是指那些運行 VM 或是 container 的主機。Felix 負責設定路由跟 ACL 等功能,基本上負責任和需要在主機上以提供網路連線相關的設定。 根據不同的平台,Felix […]

RDMA over Commodity Ethernet at Scale – 論文導讀

RDMA over Commodity Ethernet at Scale – 論文導讀

在上一篇文章 RDMA Overview 中簡單了介紹了一下 RDMA 這個技術,這次將為 Microsoft 在 2016 年 SIGCOMM 發表關於他們資料中心大規模應用 RDMA 所撰寫的論文 RDMA over Commodity Ethernet at Scale 做簡單的導讀。 Abstract Over the past one and half years, we have been using RDMA over commodity Ethernet (RoCEv2) to support some of Microsoft’s highly-reliable, latency-sensitive services. This paper describes the challenges we encountered during the […]

RDMA Overview

RDMA Overview

Latency problems are harder because the speed of light is fixed; you can’t bribe God —David Clark 近年來網路頻寬雖然大幅提升,kernel 處理封包的能力卻沒有顯著提高。為了更進一步提高頻寬跟降低延遲,RDMA 和 DPDK 等技術出現,跳過了 kernel 直接處理 packet。本篇將會介紹現今 RDMA 相關的技術,比較,以及一些問題。 High Level Overview RDMA 技術基本上都是把 transport layer offload 到網卡上,避免使用 kernel 做封包處理,把 CPU 從 critical path 中拿除。顧名思義,這可以讓設備直接寫入其他設備的虛擬記憶體,在可控制的環境中達成 10 毫秒左右的傳輸延遲。但是傳統的 RDMA 有兩個很大的缺點: 需要支援 RDMA 的 lossless network,也就是 Infiniband 因而需要在環境中額外放 Infiniband […]

LINE Tokyo 面試心得

LINE Tokyo 面試心得

因緣際會之下在社群朋友的介紹下得知 LINE 有在找 Private Cloud 的 Infrastructure Developer Engineer。剛好 LINE 也使用 OpenStack 並且正在導入 Kubernetes,是我本身經驗比較多的領域,也即將在 2019 大學畢業,就抱著就算沒有上也能增加經驗的想法投了履歷。目前也已經面試完畢並且拿到 offer,決定來寫一篇介紹一下 LINE 面試過程以及一些心得給有興趣加入 LINE 的人參考。 面試內容 職缺:インフラ開発エンジニア(Private Cloud プラットフォーム) 翻譯成英文大概是 Infrastructure development engineer (Private Cloud platform) 面試方式:Skype Pre-test 面試前會有一次簡單的 pre-test,裡面會有幾題簡單的 coding 題目。寫完後後面會需要提供一些資訊,包括對各種 coding 相關 tool 的熟悉度,跟一些面試原因等很基本的問題。大概花個一個小時左右就能夠寫完了,不過寫到的內容後續面試可能會被問到,要注意一下。 第一次面試 第一次面試會是工程師來面試,問題的內容會比較 technical 導向。面試的問題就我來說基本上都是履歷上寫到的經驗,不過我的部分可能比較沒有參考價值,因為我經驗大多都注重在 OpenStack 上面,又因 LINE 的 private cloud 也是用 OpenStack 建的,因此大部分內容都是 […]

Podman 介紹

Podman 介紹

Podman 曾經是 CRI-O project 中的一部分,後來被分離出成為一個獨立 project, libpod。Podman (Pod Manager) 的目標是提供一個跟 Docker 相似體驗的 container CLI,提供給使用者創立和運行 container。 開始之前 我們先來唸一段 All System Go Replacing Docker with Podman 中演講的一段宣言 I promise To say container registries rather than docker registries I promise To say container images rather than docker images I promise To say containers or OCI containers rather than […]