IT Insight

DevOpsで大切なこととは?

レンテックインサイト編集部

DevOpsという言葉をご存知の方は、アジャイル(俊敏)な開発を前提として、短期間にアプリケーションソフトを継続的にリリースすることをイメージされることでしょう。 それは正しいのですが、それを実現するためのツールに関心が向かいがちです。しかしツールだけではDevOpsの実現は難しく、そのための考え方のほうが重要なのです。

DevOpsとは?

 DevOpsとは、開発(Development)と運用(Operations)が一体となって、よりスピーディーに完成度の高いアプリケーションソフトを作り上げる手法のことです。  開発側と運用側にはそもそも壁がありました。どちらも品質は大切と考えています。 しかし、開発側はより良い機能をいち早く届けたい、運用側はユーザーに迷惑をかけないより安定したシステムを提供したいと、一見トレードオフとみえる要望をそれぞれ持っているのです。 この壁を取り払い、開発と運用が一体になってシステム開発およびリリースを進めることで、スピーディーなシステム提供を実現できるようになることが分かってきました。 こうして2010年頃から徐々に浸透してきた概念がDevOpsです。  社内業務の効率化を主な目的とする「守りのIT」よりも、顧客サービス向上や販売促進あるいは将来予測を目的とする「攻めのIT」で、DevOpsは有効な手法といえます。 スピーディーでないと機会損失に繋がるからです。

 ただ、DevOps自体の定義はあいまいで抽象的です。 アジャイル(俊敏)開発の手法という面を強調する人は、実現のためのツールを中心に語りますし、「一体化」という面を強調する人は体制や組織論を中心に語ります。  本稿では、どちらかといえば体制や組織の考え方に軸足を置いた解説をしたいと思います。

開発と運用が一体化するとは?

 DevOpsの典型的な実践例は、スマートフォンのアプリ開発です。 2000年代後半~2010年頃、アプリケーションソフトの機能追加やバグ対応といえば、重大な不具合に対する緊急対応を除けば、多くて月1回でした。 ところが現在は、スマホのアプリなど週1回以上更新されるものもあります。 開発と運用が一体になって進めているからこそ、このような頻繁なリリースが可能になるのです。では具体的にはどのような一体化をしているのでしょうか?

 まず当たり前ですが、開発側は運用を、運用側は開発をそれぞれ知っている必要があります。 理想は両方の経験がある人材を計画的に増やしていくことです。 ITへの先進的な取り組みで有名な企業では、開発と運用がそれぞれ相手の研修を受ける、配置転換で両方のキャリアを積ませると同時に人材交流を図る、などの工夫をしています。 もう一つは仕組みづくりです。運用設計を上流工程で運用・開発共同で実施する、リリース判定を共同で同時に実施する、リリース後のインシデントや新規ニーズを共有するなどのことが必要かつ重要です。

DevOpsの進め方

 もう少し詳しく進め方を見ていきましょう。

 「上流工程」というと、ウォーターフォール開発を思い浮かべて、DevOpsのアジャイル開発と矛盾するように感じるかもしれませんが、 たとえアジャイル開発でも、開発企画や運用方針策定など、システム戦略立案にあたるフェーズは必要です。 本稿では、これらを「上流工程」と呼びます。この「上流工程」で一体となって協力しあうことが重要なのです。  以前は、機能要件を決める打ち合わせに運用側の人間はノータッチでした。 また運用要件についても開発側が要望をまとめて、具体的な方式を運用側がまとめるという形が多かったと思います。  しかしユーザー側から見たら、開発機能と運用は別物でしょうか? そんなことはありません。 ユーザーはシステムをサービスと捉えていますから、機能が優れていても運用に問題があれば不満ですし、その逆でももちろん不満です。両方揃ってはじめて満足するわけです。  この「システムをサービスとして捉える」ことは重要です。サービスとしてのシステムの品質を向上させようとすると、開発と運用が一体であることが理想的です。 上流工程で方針をしっかり固めて共有し、そのあとに成果物の相互レビューを実施するのは当然として、開発や導入の経過についても情報共有すべきでしょう。  次に大きな協力が必要になるのはリリース時です。開発と運用が合意したリリース判定のルールを事前に作っておくことが必要です。 そしてそのルールに従って、粛々とリリースを進めます。もちろん判定基準を満たさなければ、リリースはできません。  リリース後については、既に書いたような情報共有を実施します。目的はもちろん「サービス」レベルの向上です。 システムがサービスであることを、常に忘れてはいけません。

開発と運用が同じ方向を向くことが最重要

 どのようなツールを採用するかはもちろん重要です。 ですが、それ以上に開発と運用が同じ方向を向いて、一体となって進めることが大切です。 それができる組織や体制、知識共有や人材交流の仕組みになっていなければなりません。  同じ方向とは「システムはサービス」という考え方の共有にほかなりません。このことが十分に理解されていれば、DevOpsの実現は難しくないと考えます。

さらに、開発と運用というIT部門内の連携だけでなく、全社的に「システムはサービス」という方針で、 同じ方向を向くことができれば、変化に強く競争力の高い企業になるのではないでしょうか。

IT Insightの他記事もご覧ください

Prev

Next