Oracle Cloudの用語を整理して全体像を理解しようという試み

2019/2/14 new
2019/2/15 SaaS on OCIについてコメント欄でいただいたご指摘を反映
***

# はじめに
Oracle Cloudについて、いろいろ用語があって全体像がつかみにくかったので整理してみました。
※正確性は保証しません。。
※**個人の見解です**。

# 全体像
![image.png](https://qiita-image-store.s3.amazonaws.com/0/109270/92506361-5e49-bdb2-80f1-b212348a92b5.png)
※ Cloud at CustomerもOCI版になるという発表があります[^1]。
※ SaaSも一部OCI上に稼働中です。

## 基本編

### 1. Oracle Cloud
"Oracle Cloud"と言うとき、これはOracle社の提供する**SaaS, PaaS, IaaS全てを含んだクラウドサービス全体のこと**を指します（Oracle社では、Application、Platform、Infrastructureという分け方になっているようです）[^2] 。
・Oracle Cloudのポータルサイト：https://cloud.oracle.com/en_US/home 
・OTNのOracle Cloudのページ：https://www.oracle.com/cloud/
・Oracle Cloudのマニュアルトップ：https://docs.oracle.com/en/cloud/index.html


### 2. Oracle Cloud Platform
"Oracle Cloud Platform(OCP)"という言葉もあります。これは、**Oracle Cloudのうち、PaaSとIaaSのこと**を指しています。ただ、最近はあまり聞かれないです。
・Wikiがありました：https://en.wikipedia.org/wiki/Oracle_Cloud_Platform

### 3. Oracle Cloud Infrastructure
"Oracle Cloud Infrastructure(OCI)"は、**基本的にはIaaSのこと**を指しています。が、**Oracle Cloudを支える基盤（≒データセンター群）そのもの**のことを指している際にも使われる印象です。Oracle CloudのSaaSもPaaSも、Oracle Cloud Infrastructureの上で動いている、というイメージです。

先日のOpenWorld 2018でも大きく[発表](https://blogs.oracle.com/oracle4engineer/column_cloud_oow2018)していたように、近年Oracle社は、アーキテクチャを大幅に刷新した新しいOracle Cloud基盤を作り、そこからもサービスを提供しています。そのため現在は、**クラウドサービス提供開始当初からあるCloud基盤と、「第2世代」と位置づけられるCloud基盤の2種類があることになります。前者がOCI-Classicと呼ばれ、後者が単純にOCIと呼ばれます。**
・公式サイトではIaaSに位置づけられている模様：[Why Oracle Cloud Infrastructure](https://cloud.oracle.com/en_US/cloud-infrastructure)


## 応用編
上記1～3までで、Oracle Cloud全体像は概ね整理できたかと思いますが、Oracle Cloudの基盤が2種類あることで、その上で提供するサービスの体系がやや複雑なことになっています。

### 1. IaaSとOracle Cloud基盤
IaaSはOracle Cloudの基盤の違いを直接受けるので、逆にシンプルで、**どちらの基盤で提供しているサービスかによって全くサービス内容が異なります**。サービスへの入り口も違いますし、マニュアルも分離されています。
・OCI-Cのマニュアル：https://docs.oracle.com/en/cloud/iaas/index.html
・OCIのマニュアル：https://docs.cloud.oracle.com/iaas/Content/home.htm

### 2. PaaSとOracle Cloud基盤
PaaSが一番複雑です。PaaSは、Platform（例えばDatabase）の機能が使えれば良いので、ユーザーがCloudの基盤を意識する必要はありません。実際、Cloud基盤の違いはラップされ、**OCI-C、OCIいずれでも同じUIの、同じサービスが使える、という形でPaaSサービスが提供されていることが多い**です。そのため、（基本的に）マニュアルも1つに統一されています。
・PaaSのマニュアル：https://docs.oracle.com/en/cloud/paas/index.html
※Cloud基盤の差異がユーザー経験に現れる場合は、マニュアルにその旨が記載されています。

PaaSを複雑にしているのは、Cloud基盤の違いをラップして吸収するのではなく、**全面的に刷新した新しいアーキテクチャのCloud基盤に適合したOCI nativeなPaaSも提供している**点です。例えば自律型DBの「Autonomous Data Warehouse(ADW)」などは、OCI nativeなPaaSです（OCI-Cの基盤からはサービス提供していません）。そして、上記の違いをラップして提供してきたPaaSも、徐々にOCI nativeのものへ生まれ変わりつつあります。現在はその過渡期なため、同じような名前のサービスが2つあったりすることがあります。

例えば、Oracle Databaseの製品担当の方が書いている以下の連載記事では、第1～8回まではラップされたDatabaseサービス（よく"DBCS"と呼ばれます）を、第9回からはOCI nativeなDatabaseサービスについて説明されています[^3] 。
- [もしもみなみんがDBをクラウドで動かしてみたら](https://www.oracle.com/technetwork/jp/database/articles/minamin-cloud/index.html)

冒頭に示したOracle Cloud全体像の図で、OCIのPaaSの部分のみ濃い青と明るい青の2つがあるように描いてみたのは、これを表したかったからです。

### 3. SaaSとOracle Cloud基盤
SaaSについては、ユーザーがCloud基盤を意識することは全く無いですし、あまり発表もされないので詳しく知りませんが、私の理解では、まだOCI上で動くサービスは無いはずです（→訂正：すでにありました！※）。今後、SaaSもOCI上で動いていくようになるのだろうと予想されます。
※ コメント欄にて、@mmarukaw さんより、Oracle Data CloudというサービスがOCI基盤上で動いているという情報をいただきました。冒頭の図ではすべてのSaaSが「OCI-C」上で動いているように描いていますが、SaaSとOCI-Cは区別した方が良かったかも、といただいた情報を見て思いました。。
・SaaSのマニュアル：https://docs.oracle.com/en/cloud/saas/index.html


### 4. Oracle Cloud at Customer
最後に、少し毛色が違うものとして"Oracle Cloud at Customer(C@C)"に触れたいと思います。こちらは、**Oracle Cloudの基盤を顧客のデータセンターに運び込んで、Oracle CloudのサービスをPrivate Cloud的に利用できるようするサービス**で、ハードウェア部分やCloudを制御する部分はOracle社が管理します。
この基盤上では**PaaSとIaaSのみが提供**されています。現在提供されているものはOCI-classicのアーキテクチャが採用されています。（が、こちらも将来的にはOCIベースになるようです[^1]）


# まとめ
・複雑なのは過渡期だから
・そのうちすっきりしそう

※私の他の記事で「Oracle Cloud(OCI)」という表現をしていますが、これは「OCI-CではなくOCI」という意味を込めてそう表現しているのであって「Oracle Cloud、略してOCI」ではないです。わかりにくくてすみません。タイトルでは「Oracle Cloud(OCI)」と書いているのに、本文では「Oracle Cloud Infrastructure(OCI)」と書いていて、自分でツッコミを入れたくなったので、この記事を書きました。

[^1]:  [オラクルのエリソンCTO、「Gen2 Cloud」発表--セキュリティ重視で再設計](https://japan.zdnet.com/article/35127458/)

[^2]: （おそらく、あとに説明するCloud at Customerとの比較で）「Oracle Public Cloud (OPC)」という言葉もあります。これも、ほぼOracle Cloudのことを指しているといっていいと思います。ただ最近はこの言葉は聞かれなくなってきました。

[^3]: 話をわかりやすくするため省略しましたが、Databaseサービスについて、同じOCI nativeなサービスでも、ADWなどは完全にPaaSに位置づけられているのに対し、Virtual MachineやBere Metal上で稼働するDatabase Serviceは、IaaS的に位置づけられています（IaaS、とは言われてませんが。的な位置づけ）。また、本文ではDBCSをCloud基盤の違いをラップしているサービスの1つとして位置づけましたが、現在(classicではない)OCI上で動くDBCSサービスは提供されていません。これはOCI nativeなDatabaseサービスが十分に充実してきたからだと思います。OCIに組み込まれているDatabase Serviceのマニュアルは他のPaaSとは別に、OCIのマニュアルの中にあります（https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm）。