Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ラクスサービスを支えるAnsibleのこれまでとこれから
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
上畑圭史(Keiji Uehata)
December 07, 2022
Technology
2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ラクスサービスを支えるAnsibleのこれまでとこれから
システムを”楽”に運用したい!〜自動化, CI/CDの道〜 発表資料
上畑圭史(Keiji Uehata)
December 07, 2022
Other Decks in Technology
See All in Technology
1週間、Opus封印でお願いします
kintotechdev
0
170
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
130
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
250
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
270
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
170
Adversary Infrastructure Hunting101
disconinja
0
160
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
780
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
1
520
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
360
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
3
390
Agent × Maestro で始める モバイル E2E 端末準備からテスト実行・結果確認まで
sansantech
PRO
0
210
スクラム祭り2026福井トラック_閉じたループから価値のスパイラルへ
kc_nakanishi
0
170
Featured
See All Featured
Building an army of robots
kneath
307
47k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
350
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
720
How to make the Groovebox
asonas
2
2.5k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Exploring anti-patterns in Rails
aemeredith
4
540
Building Adaptive Systems
keathley
44
3.3k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
Color Theory Basics | Prateek | Gurzu
gurzu
1
500
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Done Done
chrislema
187
17k
Transcript
#RAKUSMeetup ©2022 RAKUS Co., Ltd. ラクスサービスを支える Ansibleの活用 これまでとこ れから 株式会社ラクス
上畑 圭史
#RAKUSMeetup 自己紹介 • ウエハタ ケイジ • 株式会社ラクス インフラ開発部 リードエンジニア •
趣味 「将棋」 息子の将棋教室通いをきっかけに、1年でようやく2級になりました。 目指せ初段!!
#RAKUSMeetup 今回のお話 サーバの構成管理の為に、Ansibleを2018年に導入しました。 導入からの4年間の軌跡やその取り組み内容を紹介します。
#RAKUSMeetup Ansible とは? RedHat社が開発するオープンソースの構成管理ツール [特徴] • YAML記述方式のファイルにサーバやネットワーク機器等の構成情報を書く。その情報 を元にインストールや設定、実行を自動で行う。 • 対象となる環境には専用のエージェントは不要。※サーバの場合は、PythonとSSH接
続環境が必要。 • 様々な機能はモジュール形式によって提供されている(自作も可) • 何度実行しても同じ状態となる冪等性を担保することを意識。 ※シェル系のモジュー ルなど一部担保できないものがある。
#RAKUSMeetup Ansible導入の背景
#RAKUSMeetup 背景 2018年当初ラクスが提供しているサービスのサーバ群の構成情報は管理されていない状態。 ※厳密には管理していたが、完全ではない「部分的な情報の管理」 環境構築方法は。。。 Excelの 設計書・手順書 いにしえ の...Shellスクリ プト
完成!!
#RAKUSMeetup 背景 設計書は陳腐化... 規模が拡大 = 作業コスト・運用リスクは増加 スクリプトは属人化・難読化... 作る時期・人によって違う環境のものも... 破 綻
#RAKUSMeetup Ansible導入の狙い • 「Ansibleのコード」=「現在の状態」の実現 • 構築や改変作業を自動化 [得られる効果] ❏ 陳腐化・属人化排除 ❏
構成情報の一元管理 ❏ 作業コストの低減(時間、教育コスト) ❏ 品質向上
#RAKUSMeetup ChatdealerをAnsible化(2018年)
#RAKUSMeetup ChatdealerをAnsible化(2018年) • Ansible化 ◦ 7〜8種類ある現在のサーバ構成情報を1つのリポジトリに ◦ 構築スクリプトを廃止 ◦ 開発、ステージング、本番のパラメータをそれぞれ管理
◦ 共通実装の統一(OS、ログや監視設定など) • Ansible実行環境を整備 ◦ Ansibleの自動実行 ◦ メンテナンスモードのOn/Off切り替え
#RAKUSMeetup 2019年 Ansible導入促進?
#RAKUSMeetup 2019年 Ansible導入促進? Ansibleの学習コストは他のプログラミング言語と比べても低い ➡記述方式を学べば、構築手順やスクリプトのAnsible化はできる... 各人が独自で実装を進めていった先は??? テンプレートを作ろう 結果: Ansibleコードの属人化・難読化 →
ツールが変わっただけで結果は同じ
#RAKUSMeetup Ansible標準テンプレート化(2019年) ▪Point: 属人化・難読化させない 1. コーディング規約作成(SHOULDとMUSTを定義) あまりガチガチに固めすぎないように配慮が必要
#RAKUSMeetup Ansible標準テンプレート化(2019年) ▪Point: 属人化・難読化させない 2. 分かりやすい記述方法を意識 • 変数名=パラメータ名 • 多くの機能を盛りすぎない
• シェル記述やスクリプトはできるだけ排除し Ansibleのモジュールによる実装に変更
#RAKUSMeetup Ansible標準テンプレート化(2019年) ▪Point: 属人化・難読化させない • 汎用性を意識した実装(ディレクトリ・ファイル名、パラメータ記載場所) ◦ 複製して使いまわせる ◦ 複製後の修正箇所を極力少なく(パラメータ変更のみで実装が終わるのが理想)
#RAKUSMeetup Ansible標準テンプレート化(2019年) 自動化大好きエンジニアLT会 vol.04 https://rakus.connpass.com/event/217909/ 「ラクス共通Ansibleコードテンプレートを作った話」
#RAKUSMeetup Ansible普及期(2020-2021年)
#RAKUSMeetup Ansible普及期(2020-2021年) 標準テンプレートができたことで、各ラクスのサービスでAnsible化が促進 とはいかなかった。
#RAKUSMeetup ▪ハード面(テスト実行環境) 気軽にAnsibleの実行ができる + Ansible実行ターゲット 具体的には。。。 Ansible普及期(2020-2021年) 「多くの人がAnsibleコードを書いていく」のに必要なものを用意 Ansible on
Docker が起動 ステージング 本番 テスト環境 コードをPush
#RAKUSMeetup ▪ハード面(その他) • 構文自動チェック(ansible‐lint, YAML Lint) • 内部テスト・外部テスト実装(ansible‐spec, Behave) •
Ansible実行速度の高速化機能 Ansible普及期(2020-2021年) 「多くの人がAnsibleコードを書いていく」のに必要なものを用意
#RAKUSMeetup ▪ソフト面 標準テンプレート説明ドキュメント Ansible普及期(2020-2021年) • 各roleの機能の説明 • 各パラメータ意味 • 実装例(統一感の為には結構大事)
#RAKUSMeetup ▪ソフト面 標準テンプレート学習環境用意(ハンズオン ドキュメント) Ansible普及期(2020-2021年) アニメーションGit付きの解説 勉強会に参加できないメンバーや後か ら入社した社員の為
#RAKUSMeetup ▪ソフト面(その他) • Ansibleコードレビューの参加 • リリースフロー整備 • Ansible以外の勉強会の開催(DevOps理解、Git、Docker、Jenkins…) Ansible普及期(2020-2021年) 社内システム
徐々にAnsible管理下に
#RAKUSMeetup と後ろを振り返ると • ジョブ管理 関連システムは増えていく... メンバーはまだまだAnsibleの運用だけで手一杯。。。 • DockerによるCI/CD • 自動テスト
#RAKUSMeetup • マジョリティメンバー増加(Ansibleだけじゃなく、周辺機能も) ◦ ドキュメント整備 ◦ ハンズオン開催 ※理解度向上効果が高い ◦ コードレビューの積極参加
まだまだ終わりじゃないぞ(2022年~) • GitOpsによるデプロイ、フローの整備(現行業務フローの置き換え) ◦ 現行リリースフローはステップ数が多く煩雑 • ハード面の充実 ◦ 自動テストOK=リリースOKにしたい ◦ 実行環境の並列化
#RAKUSMeetup まとめ • Ansible化 ◦ 属人化しない仕組み作りが大事(テンプレート化、ルール作り) ◦ 周辺環境の整備(テスト、実行環境等) • 周辺環境が肥大、複雑化しがち
◦ マジョリティメンバーを増やす施策も忘れずに!! ※ドキュメント整備、ハンズオン、フォローアップによる体制作り ◦ 独走禁止!一気に範囲を広げすぎない。
#RAKUSMeetup ご清聴ありがとうございました。