美思 [技術雜談] AWS Cloud 9 IDE 簡介

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

前一陣子看到有網友在問 Cloud 9 是什麼、如何使用等議題。剛好筆者都一直有在用 Cloud 9,而且是付費會員。筆者就自身的經驗來說明 Cloud 9 的使用相關議題,給需要的讀者做一個參考。由於 Cloud 9 已經被 Amazon 併購了,舊版的 Cloud 9 帳號已經停止申請,筆者的文章會以 AWS Cloud 9 為準。

Disclaimer: 筆者和 Cloud 9 無對價關係,本文僅為個人意見。

Cloud 9 是什麼?

大體來說,Cloud 9 是一個雲端整合式開發環境 (IDE),透過瀏覽器即可操作,不需額外安裝軟體,通常只要版本夠新的現代瀏覽器都可以支援。筆者本身是透過 Chrome 操作 Cloud 9,其他的瀏覽器,像是 Firefox、Safari 或 Opera 應該也可以,就請讀者自行嘗試。

Cloud 9 支援的工作環境

Cloud 9 預設有兩種系統,分別是 Amazon Linux 和 Ubuntu 18.04 LTS。而 Amazon Linux 可視為 CentOS 7 的衍生版。所以,Cloud 9 把兩套主流的 GNU/Linux 發行版都包了。除此之外,也可以連到自己的虛擬主機,但筆者沒有試過這個功能,請讀者自己嘗試。

理論上,能在 GNU/Linux 上運行的程式語言,就可以在 Cloud 9 上執行。不過,受限於 Cloud 9 的 IDE 支援,對於不同語言的支援程度有些許差異。對於主流的程式語言,Cloud 9 大抵上都有支援,筆者瀏覽了一下 Cloud 9 的支援清單,甚至一些冷門的語言也在其支援之列,單純就語言層次來說,已經相當夠用。

雖然 Cloud 9 的 IDE 有支援,但不會什麼語言環境都包進來,不過,安裝新的語言環境也不會相當困難,基本上,只要找針對 Ubuntu 18.04 LTS 或 CentOS 7 的教程 (tutorial),大概都可以通用。

筆者前一陣子在該平台寫 ASP.NET Core 網頁程式,雖然 Cloud 9 沒有內建的 .NET Core 環境,透過微軟的 .NET Core 官方網站,很快就可以建立一個開發環境。另外,筆者有一次想在 Cloud 9 環境中使用 MySQL,試了一下子,發現該平台相關權限設置過於嚴格,後來就放棄了。

雖然 Cloud 9 已經預先建立好 Ubuntu 虛擬機器,最好還是要會基本的 GNU/Linux 操作,比較能夠順利使用該平台。像有時候筆者在 Windows 電腦下做事時,也會開 Cloud 9 來用,馬上就有一個現成的 GNU/Linux 環境可用。

Cloud 9 支援的專案類型

由於瀏覽器先天的限制,Cloud 9 能寫的程式類型相對受限;基本上,只能撰寫三類型的程式:(1) 終端機程式 (console application)、(2) 函式庫 (library)、(3) 網頁程式 (web application);跟本地端開發比起來,還是會受到一些限制。

使用過一段時間的 Cloud 9 之後,就可以發現該平台有針對網頁程式去設計。只要把寫好的網頁程式的 IP 掛在 0.0.0.0,port 掛在 8080,就可以即時地預覽該程式,不需要設定網頁伺服器,對於開發早期,這樣的設計可以節省設置環境的時間,專注在程式開發上。經筆者實測,甚至連 Cordova 或 Ionic 這種 hybrid mobile framework 都可以運作。

在 Cloud 9 環境建立專案時,可以選擇某個模板 (template),基本上,模板就是預先建立好的專案,程式設計者可以少打一些樣板 (boilerplate) 程式碼。

有些網友可能會發現不是每種語言都有樣板可用,但有沒有樣板其實不是很重要。首先,很多程式語言都有自己的樣板產生器,不一定要用 Cloud 9 內建的;再者,其實那些樣板也可以自行手動建立;有時候 Cloud 9 建立的樣板不一定符合自己的需求。

Cloud 9 的收費模式

Cloud 9 本身是免費的,Amazon 真正賺的是虛擬主機的費用。如同其他的雲端運算平台,虛擬機器會按照運算資源量及時數來計費。如果只寫小型專案,其實可以開最小的虛機主機,這樣費用不會太高。

此外,如果一段時間不會用到 Cloud 9 工作環境,可以先把 Cloud 9 環境殺掉,日後要用時再重開一個即可。如果時常要設置 shell 的話,可以把設置的過程寫成 shell script,就不用一直重覆地手動設置。像是 shlibs 就是這樣的一個專案。

關於作者

身為資訊領域碩士,美思認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

美思喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,美思將所學寫成文章,放在這個網站上和大家分享。