4 ポイント 投稿者 GN⁺ 2024-06-10 | 1件のコメント | WhatsAppで共有

デモ

ドキュメント: インストール | 使い方 | Procfile | ENV | 例 | ロードマップ | 貢献 | LinuxConf発表 | クイックWebアプリチュートリアル | ディスカッションフォーラム

インストール

  • 簡単インストール: curl https://piku.github.io/get | sh
  • その他のインストール方法: cloud-init および手動インストール方法もある。

プロジェクト活動

  • 安定性: piku は安定している。新しい言語ランタイムの追加やバグ修正時に更新される。
  • Python要件: Python 3.7以上が必要。

動機

  • piku は、ARM ボード上で Heroku/CloudFoundry のようなデプロイ方式を実現したいという目的で開発された。
  • dokkuARM で動作しなかったため、よりシンプルなソリューションが必要だった。
  • pikuARM および Intel アーキテクチャで複数のアプリケーションをデプロイ、管理し、個別にスケールできる。

ワークフロー

  • Herokuに似たワークフロー:
    • git SSHリモートリポジトリを作成: git remote add piku piku@yourserver:appname
    • コードをプッシュ: git push piku master
    • piku がランタイムを判定し依存関係をインストール
    • Procfile を見て関連ワーカーを起動
    • リモートでアプリケーション設定を変更し、ワーカープロセスをスケール可能
    • ENV ファイルにアプリケーションおよび nginx 設定を含められる
    • gh-pages スタイルの静的サイトをデプロイ可能

仮想ホストとSSL

  • 仮想ホスト対応: 同じVPSで複数のアプリをホスティング可能
  • SSL設定: Let's Encrypt を通じてSSL証明書を設定可能

キャッシュと静的パス

  • 静的サイト対応: 特定のURLプレフィックスをファイルシステムのパスに直接マッピング可能
  • キャッシュ: バックエンド応答をキャッシュ可能

対応プラットフォーム

  • POSIX環境: Python、nginxuwsgi、SSHがあるPOSIX環境で動作
  • 主な用途: クラウドサーバー上のマイクロPaaSとして使用

対応ランタイム

  • 対応言語: Python、Node、Clojure、Javaなど
  • 一般ルール: シェルから呼び出せるものであれば piku で実行可能

中核となる価値

  • 低スペックデバイスで動作可能
  • 趣味ユーザーやK-12の学校でも利用しやすい
  • 約1500行の読みやすいコード
  • 関数型コードスタイル
  • 単一依存
  • 12要素アプリ
  • ユーザー体験の簡素化
  • 一般的なユースケースの80%をカバー
  • すべての機能に合理的なデフォルトを提供
  • Raspbian/Debian/Ubuntuの配布パッケージを活用
  • 標準ツール (git, ssh, uwsgi, nginx) を活用
  • 可能な場合は後方互換性を維持

GN⁺の意見

  • 簡単なデプロイ: piku は小規模サーバーでも簡単にデプロイでき、ソフトウェアエンジニアに有用。
  • 多様な言語対応: 複数の言語をサポートしており、さまざまなプロジェクトに適用可能。
  • 低スペックデバイス対応: 低スペックデバイスでも動作し、コスト効率が高い。
  • ユーザー体験: ユーザー体験を簡素化しており、初級エンジニアでも簡単に使える。
  • セキュリティ: Let's Encrypt によるSSL設定でセキュリティ強化が可能。

1件のコメント

 
GN⁺ 2024-06-10
Hacker Newsの意見
  • piku Webアプリチュートリアルの作成者: pikuが大好き。Webアプリのチュートリアルを書き、GitHubの公式piku組織の一部としてリポジトリに含まれている。チュートリアルリンクで確認できる。pikuの動作原理と、ユーザー視点での最小限のPython Webアプリの例を説明している.

  • pikuを初めて知ったユーザー: pikuについて初めて読んだ。git pushでデプロイが始まる感覚はいつも魔法のように感じられる。これより簡単なものはない。

  • Kubernetesプロジェクトをオープンソース化したユーザー: 最近Kubernetes関連のプロジェクトをオープンソース化した。pikuと同じ領域に属するプロジェクトだ。プロジェクトリンク。祝福の言葉を伝える。素晴らしそうだ。

  • Dokkuユーザー: pikuは良さそう。Dokkuもとても安定していた。しかし、Docker依存をなくすとOSの選択に依存することになる。メンテナンスなしで何年も動かすアプリには理想的ではない。特定のOSバージョンが必要になるかもしれない。

  • Cloud Native Buildpacks (CNB) チームメンバー: git pushデプロイとは関係ないが、PaaS体験には関係がある。CNCFのBuildpacksを対象とするCNBをプレビュー中だ。これにより、Herokuのgit pushロジックに似たビルドツールを使って、ローカルでDockerイメージを生成できる。Railsアプリのビルドチュートリアルリンク。フィードバックを求めている。

  • pikuドキュメント更新のお知らせ: pikuの新しく刷新されたドキュメントを確認することを勧める。ドキュメントリンク.

  • プロジェクトの初回コミット時期に驚いたユーザー: 最初のコミットが8年前だと知って驚いた。18か月前にこのプロジェクトを知っていればよかった。Raspberry PiでHerokuのような開発体験を提供する方法を探していた。pikuはまさにその役割を果たしてくれそうだ。

  • gitはデプロイツールではないと強調するユーザー: 「gitはデプロイツールではない」と繰り返し述べる。

  • ground-initの紹介者: メンテナー兼共同著者。シンプルで最小限のデプロイツールが好きなら、ground-initを見てほしい。クラウド初期化に対する現実的なアプローチを提供している。

  • 自動デプロイを設定したユーザー: アプリにコミットがプッシュされるたびにGitHubが呼び出す魔法のURLを追加した。サーバーがgit pullを実行し、pm2がアプリを再読み込みする。小さなプロジェクトには向いている。

  • 無停止デプロイについて質問するユーザー: pikuが無停止デプロイをどのように処理するのか気になっている。たとえば、Pythonサービスがnginxの背後でポート8080で動いているとき、同じポートで新しいインスタンスに切り替える方法を知りたい。