Reading Time: 1 minutes
近年、システム開発においてDevOpsという手法が注目を集めています。
顧客に迅速に価値を届けるために有効とされるDevOpsですが、国内の開発現場にはまだ、浸透しているとは言えません。
まだ、DevOpsを採用するうえでの壁があるためです。
この記事では、DevOpsを取り入れるうえでの課題と、課題への対応策までを解説します。
DevOpsの概要
DevOpsはDevelopment and Operationsの略語で、ソフトウェアやITシステムの開発手法のひとつです。
システムの開発担当(Development)と運用担当(Operation)が連携し、迅速に開発を進める点に特徴があります。
そもそもDevOpsが生まれる以前、システム担当と運用担当は連携どころか、対立することも珍しくありませんでした。
その理由は両者の開発担当の考え方の違いにあります。
基本的な開発担当の目的は「迅速にシステムを開発すること」で、一方の運用担当の目的は「システムを安定的に提供すること」とされます。
そのため、たとえば開発担当が新しい機能を追加しようとすると、運用担当としては安定性を損なうリスクがあるとして受け入れがたい、というように対立が出来やすい構造となっていました。
ところが、近年になって顧客ニーズの変化が早くなると、この従来の方法に限界が見えてきます。
特に、一般消費者が使うようなITサービス(いわゆるビジネスIT)の変化は急激になりました。
次々と新しいWebサービスやスマホアプリが生まれ、消費者はそれらを手軽に試せます。
システムを提供する側のIT企業としても、どんどんサービスを改良していかないと市場に取り残されてしまう、という危機感を覚えざるを得ない状況となりました。
そこで、開発担当と運用担当で連携し、迅速にシステムを開発するためのDevOpsが生まれました。
ますます変化するITの時代に対応し、DevOpsの注目度も高まっています。
DevOpsの課題
DevOpsの関心は高いにも関わらず、いまだ多くの企業はDevOpsの有効活用には至っていません。
日経xTECHに掲載された野村総合研究所の神原貴氏のコラムによると、DevOpsの導入度について、以下のようになっています。
野村総合研究所が2019年に実施した「ユーザ企業のIT活用実態調査」(394社が回答)によると、(中略)DevOpsについては「導入済み(または推進中)」の企業が8.6%、「導入を検討中」が10.4%、「今後検討したい」が19.8%という結果になった。
引用元:DXを支えるアジャイルとDevOps、開発プロセス自動化の基本を理解 | 日経クロステック(xTECH)
DevOps採用を阻む課題は一体なんでしょうか。
よく取り上げられるのは以下の4点です。
それぞれ詳しく見ていきましょう。
組織文化が未成熟
多くの組織で課題と感じているのが、組織文化に関する問題です。
DevOpsを既に導入している組織でも、「部署、個人ごとにDevOpsの理解度が異なる」、あるいは「組織全体に考え方や手法を広めるのが難しい」と感じることは少なくありません。
サービス品質の確保が困難
DevOpsにおいてはサービスの品質を保つことも、従来より難易度が高いとされています。
その理由のひとつが、DevOpsのメリットでもある開発スピードです。
前述のように、DevOpsは短いスパンでのシステム改修によって、迅速な開発を進めることを特徴としています。
これを実現する副作用として、従来行っていたリリースごとの綿密な設計や、大規模なテストの実施は難しくなります。
その結果として、テストの代わりとなる新たな工夫をしなければ、不具合を抱えたままリリースしてしまう危険が高まってしまうのです。
セキュリティー対策の手間
セキュリティー対策の課題も重要です。
従来の、頻繁な改修を予定していないソフトウェア開発の場合は、リリース前のテスト時にセキュリティー診断を実施することが一般的でした。
ところがDevOpsでは、高い頻度でソフトウェアの改修・リリースを繰り返します。
このリリース時に毎回、セキュリティー診断を実施するのは手間がかかりすぎてしまうのです。
短いリリースサイクルと、セキュリティーの確保をどう両立させていくか、という課題に対応しなければなりません。
スケジュールが流動的
DevOpsでは、スケジュールが流動的になりやすいといえます。
従来の開発手法(いわゆるウォーターフォールモデル)では、「設計」→「コーディング」→「テスト」などの大まかな段階を追っていきます。
それぞれのステージで達成すべき内容が決まっているため、進捗管理が容易にできました。
それに対しDevOpsでは、頻繁に改修を行うことから、スケジュール全体のどこまで進んでいるかの把握が難しくなります。
また、実際の運用を進めながら改修を進めるため、事前に想定していなかったリリースが入ることも珍しくありません。
DevOpsの課題への対応策
紹介した4つの課題への対応策を考えてみましょう。
「組織文化が未成熟」への対応策
DevOpsを採用したのにも関わらず、組織の文化や風土がDevOpsに即していないのであれば、対話や経験を通して変えていく必要があります。
ただし、そうはいっても組織文化は一朝一夕に変えられるものではありません。
どうしても、新しい考え方に慣れていくための時間が必要となります。
その中で、文化を変える手段として有効と考えられるのは「マネジメント層の理解」と「情報を共有するためのプラットフォーム」です。
まずマネジメント層の理解について、システム開発におけるプロジェクト長や部門長などのマネージャーが、DevOpsの深い知識があることは必須の要件です。
プロジェクトをリードする立場の方が、ウォーターフォール的な考え方から脱却できずに細かく設計書の確認を要求するようでは、DevOpsの活用は到底ままなりません。
まずはマネジメント層にDevOpsの目的やメリット・デメリットを納得してもらうことが、やがては組織全体の理解にもつながります。
また、部門間で情報を共有するためのプラットフォームの利用も有効です。
開発部門と運用部門で緊密な連携を取らなければならないのに、部門間でシステムに関する情報が共有されていないのは、望ましい状況ではありません。
システムの監視に使うツールを部門間で統一し、必要な情報を共有することが、団結する文化の醸成に有効です。
「サービス品質の確保が困難」への対応策
サービス品質とスピードの両立に必要なのは、コードデプロイプロセスの確立です。
コードデプロイプロセスは、DevOpsで一般的に使われるプロセスの枠組みのことです。
ソフトウェアのコーディング(開発)から、リリースしてユーザーに提供するまでのステージを5つに分け、全てに自動化を盛り込むことで、スピードと品質をともに確保する狙いがあります。
AWSやAzureといったクラウドプラットフォームには、コードデプロイプロセスを容易にするサービスもあります(AWS CodeBuild、Azure Pipelinesなど)。
こういったサービスを活用することで、サービスの品質を高めやすくなるでしょう。
「セキュリティー対策の手間」への対応策
セキュリティー向上策として、コードデプロイプロセスとともに取り入れたいのが、セキュリティテストの自動化です。
自動化されたプロセスの中にセキュリティテストも組み込むことで、テストの手間を削減しつつ、迅速な開発を実現できるでしょう。
また、自動化や継続的な改善といったDevOpsの考え方に、セキュリティの要素も含んだDevSecOpsと呼ばれる思想もあります。
いずれにしても、こうしたセキュリティ対策を施すには、開発の最初期からセキュリティ対応策を盛り込んでおく必要があります。
「スケジュールが流動的」への対応策
スケジュールが流動的になるのはある意味、DevOpsの前提です。
顧客や市場の変化に合わせて迅速に対応するのがDevOpsの大きな目的のため、スケジュールがあいまいになってしまうのは仕方ないのかもしれません。
やはり重要なのは、マネジメント層やシステムのユーザーなどのステークホルダーにDevOpsの有効性を理解してもらうことと言えるでしょう。
とはいえ、システムやDevOpsの文化が成熟するにつれ、進捗把握もより正確にはなっていきます。
「『組織文化が未成熟』への対応策」でも紹介したような部門間での情報の共有によって、進捗の把握もしやすくなるでしょう。
DevOpsにはツールの活用もおすすめ
DevOpsには情報の共有や、それに伴うシステム管理の一元化が必須となります。
これに有効なのがAPM(アプリケーションパフォーマンス管理)と呼ばれるツールです。
APMはアプリケーションやシステムの性能を管理・監視するためのツールです。
サーバーのパフォーマンス監視はもちろん、システムに問題が発生したときなどに、処理の順番や経過を可視化(トレース)したり、エンドユーザーから見たサービスの応答時間を把握したりすることができます。
これをDevOpsに関連する全ての部門で共有して利用することで、システムの状態の的確な把握や、改善点の迅速な発見を実現できます。
当社では、低価格のAPMツール「Applications Manager」を提供しています。
物理サーバーから仮想・クラウド・コンテナの監視にまで対応しているほか、Webアプリケーションの動作をコード・SQLクエリのレベルまで可視化し、ボトルネックの容易な特定を実現します。
(Applications Managerの画面 ボトルネックとなるSQLクエリの特定などに活用できます)
従来のシステムの管理、障害把握を容易にしたいという企業に特にオススメできるツールです。
Applications Managerの関連資料
Applications Managerのその他の機能については以下の資料をご覧ください。
サーバー・Webアプリケーション監視について口頭で細かく聞いてみたい方は、お気軽に無料のオンライン相談にお申し込みください。
無料オンライン相談に申込む
IT運用管理に関する資料ついて
ゾーホージャパンでは、企業のIT運用管理に役立つ資料や動画を無料で公開しています。 ぜひこちらからご覧ください。
フィードバックフォーム
当サイトで検証してほしいこと、記事にしてほしい題材などありましたら、以下のフィードバックフォームよりお気軽にお知らせください。