分享

Python Taiwan讀書會_10_複習git與介紹vercel

誤打誤撞的ssh總算踏實總算踏實

9月初剛接觸github時,卡在ssh金鑰兩天,到後來被救了,但其實不甚清楚,這件事是不是做過一次就好?是為了什麼做?10月下旬,讀書會的練習多在家裡的mac上進行,到了上週讀書會做了一次git複習與介紹vercel,發現新電腦上git clone不能隨心所欲地用。

這個發現後,我對這個金鑰才有了新的理解,原來在自己的帳號下,在不同的裝置上都要有一把鑰匙,也就是說,某台電腦以後不會再用了(可以想成是公用電腦),就要把對應那台裝置的鑰匙刪除,甚至是透過網路、不用再回到那台電腦前面也能刪除。自從我開始使用evernote 、後來跟著公司用Office365後,我心裡默默地希望自己能夠很帥地不被任何硬體束縛,那一定是酷斃了,也就是說,只要有電腦和網路的地方,我都當自己電腦用,這件事再加入了讀書會之後,知道不只能用我摸得到的那台電腦,還能用網路上千百台電腦,帥度暴增。
我簡單描述一下,給我自己筆記用的,網路上很多牛人描述仔細、乖乖自已找幾個來看。在github的網頁中,做鑰匙的方法和路徑:
自己帳號下的Setting —>SSH and GPC Keys —>畫面上有排小字Check out our guide to generating SSH keys...
在有連結的generating SSH keys 按下去
  1. 點Generating a new SSH key and adding it to the ssh-agent→
  2. 出現要求貼程式碼ssh-keygen -t rsa -b 4096 -C "[email protected]" (請記得換自己的e-mail)
  3. 再去會爆炸的黑色畫面(Terminal或iTerm)上輸入程式碼cat id_rsa.pub (要有.pub啊不然秘密就被看光了)
  4. 最後按左上按鈕「New SSH Keys」,把出現的這排字貼上去
後知後覺也該有知覺了:部署API server
  1. 之前出過「部署Python API server」的作業,講過幾個方法,像是「使用flask_restful framework」 、「使用tornado」 、「使用scaleway serverless」,雖然給了步驟和程式碼,但我從第一步就覺得不知自己在做什麼,自己認為這應該超過我程度太多,原本打算就滑過去,但眼看著複習git的讀書會又再提起部署Python API server這件事,我想我必須正視這個作業了。
  2. 上週新增「用vercel部署你的API server」方法,一開始我照著講義,看著vercel裡自己的dashboard裡似乎也有了同名資料夾,但還是不確定這樣是否算部署成功,於是我把畫面貼上群組中提問,同時表示雖然我照著做,但我心裡一直有「我是誰?我在哪裡?」的疑問,於是王大哥給我做了一整段說明,雖然不指望我馬上能懂,但我筆記還是要先抄好抄滿,說不準我哪天茅塞頓開,他是這樣說的:

「『我是誰?我在哪裡?』是這好問題,如果只是照著做然後成功,可能也沒多大幫助。

這種網站是提供你放 (也是叫部署) 一個程式 (通常是一種服務, 我們英文叫 service,也可以說它是一種 server,API server),透過 http (網頁) 這種方式,可以回傳你要求服務的結果 (in JSON format)。所以, 以後我們用網頁瀏覽器,或寫手機程式,,都可以抓到你要的 data,就像你手機的氣象軟體 app ,你要台北每天的氣象 data,data 不是都在你手機裡,是手機 app 依照你的要求,例如台北 、今天、 氣溫,透過 API 跟 氣象局的 API server 獲取資料,再用可愛的圖示顯示在你手機上。
vercel 只是部署程式服務公司之一。當你有了帳號,你就有個人網頁,就像 FB ㄧ樣,當你部署一次,就像你 FB上的一個 story,沒成功,你可以看到原因,有成功,你就可以看到它, 把你的程式,放在那一個網址。 https://python-api-vercel-kappa.vercel.app/ 以下所有的目錄,例如 https://python-api-vercel-kappa.vercel.app/api/star,像我的https://python-api.ming-taiwan.vercel.app/api/star ,你可以用瀏覽器看,做個比較。通常,沒成功,有可能是 1. 部署沒成功,2. 更有可能是,你程式錯誤。」
針對我把我的進度,用螢幕截圖貼到群組裡,王大哥很快就找出原因:
「我知道你的問題了,你是在 api 目錄下執行 vercel 的。這樣,部署的內容不對,所以 /api/star 下沒有東西,才會出現 404. 404,表示該網址, 沒東西。上到 api 目錄的上一層目錄,也就是專案根目錄下,再執行一次 vercel 就可以了。」
還真的是這樣,後來我把「我是誰?我在哪裡?」這種感覺告訴我同學,以及最近在學部署API Server,說是為了同學們以後合作Project用,不過我們已經有github 為什麼還會需要vercel,當然我順便還要念一下這些軟體人到底有什麼秘密、非得要搞這麼多事。我同學給我的說明我也記在這裡:
「Github是放code的地方,不具備運行code的環境,約是妳買了一台設備、放在庫房裡存放和搬去廠房運作這樣的差別,Github只有庫房管理的功用。Github沒有運行code的能力,你的python放在上面就只是code的展覽品,而在vercel上可以運行。當然可以跳過Github直接放在vercel上面跑,但如果你是要和同學們作交流與協作,那就需要Git的環境以便討論與交流,最終上到vercel的環境是確認過後的運作成品。
雖然vercel我個人是沒有用過,不過他都是serverless architecture的環境,這對於你們專注在function邏輯本身是有幫助的。至少不用花心思在作server環境的佈建,只需要把重點放在AP端。
如果沒有serverless,要撰寫一段Web API,可能要用Django來撰寫,寫完後,要有一個虛擬主機,上面要安裝Django環境、各種設定、要想辦法佈署程式到上面。光環境佈署與設定和管理,又可以再展開超多議題了,所以如果你們使用Serverless架構來達成協作,以聚焦的優點來說,是好的選擇。」
接著我向他自首其實默默地想調過這個部署作業,但已經教了好幾種方法,我到底還能裝看不見多久,他說:
「用不同level的架構,有好有壞。
通常會low-level的,往high-level移動是可以通吃的;但若只接觸到high-level的,往low-level就會碰壁了。但要看使用情境與目的,如果以妳們是要同學間協作,那用high-level的架構是適當的,但如果未來是要在公司內部架設使用,那就必須要了解比較深入的server deploy的作法,能掌握的程度也會比較高。
愈low-level指的是從建構硬體主機、網路環境防火牆等設定、OS環境選擇、架設AP所需的軟體與設定(包含選擇版本、各種相依性套件)、進行佈署程式、測試… 等。
high-level就是前面講的都不用太理會,只需要佈署程式就好 (也就是serverless architecture的優點)。但能自行掌握或調整的部份,以及各種軟硬體的選擇性,相對變得較低,這是缺點。」
(這段話我第一次看完全不懂,是後來追劇時看到CS50單元劇What is the Cloud才好像有點懂)
What is the Cloud?
然後我同學送我連結過週末,明天的主題就是What is the Cloud,多聽幾次,又聽到新的東西,那些聽過的,就好像不會全矇了。
(不管他給我什麼幫我釐清,我一定有能力會先搞不清楚一陣子的)
我想與您們分享我的點點滴滴:Iaas、Pass、Saas 傻傻分不清楚(標題打錯字了,是Paas不是Pass)
分類:學習

評論
上一篇
  • 下一篇
  • 更多文章
    載入中... 沒有更多了