世界で親しまれ、尊敬される、真のエクセレントカンパニーを目指す。そのためにキヤノンでは、1996 年から中長期経営計画「グローバル優良企業グループ構想」を推進しています。現在は、第 3 フェーズまでを着実に完了し、2011 年から第 4 フェーズをスタートするにあたり、6 つの以下主要戦略を掲げ、目標達成に向けて、様々な取り組みに挑戦しています。
- 全主力事業の圧倒的世界 No.1 の実現と関連・周辺事業の拡大
- グローバル多角化による新たな事業の獲得と世界三極体制の確立
- 世界をリードする世界最適生産体制の確立
- 世界販売力の徹底強化
- 環境先進企業としての基盤の確立
- 真のエクセレントカンパニーにふさわしい企業文化の継承と人材の育成
2011 年からは中期経営計画の最終となるフェーズ IV がスタートしており、2015 年度での目標達成に向けさまざまな取り組みを行っています。
そんな中、私が所属する映像事務機を扱う部隊では、イノベーションにより魅力的な複写機やプリンター製品を市場に投入すべく日々活動しています。これまで注力してきた製品そのものを魅力的にすることに加え、お客様に更なる価値を提供するために、プリンティングサービスという形でクラウドと組み合わせたビジネスへのシフトを新たな方向性として推進しています。
我々の部門が行っているビジネスの対象は、主に企業顧客です。現状企業にはインターネット世代の人たちも増えており、ユーザーの考え方も変わっています。そういった人たちからは、複写機やプリンターへの新たな利用形態が求められています。彼らはスマートフォンやタブレット端末などを使いこなし、日常的にソーシャルネットワークを活用してコンシューマ向けのインターネットサービスの利用も当たり前です。
これからの新しい顧客がより価値を感じる方向はどういったものなのか。それを考えたらクラウドという選択肢が大事だと分かってきました。時間をかけじっくり良いものを作り市場に投入する世界ももちろんあります。一方で、ユーザーにとって良かれと思われるものを素早く開発して市場に投入する。そして製品やサービスを使ってくれたユーザーからフィードバックを得て、さらに改良し価値を高めていくのです。これを実現するには、これまでのウォーターフォール型の開発体制ではうまくいきません。
また、製品やサービス提供に関わる組織も大きくなり、組織が柔軟かつ迅速に動けない課題もありました。開発、セキュリティ管理、サービス運用、品質評価といったチームそれぞれが大きくなっており、組織間に壁のようなものができていたのです。そのため製品やサービスの開発から市場への投入に時間がかかり、機能的にも顧客が満足するものをなかなか提供できない。さらには開発コストも高くなり、トラブルも発生してしまう。この悪循環から抜け出すには、開発体制を変革しアジャイル型に変える必要がありました。
「オンプレミスではアプリケーションでさらに詳細な情報が欲しければ、取得する仕組みも作らなければならない。つまり、オンプレミスのほうがむしろクラウドよりブラックボックス的だったのです。」
- 八木田 隆 様(キヤノン株式会社 映像事務機事業部 映像事務機DS開発センター 主席研究員)
チーム間の連携をスムースにし、スピード感ある開発、運用、評価体制へと変革する。そのために必要なことは何かを考えました。そして構築したのが「CI Platform(コンティニュアス プラットフォーム)」です。この仕組みはリーン生産方式を実現するもので、リーン開発のサイクルを素早く回しイノベーションのスピードを加速します。
これを作ろうとしたきっかけが、実は AWS クラウドでした。AWS のイノベーションスピードは極めて速く、ユーザーが欲するサービスを次々と市場投入し、既存サービスもどんどん機能アップしています。あのスピード感を実現するには、従来の体制では不可能であり AWS クラウドのような体制を構築すべきだと考えたのです。
CI Platform は、AWS クラウドの上に構築することにしました。クラウドでなければあのスピード感は実現できないと考えたからです。たとえばストレージ容量を追加したい場合、以前はチームごとに新たに NAS を導入するかプライベートクラウドのような仕組みを独自に作りそこからストレージを切り出さなければなりませんでした。サーバー追加などのネットワーク設定も同様で、サーバーを調達しネットワークに接続して誰かが手作業で DNS 設定などをしなければなりませんでした。
こういったインフラの構成をすべて API で制御できれば、クラウドのようなスピード感と自動化を得られるのではと考えました。AWS クラウドにはさまざまなサービスがあり、それらを組み合わせ API で制御すれば素早くやりたいことが実現できる。CI Platform はそこからのヒントです。API で制御できればプロセスの自動化が実現でき、人為的なミスも排除できるでしょう。1 度行った設定なりの作業を人手で繰り返す必要もなくなります。
もう 1 つ採用した理由に、AWS クラウドのセキュリティレベルの高さがあります。たとえば AWS Identity and Access Management(IAM)があります。これは、ある意味自分自身の利用を管理できる良いツールだと思っています。IAM とログを一緒に管理すれば、何らか権限違反などの問題が起きた際にもタイムリーにアラートを出力するなどの仕組みが簡単に実現できます。これは AWS クラウドの中でログが体系化され整理されているから可能なのでしょう。おそらく AWS 自身が、内部でこの仕組みを使いセキュリティの担保や品質向上を行っているはずです。それと同じものがユーザーも使える、これは AWS クラウドが安心して使えることにもつながります。
我々が AWS クラウドを使い始めたのは 2014 年の 3 月です。2013 年夏頃から導入検討を開始し、社内調整を始めました。今では Amazon EC2 や Amazon S3 といった基本的なサービスはほとんど利用しています。ネットワーク系のサービス、Amazon CloudWatch などの運用管理系のサービスも数多く利用しています。さらに Amazon Redshift や Amazon DynamoDB など、データベースサービスの活用も始めています。
中でも AWS CloudFormation は、スタックを渡すだけで使えるところが素晴らしいと思っています。以前のオンプレミス環境では、本番環境を 1 つ作りそこに適宜パッチを当てていました。1 度作ったサーバーインスタンスは、パッチを当てながら 5、6 年使う必要があるだけでなく、アップデート作業には手もかかり、人為的なミスも心配でした。
AWS CloudFormation を使うようになってからは、作成したインスタンスにパッチを当てて更新することはなくなりました。環境を更新する際には新たなインスタンスを用意するのです。それを品質評価の部隊に渡しテストしてもらいます。以前は本番とは別にテスト環境を用意していました。本番と同じものを作ろうとしても、実際には本番と完全に一致しません。なのでテストでは問題なくてもいざ本番となれば、ほんの少しの環境の違いで問題が発生することもあったのです。
今は AWS CloudFormation を使うことで、同じ環境をすぐに作れます。手間もほとんどなく、たくさん作ってもコストは変わりません。なのでどんどん新しい環境に入れ替えています。昨年、これまでに作ったインスタンス数を集計したら数万のレベルに達していました。1 つのサービススタックを作ると開発用、評価用、本番用と最低でも 6 つほどのインスタンスが必要です。作成したインスタンス数の多さは、我々がサービス開発のリーンサイクルを数多く回してきた証しにもなるでしょう。
リーンサイクルをどんどん回せたのは、AWS のクラウド環境があったからで、すべてが API 制御されているからこそ実現できたと思っています。私は「API で会話しろ」と言う Amazon.com CEO ジェフ・ベゾス氏の言葉が好きです。この言葉を具現化する環境があったので、CI Platform は実現できたと思っています。
AWS クラウドを使い始めてから開発はマイクロサービスの形になり、関わるチーム同士の関係は疎結合となりました。チーム間のコミュニケーションは、ミーティングではなく API 的なものに変えています。たとえば開発チームと評価チームでは、テストケースでコミュニケーションしています。以前は開発で行ったテストを評価チームも繰り返していましたが、テストケースを使うようになり開発で行ったテストを踏まえ評価チームで適切なテストを行う効率的なやり方となっています。
運用チームとのコミュニケーションは、開発チームが作ったテンプレートを用います。またセキュリティのチームとは各種ログでコミュニケーションをとっています。AWS クラウドのサービスでは、API で動作したものはすべてログが取得できます。それらを集約し活用します。セキュリティ監査も集約されたログを見るだけで行えます。チーム間で API 的なコミュニケーションとなったことで、各チームは非同期で効率的に動けるようにもなりました。
その結果、開発サイクルも速くなっています。これまでは環境構築など顧客の価値とは直接関係ないところにたくさんの時間を取られていました。それが CI Platform への移行で、以前であれば1機能を出すのに10の作業をしていたのが今は 2 つか 3 つだけやればいいイメージです。つまり本来自分たちがやるべきことに集中できるようになったわけで、これも大きなメリットです。
新たな CI Platform の体制は、半年ほどで定着しました。こんなに速く使えるようになるとは、正直、驚いています。この CI Platform を使って最初に提供したのが、モバイルデバイスからクラウド経由でプリントするための機能です。このサービスではユーザーがアクションしてからデータをクラウドに渡し印刷用に変換して、それをプリンターに戻し印刷します。サービスはワールドワイドに展開しており、クラウド環境はドイツのデータセンターにあります。遠隔地のデータセンターを経由するのでレスポンの確保は課題でした。
これを CI Platform で新たに開発してからはスループット、性能が向上しました。ユーザーのアクションから出力までの時間はおよそ半分です。今後、特定地域などでユーザー利用が増えレスポンスが低下しても、別途データセンターに同じ仕組みを導入し処理を分散することも容易です。
もう 1 つのメリットは、さまざまなことを自分たちで制御できるようになったことです。何が起こっているかが、AWS クラウドなら API のログを見て把握できます。オンプレミスの頃はサーバー機器やアプリケーションごとにログがあり、得られる情報レベルもまちまちでした。あるアプリケーションでさらに詳細な情報が欲しければ、取得する仕組みも作らなければならない。つまり、オンプレミスのほうがむしろクラウドよりブラックボックス的だったのです。
繰り返しになりますが、API で会話できるのは大きなメリットです。それができるのは AWS クラウドだけで、これは目には見えにくいコストの差にもなり、クラウドサービスの ○× 表による機能比較などではなかなか表れてこないものです。AWS クラウドの良さは、使ってみれば分かります。普段もの作りをしている人には分かりやすいものだと思います。
さらに別のメリットとしては、AWS クラウドを使うようになり開発に携わっている人が元気になりました。AWS クラウドを使い、良いものをどんどん開発し、顧客に喜んでいただく。その循環でみんな活性化され元気になる。自分自身もそうですが、実際に AWS クラウドのおかげで仕事が楽しくなったとの声もあがっているほどです。
これから是非試してみたいサービスは、AWS IoT や AWS Lambda です。個人的には Amazon CloudWatch などの運用管理系サービスの機能アップも気になります。機能が充実しさらに便利に運用できるのではと思っています。
現状、キヤノンの開発センターすべてで AWS クラウドを活用しているわけではありませんが、我々のところで成果が出ているので、今後はそれを社内にも広げたいと考えています。1 度作ったサービスの環境はなかなか更新しないので、機能アップも年に 1 回くらいしかできないといった従来の環境のようなことはなく、AWS クラウドベースの環境を使えばどんどん新しい機能が提供できる。それができることを社内でどう伝えるべきかを真剣に考えています。
今の AWS クラウドの体制には、概ね満足しています。顧客の欲しいであろう機能、たとえば AWS IoT などが適切なタイミングで出てくるので、これからもこのペースでイノベーションを続けて欲しいです。1 つ望むことがあるとすれば、AWS 自身が内部でどのようにイノベーションを起こしているか、それを知りたいと思っています。我々のような会社とは、考え方も文化も違うと感じていますが、それを支える企業マインドの部分も含め知ることができれば、今後の体制強化にも役立つのではないかと考えています。
- 八木田 隆 様(キヤノン株式会社 映像事務機事業部 映像事務機DS開発センター 主席研究員)