2022年2月9日に「とことんDevOps勉強会」の第1回を開催しました。第1回にもかかわらず多くの皆さんにご参加いただけました。
今回のとことんDevOps勉強会では「今から始めるDevOps 〜VTJと一緒に始めましょう〜」というテーマで日本仮想化技術株式会社 代表の宮原からお話をさせていただき、その後Slidoで受け付けた質問に回答する時間を設けました。開催前は質問が来るのか心配ですが、多くのご質問をいただき、さまざまな観点からお話をさせていただくことができました。
残念ながら当日ご参加いただけなかった皆さんのために、YouTube Liveのアーカイブ、資料はSlideshareに公開しました。また、当日のQ&Aを整理して回答者の宮原が再度回答を書き起こしました。ご参加いただいた方も、改めて是非ご覧ください。
YouTube Live アーカイブ
Speaker Deck
Q&A まとめ
Q&Aは当日いただいた質問を分類&要約し、回答者の宮原が改めて書き起こしたものです。
DevOpsの定義について
Q: 従来の運用を考慮した設計開発と、最近のDevOpsの違いは何か?
従来のウォーターフォール型の開発であれば、開発は開発、運用は運用と分かれていたが、DevOpsでは開発と運用が一体化して、運用側も継続的に改善を行っていく、また監視などから開発側にフィードバックしていくなどの活動が求められるようになってきている。開発から本番デプロイ、運用までのサイクルが運用においてもグルグルと回るイメージでしょうか。
Q: 「ツールの活用」と「自動化」がDevOpsか?
ツールを使えばDevOpsというわけではないが、これまで手動で行っていたことをツールで自動化することで開発から運用までを効率化するのはDevOpsでは重要なポイントだといえます。
Q: CDの定義とは?継続的デリバリー? 継続的デプロイメント?
CDの定義はかなり拡がってきていて、人やプロジェクトによって定義が異なっている。今回の勉強会用に資料を作成する際にも、以前作成したCDの説明が現状に合っていないので手直しを行い、説明が難しくなってしまったので記述が減ってしまいました。厳密に定義するよりは、プロジェクトの実情に合わせてCI/CDとして何を行うのかを決める方が現実的だと考えます。
Q: DevOpsとCI/CDの差は「Ops」の部分なのか?
CI/CDは仕組みの話であり、開発寄りのお話。それに対してDevOpsはサービス全体をどうするかという話であり、チームを構成する人の話が大きい。そのため、スクラム開発のような開発手法の話と結びつきやすいと思います。
組織文化について
Q: DevOpsやDevSecOpsを導入するにあたり、どのように意識改革していくのか?
すでに廻っているプロジェクトを途中から変えていくのはとても難しい。理想を言えば、これから始まる新規プロジェクトでDevOpsを行っていく方が意識改革もやりやすい。もし、現状に課題があり、改善していくのであれば、ちょっとしたツールの導入など、あえて影響範囲の少ない、やりやすいところから手をつけていくのも一つの手ではないでしょうか。
Q: モダンな開発組織のイメージとは?
やり方に正解は無いので、現状に対して常に改善できないかを考え、必要に応じて変えていくことができるような組織でしょうか。アジャイルな開発手法でいう「自己組織的な」というのが参考になると思います。
Q: 継続的にテストの自動化を実践していくための方法や落とし所は?
テスト自動化を継続的に行っていくのは、大きな難しい課題。我々も今後いろいろと研究していく予定です。
Q: 変革で「変えていくこと」と「いじりまわすこと」の見極めポイントは?
理想をいえば、現状に影響を及ぼさないところで新しいやり方に挑戦してみて、その結果を踏まえて取り入れていくやり方が望ましい。ただ、実際にはそこまでする人的、時間的な余裕は無いことの方が多いでしょうか。影響する範囲を絞って変えていくこと、成果が出てくるのには時間がかかることを覚悟しておくことが必要。課題があることは理解していても、あえて手を付けない、変えないという選択肢もありえるが、課題から来る問題が顕在化してきた時には遅いこともあるので、そのあたりの見極めは本当に難しく、ケースバイケースなので一様には言えない。
ツールの選定・利用について
Q: CIについての温故知新について話してほしい
古いツールはともかく、いくつかのCIツールについての紹介や比較などは今後のとことんDevOps勉強会の主要なテーマになると思います。
Q: ツール選定方法のノウハウを知りたい
ツールにそれぞれ特性があり、どのようなケースに適しているかの見極めは大事だと思うので、VTJとしてもいろいろと調査研究して、その成果を色々な形で皆さんにお伝えしたい。
Q: 新バージョンへ移行コストを認めてもらうにはどうしたら良いのか?
どうしてもツールのバージョンアップなどは現状維持になりがちなので、新しい機能を取り入れるなどの必然性が必要となるでしょう。また、バージョンアップが及ぼす影響などについては、VTJとしてノウハウを蓄積してサポートとして情報提供していきたい。
自動化の推進について
Q: 手作業から自動化への移行方法やその際の苦労を知りたい
まずCIツールを導入してみるのが手っ取り早い。今までのやり方とは大きく異なる場合もあるので、これまでのやり方にはこだわらず、ツールのやり方に合わせることも必要になるでしょう。
Q: CI/CDの導入前に、自動化できる箇所と手動ですべき箇所に分けて、徐々に自動化すべきではないか
現在稼働しているプロジェクトを途中から変えていくのは無理とは言いませんが、本当に難しいと感じます。どちらかといえば、新しい何かを作り始めるときに、CI/CDやDevOpsなどの新しいやり方を最初から取り入れる方がやりやすいと思います。
プロジェクト運営について
Q: DevOpsでシステムが拡大していった際の、保守運用のランニングコスト見積もりはどうすべきか
どのようなシステムが開発され、運用されていくのか、始める前の時点で正確に見積もるのは困難だと思います。実際の案件では、大まかな工数を確保し、優先順位の高いタスクから順次こなしていくようなやり方を取っています。ある程度開発プロセスが安定してくると、それほどやらなければならないことは減ってくるので、必要となる工数も減ってきます。実情に合わせた契約をしたいのであれば、請負ではなく準委任にし、契約期間を3ヶ月単位するなどで実情を見ながら調整するなどの工夫が必要かと思います。
Q: コミットごと、ブランチごとのデプロイをあまり見かけないのですが、皆さんはどうしていますか?
現状、そこまで細かくデプロイしないといけないようなケースは多くないように感じます。ただ今後は、コンテナを活用して開発者毎に開発テスト環境をデプロイするような開発スタイルも増えていくのではないでしょうか。
今後の勉強会について
Q: デモを中心としたツールの紹介をお願いします
実際に動いているものを見た方が早い場合も多いので、今後の勉強会ではデモを見せることを重視していこうと思います。
今後の勉強会について
とことんDevOps勉強会は今後も月一度のペースで開催していく予定です。是非、ConnpassのとことんDevOpsグループに登録いただいて、次回からの参加をお待ちしております。また、DevOpsについて話したい方も募集しております。自社のプロダクトやサービスの宣伝なども歓迎します。TwitterのDMなどでお気軽にご連絡ください。