iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1

前言

大家好我是 Andy,在休息一次的鐵人賽後這次又想不開的來報名了XD
有些讀者在看我以前寫的文章發現我其實都專攻於前端開發的領域,這次為了要挑戰自己就來碰了一個跟前端基本上不會有任何交集的 DevOps 領域,期許自己也能了解每個網站背後的系統原理。

不曉得大家在前端面試的時候有沒有被問過類似這種問題:請你講述使用者在輸入網址時,背後的原理是什麼才能讓使用者可以順利的在瀏覽器中看到網頁呢?
遇到這種問題時勢必要先有系統的相關知識才能順利的回答出來,這也是產生了讓我想要把這個問題可以回答得更好的動力,因此這次的鐵人賽決定挑戰自己不擅長的領域藉以了解整個系統架構!

目標

這次的目標非常簡單,就是要想辦法讓自己的電腦可以完整的跑出一個網站架構,藉由單純的 localhost 網址並利用 80 port 達到前後端溝通,同時也避免了 CORS 問題,不過在達到這個目標之前一定要對系統有初步的認識,所以會介紹目前市面上最常用幾個部屬應用程式的軟體,例如:DockerK8s,最後也會介紹 Nginx 這個反向代理伺服器,來達到負載平衡等作用。

先備知識

這次筆者就不會花太多時間在介紹前端的相關知識了,所以後續的 DEMO code 就不會花太多心力在介紹前端的語法,這次最終目標沒意外也是會利用 React.js 的架構來進行撰寫,如果想了解前端 或 React.js 的世界可以參考以前筆者的鐵人賽系列文~

文章規劃

這次的文章一共可以分為四個部分:

  • Docker(大約 3 天)

利用 3 天的時間介紹整個 Docker 容器化的基本知識,以及如何撰寫 Dockerfile、Docker Compose file 等相關 DEMO,最後再將這些 Docker Image 上傳到 DockerHub 中。

  • K8s(本系列文的重頭戲約 20 天)

從基本的 K8s 的基本介紹到最後的整合都會在這幾天一一介紹,其實 K8s 能玩的東西真的太多了,如果真的要深入研究我想至少可以寫兩屆的鐵人賽吧XD
看來下次的鐵人賽又可以預約報名了(X)

  • Nginx(大約 3 天)

最後再簡單介紹的 Nginx 達到負載平衡,而且也可以利用 Nginx 來 serve 靜態檔案,我們都知道前端的檔案透過 webpack build 完之後會是一堆靜態檔,這時候如果沒有 server 來 serve 這些檔案的話就沒辦法順利把網頁跑起來,利用 Nginx 就可以簡單的達到這件事,同時也可以利用 nginx.conf 的設定讓這個網頁監聽 80 port 可以說是相當方便。

  • DEMO(大約 2 天)

最後再用 2 篇文章的篇幅來實作整個前後端溝通的流程,並結合前面介紹的 K8s 讓整個網站可以利用 K8s 的架構架設起來。

小結

以上就是這次系列文的相關介紹,希望能夠讓非後端出身的工程師也能稍微理解整個背後的系統架構,這次也很開心可以跟著 StarBugs Weekly 星巴哥技術週刊 的夥伴們一起參加鐵人賽,底下有我們隊友系列文的傳送門,有興趣的讀者們不妨也多多點擊追蹤一起學習跟拓展新知識吧!


Starbugs 隊友系列文傳送門


下一篇
Day02-容器化管理工具(Docker)
系列文
前端工程師學習 DevOps 之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
TD
iT邦新手 4 級 ‧ 2021-09-17 08:58:25

已追蹤!

pjchender iT邦新手 3 級 ‧ 2021-09-18 01:30:34 檢舉

TD 也很適合雜食系

我要留言

立即登入留言