DevOps 再考。開発チームが抱える3つの課題

DevOps 再考。開発チームが抱える3つの課題

DevOps 。国内では 2012 年辺りから現在まで、バズワード的に流行した言葉です。
エンジニアを中心に、徐々にその概念は浸透しつつありますが、実際の開発現場においてその概念が実践されているかというと、まだまだであると考えられます。

DevOps という概念には個人的にも大変共感しており、是非広まってほしいという思いを抱いておりますので、私個人の経験を元に具体的な施策のノウハウを書いて行きたいと思います。

そもそも DevOps とは何かということについては、とても分かり易くまとまっている記事を見つけましたのでご参照下さい。

“DevOpsとはどんなもので、何が議論されているのか”
http://www.publickey1.jp/blog/11/devops.html

DevOps は他のチームのサポートをすること

DevOps とは何かということについて、私なりに一言で表すと、下記になります。
「ビジネスの成長という共通の目標に向かって、 Dev(開発) と Ops(運用) のそれぞれチームが協力し合い、最大のパフォーマンスを発揮すること」

ここでいう Dev と Ops はエンジニアだけでなく、サービスの開発と運用に関わるすべての従業員を指しています。
(例. ディレクター、カスタマーサポート、マーケター、etc…)

協力というと、一緒に何かするというイメージですが、必ずしもそれだけではなく、
お互いの得意なスキルを活かして、相手のチームの助けとなるようなことをするという活動も含まれると考えています。

Dev が抱える課題と解決策の例

まずは Dev が抱える課題について着目しましょう。

IT 企業にとって、ソフトウェア開発はビジネスを拡大するための重要なプロセスであり、かつボトルネックです。どんなに素晴らしいビジネス構想があっても、それを作り上げるための開発が滞ってしまえば、実現することはできません。

しかしながら、現実の開発現場には開発妨げる様々なモノが存在します。

1. ソフトウェアの品質が悪い

本番環境にリリース後に不具合(バグ)や仕様違いが発覚して緊急対応をすることが多い
=> ソフトウェアの品質確認のための仕組みが十分でないか、手間が掛かるためにおなざりになっていることが原因です。以下のような解決策が考えられます。

  • 本番環境と同等の検証環境(ステージング環境)を用意し、最新のコードが常にステージング環境に自動的にリリースされるようにし、ビジネスチームへの操作デモをいつでも行えるようにしておく
  • テストコードを書いて、ソフトウェアテストの自動化を行う。コードが修正される度にテストの実行して品質チェックを行う
  • コードの品質チェックのための外部のサービスを導入する (CodeClimate 等)

2. リリース間隔が長い

devops08

本番環境へのリリース(=デプロイ)に時間がかかるため、数週間~数ヶ月おきのリリースになり、ビジネスのスピード感と合わない
=> デプロイ/ロールバックの作業が自動化されておらず、人的コストが掛かるため、リリースサイクルが延びてしまうのが原因です。以下の解決策が考えられます。

  • 本番環境で不具合が発生したときに、以前のバージョンに簡単に戻せる仕組みを用意する
  • 非常に簡単な手順(マウスでポチッというレベルで)本番環境へのデプロイができるような仕組みを作る
  • デプロイ作業を行う権限を開発者に移譲する

3. 暗黙知が多い

障害発生時に開発者に聞かなければ原因が分からず、対応出来ない
開発環境の構築手順が複雑で時間がかかり、新メンバー JOIN 後の立ち上がりが遅い

以下のような解決策が考えられます。

  • エンジニアが気軽に投稿&共有出きるようなドキュメントの管理サービスを利用し、手順等を明文化する
  • 仮想化技術を使って、簡単な手順で開発環境を作成できるようにする。場合によっては開発環境をクラウド上に置いてしまう
  • 開発者も障害発生時の体制に加わってもらう

Dev の課題は Ops が解決出来ることが多い

Ops はソフトウェアの品質に対する意識が高く、環境構築や自動化、作業フローのルーチン化が得意なことが多く、実は Dev の課題を解決するのに向いています。

貴社の開発チームは当てはまっていたでしょうか?
次回は運用チームが抱える課題について書きたいと思います。

DevOps Consultant, 山中


反論も含め、ご意見・ご感想は大歓迎です。
ブログ執筆を続ける活力となりますので、よろしければ下記のフォームか Twitter などでコメントを下さい。 (^^

Related

Comments

No Comments Yet!

You can be first to comment this post!

Post Reply