第 78 期 - 認命吧!有一好,就沒兩好!

本週專欄

Multi-Tenancy Kubernetes Cluster Part 1: 認命吧!有一好,就沒兩好!

大家知道其實 Multi-Tenancy 還有分軟的 (Soft) 跟硬的 (Hard) 嗎?那 K8s 到底是哪一種呢?而現在大家為了安全性和可用性都會使用 Multi-Cluster 的做法,但也因此導致維運和管理成本節節上升,那有沒有什麼比較好的解決方案呢?就讓我們透過這篇文章,來了解目前 K8s 在 Multi-Tenancy 所遇到的問題和相對應的解決方案

前端開發

Javascript 非同步 & Event Loop!10 分鐘輕鬆圖解學習!

程式碼搭配簡潔的插圖把 JavaScript 的 Call Stack 和 Callback Queue 講解的很清楚,讀完後不只有了 Event loop 的概念,也理解了 Queue 和 Stack 的資料結構!

What is JavaScript Map?

在 JavaScript 中有許多開發者會直接把 Object 當作 Map 來使用,但是如果把 Object 當作 Map 還是會有一些潛在的缺點,例如 Object 總是會將 Key 轉換成 String。不過在 ES6 的時候 JavaScript 就引入了一種新的 Map,能讓 key 和 value 的對應更加容易!

The Best Free Resources To Learn Web Development

如果你是剛走入 Web 開發的初學者,你一定會對眾多複雜的技術感到不知所措,如果要購買線上課程又擔心自己會看不懂,以及錢錢不開心,而這篇文章列出許多對初學者學習 Web 友善的網站或是 Youtuber 頻道,重點是它們都是免費的!如果想要學程式順便熟悉英文,可以參考看看! 🙌

徹底搞懂Javascript閉包,柯里化,手寫代碼!

JavaScript 的閉包可以說是非常重要的觀念,透過閉包的特性我們可以輕鬆的保存 function 內部變數的值,也因為這樣的特性就可以輕鬆地達到 functional programming 內非常重要的 currying,這篇文章深入帶大家了解閉包以及科里化的流程。

CSS3 Cubic Bezier

最近在研究 css animation 時發現想要讓元素可以忽快忽慢的移動到指定位置可以透過貝茲曲線(cubic bezier)的方式達成,這篇文章深入理解 css animation 是如何利用貝茲曲線達到這些移動效果。

Golang

Golang for Node.js Developers

這個 repository 整理了一堆 Node.js 跟 Go 的範例程式碼,如果你已經會寫 JS 了想來學 Go,因為 Go 真的很簡單好學,看完這個 repo 的 README 應該就差不多會了XD

Must-Bookmarks to become good in Go

如果 Go 已經學到一定程度,想繼續深入的話這篇整理了很多學習資源,包括怎麼寫出高效率的程式、用好指標跟做 profiling 等等,應該夠看好幾個禮拜了XD

Gotchas in the Go Network Packages Defaults

Go 的 network package 有一些預設行為,如果不熟的話可能會不小心被雷到,像預設的 http request 是沒有 timeout 的、而且預設會開啟 keep alive。這篇文章把這些 Go 的預設行為整理起來,如果有一些奇怪的 bug 一直解不掉,不妨可以看看這篇

DevOps

Grafana, Loki, and Tempo will be relicensed to AGPLv3

這幾年因為 AWS 推出了很多使用者喜愛的開源軟體託管服務,因而讓社群這邊群情激憤,紛紛開始改變授權的 License,之前吵得最兇的為 Elastic,然後 AWS 也順便把原來自己開源的 Open Distro for ElasticSearch 正名為 OpenSearch;而隨著 AWS 推出託管的 Prometheus 和 Grafana 之後,Grafana Labs 也跳出來把 Grafana,Loki 和 Tempo 的 License 改成 AGPLv3,不知道未來 AWS 是不是又會搞個 OpenMetric 出來?!

Airbnb Deploys 125,000+ Times per Year with Multicluster Kubernetes

Airbnb 在一開始時,小小的工程團隊構築了 Ruby on Rails 的單體服務,但是隨著公司規模越來越大,問題逐漸因為人員和程式模組上的相依性而發生,而且單體服務在橫向擴充上也不容易,所以他們開始進行改造,從使用 AWS EC2 轉型成 SOA (service-oriented architecture) 開始,然後再接著導入 MicroService,並且建立的 Code Repoistory 的模板,避免工程師重造輪子;後來當然不意外的使用的 K8s,在 2018 初時,他們的 Production Cluster 已經有將近 450 個節點,在 2018 底時,節點個數翻倍成 900 個,他們也開始擔心 Eted 是不是會撐不住,而且公司內節點數量一直翻倍再成長,所以他們後來開始往 Multi-Cluster 的方向前進,並且還做到多個 Cluster 間 Workload 的同步,感覺還滿精彩的,想要知道更詳細的內容也可以看他們在 KubeCon 分享的影片

Announcing Pulumi 3.0

Pulumi 在 IaC 領域裡雖然起步的比較晚,但是追趕的速度還滿快的,從一開始到現在都維持著每一年發布一個大版號更新,最近發布的 3.0 裡,提供了 Pulumi Automation API,讓開發者可以把 IaC 加到 Node.js, Python, Go 和 .NET 用以達成自動化;早期都是直接利用 Terraform 的 Provider 來做事情,現在有持續在構築自己的 Provider 生態圈,包含 Pulumi 原生的 Azure Providers (GA) 和 Google Cloud Provider (Preview),很樂於見到 Pulumi 的蓬勃發展,畢竟有競爭才會有進步!

StarBugs Weekly

StarBugs Weekly 由一群不寫文章就會想要亂花錢,但是又沒有那麼多錢,只好繼續寫文章的開發者所創立。
內容包含 Web 前端、中端、後端、DevOps、產品開發、精實創業,一切跟產品有關的知識,都是我們的守備範圍!

Writers:

  • @HannahLin - 從台灣到矽谷,熱愛前端的工程師女孩。
  • @Kyle老莫 - 無法忍受自己一天不進步的熱血社會菜雞。
  • @Airwaves - Hi~我是 Airwaves,熱愛研究如何造輪子的前端工程師。
  • @Jenny - 我不寫 CSS。

Curators:

  • @Andy - 目標成為用嘴巴工作的工程師,專長為網頁開發以及 K8s。

Maintainers:

  • @GQSM - Hi!我是神 Q 超人,一個先衝再說的男人。
  • @LarryLu - 我是 Larry,傳說中的 0.1 倍工程師!
  • @LukaJoJo - 一名全身都是死角的工程師。
  • @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術。

Feedback

本週呈現主題方式做了一些改變,希望讓讀者能夠更快速精準的找到自己要的資訊。也加入社群活動這個區塊,每週更新社群活動的資訊。如果有任何建議,歡迎私訊 星巴哥技術週刊 FB 粉絲專頁 與我們聯繫。