幫你打理伺服器環境的 piku

但文件寫的很糟:「The tiniest PaaS you've ever seen. Piku allows you to do git push deployments to your own servers.」。

名字來自於 Dokku,另外應該是用到了 pico 這個數量級詞:

piku, inspired by dokku, allows you do git push deployments to your own servers, no matter how small they are.

這個工具是在「Piku: Allows git push deployments to your own servers (github.com/piku)」這邊看到的,就如同說明提到的,希望透過 git push 就可以發佈軟體。

不過在討論裡面也有人抱怨文件的問題,像是在 id=40625339 這邊就有人提到。

實際到 AWS 上開了一台 EC2 instance 測,看起來就是提供一包 script 把伺服器端設定好,包括了 Let's Encrypt + nginx 以及 SSHGit 相關的設定,接著你可以直接將這台 server 設為 git remote,然後就可以用 git push 推軟體上去了。

對於只是想要跑軟體,而且容易接 CI/CD 的方案來說還算 OK,但如果想要自己客製化 nginx 或是一些工具的情境就不是那麼適用了。

Heroku 的替代方案

八月的時候提到了 Heroku 要開始淘汰掉免費方案 (參考「Heroku 公佈了廢止免費方案的時間表),其中第一波的時間差不多要到了,也就是沒在用的帳號會先在 2022/10/26 開始拔。

在「Heroku Free Alternatives」這邊則是有人整理的各家的替代方案,除了先前提到的 Fly.io 以外,Render 也是個有聲量的方案。

裡面還蠻多沒聽過的,可以找時間看一下有沒有什麼特別的功能...

Heroku 公佈了廢止免費方案的時間表

打開 Hacker News 看到的第一名,Heroku 公佈了廢止免費方案的時間表:「Removal of Heroku free product plans (heroku.com)」,文章在「Removal of Heroku Free Product Plans FAQ」。

沒在用的帳號會在 2022/10/26 開始刪,既有的帳號會在 2022/11/28 終止:

Focus on what's mission-critical: Removal of free dynos, hobby-dev Heroku Postgres and hobby-dev Heroku Data for Redis plans starting November 28, 2022 and inactive account deletion starting October 26, 2022.

取而代之的是針對特定團體條件性的開放,分成三類:學生、非營利組織以及 open source 專案。但前兩個目前方案都還沒出來,要晚點才會公佈;後面的 open source 專案則是要寄信申請。

不過現在好像沒什麼人在用 Heroku 了,大多都是因為以前有在用的人就繼續用,如果要講 "sexy" 的產品 (玩新東西的感覺),Fly.io 應該是比較常見的方案?

DigitalOcean 買下 Nanobox

DigitalOcean 宣佈買下 Nanobox:「Nanobox Joins the DigitalOcean Family」。

Nanobox 是一個類似 Heroku 的服務,提供平台 (Platform) 讓開發者不需要自己架設伺服器,就可以直接把寫好的程式丟上去跑。

這次 DigitalOcean 買下 Nanobox 算是跟他們產品走向一致,提供更上層的應用,降低開發者要接觸營運這塊的門檻。另外之前提供了 PostgreSQL 的服務 (類似 Amazon RDS) 也是類似的想法。

不過 DigitalOcean 的機器速度不快,如果是因為價位而不想用 Heroku 的人,應該也會猶豫... 如果預算不是太大問題的話,其實 Heroku 還蠻好用的?目前想不到有什麼關鍵的優勢...

Algolia 從 Heroku 搬到 GKE 的故事

Algolia 是一個搜尋引擎服務,他可以幫你 index 資料後,你直接 query 他取得結果。

在這篇文章裡 Algolia 決定從 Heroku 搬到 GKE:「The Challenging Migration from Heroku to Google Kubernetes Engine」。

在文章只單純就產品與技術面上的需求在討論,像是一開始討論 IP 白名單的問題:

A good example of this complexity is with IP Whitelisting. One of our customers wanted us to crawl from a fixed IP address so that they could whitelist that IP for high-rate crawling without being throttled by their load balancer. Only two engineers were developing the crawler, so we asked other colleagues to set up an HTTP proxy with a fixed IP address. Yet, as the number of customers grew, many more started asking for the same thing, and our infrastructure team told us it was time for us to take care of it ourselves.

不過我更想知道搬過去後的各類成本差異... 省了多少平台費用,以及多少維護人力的差異,不過看起來沒提到 XD

Heroku CI 正式推出

月初才提到「Heroku 也要進入 CI 市場...」,前幾天就開放使用了:「Heroku CI Is Now Generally Available: Fast, Low Setup CI That’s Easy to Use」。

收費方式是依照 Heroku Pipelines 收費,一個 Heroku Pipelines 是 USD$10/month:

Each CI-enabled Heroku Pipeline is charged just $10/month for an unlimited number of test runs.

比起其他棚是無限量 Travis CI 的 $69/month (1 concurrent job,不限時間),或是 CircleCI 的 Free 方案 (1 concurrent job,限時每個月 1500 分鐘) 或是 USD$50/month (2 concurrent job,不限時間),感覺有些微妙...

感覺還是先繼續用 Travis CI 好了,目前 Open Source Project 的標準,路邊可以隨便檢到很多範例用... (像是用 Google".travis.yml" "language:php" site:github.com 就可以找到很多 PHP 的範例)

Heroku 也要進入 CI 市場...

Heroku 也推出 CI 服務了:「On Building Tools for Developers: Heroku CI」,不過這篇比較有趣的應該是做了不少問卷統計 (Heroku 自己做的,預期會有 bias,心裡有底來看這些資料就好)。

大家最在意的還是各種速度 (第一與第三名):

然後完全是 GitHub 一統天下的感覺:

另外是 Circle CI 打下不少市場,應該是半免費的策略產生的?也許應該看一看跟 Travis CI 的差距... (不過 Travis CI 的 image 居然還只有 12.04 或 14.04 可以挑,這就讓人 orz 了...)

Heroku 支援自動化 Let's Encrypt 了

本來 Heroku 提供的 SSL certificate 是要收費的,現在則是提供 Let's Encrypt 的免費版本,而且提供自動更新 (不過必須是收費的 Dynos):「Announcing Free and Automated SSL Certs For All Paid Dynos」。

Heroku has always made it easy to add SSL encryption to web applications — today’s release of ACM extends that further to automatically generate a TLS certificate issued by Let’s Encrypt for your application’s custom domains.

細節的操作可以參考「Automated Certificate Management」這邊的說明。

Vagrant 1.7 引入的 Push 機制

離上次改版也半年了,Vagrant 1.7 引入了 Push 機制:「Vagrant Push: One Command to Deploy Any Application」。

功能很簡單,就是「把整個目錄傳到指定的位置上」,可以看做是 code deploy 機制。目前支援的通訊協定 Atlas、FTP/SFTP、Heroku 以及自訂 script。

Vagrant 的這個功能有著 Unix philosophy 的想法。功能很簡單,但似乎是以後新功能的墊腳石。code deploy 這個功能現在已經有一堆 open source 產品可以用,如果之後不以此延伸,看起來沒有太大意義。

當然也是順便幫自家產品 Atlas 打廣告...

另外是 Vagrant 這個字的念法,也可以在這篇文章裡的影片看到示範:

Heroku 創辦人 Adam Wiggins 寫的 The Twelve-Factor App

先前在看一些 open source 的 PaaS 文件時看到 Adam Wiggins (Heroku 的創辦人) 寫的「The Twelve-Factor App」。

裡面其實就是 Heroku 對上面跑的 app 的要求,以及 Heroku 在設計產品時的想法,所以跟 Heroku 業務沒有關係的部份也大多都沒寫到 :p

拿來參考與理解想法是 okay 的,但如果要完全照著上面的方法做就未必了。