$30 off During Our Annual Pro Sale. View Details »

Devに力を授けたいSREのあゆみ / SRE that wants to empower developers

Devに力を授けたいSREのあゆみ / SRE that wants to empower developers

NRUG (New Relic User Group) SRE支部 Vol.1 〜俺たちのSREとNew Relic〜

Tocyuki

May 13, 2022
Tweet

More Decks by Tocyuki

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  40. Synthetics導入メチャ簡単です
    40

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  46. NRQLでの検索
    46

    View Slide

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

    View Slide

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

    View Slide

  49. SECTION
    49
    04 おわりに

    View Slide

  50. 絶賛SRE募集中です!
    50

    View Slide

  51. View Slide