https://jawsug-arch.connpass.com/event/136068/
- なぜCI/CDやるのか?
- リードタイムの短縮
- 曖昧性、複雑性の排除
- Accelerate
- LeanとDevOpsの科学
- 継続的デリバリー
- パイプライン像
- プロダクトパイプラインと環境パイプラインの2つありそう
- プロダクトパイプライン:入れるものを作る
- 環境パイプライン:入れる箱を作る
- プロダクトパイプライン
- 開発環境
- ソースコード管理
- ビルド&テスト
- デプロイ
- 環境パイプライン
- 開発環境
- ソースコード(IaaC)
- ビルド&テスト
- デプロイ
Java、SpringBoot
- Windows10 Pro
- IntelliJ
- docker-compose
- MySQL
- Redis
- GitBucket
- Nexus(Maven Repository)
- S3(APIドキュメント)
- Gradle Build
- SonarQube
- JUnit
- jar + shell -> zip -> aws cli -> S3
PHP、Laravel
- Windows10
- VSCode / IntelliJ
- WSL
- PHP
- Redis
- Apache
- GitLab
- Composer
- PHPMD
- PHPUnit
- atoum
- Clouser Complier
- PHP + php.ini + httpd.conf + shell -> zip -> aws cli -> S3
インフラチームがやってた。
- Windows
- VirtualBox
- Ansible
- SVN、ファイルサーバ
- Excelパラメータシート
- RDS
- S3
- なし、手動
- API呼び出しで内製アプリケーションがRDSのパラメータをAWSリソースに反映
- AMIのベースイメージを事前に作っておく(カーネルバージョンアップまでやって固めておく)
- 内製アプリがEC2をkillする
- AutoScaling GroupのAutoHealing契機で以下が走る。内製アプリが諸々を実行する
- EC2のHealthyを検知
- NIC、EBSアタッチ
- AnsibleでEC2上のミドル設定をやる
- CloudWatch logs agentインストール
- ミドルインストール(Java、PHPなど)
- S3経由でアプリをインストール
- アプリを起動(jar / apache restart)
- BlueGreen ReleaseはLBに紐づくAutoScaling Group切り替えをConnection Drainingで実施
- AWSリソースの変更は内製アプリ経由で実行
- ↑とは別の案件で、もろもろ固めたものをPackerでAMIを作ってリリースしているチームもありました