Slide 1

Slide 1 text

2022/05/13 NRUG (New Relic User Group) SRE支部 Vol.1 〜俺たちのSREとNew Relic〜 Devに力を授けたいSREのあゆみ

Slide 2

Slide 2 text

自己紹介 名前:Tocyuki(としゆき) 所属:株式会社トラストバンク    CTO室 SRE ← 4月から全社組織化🎉 趣味:ギター、柔術(紫帯) SNS:@Tocyuki 2

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

4 ふるさと納税事業 パブリテック事業 エネルギー事業 地域通貨事業 事業領域

Slide 5

Slide 5 text

5 本日お越しのSREな皆様におかれましても Dev(開発者、開発組織、開発環境、etc…)を より良い感じにしたいと思ってはいませんか?

Slide 6

Slide 6 text

6 (意訳)Devに力を授けたいSREのあゆみ

Slide 7

Slide 7 text

7 https://www.wantedly.com/companies/trustbank/post_articles/305115 現職は1人目のSREとして入社しています。

Slide 8

Slide 8 text

今回お話しすること • SRE導入のプラクティス • New Relic導入のプラクティス 8 1人目のSREとしてSRE導入フェーズの開発組織にDevOps文化の 基盤を築くためにやってみてよかったことなどを中心にお話します󰢛

Slide 9

Slide 9 text

SECTION 9 01 SRE導入のプラクティス

Slide 10

Slide 10 text

10 土台の基礎設計は綿密に行う Practice 1.

Slide 11

Slide 11 text

土台、基礎の重要性 11 あらゆる領域において土台選び、基礎設計はとても重要! 疎かにすると運用、変更コストにより破綻し、短命に終わる! どこの土地に建てる? どのような基礎にする? どのような見た目にする? どのような内装にする?

Slide 12

Slide 12 text

• 不可逆的(変更コストが大きい)且つ、与えるインパクトが大き いものを土台として見立て、選定 • 土台選びも大事だが、土台を変えたり選べないことも往々にし てあるため、注力すべきは基礎の設計 何を土台とし、どこに注力すべきか 12

Slide 13

Slide 13 text

土台や基礎設計を変えるのは大変 すでにある土台 新たに導入する土台 13 インフラ移行など、土台の変更はプロジェクト化す るなどして進める必要がありとても大変

Slide 14

Slide 14 text

実際に行った基礎設計の一例 • AWS Landing Zoneを参考にしたOrganizations設計 • 今ならControl Towerに任してしまっても良いかも • AWS SSOによるアカウント運用管理設計 • IAMユーザーは基本的に作成しない • 外部システム、SaaSは可能な限りAWS SSOとSAML/SCIM連携させる • Infrastructure as Code方針設計 • リソース命名規則 • フェーズに応じた技術選定 • ログ基盤設計 • 長期保存、検索、それぞれの用途に応じたシステムの構築 14

Slide 15

Slide 15 text

Practice 1. まとめ • 土台選定および基礎設計をしっかり行うことで運用、変更のコ ストを抑えよう👍 • 基礎設計をしっかり行い、変更に強く、運用しやすいアーキテ クチャにして息の長いシステムにしよう👍 15 SRE導入フェーズでこそ、土台設計を疎かにせずしっかりと行う!

Slide 16

Slide 16 text

16 Infrastructure as Codeを徹底する Practice 2.

Slide 17

Slide 17 text

なぜIaCを徹底すべきなのか? • 途中からやるのは正直面倒くさい • terraform import地獄とかマジ地獄 • IaCを徹底することでIaCによる恩恵が最大化される • ルール化し、徹底することでIaCファーストな文化を醸成 • IaCはDevOps実装のキラーソリューション • DevとOpsの共通言語もCodeであるべき 17

Slide 18

Slide 18 text

IaCの恩恵を感じた一例 18 特殊要件のある開発環境が一時 的にほしいのだが? Terraformの既存定義再利用して追 加要件の定義書いて、環境破棄用 のRevert PRを用意しておしまいっ と。 開発者 SRE 爆速対応あざます。

Slide 19

Slide 19 text

IaCはDevOpsに不可欠 19 許可IPを追加したいんですが、 PR出して良いですか? ていうかPR出しました。 最高かよ 開発者 SRE

Slide 20

Slide 20 text

IaCツールの選定は慎重に 20 開発組織の特性やフェーズに応じたツールを選定しないとスケールしづらい

Slide 21

Slide 21 text

Practice 2. まとめ • IaCはそれ自体が資産、ナレッジとなるので、積極的にIaC ファーストで検討、実装してみよう👍 • 開発組織に応じたIaCツール選定を行おう👍 • 開発者のIaCコントリビューターを増やそう👍 21 SRE導入フェーズだからこそ徹底したIaCができる!

Slide 22

Slide 22 text

22 既存の仕組みを活用して改善する Practice 3.

Slide 23

Slide 23 text

入社時のとあるキャンペーンサイト運用 23 サーバー エンジニア 受領 確認 scp 受領 scp 納品 制作会社

Slide 24

Slide 24 text

改善後のとあるキャンペーンサイト運用 24 制作会社 PR作成 review merge PR merge deploy CDNですでに導入していた CloudflareのPagesをFreeプラン で利用 GitHub Enterprise Cloud

Slide 25

Slide 25 text

入社時の開発環境 25 踏み台サーバー APサーバー GitHub Enterprise Server エンジニア PR作成 ssh git pull PR作成 git pull ssh ssh unit test 1台のサーバーにVirtual Hostで複数の開発環境を 用意している GHES、JenkinsはEC2にホ ストして運用 サーバー接続用のアカウン トはLDAPで管理

Slide 26

Slide 26 text

改善後の開発環境 26 GitHub Enterprise Server エンジニア PR作成 ssm PR ssm unit test deploy GHES、Jenkinsは引き続き 活用 terraform apply codedeploy SSHを廃止してSSM SessionMnagerでのみ接 続できるようにし、AWS SSOでアカウント管理 PR毎に開発環境が構築さ れ、PRクローズか日次バッ チで環境破棄される

Slide 27

Slide 27 text

Practice 3. まとめ • 最初から理想を追い求めると時間がかかり、時間の経過とと もに組織や自身の状況なども変わり、結局改善されないなん てことも起きてしまうので、既存の仕組みを活用することにより 運用変更による負荷軽減、実装までのリードタイム短縮に努 め段階的に改善していこう👍 27 SRE導入フェーズでは継続的に目に見える改善を行うことで各所からの信頼を 積み重ね、その後のスムーズな改善活動の礎としていくことが重要

Slide 28

Slide 28 text

28 パラメーター補完可能なメンバー構成にする Practice 4.

Slide 29

Slide 29 text

SREに求められるスキルセットは多岐にわたる 29 ソフトウェア開発 DB セキュリティ インフラ CI/CD Infrastructure as Code CDN これらすべてのスキルを保有した人材を採用するのは無理ゲー

Slide 30

Slide 30 text

理想と現実(偏見) 理想 現実 30 インフラエンジニア バックエンドエンジニア セキュリティエンジニア インフラエンジニア インフラエンジニア インフラエンジニア シェルスクリプトです べて書きたいのだ が?

Slide 31

Slide 31 text

そもそもSREはSWEである • SRE導入フェーズでは特にインフラスキルが求められがちに なるので、気をつけないとインフラパラメーター強めの人員構 成比のチームになってしまう • SRE文化の醸成、DevOpsの実装の核はソフトウェアエンジニ アリングなのでソフトウェア開発をメインスキルに持つメンバー がいることはとても大事 31

Slide 32

Slide 32 text

Practice 4. まとめ • SREに求められがちなスキルセットを1人で保有するのは無理 なので、スキル補完可能なメンバー構成にしよう👍 • インフラスキルに偏った組織構成ではDevとOpsの溝は中々 埋まらないのでSWEをSREにコンバートさせよう👍 32 これらも中々な無理ゲーかもしれませんが・・・😅

Slide 33

Slide 33 text

SRE導入のプラクティスまとめ 1. 土台の基礎設計は綿密に行う👍 2. Infrastructure as Codeを徹底する👍 3. 既存の仕組みを活用して改善する👍 4. パラメーター補完可能なメンバー構成にする👍 33

Slide 34

Slide 34 text

SECTION 34 02 New Relic導入のプラクティス

Slide 35

Slide 35 text

35 開発関連ツールの導線とまとめる Practice 1.

Slide 36

Slide 36 text

開発で利用するツールは色々ある 36 アカウント運用管理... アクセス先管理... SREは開発ツールのオーナー になりがちなので使うツールが 増えれば増えるほど運用負荷 がかさむ・・・

Slide 37

Slide 37 text

導線をまとめる幸せになれる 37 AWS SSO SAML/SCIM連携だと尚良し

Slide 38

Slide 38 text

Practice 1. まとめ • SAML/SCIM連携で幸せになろう👍 • New Relicも契約プランによりSAML/SCIM連携可能👍 • 各種ツールを使ってもらえるようにするための導線整備にも積 極的に取り組もう👍 38 土台選定(AWS SSO)大事!!

Slide 39

Slide 39 text

39 とりあえずSyntheticsで外形監視 Practice 2.

Slide 40

Slide 40 text

Synthetics導入メチャ簡単です 40

Slide 41

Slide 41 text

Practice 2. まとめ • Syntheticsは導入がめちゃくちゃ簡単なので脳死で導入して おこう👍 41 外形監視大事!!

Slide 42

Slide 42 text

42 New Relicをログ検索基盤としても活用する Practice 3.

Slide 43

Slide 43 text

入社時のログ基盤 43 ログサーバー エンジニア ssh find grep less ssh & log query 各種サーバー alert 踏み台サーバー

Slide 44

Slide 44 text

New Relic Logs導入後のログ基盤 44 ログサーバー エンジニア NRQL Logs log query 各種サーバー alert

Slide 45

Slide 45 text

絞り込み検索 45 Create alert conditionから検 索結果を利用したらアラート 設定がすぐできる!

Slide 46

Slide 46 text

NRQLでの検索 46

Slide 47

Slide 47 text

Practice 3. まとめ • ログ検索基盤としてもNew Relic Logsを活用しよう👍 • ログ検索結果から必要に応じてCreate alert conditionでア ラート設定もどんどんしていこう👍 47

Slide 48

Slide 48 text

New Relic導入のプラクティスまとめ 1. 開発関連ツールの導線とまとめる👍 2. とりあえずSyntheticsで外形監視👍 3. New Relicをログ検索基盤としても活用する👍 48 New Relic活用に向けて開発者とNew Relicとの接点を増やす!

Slide 49

Slide 49 text

SECTION 49 04 おわりに

Slide 50

Slide 50 text

絶賛SRE募集中です! 50

Slide 51

Slide 51 text

No content