個人網站砍掉重練
睽違十年,終於再度下定決心,把個人網站做了一次大重寫,也把底層架構整個全部翻新。
讓人感到興奮的新版個人網站架構。
在 Yahoo 工作期間,第一次接觸到 Node.js 搭配 CI/CD 的開發流程,就深深被這套模式給吸引。那時就覺得,這才是網站開發應該有的樣子:網站可以在本機端運行起來,只要檔案一變動,馬上就反應在瀏覽器上,開發完成把程式碼推上 repo 之後,CI/CD 流程自動進行測試,然後自動部署到 staging 機器上,由 QA 進行最後的把關,最後再一鍵自動部署到 production 機器上。當時的個人網站還是以 Apache/PHP 運行的,光是要在本機端開發就不那麼直覺了。同時,當時公司的 CI/CD 是使用 Jenkins 的內部版本,如果要自己去架設維護這套系統,是還蠻殺雞用牛刀的。因此也就只能在公司裡好好享受這樣的開發環境了。
後來到了微軟,網站開發清一色都是圍繞在 .NET, C#, Visual Studio, Windows Server 等等的微軟方案,大概也只能在公司跟著用,難以套用在個人網站上。
再來到了 Google,雖然網站開發表面上用的是 Angular,是個蠻開源的東西,但底層還是奠基於許多很強大的公司內部的生態系統,也是個只能在工作當中好好享受的開發環境。
終於,到了 NVIDIA,第一個被指派的任務,就是把某個重要的內部工具網站整個翻修改寫。由於某個專門在搞網頁的部門推薦使用 Next.js,就硬著頭皮去接觸這個當初並不熟悉的 Node.js + React.js 的框架。而在開發完成後,也順帶把 GitLab 的 CI/CD 給串起來。配合 Ansible 和 Docker,使得運行環境的設定得以自動化和模組化,又讓整件事更加單純和可靠,不用再像以往,重新設定一台新機器都要手動安裝一堆有的沒的,還要擔心在機器裡面操作,一不小心就會把東西搞壞。如今機器壞了也沒差,再開一台,Ansible 一跑,Docker 一上,就都設定好了。甚至,因為有了 Docker 的關係,使得一台機器上同時跑 Apache/PHP 和 Next.js 成為可能,只要前面以 Nginx 來做分流,就有機會讓新舊網站同時並存。這才發現,這一整套唾手可得的方案,不就是自己夢想中網站開發應該有的樣子嗎?沒想到這是有可能以如此廉價、如此優雅的方式辦到的!既然如此,心動不如馬上行動,終於讓個人網站又更接近自己喜歡的樣子一步了!
這時候,再回頭看看 1997 年做的現在看起來很智障的第一代個人網站,有種說不出的感動。沒想到寫網頁可以一路寫到現在,還能靠著這門技術在各大公司之間走跳,一路體驗著各種不同的 web 技術,隨著 web 的技術演進學習成長,應該算是很幸運的人了吧。


San Francisco - Oakland Bay Bridge。由於這次只待一週,每分每秒都很珍貴。下飛機的當晚,平常不苟言笑的 BC 意外地帶我們衝市區的 Twin Peaks,我們也很幸運地看到難得沒有霧的市區夜景。隨後又衝了 Treasure Island,然後是 Union Square 和 Pier 39。大開眼界之餘,也對 BC 徹底改觀。
週日行程第一站,來到一個叫 The Mystery Spot 的景點,有點像水往上流的感覺,利用地形的錯位讓人有一些視覺上的錯覺。
The Mystery Spot 就位於一片森林中,非常好!
接著來到不遠的 Santa Cruz 海邊,有許多海獅、海豹和海鷗,有一點點比較沒有遊客的 Pier 39 的感覺。
在沙灘上散步的海鷗。
週間的重頭戲,就是 Tech Pulse 了!台灣人常喜歡另外取英文名字這件事,其實有時候也容易造成 native speaker 的混淆,名牌被打錯有感而發。
挺著大肚子的梅姊和 Stanford 校長 John L. Hennessy 的對話,沒想到隔天梅姊就生了。
令人害羞的 poster。
Tech Pulse 的晚間活動之一,到 Yahoo 贊助的 49ers Levi's Stadium 參觀。可惜對美式足球不熟,不然這趟 tour 參觀了很貴的貴賓室、球員休息室、甚至從球員休息室一路走出場到中間的比賽場地,就差沒有滿滿的觀眾歡呼迎接我們而已,應該是個難得的經驗吧。
拖 ex-Yahoo 之福,此行意外參觀了百度為了延攬 machine learning 大師 Andrew Ng 所設立的美國研發中心。可惜沒看到大師本人,不過能站在離大師辦公桌只有幾公尺的距離也是相當值得驕傲的。
這些才是此行的主要目的啊...
晚安 Yahoo。
