理想のステージ設計のメモ
GitHub を使ってシステムの開発を行う際の理想のステージ設計のメモです。
用意するステージ
- production 環境
- development 環境
- feature 環境
各ステージの役割
共通事項
- データベースなどのシステムが利用する外部リソースは全ての環境で独立しています。
- 利用する外部リソースもコードで管理されており、GitHub にプッシュすると自動的に対応する環境にデプロイが行われます。
production 環境
- ユーザーに提供される環境です。
- master ブランチにマージされたらこの環境に自動的にデプロイされます。
development 環境
- ユーザーに提供されない環境です。
- リリース前に最終確認を行うための環境です。master ブランチとのマージを強制する目的があります。
- データを含めて production 環境と限りなく近づけますが、個人情報はマスクされています。
- develop ブランチにマージされたらこの環境に自動的にデプロイされます。
feature 環境
- ユーザーに提供されない環境です。
- データを含めて production 環境と限りなく近づけますが、個人情報はマスクされています。
- master ブランチと develop ブランチ以外のブランチにプッシュされたら、それぞれのブランチに対応する feature 環境に自動的にデプロイされます。つまり、feature 環境の数は master ブランチと develop ブランチ以外のブランチの数と一致します。
- バックエンドに AWS や GCP のようなクラウドのリソースが利用されていても、全ての feature 環境ごとに作成されます。インフラストラクチャーの構成の変更も各 feature 環境で検証することができます。
開発フロー
- develop ブランチからチェックアウトして新しい開発用のブランチ(feature 環境)を作成します。
- 各 feature 環境で動作確認が完了したら、develop ブランチにマージします。
- develop ブランチで問題が見つからなければ、master ブランチにマージします。
fish shell で全ての Docker コンテナを停止するコマンド
sh -c 'sudo docker stop $(sudo docker ps -a -q)'
Twitter の OAuth で Access Token を得るまでの流れ
コンシューマーは consumer_key と consumer_secret を取得しておく
コンシューマーは consumer_key と consumer_secret を使って request_token(oauth_token) を取得する
コンシューマーは request_token(oauth_token) を使って認可画面の URL を生成する
ユーザーに Twitter の認可画面の URL にアクセスしてもらう
ユーザーに Twitter の認可画面でコンシューマーに対して認可してもらう
Twitter は oauth_verifier を付けてコンシューマーが指定した URL にリダイレクトする
コンシューマーは下記を使って access_token(oauth_token) と access_token_secret(oauth_token_secret) を取得する
- oauth_verifier
- request_token
- request_token_secret
コンシューマーは access_token(oauth_token) と access_token_secret(oauth_token_secret) を使って Twitter API を呼ぶ
古いJenkinsをバージョンアップした際に起動しなくなる現象の解決方法の1つ
openjdk-1.8.0 をインストールする。
docker build コマンドの t オプションでイメージに任意の名前を付けることができる
sudo docker build . -t saitama
.
: カレントディレクトリに存在する Dockerfile を参照する。-t saitama
: 生成するイメージにsaitama
という名前を付ける。
docker run コマンドの例
sudo docker run -d -p 8877:80 -v /home/hoge/moge:/var/www/html php5.6
- Docker コンテナを実行する。
-d
: バックグラウンドで実行する。-p 8877:80
: ホスト側の8877番ボートをDockerコンテナの80番ポートに転送する。言い換えると、ホスト側の8877番ボートにアクセスすれば、Dockerコンテナの80番ポートにアクセスすることができる。-v /home/hoge/moge:/var/www/html
: ホスト側の/home/hoge/moge
ディレクトリをDockerコンテナ内の/var/www/html
にマウントする。言い換えると、ホスト側の/home/hoge/moge
ディレクトリにDockerコンテナ内の/var/www/html
ディレクトリからアクセスできるようになる。php5.6
: コンテナを生成するときに使用するDockerイメージ名を指定する。