業務を改善する情報共有の仕掛け~DevOpsの実現,RPAの導入に向けて~

第1回 DevOps実現への基盤作り(前編)

この記事を読むのに必要な時間:およそ 1.5 分

ソフトウェア開発の業務改善をテーマにスタートします本連載,トップバッターとなった筆者はJira SoftwareとPythonが好きなプリセールスです。2018 IBM Championをいただき,クラウドやブロックチェーンにも取り組んでいます。

さて,ひとくちに業務を改善するとは言っても,それぞれの現場に応じたやり方があるでしょう。しかしどんな現場であれ,情報の共有が改善の大前提です。まずは連載を始めるにあたり,DevOpsの基本的な事柄から認識を共有させてください。

DevOpsのおさらい

「DevOps」とは,Dev(Development:開発)と,Ops(Operations:運用/保守)をくっつけた造語です。DevはSIerなどの開発側を,Opsはエンドユーザ側のIT部門やSIerの運用/保守チームを指します。

DevOpsは,取り組みあるいは活動です。開発手法でも開発ツールでもなく,ハウツーでもありません。開発担当と運用/保守担当が密に情報共有し,共通の目的に向けて互いの理解を深め,リリースサイクルの短縮,システムの安定稼働,ひいてはビジネスへの貢献をするために継続的に取り組むことを言います。

2009年にO'Reilly主催のVelocityというイベントで発表された資料注1から「DevOps」という言葉が生まれました。発表資料では,開発担当と運用/保守担当は共通の目的(エンドユーザに必要な機能を提供する。ビジネスに貢献する)に向けて手を取り合うべきと述べており,その実現のために必要な6つの重要なポイントと,組織の文化(カルチャー)を作り上げるための4つの心がまえを唱えています。はじめに6つの重要なポイントから見ていきましょう。

1.インフラストラクチャ構築の自動化
従来は手作業で行っていたインフラストラクチャの構築や変更作業をコードで定義(Infrastructure as Code)し,自動化することです。たとえば,Dockerfileを用いたコンテナ運用やTerraform,Ansibleなどのツールを使用します。
2.バージョン管理
よく使うのは,Git対応のバージョン管理システムです。以前から使われているSubversionもあります。開発者と運用者で,共通のバージョン管理システムを使用します。
3.ビルドやデプロイの自動化
繰り返し行う定型作業は,手順書などを使い手動で実行するのではなく,自動化します。運用者の負荷が減ることが期待できます。
4.フィーチャー(機能)フラグ運用
フィーチャートグルとも言います。開発した新しい機能にフラグを付けておき,一部のユーザにだけ試してほしいときに活用します。
5.指標(メトリクス)の共有と評価
プロジェクトにかかわるステークホルダにより,指標は異なります。インフラストラクチャ関係であればシステム系の指標が必要になり,開発したソフトウェアであればソフトウェアの品質や仕様について評価する指標が必要です。リリースする機能についてビジネスへの貢献度(どれほど売り上げに貢献するかなど)を評価する指標は重要です。ダッシュボードツールなどで,指標の結果をプロジェクトの各ステークホルダと共有し,評価することが必要です。
6.通知ボット
ビルドやデプロイ,新しいバージョン,バグ報告などを共有するために,ボットを用いて通知を自動化します。

続いて,組織文化を形作るための4つの心構えです。

1.互いに尊敬する
開発担当と運用/保守担当が互いに尊敬する気持ちを忘れずにいれば,たとえば運用/保守担当が開発担当に対して,コードにどんなリスクが潜んでいるかなど,遠慮せずに確認できるようになります。
2.互いに信頼する
運用/保守担当は開発担当を信頼し,運用や顧客からの追加機能などの要望について開発担当とディスカッションしましょう。開発担当は運用/保守担当を信頼し,インフラストラクチャについてのディスカッションに参加してもらい,きちんと意見を聞きましょう。開発や運用/保守に関する情報は,隠さずに共有しましょう。そうすることで,コミュニケーションがしやすくなり,信頼関係の醸成が早まります。
3.互いに仕事を任せ合う
失敗しても相手を責めない。開発担当と運用/保守担当は運命共同体です。安定稼働しているシステムでも原因不明のトラブルが起きることはありますし,人間である以上誰も100%は保証できません。追加開発時に開発担当がミスをすることもあります。誰かを責めるのではなく,協働して問題解決にあたることが大切です。
4.相手を非難しない
ミスが起きても非難せず,次に同じ問題が起きないように建設的に話します。互いに不満が溜まれば,突然メンバーが欠けたり,作業が進まなくなったりして,最悪プロジェクトの撤退につながる恐れがあります。

DevOpsで大切なことは,重要なポイントと組織文化の両方があってこそ成り立つということです。また,開発と運用のみならず,エンドユーザや営業とのコミュニケーションも忘れてはいけません。情報共有とコミュニケーションの徹底が重要ですから,企業や組織によっては,社長から一般社員,アルバイトの方まで,すべての従業員の意識や組織文化の見直しが必要になります。エンドユーザからの要求を達成するためには,従来の暗黙の了解を漏らさず文字に起こし,情報共有とコミュニケーションを徹底します。

注1)
10+ Deploys per Day:Dev and Ops Cooperation at Flickr発表資料

DevOpsの実現を阻む現状

DevOpsという活動について認識を一致したところで,さて,みなさんの業務で取り組むにはどうしたらいいのでしょう。

後編では,筆者がお客さまからよく聞くお話を例に現場の状況を振り返り,情報共有のための方針を考えてみたいと思います。

Software Design

本誌最新号をチェック!
Software Design 2018年11月号

2018年10月18日発売
B5判/184ページ
定価(本体1,220円+税)

  • 第1特集
    その知識古くなってない? 新サービスを適材適所で使えてる?
    あなたの知識をアップデート AWS再入門
  • 第2特集
    よい機器はエンジニアを鍛える
    ヤマハルーターをお勧めする理由
  • 一般記事
    [特別企画]量子コンピュータ〈超〉入門
    【後編】量子プログラミングと量子チップ開発の実際

著者プロフィール

西川浩平(にしかわこうへい)

主に,JiraとConfluenceのプリセールス担当。Tableauもはじめました。

クラウドに関わって10年余り,事業企画から,構築やコールセンター運営まで幅広い業務経験を活かして取り組んでいます。

2017年,2018年の2年連続でIBM Champion for Cloud 認定。クラウドとブロックチェーンが三度の飯よりも気になる日々。

コメント

コメントの記入