本記事はOracle Code Oneレポートの第3回ですが、単体で読める構成にしています。
Day2 Keynote:Building for the Cloud
二日目のセッションは「クラウドネイティブ」そのものをテーマにした二部構成です。流れとしては、まずCNCF代表者によるクラウドネイティブについての概括的なガイドがあり、続けてOracleからそれにのっとったアプリケーションがデモンストレーションされました。
このレポートでは省略していますが、セッションに続けてOracle Groundbreaker Awardsの表彰と、受賞者によるパネルディスカッションも行われました。その様子はこちらで確認できます
クラウドアプリケーションにおける「次世代」のビジョン
モデレーターのAmit Zavery氏(Executive Vice President、Product Development、Oracle Cloud Platform)からキーノートの前段として、「次世代」のクラウドアプリケーションとは何か、という説明がなされました。旧来のモノリスからマイクロサービスへ転換していく現在のクラウドアプリケーションは、次世代においてサーバーレスのさらなる活用へ。サイロ化(縦割り化)していた組織をDevOpsにする道筋は、さらにNoOpsという最適化へ。そしてUXはWebからモバイルネイティブアプリへの変遷を経て、次世代トレンドとしてFacebook MessengerやSlackといった共通UIを用いたチャットボット(及びAlexaやSiriなどの音声コミュニケーション)の活用へと進むという予測が語られました。
その流れの中で重要性を増し、さらに普及していくのがOSS活用であると言います。OSSはより多くのアーキテクチャにおいて活用されると言及した上で、Oracle CloudはSalesforceやMicrosoft、SAPなどの他社サービスも扱えるだけでなく、OSS活用にも対応していることを強調。その上で、OracleもPlatinum Memberとして参画しているCNCF(Cloud Native Computing Foundation)のVPであるDee Kumar氏(Vice President、Marketing & Developer Relations、Cloud Native Computing Foundation)にスイッチしました。
クラウドネイティブアプリを作るための方法論「Cloud Native Trail Map」
Dee氏から語られたのは、主にCNCFを知らない方向けのプロモーションのような紹介でした。Kubernetesによって始まったCNCFの歴史に始まり、コードファーストによる企業のコラボレーションという文化について。そして、貢献しあうことで互いに利益を享受し成長を続けるエコシステムといった、コミュニティ活用による開発の有用性を説明。その上で、クラウドネイティブの道をたどるための方法論である「Cloud Native Trail Map」を紹介しました。これは、クラウドネイティブに関する方法論の体裁をとりながら、CNCFがホストする数多くのプロジェクトが、それぞれどのステップに対応するかを整理したマップでもあります。その内容は、クラウドネイティブアプリケーションの開発手順のおさらいに使えるだけでなく、全20あるCNCFプロジェクトの位置づけを確認する上で有用でもありますので、各ステップをざっと紹介しましょう(ステップ名の横に関連プロジェクト名を付記します)。
注意
資料は講演時から一部更新が入っていたため、最新であるv20181211版に準拠した説明としています
-
Step 1:Containerization
- あらゆるアプリケーションのコンテナ化(アプリケーションのサイズを問わない)
-
Step 2:CI/CD
- ビルド、テスト、デプロイ(ケースによっては本番稼働まで)の自動化
-
Step 3:Orchestration & Application Definition(Kubernetes、Helm)
- コンテナオーケストレーションツールの導入
-
Step 4:Observability & Analysis(Open Tracing、Prometheus、Fluentd、Jaeger)
- 可観測性。モニタリング、ロギング、分散トレーシングの導入
-
Step 5:Service Proxy、Discovery、Mesh(Envoy、Linkerd、CoreDNS)
- サービス検出、死活監視、ルーティングの実施
-
Step 6:Networking(CNI)
- よりフレキシブルなネットワーク設定
-
Step 7:Distributed Database & Storage(Vitess、Rook、etcd)
- よりレジリエンス(回復力)が高くスケーラブルな分散データベース
-
Step 8:Streaming & Messaging(gRPC、NATS)
- JSONとRESTを利用したシステムよりさらに速いパフォーマンスの実現
-
Step 9:Container Registry & Runtime(Harbor、containerd、rkt)
- コンテナのイメージ保存・公開と、ランタイムにおける複数の選択肢の確保
-
Step 10:Software Distribution(Notary、The Update Framework(TUF))
- セキュアなソフトウェア配布
昨年までJavaの祭典であったことを意識してか、Dee氏は最後にJava ChampionであるArun Gupta氏の言葉を引用し、OSSコミュニティの重要性を強調して締めました。
次世代クラウドアプリケーション、その実物デモ
クラウドネイティブに関する説明のセッションのあとに続けて行われたのは、実際のクライドネイティブアプリケーションのデモです。OracleのMatthew Baldwin氏(Director, Product Management, Oracle Cloud Platform)が登壇し、チャットボットやサーバーレスを使用した中古車売買アプリケーションの実演が行われました。
デモを終えた後、採用した技術の根拠にも言及されました。まず、なぜチャットボットか。それは、「会話」という仕組みが最も一般的なインタフェースになるという予測によるものです。「クラウドファースト」「モバイルファースト」という言葉に取って代わる存在となる「会話型AIファースト」、これが最優先事項であり、最重要課題となると予測していると言います。チャットツールは、対人コミュニケーションの場面においてその利便性からすでに普及・流行しており、AIで自動対応が可能となればその流れを引き継ぐことができる、それが最優先事項の根拠です。そして最重要課題でもある理由は、複数のチャットアプリやスピーカーへの対応という煩雑さがまず一点。加えて言語処理やセキュリティ、ダイアログデザインなどにおける実装の複雑さが挙げられ、それらの対策としてOracle Cloudの提供するソリューション活用を推奨するトークにつなげました。
また、もうひとつの採用技術であるサーバーレスについても、デモで活用したFn Projectと呼ばれるOSSについて解説がありました。これについては、デモを含めた特別インタビューにて、より詳しい説明をいただいています。Day 2キーノートの紹介はちょうどここまでとなりますので、続けてそちらのインタビューに移りましょう。