© SMS Co., Ltd. 1
PHPカンファレンス小田原 2024
出来らあっ!!(という気持ち)から始めた、
コンテナ化と開発者体験の向上施策
Shota Ito
© SMS Co., Ltd. 2
みなさん
© SMS Co., Ltd. 3
楽しんでますか〜?🍣🍻
© SMS Co., Ltd. 4
🍣🍻を見てふふふってなった方も
なんだろう?ってなった方も
© SMS Co., Ltd. 5
ぜひぜひ仲良くしてください🍻
※MySQL 寿司ビール問題で検索すると色々出てきます
© SMS Co., Ltd. 6
閑話休題
© SMS Co., Ltd. 7
01
02
03
04
05
06
目次
自己紹介とサービス紹介
医療キャリア事業に携わり始めたときのきっかけ
ローカル環境の整備
デプロイフローの整備
全体を巻き込んで行動するときに心がけているマインドと振る舞い
今後の課題
© SMS Co., Ltd. 8
01
自己紹介とサービス紹介
© SMS Co., Ltd. 9
自己紹介
• 株式会社エス・エム・エス プロダクト推進本部 技術推進グループ
• 2023年4月入社(ちょうど今月で1年🎉🎉🎉)
• SRE(最近はPlatform Engineering寄り)
• 群馬県からフルリモートでお仕事中
• X: @st_1t
• 今日がまさかの10周年🎉
伊藤 翔太 / いとう しょうた
© SMS Co., Ltd. 10
エス・エム・エスについて
エス・エム・エスは、
「高齢社会に適した情報インフラを構築することで人々の生活
の質を向上し、社会に貢献し続ける」というミッションを掲
げ、多様な事業を展開しています。
© SMS Co., Ltd. 11
分野 区分 サービス
キャリア 介護キャリア
医療キャリア
介護事業者
ヘルスケア
シニアライフ
海外
*1.柔道整復師、あん摩マッサージ師、はり師、きゅう師のこと
サービス一覧&紹介
介護職向け求人情報
看護師向け
人材紹介
看護師向け
求人情報
介護・医療・福祉の
資格講座情報
PT/OT/ST向け
人材紹介
ケアマネジャー向け
人材紹介
看護学生向け
就職情報
放射線技師向け
人材紹介
高校生・看護学生
向け奨学金情報
臨床検査技師向け
人材紹介
看護師・看護学生向け
コミュニティ
臨床工学技士向け
人材紹介
保育士向け
人材紹介
治療家*1・セラピスト向け
人材紹介
介護事業者向け
経営支援
介護事業の
経営者・管理者向け情報
高齢社会の
調査・研究・情報発信
医療従事者向け医薬情報
治療家*1・セラピスト向け
求人情報
柔道整復師・あはき師
向け受験参考書
人事・組織ソリューション
管理栄養士・栄養士向け
人材紹介
介護職向け人材紹介 介護で働く人の
ためのスクール
介護で悩む人向け
コミュニティ
高齢者向け食事宅配
紹介サービス
高齢者向け住宅
紹介サービス
遠隔指導特定保健指導
サービス
管理栄養士・栄養士向け
コミュニティ
企業の介護離職
防止ソリューション
ICTを活用した
禁煙サポート
認知症患者とその家族
向け認知症情報
認知症予防
ソリューション
認知症予防の
習慣化サポート
遠隔指導重症化予防
サービス
女性の健康経営
サポート
産業保健に
関わる人向け情報
企業向け健康管理
業務サポート
住まいにまつわる
総合情報サイト
葬儀社紹介サービス ケアマネジャー
向けコミュニティ
医療従事者向け人材紹介
(マレーシア、フィリピン、アイルランド、UK、ドイツ等)
看護師向け
キャリアサービス
行動療法に特化した
禁煙サポート
自治体向け調査・
計画策定・予防事業
医療介護業界特化型
ストレスチェック
© SMS Co., Ltd. 12
02
医療キャリア事業に携わり始めたときのきっかけ
© SMS Co., Ltd. 13
医療キャリア事業に携わり始めたときのきっかけ
• 全社SRE業務で医療キャリアの構成を見たときに、介護キャリアチームの良いところを展開
できそうなポイントがいくつかあった
デプロイフローや、コンテナ化、監視設計等
• 入社時は介護キャリア事業のSRE(+アプリ開発)と、全社SREチームを兼務で入社していた
月〜水は介護キャリア事業の業務、木金は全社SRE業務
お、これは大きな改善チャンスでは・・・?
© SMS Co., Ltd. 14
え!!
全社SRE業務をやりながら医療キャリアのインフラ改善を!?
© SMS Co., Ltd. 15
出来らあっ!
© SMS Co., Ltd. 16
まずは将来像を社内で語っていく
© SMS Co., Ltd. 17
まずは将来像を社内で語っていく
やった~~~🙌
※社内Wikiをスターの多い順でソートして7位になるくらい多く、他はREADMEや用語集といった誰もが見る資料が多い
© SMS Co., Ltd. 18
が、
© SMS Co., Ltd. 19
できねえーーーーー!!!
© SMS Co., Ltd. 20
何ができない要因になっていたのか
• 単純に時間がない(キャパシティオーバー)
介護キャリア向けの仕事としてアプリ開発に挑戦したり※1、開発者体験を上げられそうな業務をやってみたり※2
• 全社SREチームから医療キャリアチームのSREへ引っ越し
元々やっていた介護キャリアとも距離が近いこともあり相談してキャリア事業専任SREへ
※1:35歳から挑戦するインフラエンジニアのアプリケーション開発@SMS TECH BLOG
※2:パスワードマネージャを1Passwordへ移行、アンチウィルスソフトウェアの変更検討
© SMS Co., Ltd. 21
03
ローカル環境の整備
© SMS Co., Ltd. 22
ローカル環境の整備@意識したこと
• docker-compose.ymlで定義しているアクセス経路を整理する
- 初期構築時は動くことを優先にしてついホスト側に色んなポートを露出させがち
- 色んなところでアクセス経路を持たせてしまうと、
- トラブルシュートが大変になりがち
- 将来追加するコンテナのポートがバッティングしてしまうかも
- Reverse Proxyを経由させることで、
各Webサービスに名前でアクセスできるようにする
- 例)
- OK
- https://www.local.example.com
- https://mail.local.example.com
- NG
- http://localhost:3000
- http://localhost:8025
© SMS Co., Ltd. 23
ローカル環境の整備@意識したこと
• ドキュメントより仕組み化を徹底する
Makefileでラップしてmakeコマンドで立ち上がるようにする。
- ドキュメントは整備しても更新漏れに気が付きにくい
- コマンド化してあると、失敗したりするので気が付きやすい
- Makefileのヘルプ Tips
- こんな感じで書いておいてあげると、
##以降のコメントをmakeコマンドが拾ってくれる
% make
help: このページを表示
install_commands: 必要なコマンド類をインストール
init: 0から環境を初期構築する
start: 全てのコンテナを起動
stop: 全てのコンテナを停止
down: 全てのコンテナを削除する(MySQLのデータは消えません)
restart: 全てのコンテナを再起動する
sqldef: ローカル環境でスキーマ変更を適用する
log: 全てのコンテナのログをtailし続ける
glog: MySQL general query logを表示する
destroy: 全てのコンテナを削除する(MySQLのデータも消えます)
よくある操作手順はこちら: https://xxxx.example.com
%
help: ## このページを表示
@sed -n -e '/^[^#]*##/ s/^(.*):.*##/1:/p' $(MAKEFILE_LIST)
@echo
@echo 'よくある操作手順はこちら: https://xxxx.example.com'
• 証明書エラーを出さずにちゃんとHTTPS通信できるようにする
Google Chromeで「thisisunsafe」と入力して回避もできるけどちゃんとやる
- mkcertコマンドを利用するとサクッと証明書の発行まで済ませられる
© SMS Co., Ltd. 24
04
デプロイフローの整備
© SMS Co., Ltd. 25
デプロイフローの整備@解決したかった課題
• 意図せず自分以外のコミットもリリースされてしまわないようにしたい
同一サービス内でデプロイタイミングがバッティングすると、他の人の動作確認中のコミットが一緒にリリースされてしまう
可能性があった
→今本番リリースすると何のPRがリリースされるのかわかるようワンクッション挟むようにした
• IDEのSFTP機能でDevelopment環境(EC2)へデプロイする
Development環境にSFTPで反映していたがサーバーへのアップロード漏れや、コミット漏れが発生していた
→複数名で動作確認するための環境へのデプロイはEdge環境やGitHub Actionsでデプロイを仕組み化
• DBのスキーマ変更を人力でやるのを辞めたい
開発環境も本番環境もDBサーバーにログインしてSQLを実行する運用になっていた
→sqldefというツールを利用してGitHub Actionsやmakeでラップして実行するように整備
© SMS Co., Ltd. 26
デプロイフローの整備@整備後の全体像
© SMS Co., Ltd. 27
デプロイフローの整備@デプロイの流れ
© SMS Co., Ltd. 28
デプロイフローの整備@Edge環境
© SMS Co., Ltd. 29
デプロイフローの整備@Edge環境とは?
• Pull Requestをレビュアーが動作確認できるようにするための一時的な環境
- PRを作ったら必ず作成するというよりは、必要な場合に作成する使い方をしています
- UI変更や重めなロジックの変更等
- Labelに「edge環境」を追加するとGitHub ActionsがAWS CloudFormationを使いデプロイ
- PRにコミットが追加されたら更新され、PRがCloseされたら自動で削除される
Edge環境が作られたことを通知 実際のEdge環境
© SMS Co., Ltd. 30
デプロイフローの整備@Edge環境を作るGitHub Actionsの中身
github.event.pull̲request.numberを使ってPR独自の値をenvに仕込んでおく
特定のラベル名の時に実行
envを利用してCloudFormation内のパラメーターを上書き
© SMS Co., Ltd. 31
デプロイフローの整備@DB Migrate
© SMS Co., Ltd. 32
デプロイフローの整備@DB Migrate
• DB Migrateについてはsqldefというツールを利用しています
• Laravelのmigrationではなくsqldefを利用しているのは、
- 既存のmigrationファイルが不足していた
- 0ベースからやるなら、実際のDBを元にしたスキーマ定義を抽出して保守出来る方が確実でやりやすい
- 例)mysqldef -uroot test --export > schema.sql
- dry runができるのが良かった
引用:https://github.com/sqldef/sqldef
© SMS Co., Ltd. 33
デプロイフローの整備@DB Migrate
• Local環境
• $ make db_migrate といった形でmigrateする
• Staging環境
• スキーマファイルを修正したPRを作成するとGitHub ActionsでDry runが実行されコメントされる
• topicブランチをmainブランチにmergeするとStaging環境へスキーマ変更が反映される
• Production環境
• $ make db_migrate_productionといった形でmigrateする
© SMS Co., Ltd. 34
デプロイフローの整備@DB Migrate
ecspressoを使って出力結果内容をGitHub commentに追記
© SMS Co., Ltd. 35
デプロイフローの整備@Deploy Pull Request
© SMS Co., Ltd. 36
デプロイフローの整備@Deploy Pull Request
• 本番環境へデプロイするためのPull Request
- mainブランチ -> deployブランチへの方向で自動生成されるPR
- mainブランチにcommitが追加されると自動でPRのコメントが追加される
© SMS Co., Ltd. 37
03
全体を巻き込んで行動するときに心がけている
マインドと振る舞い
© SMS Co., Ltd. 38
全体を巻き込んで行動するときに心がけているマインドと振る舞い
• 既存のメンバーとシステムに対して最大限リスペクトする
今自分がもらっているお給料は今まで開発、保守、サポートしてくれているメンバーやシステムが発生しているものなので絶対に今
すぐこうすべき!みたいな考え方は捨て、よりよくするために一足飛びでやろうとするのではなく、背景を確認しながら一歩づつ確実
にやっていく。
• 単なる業務の押しつけにならないようにする
アプリ開発者がインフラ構成をどんどん変えられるようになると従来のインフラ作業が減っていきます。
単に業務の押し付けにならないよう、ここを変えられるとお互いどう嬉しいのかをちゃんと語っていくようにしています。
• 積極的にペアワークを誘っていく
Terraformの書き方だけでなく、トラブルシュート等もペアワークして周辺知識を伝えていく
© SMS Co., Ltd. 39
04
今後の課題
© SMS Co., Ltd. 40
今後の課題
• Terraformをもっと色んな人がメンテできるようにしていく
- PRを作ったらterraform plan内容をPRのコメントに追記する
- mainブランチにmergeしたら自動でterraform apply
- renovateを追加してバージョンの更新漏れを防いでいきたい
- Terraform Cloudを検討中
• ガードレールを整備していきたい
- ControlTowerを有効にはしているけど、まだポリシーで絞るところまでは踏み込めていない
© SMS Co., Ltd. 41
今日の話を聞いて少しでも興味があればいつでもお声がけください🎉
• SREの採用募集ページ
今日の発表内容は医療キャリア事業向けですが、他の事業でも募集しています。
• ユニークな制度
- スキルアップ手当(年1回15万円支給)
- MacBook Pro M2 Max(メモリ64GB)貸与 または M3 Max (メモリ64GB以上にて機種検討中)
- 希望者は GitHub Copilot for Business を利用可能
- Slackで技術書のリンクを連絡すると自宅に送付手配をしてもらえます
• ソフトウェアエンジニア - バックエンド (PHP) の採用募集ページ
PHP以外にもRubyを主軸としているチームやJava/Kotlinを使っているチームもあります。
© SMS Co., Ltd. 42
今日の話を聞いて少しでも興味があればいつでもお声がけください🎉
Ask the Speakerのブースでは実際のコードを交えて話せたり、
今後予定してる開発者体験向上の施策や踏み込んだ課題についてお話もできます🙌
© SMS Co., Ltd. 43
今日の話を聞いて少しでも興味があればいつでもお声がけください🎉

PHP-Conference-Odawara-2024-04-000000000

  • 1.
    © SMS Co.,Ltd. 1 PHPカンファレンス小田原 2024 出来らあっ!!(という気持ち)から始めた、 コンテナ化と開発者体験の向上施策 Shota Ito
  • 2.
    © SMS Co.,Ltd. 2 みなさん
  • 3.
    © SMS Co.,Ltd. 3 楽しんでますか〜?🍣🍻
  • 4.
    © SMS Co.,Ltd. 4 🍣🍻を見てふふふってなった方も なんだろう?ってなった方も
  • 5.
    © SMS Co.,Ltd. 5 ぜひぜひ仲良くしてください🍻 ※MySQL 寿司ビール問題で検索すると色々出てきます
  • 6.
    © SMS Co.,Ltd. 6 閑話休題
  • 7.
    © SMS Co.,Ltd. 7 01 02 03 04 05 06 目次 自己紹介とサービス紹介 医療キャリア事業に携わり始めたときのきっかけ ローカル環境の整備 デプロイフローの整備 全体を巻き込んで行動するときに心がけているマインドと振る舞い 今後の課題
  • 8.
    © SMS Co.,Ltd. 8 01 自己紹介とサービス紹介
  • 9.
    © SMS Co.,Ltd. 9 自己紹介 • 株式会社エス・エム・エス プロダクト推進本部 技術推進グループ • 2023年4月入社(ちょうど今月で1年🎉🎉🎉) • SRE(最近はPlatform Engineering寄り) • 群馬県からフルリモートでお仕事中 • X: @st_1t • 今日がまさかの10周年🎉 伊藤 翔太 / いとう しょうた
  • 10.
    © SMS Co.,Ltd. 10 エス・エム・エスについて エス・エム・エスは、 「高齢社会に適した情報インフラを構築することで人々の生活 の質を向上し、社会に貢献し続ける」というミッションを掲 げ、多様な事業を展開しています。
  • 11.
    © SMS Co.,Ltd. 11 分野 区分 サービス キャリア 介護キャリア 医療キャリア 介護事業者 ヘルスケア シニアライフ 海外 *1.柔道整復師、あん摩マッサージ師、はり師、きゅう師のこと サービス一覧&紹介 介護職向け求人情報 看護師向け 人材紹介 看護師向け 求人情報 介護・医療・福祉の 資格講座情報 PT/OT/ST向け 人材紹介 ケアマネジャー向け 人材紹介 看護学生向け 就職情報 放射線技師向け 人材紹介 高校生・看護学生 向け奨学金情報 臨床検査技師向け 人材紹介 看護師・看護学生向け コミュニティ 臨床工学技士向け 人材紹介 保育士向け 人材紹介 治療家*1・セラピスト向け 人材紹介 介護事業者向け 経営支援 介護事業の 経営者・管理者向け情報 高齢社会の 調査・研究・情報発信 医療従事者向け医薬情報 治療家*1・セラピスト向け 求人情報 柔道整復師・あはき師 向け受験参考書 人事・組織ソリューション 管理栄養士・栄養士向け 人材紹介 介護職向け人材紹介 介護で働く人の ためのスクール 介護で悩む人向け コミュニティ 高齢者向け食事宅配 紹介サービス 高齢者向け住宅 紹介サービス 遠隔指導特定保健指導 サービス 管理栄養士・栄養士向け コミュニティ 企業の介護離職 防止ソリューション ICTを活用した 禁煙サポート 認知症患者とその家族 向け認知症情報 認知症予防 ソリューション 認知症予防の 習慣化サポート 遠隔指導重症化予防 サービス 女性の健康経営 サポート 産業保健に 関わる人向け情報 企業向け健康管理 業務サポート 住まいにまつわる 総合情報サイト 葬儀社紹介サービス ケアマネジャー 向けコミュニティ 医療従事者向け人材紹介 (マレーシア、フィリピン、アイルランド、UK、ドイツ等) 看護師向け キャリアサービス 行動療法に特化した 禁煙サポート 自治体向け調査・ 計画策定・予防事業 医療介護業界特化型 ストレスチェック
  • 12.
    © SMS Co.,Ltd. 12 02 医療キャリア事業に携わり始めたときのきっかけ
  • 13.
    © SMS Co.,Ltd. 13 医療キャリア事業に携わり始めたときのきっかけ • 全社SRE業務で医療キャリアの構成を見たときに、介護キャリアチームの良いところを展開 できそうなポイントがいくつかあった デプロイフローや、コンテナ化、監視設計等 • 入社時は介護キャリア事業のSRE(+アプリ開発)と、全社SREチームを兼務で入社していた 月〜水は介護キャリア事業の業務、木金は全社SRE業務 お、これは大きな改善チャンスでは・・・?
  • 14.
    © SMS Co.,Ltd. 14 え!! 全社SRE業務をやりながら医療キャリアのインフラ改善を!?
  • 15.
    © SMS Co.,Ltd. 15 出来らあっ!
  • 16.
    © SMS Co.,Ltd. 16 まずは将来像を社内で語っていく
  • 17.
    © SMS Co.,Ltd. 17 まずは将来像を社内で語っていく やった~~~🙌 ※社内Wikiをスターの多い順でソートして7位になるくらい多く、他はREADMEや用語集といった誰もが見る資料が多い
  • 18.
    © SMS Co.,Ltd. 18 が、
  • 19.
    © SMS Co.,Ltd. 19 できねえーーーーー!!!
  • 20.
    © SMS Co.,Ltd. 20 何ができない要因になっていたのか • 単純に時間がない(キャパシティオーバー) 介護キャリア向けの仕事としてアプリ開発に挑戦したり※1、開発者体験を上げられそうな業務をやってみたり※2 • 全社SREチームから医療キャリアチームのSREへ引っ越し 元々やっていた介護キャリアとも距離が近いこともあり相談してキャリア事業専任SREへ ※1:35歳から挑戦するインフラエンジニアのアプリケーション開発@SMS TECH BLOG ※2:パスワードマネージャを1Passwordへ移行、アンチウィルスソフトウェアの変更検討
  • 21.
    © SMS Co.,Ltd. 21 03 ローカル環境の整備
  • 22.
    © SMS Co.,Ltd. 22 ローカル環境の整備@意識したこと • docker-compose.ymlで定義しているアクセス経路を整理する - 初期構築時は動くことを優先にしてついホスト側に色んなポートを露出させがち - 色んなところでアクセス経路を持たせてしまうと、 - トラブルシュートが大変になりがち - 将来追加するコンテナのポートがバッティングしてしまうかも - Reverse Proxyを経由させることで、 各Webサービスに名前でアクセスできるようにする - 例) - OK - https://www.local.example.com - https://mail.local.example.com - NG - http://localhost:3000 - http://localhost:8025
  • 23.
    © SMS Co.,Ltd. 23 ローカル環境の整備@意識したこと • ドキュメントより仕組み化を徹底する Makefileでラップしてmakeコマンドで立ち上がるようにする。 - ドキュメントは整備しても更新漏れに気が付きにくい - コマンド化してあると、失敗したりするので気が付きやすい - Makefileのヘルプ Tips - こんな感じで書いておいてあげると、 ##以降のコメントをmakeコマンドが拾ってくれる % make help: このページを表示 install_commands: 必要なコマンド類をインストール init: 0から環境を初期構築する start: 全てのコンテナを起動 stop: 全てのコンテナを停止 down: 全てのコンテナを削除する(MySQLのデータは消えません) restart: 全てのコンテナを再起動する sqldef: ローカル環境でスキーマ変更を適用する log: 全てのコンテナのログをtailし続ける glog: MySQL general query logを表示する destroy: 全てのコンテナを削除する(MySQLのデータも消えます) よくある操作手順はこちら: https://xxxx.example.com % help: ## このページを表示 @sed -n -e '/^[^#]*##/ s/^(.*):.*##/1:/p' $(MAKEFILE_LIST) @echo @echo 'よくある操作手順はこちら: https://xxxx.example.com' • 証明書エラーを出さずにちゃんとHTTPS通信できるようにする Google Chromeで「thisisunsafe」と入力して回避もできるけどちゃんとやる - mkcertコマンドを利用するとサクッと証明書の発行まで済ませられる
  • 24.
    © SMS Co.,Ltd. 24 04 デプロイフローの整備
  • 25.
    © SMS Co.,Ltd. 25 デプロイフローの整備@解決したかった課題 • 意図せず自分以外のコミットもリリースされてしまわないようにしたい 同一サービス内でデプロイタイミングがバッティングすると、他の人の動作確認中のコミットが一緒にリリースされてしまう 可能性があった →今本番リリースすると何のPRがリリースされるのかわかるようワンクッション挟むようにした • IDEのSFTP機能でDevelopment環境(EC2)へデプロイする Development環境にSFTPで反映していたがサーバーへのアップロード漏れや、コミット漏れが発生していた →複数名で動作確認するための環境へのデプロイはEdge環境やGitHub Actionsでデプロイを仕組み化 • DBのスキーマ変更を人力でやるのを辞めたい 開発環境も本番環境もDBサーバーにログインしてSQLを実行する運用になっていた →sqldefというツールを利用してGitHub Actionsやmakeでラップして実行するように整備
  • 26.
    © SMS Co.,Ltd. 26 デプロイフローの整備@整備後の全体像
  • 27.
    © SMS Co.,Ltd. 27 デプロイフローの整備@デプロイの流れ
  • 28.
    © SMS Co.,Ltd. 28 デプロイフローの整備@Edge環境
  • 29.
    © SMS Co.,Ltd. 29 デプロイフローの整備@Edge環境とは? • Pull Requestをレビュアーが動作確認できるようにするための一時的な環境 - PRを作ったら必ず作成するというよりは、必要な場合に作成する使い方をしています - UI変更や重めなロジックの変更等 - Labelに「edge環境」を追加するとGitHub ActionsがAWS CloudFormationを使いデプロイ - PRにコミットが追加されたら更新され、PRがCloseされたら自動で削除される Edge環境が作られたことを通知 実際のEdge環境
  • 30.
    © SMS Co.,Ltd. 30 デプロイフローの整備@Edge環境を作るGitHub Actionsの中身 github.event.pull̲request.numberを使ってPR独自の値をenvに仕込んでおく 特定のラベル名の時に実行 envを利用してCloudFormation内のパラメーターを上書き
  • 31.
    © SMS Co.,Ltd. 31 デプロイフローの整備@DB Migrate
  • 32.
    © SMS Co.,Ltd. 32 デプロイフローの整備@DB Migrate • DB Migrateについてはsqldefというツールを利用しています • Laravelのmigrationではなくsqldefを利用しているのは、 - 既存のmigrationファイルが不足していた - 0ベースからやるなら、実際のDBを元にしたスキーマ定義を抽出して保守出来る方が確実でやりやすい - 例)mysqldef -uroot test --export > schema.sql - dry runができるのが良かった 引用:https://github.com/sqldef/sqldef
  • 33.
    © SMS Co.,Ltd. 33 デプロイフローの整備@DB Migrate • Local環境 • $ make db_migrate といった形でmigrateする • Staging環境 • スキーマファイルを修正したPRを作成するとGitHub ActionsでDry runが実行されコメントされる • topicブランチをmainブランチにmergeするとStaging環境へスキーマ変更が反映される • Production環境 • $ make db_migrate_productionといった形でmigrateする
  • 34.
    © SMS Co.,Ltd. 34 デプロイフローの整備@DB Migrate ecspressoを使って出力結果内容をGitHub commentに追記
  • 35.
    © SMS Co.,Ltd. 35 デプロイフローの整備@Deploy Pull Request
  • 36.
    © SMS Co.,Ltd. 36 デプロイフローの整備@Deploy Pull Request • 本番環境へデプロイするためのPull Request - mainブランチ -> deployブランチへの方向で自動生成されるPR - mainブランチにcommitが追加されると自動でPRのコメントが追加される
  • 37.
    © SMS Co.,Ltd. 37 03 全体を巻き込んで行動するときに心がけている マインドと振る舞い
  • 38.
    © SMS Co.,Ltd. 38 全体を巻き込んで行動するときに心がけているマインドと振る舞い • 既存のメンバーとシステムに対して最大限リスペクトする 今自分がもらっているお給料は今まで開発、保守、サポートしてくれているメンバーやシステムが発生しているものなので絶対に今 すぐこうすべき!みたいな考え方は捨て、よりよくするために一足飛びでやろうとするのではなく、背景を確認しながら一歩づつ確実 にやっていく。 • 単なる業務の押しつけにならないようにする アプリ開発者がインフラ構成をどんどん変えられるようになると従来のインフラ作業が減っていきます。 単に業務の押し付けにならないよう、ここを変えられるとお互いどう嬉しいのかをちゃんと語っていくようにしています。 • 積極的にペアワークを誘っていく Terraformの書き方だけでなく、トラブルシュート等もペアワークして周辺知識を伝えていく
  • 39.
    © SMS Co.,Ltd. 39 04 今後の課題
  • 40.
    © SMS Co.,Ltd. 40 今後の課題 • Terraformをもっと色んな人がメンテできるようにしていく - PRを作ったらterraform plan内容をPRのコメントに追記する - mainブランチにmergeしたら自動でterraform apply - renovateを追加してバージョンの更新漏れを防いでいきたい - Terraform Cloudを検討中 • ガードレールを整備していきたい - ControlTowerを有効にはしているけど、まだポリシーで絞るところまでは踏み込めていない
  • 41.
    © SMS Co.,Ltd. 41 今日の話を聞いて少しでも興味があればいつでもお声がけください🎉 • SREの採用募集ページ 今日の発表内容は医療キャリア事業向けですが、他の事業でも募集しています。 • ユニークな制度 - スキルアップ手当(年1回15万円支給) - MacBook Pro M2 Max(メモリ64GB)貸与 または M3 Max (メモリ64GB以上にて機種検討中) - 希望者は GitHub Copilot for Business を利用可能 - Slackで技術書のリンクを連絡すると自宅に送付手配をしてもらえます • ソフトウェアエンジニア - バックエンド (PHP) の採用募集ページ PHP以外にもRubyを主軸としているチームやJava/Kotlinを使っているチームもあります。
  • 42.
    © SMS Co.,Ltd. 42 今日の話を聞いて少しでも興味があればいつでもお声がけください🎉 Ask the Speakerのブースでは実際のコードを交えて話せたり、 今後予定してる開発者体験向上の施策や踏み込んだ課題についてお話もできます🙌
  • 43.
    © SMS Co.,Ltd. 43 今日の話を聞いて少しでも興味があればいつでもお声がけください🎉