SlideShare a Scribd company logo
IBM Cloud Festa Online 2022 Summer
「プライベート版 Heroku」 の
"dokku" は Cloud Foundry 代
替としてどこまで使えるか?
木村 桂
日本アイ・ビー・エム株式会社
東京ソフトウェア&システム研究所
© 2022 IBM Corporation
2
自己紹介
■木村 桂(きむら けい)
■所属
●日本アイ・ビー・エム
■趣味
●プログラミング
●マンホール
●ポケモンGo
@dotnsf
© 2022 IBM Corporation
3
IBM Cloud 内 Cloud Foundry サービス終了のアナウンス
• 2022/06/02 : 利用者向け発表
• 2022/11/30 : 新規作成最終日
• 2023/05/31 : 既存環境削除
• 2023/06/01 : 利用不可
https://www.ibm.com/blogs/solutions/jp-ja/cloud-foundry-eos/
© 2022 IBM Corporation
4
IBMクラウドで選択できるCloud Native実行環境
Kubernetesベースの
マネージドサービス
オープンソースの
Kubernetesを直感的なユー
ザー・エクスペリエンスと
継続的なクラスタ管理を提
供するマネージド型の
Kubernetesサービス
OpenShiftベースの
マネージドサービス
Red Hat OpenShift は、 エ
ンタープライズ対応の
Kubernetes コンテナプラッ
トフォーム
その OpenShift を Red Hat
と連携して IBM Cloud上 で
ご提供するのマネージド
サービス
IBM Cloud
Kubernetes Service
Red Hat OpenShift
on IBM Cloud
フル・マネージド・
ランタイム
(Knativeベース)
アプリケーション・コード、
バッチ・ジョブ、ファンク
ション、コンテナをサー
バーレス・プラットフォー
ムで実行するフルマネージ
ド・ランタイム・サービス
IBM Cloud
Code Engine
オープンソースの
Platform as a Service
(PaaS)
IBM Cloudの5つのリージョ
ンで使用可能な、IBM Cloud
のマルチテナントCloud
Foundry環境をご提供するマ
ネージド・サービス
IBM Cloud Foundry
2023/06/01
サービス終了
移行先候補
今日の発表内容
+ α
「プライベート版 Heroku」 の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
© 2022 IBM Corporation
5
(参考)"heroku"
■2007 年創業の企業、および同社が開発・運営を行う
PaaS の名称
●The 12 factor app の元
■2010 年、セールスフォース・ドットコムが買収
■2011 年、Ruby 開発者のまつもとゆきひろ氏が
Ruby のチーフアーキテクトとして参画
■Ruby に加えて、Java, Node.js, Scala, Python, PHP,
Go など複数のプログラミング言語をサポート
■データベースは PostgreSQL, MySQL, Cloudant,
CouchBase, MongoDB, Redis をサポート
■標準の Heroku DNS Server によって、
****.herokuapp.com
という FQDN で運用できる(カスタムドメイン利用
可能)
■ソースコードを専用の Git リポジトリに push するこ
とでデプロイ
●$ git push heroku main
■無料利用枠あり。ただし制約も多く、常時稼働環境と
するには工夫が必要 https://jp.heroku.com/what
Cloud Foundry っぽい?
https://12factor.net/ja/
© 2022 IBM Corporation
6
"dokku" の特徴/"dokku" でできること
■Docker をベースに1サーバーで実現する PaaS 環境
●Docker を内部的に利用するが、docker コマンドを利用
することはない
●アプリケーションのデプロイは git で専用オリジンに
push するだけ
●アプリケーションは Docker コンテナとして動く
●アプリケーションコンテナのスケールイン/アウト可能
●DNS やバーチャルホストが内蔵されていて、コンテキス
トルーティングが可能
■heroku と同等の連携サービスが利用可能
●PostgreSQL, MySQL, Redis, ..
■heroku の無料枠ではできないスケールイン/アウトが可
能
■所有する独自ドメインを使った運用が可能
●SSL 証明書は Let's Encrypt で、自動更新設定可
https://dokku.com/
Heroku っぽい
© 2022 IBM Corporation
7
"Cloud Foundry" を使った場合のアーキテクチャ
Cloud Foundry
Warden
IBM Cloud
app1
app2
app3
DNS
db1
db2
db3
ユーザー
開発者/運用者
リポジトリ
app1
app1
© 2022 IBM Corporation
8
"heroku" を使った場合のアーキテクチャ
LXC(?)
heroku
app1
app2
app3
DNS
db1
db2
db3
ユーザー
開発者/運用者
Git リポジトリ
app1
app1
Cloud Foundry そっくり
© 2022 IBM Corporation
9
"dokku" を使った場合のアーキテクチャ
Dokku
Docker
(例えば)Ubuntu
app1
app2
app3
DNS
db1
db2
db3
ユーザー
開発者/運用者
Git リポジトリ
app1
app1
「プライベート版 heroku」
© 2022 IBM Corporation
10
dokku 環境構築手順(独自ドメイン "mydomain.net" を使う場合)
① Ubuntu サーバーを用意
② DNS サーバー(ネームサーバー、Aレコード、CNAMEレコード)を設定
③ バージョンを指定して dokku をインストール
# wget https://raw.githubusercontent.com/dokku/dokku/v0.27.5/bootstrap.sh
# DOKKU_TAG=v0.27.5 bash bootstrap.sh
④ 独自ドメイン登録
# dokku domains:set-global mydomain.net
⑤ 秘密鍵(~/.ssh/id_rsa)/公開鍵(~/.ssh/id_rsa.pub)を作成
# ssh-keygen
# chmod 400 ~/.ssh/id_rsa*
⑥ 秘密鍵/公開鍵を登録
# eval `ssh-agent`
# ssh-add -k ~/.ssh/id_rsa
# cat ~/.ssh/id_rsa.pub | dokku ssh-keys:add admin
⑦ 必要なプラグインをインストール(以下の例は Let's Encrypt プラグイン)
# dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
# dokku config:set --global DOKKU_LETSENCRYPT_EMAIL=(自分のメールアドレス)
詳しい手順はこちらを参照 http://dotnsf.blog.jp/archives/1080504130.html
© 2022 IBM Corporation
11
dokku でアプリケーション(app1)を新規に作る場合の手順
① アプリケーションを新規登録
$ dokku apps:create app1
② ソースコードを用意
$ git clone https://github.com/myname/app1.git
$ cd app1
③ dokku 用のリモートオリジンを追加
$ git remote add dokku dokku@mydomain.net:app1
④ リモートオリジンにプッシュ
$ git push dokku main
⑤ app1 に http:80 でアクセスできるようにプロクシーを設定
$ dokku proxy:ports-add app1 http:80:8080
⑥ app1 に環境変数 XXX を YYY という値で設定
$ dokku config:set app1 XXX=YYY
⑦ app1 の SSL を有効化
$ dokku letsencrypt:enable app1
⑧ HTTPS でアクセスする(ドメインが mydomain.com の場合)
https://app1.mydomain.com/
© 2022 IBM Corporation
12
dokku でアプリケーションを新規に作るデモ
Dokku
Docker
dokku
(IBM Cloud 内の)Ubuntu
dotnsf
GitHub
testapp
testapp
testapp
DNS
ユーザー
yellowmix.net
開発者/運用者
SSH でログイン
© 2022 IBM Corporation
13
dokku でアプリケーションに PostgreSQL DB (db1)をバインドする手順
① データベースを新規作成
$ dokku postgres:create db1
$ dokku postgres:info db1
(↑このコマンドで↓で実行する際の接続文字列が取得できる)
② (必要であれば)データベースに CLI でログインして初期化操作
$ dokku postgres:enter db1
/# psql "postgres://postgres:XXXXXXXX@localhost:5432/db1"
db1=# create table table1( id varchar(100) not null primary key, … );
db1=# q
/# exit
③ dokku のアプリケーション(app1) とデータベース(db1)をバインド
$ dokku postgres:link db1 app1
ここまでの実行によって app1 の実行時環境変数 DATABASE_URL に db1 への
接続文字列が代入された上で app1 が再起動する
詳しい手順はこちらを参照 http://dotnsf.blog.jp/archives/1080505175.html
© 2022 IBM Corporation
14
dokku + GitHub Actions で CICD
① プロジェクトに .github/workflows/deploy.yml ファイルを用意
(サンプル)←8行目の "main" を実際のブランチ名に変更し、
下から2行目のドメイン名と最後の "cicd-gha" 部分を各環境向けに変更する
② パスフレーズなしの秘密鍵/公開鍵を作成
$ ssh-keygen (パスフレーズの入力を求められたらそのまま Enter)
(以下、秘密鍵が ~/.ssh/id_rsa 、公開鍵が ~/.ssh/id_rsa.pub とします)
③ 登録済みの秘密鍵をいったん削除
$ sudo dokku ssh-keys:remove admin
④ 作成した秘密鍵を dokku に改めて登録
$ cat ~/.ssh/id_rsa | sudo dokku ssh-keys:add admin
⑤ 秘密鍵の内容を確認
$ cat ~/.ssh/id_rsa
⑥ GitHub の対象アプリケーションに GitHub Actions 用の秘密鍵を設定
アプリケーションの Settings 画面 - Secrets - Actions を選択し、
New repository secret ボタンを押し、NAME 欄に SSH_PRIVATE_KEY 、
Value 欄に⑤の出力結果をコピペして、最後に Add secret ボタン
詳しい手順はこちらを参照 http://dotnsf.blog.jp/archives/1080537420.html
© 2022 IBM Corporation
15
(おまけ)Node-RED も使えます
PostgreSQL を併用して(フロー情報などを PostgreSQL に格納する形で)
Node-RED 環境を構築することも可能です。
https://github.com/joeartsea/node-red-heroku
https://github.com/kolinz/node-red-heroku
© 2022 IBM Corporation
16
"dokku" のメリット/デメリット
メリット デメリット
Docker ベースのプライベート PaaS Docker の仕様(例えば Dockerfile)に依存
サーバー1台で稼働 大規模利用には向かない
ラズベリーパイでも稼働可能 ラズベリーパイで運用する場合の制約(関連サービ
スが使えない、など)
cf CLI 並みの簡易デプロイ(DNS を意識する必要な
し)
git CLI の知識が必要
(GitHub Actions 等を併用した)CI/CD CI/CD の仕組みは別に必要
HTTPS 対応可能
独自ドメイン対応可能(好きなホスト名が使える)
プライベート PaaS の安心感 IaaS の管理は自分で行う
© 2022 IBM Corporation
17
まとめ
• Cloud Foundry, heroku, dokku はアプリケーション稼働環境としては非常に似ている。
• dokku を使うと1台の Linux サーバーで独自ドメインを使った PaaS 環境を構築できる。
• この Linux サーバーが公開されていればインターネットでも、非公開にすれば機密情報も
扱える社内環境として利用できる
• 実質的に1台のサーバーで複数のアプリケーションを運用/公開できる
• IA サーバーであれば DB やメモリキャッシュ等のプラグインも heroku 同様に利用できる
• 複数のアプリケーションをデプロイする場合、heroku はコスパが良くないので dokku を
検討する余地アリ
• Cloud Foundry の代替として検討する場合、ランタイム部分のみを dokku に移行する
ことで実現できる(DB などはそのまま)
• IBM Cloud の IaaS サーバーとして Ubuntu を使うと(DNS 情報が公開されているので)独自
ドメイン利用時の問題がなく、すぐに運用できる。
「プライベート版 Heroku」 の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
→ サーバーの管理を自分ですることになるが、結構イケてる
© 2022 IBM Corporation
18
補足リンク
• dokku 公式ページ
• https://dokku.com/
• heroku 公式ページ
• https://jp.heroku.com/what
• dokku の導入
• http://dotnsf.blog.jp/archives/1080504130.html
• dokku サービスの導入
• http://dotnsf.blog.jp/archives/1080505175.html
• dokku + GitHub Actions で CI/CD
• http://dotnsf.blog.jp/archives/1080537420.html
© 2022 IBM Corporation
19
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで
提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含
まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。
本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含ま
れている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する
適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではあり
ません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、い
かなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動
によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。
パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマン
スは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多く
の要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の
環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com、IBM Cloud は、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれ
IBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
RedHat,OpenShift は RedHat Inc. の商標または登録商標です。
Cloud Foundry は Cloud Foundry.org Foundation Inc.の商標または登録商標です。
Ubuntu は Canonical Ltd. の商標または登録商標です。
Docker は Docker Inc. の商標または登録商標です。
Dokku は Jeff Lindsay 氏による商標または登録商標でもあります。
Git は Software Freedom Conservancy, Inc.の米国およびその他の国における商標または登録商標です。
GitHub はGitHub Inc. の商標または登録商標です。
Let's Encrypt は Internet Security Research Groupの商標または登録商標です。
PostgreSQL は PostgreSQL Global Development Groupの商標または登録商標です。
MySQL は Oracle Corporation およびその関連企業の商標または登録商標です。
Redis は Salvatore Sanfilippoの商標または登録商標です。
Node-RED は OpenJS Foundation および Node-REDContributors の商標および登録商標です。
© 2022 IBM Corporation
20
ありがとうございました!
質問・感想はツイッターへお願いします
@dotnsf
#icfesta
ハッシュタグをつけてね
「プライベート版 Heroku」の "dokku" は Cloud Foundry 代替としてどこまで使えるか?

More Related Content

What's hot

Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Tatsuo Kudo
 
FIDOのキホン
FIDOのキホンFIDOのキホン
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
#idcon vol.29 - #fidcon WebAuthn, Next Stage
#idcon vol.29 - #fidcon WebAuthn, Next Stage#idcon vol.29 - #fidcon WebAuthn, Next Stage
#idcon vol.29 - #fidcon WebAuthn, Next Stage
Nov Matake
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
 
A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...
A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...
A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...
日本マイクロソフト株式会社
 
ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論
Hyperleger Tokyo Meetup
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
Kosuke Kida
 
TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門
雅也 山本
 
goroutineはどうやって動いているのか
goroutineはどうやって動いているのかgoroutineはどうやって動いているのか
goroutineはどうやって動いているのか
ota42y
 
Fido認証概要説明
Fido認証概要説明Fido認証概要説明
Fido認証概要説明
FIDO Alliance
 
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
Hyperleger Tokyo Meetup
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
Masaru Kurahayashi
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
Hitachi, Ltd. OSS Solution Center.
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
 
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
Ryo Kurauchi
 
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
Brocade
 

What's hot (20)

Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
 
FIDOのキホン
FIDOのキホンFIDOのキホン
FIDOのキホン
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
#idcon vol.29 - #fidcon WebAuthn, Next Stage
#idcon vol.29 - #fidcon WebAuthn, Next Stage#idcon vol.29 - #fidcon WebAuthn, Next Stage
#idcon vol.29 - #fidcon WebAuthn, Next Stage
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
 
A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...
A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...
A16_VB でクラサバシステムの開発をしていた平凡なチームが、どのようにクラウドネイティブプロダクト開発にシフトしアジャイル開発を進めることができたのか...
 
ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論ブロックチェーン間のインターオペラビリティ概論
ブロックチェーン間のインターオペラビリティ概論
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
 
TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門TCP/IPプロトコルスタック自作入門
TCP/IPプロトコルスタック自作入門
 
goroutineはどうやって動いているのか
goroutineはどうやって動いているのかgoroutineはどうやって動いているのか
goroutineはどうやって動いているのか
 
Fido認証概要説明
Fido認証概要説明Fido認証概要説明
Fido認証概要説明
 
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
ブロックチェーン統合ツールCactusとトークンエコノミー実現への期待
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界メタバースのビジネスモデルと技術限界
メタバースのビジネスモデルと技術限界
 
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
“見てわかる” ファイバーチャネルSAN基礎講座(第1弾)~まず理解しよう! 基本の “キ”~
 

More from K Kimura

ThinkPad を自慢できると聞いてやってきました
ThinkPad を自慢できると聞いてやってきましたThinkPad を自慢できると聞いてやってきました
ThinkPad を自慢できると聞いてやってきました
K Kimura
 
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプIBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
K Kimura
 
LINE お絵描きスタンプが NFT 対応するかも
LINE お絵描きスタンプが NFT 対応するかもLINE お絵描きスタンプが NFT 対応するかも
LINE お絵描きスタンプが NFT 対応するかも
K Kimura
 
ICFO2021 コロナ時代のオンラインハンズオン体験
ICFO2021   コロナ時代のオンラインハンズオン体験ICFO2021   コロナ時代のオンラインハンズオン体験
ICFO2021 コロナ時代のオンラインハンズオン体験
K Kimura
 
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
K Kimura
 
マンホールマップ10周年 20200725
マンホールマップ10周年 20200725マンホールマップ10周年 20200725
マンホールマップ10周年 20200725
K Kimura
 
MashupAward6 Manholemap(2010)
MashupAward6 Manholemap(2010)MashupAward6 Manholemap(2010)
MashupAward6 Manholemap(2010)
K Kimura
 
スライドパズルハンズオン資料
スライドパズルハンズオン資料スライドパズルハンズオン資料
スライドパズルハンズオン資料
K Kimura
 
ユーザー投稿型位置情報プロットシステム - マンホールマップ
ユーザー投稿型位置情報プロットシステム - マンホールマップユーザー投稿型位置情報プロットシステム - マンホールマップ
ユーザー投稿型位置情報プロットシステム - マンホールマップ
K Kimura
 
Scratch でゲームプログラミング
Scratch でゲームプログラミングScratch でゲームプログラミング
Scratch でゲームプログラミング
K Kimura
 
空耳アワーマシーンを作ってみた
空耳アワーマシーンを作ってみた空耳アワーマシーンを作ってみた
空耳アワーマシーンを作ってみた
K Kimura
 
生まれ変わるマンホールマップ
生まれ変わるマンホールマップ生まれ変わるマンホールマップ
生まれ変わるマンホールマップ
K Kimura
 
地図データでレースゲームを作って遊ぼう!
地図データでレースゲームを作って遊ぼう!地図データでレースゲームを作って遊ぼう!
地図データでレースゲームを作って遊ぼう!
K Kimura
 
AI先生と外国語会話を練習しよう!
AI先生と外国語会話を練習しよう!AI先生と外国語会話を練習しよう!
AI先生と外国語会話を練習しよう!
K Kimura
 
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
K Kimura
 
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
K Kimura
 
LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519
K Kimura
 
LINE お絵描きハンズオン 2019.04.26
LINE お絵描きハンズオン 2019.04.26LINE お絵描きハンズオン 2019.04.26
LINE お絵描きハンズオン 2019.04.26
K Kimura
 
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVEHyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
K Kimura
 
LINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオンLINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオン
K Kimura
 

More from K Kimura (20)

ThinkPad を自慢できると聞いてやってきました
ThinkPad を自慢できると聞いてやってきましたThinkPad を自慢できると聞いてやってきました
ThinkPad を自慢できると聞いてやってきました
 
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプIBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
 
LINE お絵描きスタンプが NFT 対応するかも
LINE お絵描きスタンプが NFT 対応するかもLINE お絵描きスタンプが NFT 対応するかも
LINE お絵描きスタンプが NFT 対応するかも
 
ICFO2021 コロナ時代のオンラインハンズオン体験
ICFO2021   コロナ時代のオンラインハンズオン体験ICFO2021   コロナ時代のオンラインハンズオン体験
ICFO2021 コロナ時代のオンラインハンズオン体験
 
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
 
マンホールマップ10周年 20200725
マンホールマップ10周年 20200725マンホールマップ10周年 20200725
マンホールマップ10周年 20200725
 
MashupAward6 Manholemap(2010)
MashupAward6 Manholemap(2010)MashupAward6 Manholemap(2010)
MashupAward6 Manholemap(2010)
 
スライドパズルハンズオン資料
スライドパズルハンズオン資料スライドパズルハンズオン資料
スライドパズルハンズオン資料
 
ユーザー投稿型位置情報プロットシステム - マンホールマップ
ユーザー投稿型位置情報プロットシステム - マンホールマップユーザー投稿型位置情報プロットシステム - マンホールマップ
ユーザー投稿型位置情報プロットシステム - マンホールマップ
 
Scratch でゲームプログラミング
Scratch でゲームプログラミングScratch でゲームプログラミング
Scratch でゲームプログラミング
 
空耳アワーマシーンを作ってみた
空耳アワーマシーンを作ってみた空耳アワーマシーンを作ってみた
空耳アワーマシーンを作ってみた
 
生まれ変わるマンホールマップ
生まれ変わるマンホールマップ生まれ変わるマンホールマップ
生まれ変わるマンホールマップ
 
地図データでレースゲームを作って遊ぼう!
地図データでレースゲームを作って遊ぼう!地図データでレースゲームを作って遊ぼう!
地図データでレースゲームを作って遊ぼう!
 
AI先生と外国語会話を練習しよう!
AI先生と外国語会話を練習しよう!AI先生と外国語会話を練習しよう!
AI先生と外国語会話を練習しよう!
 
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
 
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
 
LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519
 
LINE お絵描きハンズオン 2019.04.26
LINE お絵描きハンズオン 2019.04.26LINE お絵描きハンズオン 2019.04.26
LINE お絵描きハンズオン 2019.04.26
 
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVEHyperledger Hands-on 2019-03-30 @ Singularity HIVE
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
 
LINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオンLINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオン
 

「プライベート版 Heroku」の "dokku" は Cloud Foundry 代替としてどこまで使えるか?

  • 1. IBM Cloud Festa Online 2022 Summer 「プライベート版 Heroku」 の "dokku" は Cloud Foundry 代 替としてどこまで使えるか? 木村 桂 日本アイ・ビー・エム株式会社 東京ソフトウェア&システム研究所
  • 2. © 2022 IBM Corporation 2 自己紹介 ■木村 桂(きむら けい) ■所属 ●日本アイ・ビー・エム ■趣味 ●プログラミング ●マンホール ●ポケモンGo @dotnsf
  • 3. © 2022 IBM Corporation 3 IBM Cloud 内 Cloud Foundry サービス終了のアナウンス • 2022/06/02 : 利用者向け発表 • 2022/11/30 : 新規作成最終日 • 2023/05/31 : 既存環境削除 • 2023/06/01 : 利用不可 https://www.ibm.com/blogs/solutions/jp-ja/cloud-foundry-eos/
  • 4. © 2022 IBM Corporation 4 IBMクラウドで選択できるCloud Native実行環境 Kubernetesベースの マネージドサービス オープンソースの Kubernetesを直感的なユー ザー・エクスペリエンスと 継続的なクラスタ管理を提 供するマネージド型の Kubernetesサービス OpenShiftベースの マネージドサービス Red Hat OpenShift は、 エ ンタープライズ対応の Kubernetes コンテナプラッ トフォーム その OpenShift を Red Hat と連携して IBM Cloud上 で ご提供するのマネージド サービス IBM Cloud Kubernetes Service Red Hat OpenShift on IBM Cloud フル・マネージド・ ランタイム (Knativeベース) アプリケーション・コード、 バッチ・ジョブ、ファンク ション、コンテナをサー バーレス・プラットフォー ムで実行するフルマネージ ド・ランタイム・サービス IBM Cloud Code Engine オープンソースの Platform as a Service (PaaS) IBM Cloudの5つのリージョ ンで使用可能な、IBM Cloud のマルチテナントCloud Foundry環境をご提供するマ ネージド・サービス IBM Cloud Foundry 2023/06/01 サービス終了 移行先候補 今日の発表内容 + α 「プライベート版 Heroku」 の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
  • 5. © 2022 IBM Corporation 5 (参考)"heroku" ■2007 年創業の企業、および同社が開発・運営を行う PaaS の名称 ●The 12 factor app の元 ■2010 年、セールスフォース・ドットコムが買収 ■2011 年、Ruby 開発者のまつもとゆきひろ氏が Ruby のチーフアーキテクトとして参画 ■Ruby に加えて、Java, Node.js, Scala, Python, PHP, Go など複数のプログラミング言語をサポート ■データベースは PostgreSQL, MySQL, Cloudant, CouchBase, MongoDB, Redis をサポート ■標準の Heroku DNS Server によって、 ****.herokuapp.com という FQDN で運用できる(カスタムドメイン利用 可能) ■ソースコードを専用の Git リポジトリに push するこ とでデプロイ ●$ git push heroku main ■無料利用枠あり。ただし制約も多く、常時稼働環境と するには工夫が必要 https://jp.heroku.com/what Cloud Foundry っぽい? https://12factor.net/ja/
  • 6. © 2022 IBM Corporation 6 "dokku" の特徴/"dokku" でできること ■Docker をベースに1サーバーで実現する PaaS 環境 ●Docker を内部的に利用するが、docker コマンドを利用 することはない ●アプリケーションのデプロイは git で専用オリジンに push するだけ ●アプリケーションは Docker コンテナとして動く ●アプリケーションコンテナのスケールイン/アウト可能 ●DNS やバーチャルホストが内蔵されていて、コンテキス トルーティングが可能 ■heroku と同等の連携サービスが利用可能 ●PostgreSQL, MySQL, Redis, .. ■heroku の無料枠ではできないスケールイン/アウトが可 能 ■所有する独自ドメインを使った運用が可能 ●SSL 証明書は Let's Encrypt で、自動更新設定可 https://dokku.com/ Heroku っぽい
  • 7. © 2022 IBM Corporation 7 "Cloud Foundry" を使った場合のアーキテクチャ Cloud Foundry Warden IBM Cloud app1 app2 app3 DNS db1 db2 db3 ユーザー 開発者/運用者 リポジトリ app1 app1
  • 8. © 2022 IBM Corporation 8 "heroku" を使った場合のアーキテクチャ LXC(?) heroku app1 app2 app3 DNS db1 db2 db3 ユーザー 開発者/運用者 Git リポジトリ app1 app1 Cloud Foundry そっくり
  • 9. © 2022 IBM Corporation 9 "dokku" を使った場合のアーキテクチャ Dokku Docker (例えば)Ubuntu app1 app2 app3 DNS db1 db2 db3 ユーザー 開発者/運用者 Git リポジトリ app1 app1 「プライベート版 heroku」
  • 10. © 2022 IBM Corporation 10 dokku 環境構築手順(独自ドメイン "mydomain.net" を使う場合) ① Ubuntu サーバーを用意 ② DNS サーバー(ネームサーバー、Aレコード、CNAMEレコード)を設定 ③ バージョンを指定して dokku をインストール # wget https://raw.githubusercontent.com/dokku/dokku/v0.27.5/bootstrap.sh # DOKKU_TAG=v0.27.5 bash bootstrap.sh ④ 独自ドメイン登録 # dokku domains:set-global mydomain.net ⑤ 秘密鍵(~/.ssh/id_rsa)/公開鍵(~/.ssh/id_rsa.pub)を作成 # ssh-keygen # chmod 400 ~/.ssh/id_rsa* ⑥ 秘密鍵/公開鍵を登録 # eval `ssh-agent` # ssh-add -k ~/.ssh/id_rsa # cat ~/.ssh/id_rsa.pub | dokku ssh-keys:add admin ⑦ 必要なプラグインをインストール(以下の例は Let's Encrypt プラグイン) # dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git # dokku config:set --global DOKKU_LETSENCRYPT_EMAIL=(自分のメールアドレス) 詳しい手順はこちらを参照 http://dotnsf.blog.jp/archives/1080504130.html
  • 11. © 2022 IBM Corporation 11 dokku でアプリケーション(app1)を新規に作る場合の手順 ① アプリケーションを新規登録 $ dokku apps:create app1 ② ソースコードを用意 $ git clone https://github.com/myname/app1.git $ cd app1 ③ dokku 用のリモートオリジンを追加 $ git remote add dokku dokku@mydomain.net:app1 ④ リモートオリジンにプッシュ $ git push dokku main ⑤ app1 に http:80 でアクセスできるようにプロクシーを設定 $ dokku proxy:ports-add app1 http:80:8080 ⑥ app1 に環境変数 XXX を YYY という値で設定 $ dokku config:set app1 XXX=YYY ⑦ app1 の SSL を有効化 $ dokku letsencrypt:enable app1 ⑧ HTTPS でアクセスする(ドメインが mydomain.com の場合) https://app1.mydomain.com/
  • 12. © 2022 IBM Corporation 12 dokku でアプリケーションを新規に作るデモ Dokku Docker dokku (IBM Cloud 内の)Ubuntu dotnsf GitHub testapp testapp testapp DNS ユーザー yellowmix.net 開発者/運用者 SSH でログイン
  • 13. © 2022 IBM Corporation 13 dokku でアプリケーションに PostgreSQL DB (db1)をバインドする手順 ① データベースを新規作成 $ dokku postgres:create db1 $ dokku postgres:info db1 (↑このコマンドで↓で実行する際の接続文字列が取得できる) ② (必要であれば)データベースに CLI でログインして初期化操作 $ dokku postgres:enter db1 /# psql "postgres://postgres:XXXXXXXX@localhost:5432/db1" db1=# create table table1( id varchar(100) not null primary key, … ); db1=# q /# exit ③ dokku のアプリケーション(app1) とデータベース(db1)をバインド $ dokku postgres:link db1 app1 ここまでの実行によって app1 の実行時環境変数 DATABASE_URL に db1 への 接続文字列が代入された上で app1 が再起動する 詳しい手順はこちらを参照 http://dotnsf.blog.jp/archives/1080505175.html
  • 14. © 2022 IBM Corporation 14 dokku + GitHub Actions で CICD ① プロジェクトに .github/workflows/deploy.yml ファイルを用意 (サンプル)←8行目の "main" を実際のブランチ名に変更し、 下から2行目のドメイン名と最後の "cicd-gha" 部分を各環境向けに変更する ② パスフレーズなしの秘密鍵/公開鍵を作成 $ ssh-keygen (パスフレーズの入力を求められたらそのまま Enter) (以下、秘密鍵が ~/.ssh/id_rsa 、公開鍵が ~/.ssh/id_rsa.pub とします) ③ 登録済みの秘密鍵をいったん削除 $ sudo dokku ssh-keys:remove admin ④ 作成した秘密鍵を dokku に改めて登録 $ cat ~/.ssh/id_rsa | sudo dokku ssh-keys:add admin ⑤ 秘密鍵の内容を確認 $ cat ~/.ssh/id_rsa ⑥ GitHub の対象アプリケーションに GitHub Actions 用の秘密鍵を設定 アプリケーションの Settings 画面 - Secrets - Actions を選択し、 New repository secret ボタンを押し、NAME 欄に SSH_PRIVATE_KEY 、 Value 欄に⑤の出力結果をコピペして、最後に Add secret ボタン 詳しい手順はこちらを参照 http://dotnsf.blog.jp/archives/1080537420.html
  • 15. © 2022 IBM Corporation 15 (おまけ)Node-RED も使えます PostgreSQL を併用して(フロー情報などを PostgreSQL に格納する形で) Node-RED 環境を構築することも可能です。 https://github.com/joeartsea/node-red-heroku https://github.com/kolinz/node-red-heroku
  • 16. © 2022 IBM Corporation 16 "dokku" のメリット/デメリット メリット デメリット Docker ベースのプライベート PaaS Docker の仕様(例えば Dockerfile)に依存 サーバー1台で稼働 大規模利用には向かない ラズベリーパイでも稼働可能 ラズベリーパイで運用する場合の制約(関連サービ スが使えない、など) cf CLI 並みの簡易デプロイ(DNS を意識する必要な し) git CLI の知識が必要 (GitHub Actions 等を併用した)CI/CD CI/CD の仕組みは別に必要 HTTPS 対応可能 独自ドメイン対応可能(好きなホスト名が使える) プライベート PaaS の安心感 IaaS の管理は自分で行う
  • 17. © 2022 IBM Corporation 17 まとめ • Cloud Foundry, heroku, dokku はアプリケーション稼働環境としては非常に似ている。 • dokku を使うと1台の Linux サーバーで独自ドメインを使った PaaS 環境を構築できる。 • この Linux サーバーが公開されていればインターネットでも、非公開にすれば機密情報も 扱える社内環境として利用できる • 実質的に1台のサーバーで複数のアプリケーションを運用/公開できる • IA サーバーであれば DB やメモリキャッシュ等のプラグインも heroku 同様に利用できる • 複数のアプリケーションをデプロイする場合、heroku はコスパが良くないので dokku を 検討する余地アリ • Cloud Foundry の代替として検討する場合、ランタイム部分のみを dokku に移行する ことで実現できる(DB などはそのまま) • IBM Cloud の IaaS サーバーとして Ubuntu を使うと(DNS 情報が公開されているので)独自 ドメイン利用時の問題がなく、すぐに運用できる。 「プライベート版 Heroku」 の "dokku" は Cloud Foundry 代替としてどこまで使えるか? → サーバーの管理を自分ですることになるが、結構イケてる
  • 18. © 2022 IBM Corporation 18 補足リンク • dokku 公式ページ • https://dokku.com/ • heroku 公式ページ • https://jp.heroku.com/what • dokku の導入 • http://dotnsf.blog.jp/archives/1080504130.html • dokku サービスの導入 • http://dotnsf.blog.jp/archives/1080505175.html • dokku + GitHub Actions で CI/CD • http://dotnsf.blog.jp/archives/1080537420.html
  • 19. © 2022 IBM Corporation 19 ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで 提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含 まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。 本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含ま れている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する 適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではあり ません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、い かなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動 によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマン スは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多く の要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の 環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、IBM Cloud は、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれ IBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 RedHat,OpenShift は RedHat Inc. の商標または登録商標です。 Cloud Foundry は Cloud Foundry.org Foundation Inc.の商標または登録商標です。 Ubuntu は Canonical Ltd. の商標または登録商標です。 Docker は Docker Inc. の商標または登録商標です。 Dokku は Jeff Lindsay 氏による商標または登録商標でもあります。 Git は Software Freedom Conservancy, Inc.の米国およびその他の国における商標または登録商標です。 GitHub はGitHub Inc. の商標または登録商標です。 Let's Encrypt は Internet Security Research Groupの商標または登録商標です。 PostgreSQL は PostgreSQL Global Development Groupの商標または登録商標です。 MySQL は Oracle Corporation およびその関連企業の商標または登録商標です。 Redis は Salvatore Sanfilippoの商標または登録商標です。 Node-RED は OpenJS Foundation および Node-REDContributors の商標および登録商標です。
  • 20. © 2022 IBM Corporation 20 ありがとうございました! 質問・感想はツイッターへお願いします @dotnsf #icfesta ハッシュタグをつけてね

Editor's Notes

  1. - https://cloud.ibm.com/ の dotnsf-testapp ページ - https://dotnsf-testapp.mybluemix.net/ - https://github.com/dotnsf/testapp - SSH(src ディレクトリ) ① https://dotnsf-testapp.mybluemix.net/ を確認  IBM Cloud の dotnsf-testapp ページで環境変数を確認 ② $ dokku apps:list でアプリ一覧   $ dokku apps:create testapp   $ dokku apps:list で testapp が追加されたことを確認 ③ https://github.com/dotnsf/testapp ページを確認   $ git clone https://github.com/dotnsf/testapp   $ cd testapp   $ cat .git/config でオリジンを確認   $ git remote add dokku dokku@yellowmix.net:testapp   $ cat .git/config で dokku が追加されたことを確認 ④ $ git push dokku main ⑤ $ dokku config:show testapp で環境変数一覧   $ dokku config:set testapp FX_URL=https://dotnsf-fxapi.herokuapp.com/   $ dokku config:show testapp で FX_URL が追加されたことを確認 ⑥ $ dokku proxy:ports-add testapp http:80:8080 ⑦ $ dokku letsencrypt:enable testapp ⑧ https://testapp.yellowmix.net/ を確認