DevOpsで目指すは両方できるエンジニア
開発担当と運用担当は「互いに相手のプロトコルで会話できることが必要」と説く。ディー・エヌ・エーの茂岩氏にDevOpsの取り組みと理想を聞いた。
茂岩さんはモバゲーなどを支えるシステム基盤の責任者で、運用担当ですよね。

1995年日本IBM入社。ストレージシステムの技術部門に勤務。その後1999年DeNAに入社し、「DeNAショッピング」立ち上げ時からサーバー、ネットワークなどインフラの構築・運用に従事。現在はインフラ、セキュリティ、QAを統括
そうです。処理性能などのほか、投資を最小化する責任も担っています。
DevOpsがテーマとのことですので、先に言っておきますが、開発担当のトップとは仲がいいですよ。トップだけでなく、開発担当者と運用担当者はよく一緒に飲みに行ってコミュニケーションを取っています。「お互いに協力する」という文化が当社にはあります。
先に言われてしまいましたね。では開発と運用の間に問題はない?
うーん、100%そうとは言い切れませんね。開発チームは作りたいものが常にいっぱいあって、運用のためにコード修正などを依頼しても、なかなかやってもらえません。そんなとき「1%の性能改善になる」という説明では動いてくれませんが、より効果的な方法を考えた上で「劇的に性能が改善する」と説得し、コード修正してもらうといった工夫をしています。
でも、大きな問題はないと思っています。開発と運用がコンフリクトを起こす原因の一つは、開発は「早く機能を提供したい」、運用は「不具合を起こしたくない」と考え、それぞれで局所最適をしようとするからです。局所最適は間違ったアプローチです。システム全体で考えないと、ベストな策は見えてきません。そのためには、開発担当者と運用担当者がスムーズに会話することが絶対に欠かせません。
スムーズに会話することが大事?
そうです。単に会話をすることではありません。ここまで「仲良くすること」を強調しましたが、もっと大事なことは「相手のプロトコルで会話をすること」です。開発と運用はメインとなる技術が異なりますので、担当技術を知っているだけでは相手のプロトコルで会話ができません。運用担当のメンバーに求めているのは、開発担当として話ができるようになることです。
例えば、ある機能の性能が低下したとします。その原因は開発担当者が書いたSQL文にあったとしても「あいつらが悪い」なんて言ってはいけません。それでは何の解決にもなりません。一緒に考えるのです。どんなクエリーにすればいいのかを考えて、「ここをこう直してはどうでしょうか」と提案します。これが「相手のプロトコルで話をする」ということです。