Tech-on MeetUp#07「OpsとDevの蜜月な関係」
今回のテーマはDevOpsのOpsにフォーカス。
自分たちのチームでは同じチームでDevもOpsもやっているものの、Devにフォーカスは当たってもOpsのことはインシデントの時にのみフォーカスってことが多かったので日頃からOpsを磨くべく情報収集。
ちょうど No Ops Meetup と #ssmjp があり、No Ops、SRE、波田野さんの「運用業務の設計思想(256ページ!)」を改めて学んで、AWS Summit Tokyo 2019 でもOpsのことを意識しながらセッションを受けてきたので、「入門 監視」もまだまだ話題だし、なんか今年はOps熱い!といい意味で?勘違いしながら、Tech-on当日へ。その熱さが参加者の皆さんにも伝わっていますように。togetterまとめはこちらで。
Ops meets NoOps ~そのとき何が起こったか~
No Uncomfortable Ops(システム運用の嬉しくないことをなくす)。
Microsoft真壁さんによるNo Ops Meetupが提唱した"No Ops"の言葉が持つインパクト、Meetupを通じて先人達の知見を活用してエンジンスタートした組織は多いがギアがなかなか入らない組織も多い。前向きにやめて、時間を作ることが大事。いきなりドリームチームは作れない。はじめチョロチョロなかパッパでいい(笑)。
Cloud Native Trail Map は参考になる。でも順番にやらなくてもいい。
まずObservability & Analysysから始めよう。なぜObservabilityから始めるのか?監視が不要な組織はないし、監視システムをNo Opsコンセプトでつくってみる。Cloud Native Trail Mapに沿って監視システムを育てながら知見を得る。
監視はリソースの死活や利用率だけではなく、サービスとしての死活に着目する。SLI(Service Level Indicator)とSLO(Service Level Objective)をビジネス主幹、プロダクトオーナーと議論して決める。SLI/SLOの合意がないとOpsは雰囲気で可用性100%を求められがち。投資も評価もされにくい。SLAはベンダー間でやってもいいけど社内でやるとギスギスする。
No Ops道を極めていくと、NetflixのChaos Engineeringのような故意に障害を起こして回復性を高めることも可能になり、ますますObservabilityの重要性は高まっていく。
積極的に自分の仕事を無くしていこう。世の中は非効率に溢れている。なくしてもOpsの仕事はある。なくせる「Ops」の価値が高まっていく。
No Opsだけじゃなく俯瞰してOpsを見られている印象のあった真壁さんでしたが、コンテキストとしてはNo Opsで始まり、No Opsで終わる。かつては「No Ops? よろしい、ならば戦争だ」とNo Opsコミュニティに意義を申し立てたセッションが印象的でしたが、今回はNo Opsの言葉のインパクトと取り組みを肯定的に紹介しつつ、最後は「積極的に自分の仕事をなくしていこう」の一言。それこそまさにNo Ops!シビれました。
でも、ObservabilityをCloud Native Trail Mapを突き詰めていっても、まだまだOpsもDevもやることはたくさんあって、目先のToilをなくすことだけにとらわれず、最近よく引用されるOODAループのように、Observabilityを高めることで、Opsがやるべきことも見えてくるような気がしました。
チーム開発におけるDevとOpsのプラクティス
KDDI廣田さんによるチーム開発(スクラム)と運用チーム(複数案件運用)の様々な違いを1つのサービス成功に向けてどのように解決していったかそのプラクティスを紹介。
開発と運用ではゴール(優先するもの)が違う。開発はシステム復旧よりもサービス復旧を優先し、運用は障害原因を特定し、再発防止策を求める。運用メンバーも開発チームに入れて、運用要件もユーザストーリーと同様に優先順位づけ、最初からサービスをよくするためのゴールを統一する。
システムのライフサイクルに合わせて、機能や連携先が増減すれば構成要素もユーザのアクセス傾向も時期により変化する。サービスイン前のテストは無意味になる。システムの変化に合わせて、運用方法も変化するべき。そこで継続的障害訓練のススメである。
障害訓練によってシステムの弱点、運用スキームの弱点も把握でき、継続的に行うことで、システムの変化にも追随できる。
Chaos EngineeringのGremlinを利用。リソース障害、ネットワーク障害、ステート障害を起こすことができる。
訓練は開発と運用(障害対応チーム)合同で実施。障害対応者には何の障害をいつ発生させるかは伝えない。実施することでサービス影響の把握や、障害手順の改善につながる。
システムも開発・運用のチームも絶えず変化し続ける中で、共にビジネスを見ながら、開発と運用の両方の視点を持ち続けつつ、継続的障害訓練によって変化や見落としによって生じた不備を未然に発見し改善する。偶然にも真壁さんの話の中でもChaos Engineeringの話が出てきて、Observabilityを変化への耐性を突き詰めていく先には、常にプロアクティブに動き続けるOpsの姿がありそうです。
SRE はじめの一歩
JX通信社の平瀬さんによるSREをはじめるためにやることの話。
専任のインフラエンジニアがいないので、開発チームがインフラも構築、運用もしていたため属人化しやすかった。扱っているプロダクトが災害・緊急時ほど意味があるサービス。それをSREチームを作ることで属人化の解消、運用負荷の分散を図る。まずSREチームの責務を明確にし、最初の課題として負荷試験環境をCloudFormationで構築。
Slackによるインシデント対応
コネヒトの金城さんによるインシデント発生時にSlackでコミュニケーションを整える話。
小さいチームだとコミュニケーションは取りやすいが、「仕組み化」が過剰コストになりがち。チームの「良さ=コミュニケーション」を活かして、問題の「難しさ」に対応したい。
Slackにテンポラリな「対応専用チャンネル」を作成。作業フローを「インスデント対応心構え」を作成し共有。Slackに全てのステークホルダーをinviteすることで、優先順位も明確化、認識の共有もできる。
MLOps
Microsoft中村さんによるOpsとデータサイエンティスト(DS)の話。
データサイエンティストはローカルでモデルを作っている。
OpsはDevだけでは満足できない。DSも巻き込んでMLOpsへ。
MLOps with Azure Machine Learningでは、DevがGitHubにコードをPushするのと同様に、DSもGitHubにModelをGitHubを通じて作成、デバッグした上でデプロイできる。OpsはDevが作ったappとDSが作ったmodelの両方をMonitoringする。Opsはモテモテw
Microservice x ScrumなBtoB_Webアプリケーション開発現場のOps話
サイバーエージェントの小西さんによるDevとOpsがひとつのチームで愛し合ってるお話ですw
マイクロサービスにチームは分かれているけど、サービスはひとつ。Opsコストが多くなった。
解決策として、チームの切り方を横串に(コンポーネントチームからフィーチャーチームへってことかな?)。組織の切り方によってOpsコストを解消できる。オンコールを含んだスプリント計画じゃないと開発サイクルが崩れる。開発チームでOpsをやると、開発時に一層Opsを意識できる。
ZOZOTOWNを支えるチーム運用について
ZOZOテクノロジーズの鶴見さんによるZOZOTOWNのリプレースチームでの運用についての話。
ZOZOTOWNをモノリシックマイクロサービスへ移行中。リプレースチームでは、インフラ、アプリケーションの再構築、改善、運用(保守・監視)が業務。リプレースチームはクラウドのみで、リプレースされてないオンプレは別チーム。
CI/CDは、GitHub -> wercker Container Registry -> AKS
監視構成(一例)は、K8s,DB -> New Relic,DATADOG -> Slack,pagerduty
メンバーに権限を与え、チーム全員が監視・対応できる環境を作る。
1人1人得意不得意はあるので、得意な箇所は認め合い教え合う。
運用方法を見直したことで、運用にかかる時間が大幅に減り、改善・挑戦に割ける時間が大きく増えた。
Tech-on 1年目にして初のLTは、募集もしてみたものの応募も多くはなく、残りの枠は本編同様、多くの方にご協力いただいてようやく埋まりました。ある程度バランスは考えていたものの、コンテキストまでは事前に把握していなかったため、結果的にもいいバランスになったのではないかと思います。共通して言えることは、チームで自ら考えて、最適な方向へと変化する。それがそれぞれのベストプラクティスに繋がる気がします。DevとOpsが一緒にビジネスを成功させるために一緒にものづくりをして改善に取り組む。まずはそこから始めてみないとですね。
Tech-on1周年クロージング
今回でTech-on 1周年ということで、前半にコミュニティマネージャーの大橋より1年間のあゆみを振り返りました。計6回で600人超の参加者(今回の#07で更に100名超えたので、700名超になりました!)にお越しいただきました。参加いただいた皆さんありがとうございます。
大橋からはコミュニティマネージャーを私にする話もしてくれました。#03頃からコミュニティリーダーとして、開催の取りまとめはしていたのですが、マネージャーとしても更に活動の関心軸、効果を見ながら動いていきたいと思っています。
1周年記念の4つのサプライズ!
1周年に目がけて4つのサプライズを準備したので発表しました!(いやー、なんとか間に合いました。。。)
ポータルサイトにそれぞれ詳しく案内がありますので、のぞいてみてください。Tech-onに参加したことある方は、まずはslackにjoin!
1. 新ロゴ発表!
2. Tech-onポータルサイトオープン!
3. Slack開設!(参加したことある方向け)
4. 運営メンバー募集!
次回予告
次回9/9 Tech-on#08のテーマは「ロボティクス〜人と生活を支えるTech〜」
ロボティクスの現状、ロボットにはどんな技術が使われていて、どうやってできているのか。ロボットによって人の体験、暮らしがどのように変わっていくのか、登壇者の方々にお話いただきます。お楽しみにー!