HEROES FORUM 2023 Dec

マルチクラウド時代に何故APEX Cloud Platformが必要なのか？

デル・テクノロジーズ株式会社
パートナーSE部三保尚澄

1Copyright © Dell Inc. All Rights Reserved.

The only source of knowledge is experience.
知識の唯一の源は経験であるPaaS上にアプリケーション/コンテナを構築したことがありますか？

OpenShiftHeroku

2

CloudFoundry

Copyright © Dell Inc. All Rights Reserved.

Renderアプリの動作デモ-1："Hello World"◆ OpenShift 上で動作するpythonのWEBアプリケーション◆ 下記URL or バーコードにアクセスし、"アクセスカウント"の遷移を確認する

https://flask101-mihonao-dev.apps.sandbox-m3.1530.p1.openshiftapps.com/

3

Copyright © Dell Inc. All Rights Reserved.

アプリの動作デモ-2：Photo Albumを体験する◆ Photo AlbumのWEBアプリケーション◆ 下記URL or バーコードにアクセスし、写真をアップロードしてみる

https://flask201-mihonao-dev.apps.sandbox-m3.1530.p1.openshiftapps.com/

4

Copyright © Dell Inc. All Rights Reserved.

Agenda
1.

製品概要

2.

PaaSへのWEBアプリ構築検証

3.

考察とQ＆A

6

Copyright © Dell Inc. All Rights Reserved.

製品概要：アーキテクチャとコンポーネント
7

Copyright © Dell Inc. All Rights Reserved.

世界で最も包括的なAs-a-Serviceポートフォリオを提供
ストレージ

サイバーリカバリー
データ保護

コンピュート＆HCI

クラウドプラットフォーム

デバイス

カスタム

管理ツール

APEX Data Storage
Services

APEX Cyber Recovery
Services

APEX Compute

APEX Cloud Platform
for Microsoft Azure

APEX PC as-a-Service

APEX Flex on DemandAPEX Console

APEX Block Storage for
Public Cloud

APEX Backup Services

APEX Private Cloud

APEX Cloud Platform
for Red Hat OpenShift

APEX Managed Device
Service

APEX Data CenterUtility

APEX Navigator for
Multicloud Storage

APEX File Storage for
Public Cloud

APEX Protection
Storage for Public Cloud

APEX High
Performance Computing

APEX Cloud Platform
for VMware
APEX Hybrid Cloud for
VMware

日本提供済み（2023/Dec）©©DellReserved.
Copyright
DellInc.
Inc.AllAllRights
RightsReserved.
88 Copyright

APEX Navigator for
Kubernetes

ITインフラ市場の動向と期待
APEXへの期待

従量課金

セルフサービス

スケールアウト

クラウドのシンプルさ

柔軟なロケーション

Note: 1) The offer is multi-tenant, owned by the vendor, billed by fixed / usage-based subscriptions, with optional or embedded support / deploy / managed services; 2) The offer is single-tenant,owned by the vendor, billed by fixed / usage-based subscriptions, with optional or embedded support / deploy / managed services; 3) The offer is single-tenant, owned by the customer, paid upfront(except for financing), with optional services. Source: IDC, ISG Market Intelligence, APEX Biz Planning & Ops team analysis
9Copyright © Dell Inc. All Rights Reserved.

APEX Cloud Platforms
３つのテイスト

Validated
Platform for Red
Hat OpenShift?

Available

オンプレミス

VxRail?
vSAN?
Kubernetes?

Azure Stack
HCI?

Available

Coming Soon

◆ 主要クラウドスタックを統合・アプライアンス化

共通のビルディングブロック◆ 共通化されたハードウェアプラットフォーム◆ Dell独自のSDSを実装したストレージノード
自動化された運用管理

コンピュートストレージ©©DellReserved.
Copyright
DellInc.
Inc.AllAllRights
RightsReserved.
10
10 Copyright◆ ライフサイクルの自動化(LCM)を実現

ACP:共通コンポーネント
デルのイノベーションを結集し、マルチクラウド向けの新しいプラットフォームを提供

Day-2/N
運用管理

フルスタックライフサイクル管理
大規模管理との連携

Day-1
デプロイメント

コンフィグレーション

自動化

管理ソフト(M&O)

ノードイメージ
管理Restful API対応

コンピュートノード

ストレージノード (SDS)

コンピュートクラスタ(16G PowerEdge)

SDSクラスタ（PowerEdge +PowerFlexベース）

統合されたサポート©©Dell
Reserved.
Copyright
DellInc.
Inc.AllAllRights
RightsReserved.
1111 CopyrightACP Redhat OpenShift：クラスタ構成例
OpenShift ACM (1:M マルチクラウド管理)

管理

OpenShift Web Console

MC-660 1Uノード
MC-760 2Uノード

ACP Foundation SW (インフラ全体管理)
OpenShift Controller / Worker Nodes

Kubernetes

OSレイヤ

Dell SDS CSI (永続ボリューム管理)
SDC (ストレージアクセスドライバ)

Dell SDS Manager (ストレージ管理)
SDS (ストレージソフトウェア)
Embedded OS - RHEL

CoreOS

ノード

ストレージクラスタ

コンピュートクラスタ©©DellReserved.
Copyright
DellInc.
Inc.AllAllRights
RightsReserved.
1212 CopyrightOpenShiftコンソールへの統合：ACP管理プラグイン
vCenterへのVxRail managerプラグインと同等©©DellReserved.
Copyright
DellInc.
Inc.AllAllRights
RightsReserved.
13
13 CopyrightPaaSへのWEBアプリ構築検証
14

Copyright © Dell Inc. All Rights Reserved.

PaaSへのWEBアプリ構築検証◆動作デモ◆アプリの解説◆構築デモ◆考察◆検証環境紹介

15

Copyright © Dell Inc. All Rights Reserved.

アプリの解説: "Hello World"◆OpenShift "Developer Sandbox" 上で動作
◆pythonコード ：約20行

OpenShift Sandbox

counter

User

User

https GET

pythonコード"Hello World""count = XX"

コンテナ/PodKobernetes

16

Copyright © Dell Inc. All Rights Reserved.

ChatGPTによるコード解説: "Hello World"◆赤字はChatGPTの回答

このコードは、FlaskというPythonのWebアプリケーションフレームワークを使用して簡単なWebアプリを作成しています。

#!/usr/bin/env python3# Import modules required for app
from flask import Flask#!/usr/bin/env python3: このシバン行がPython 3を使用することを指定しています。
from flask import Flask: FlaskフレームワークからFlaskクラスをインポートしています。

Imagination is more important than knowledge.

##### Create a Flask instanceapp = Flask(__name__): Flaskアプリケーションのインスタンスを作成しています。
__name__はPythonスクリプトのモジュール名を指します。
app = Flask(__name__)count = 0: グローバル変数countを初期化しています
知識より創造力が重要
count = 0##### Define routes #####@app.route('/'): ルートパス('/')に対するルートを定義しています。
@app.route('/')
知識はAI、アイデアは人
つまり、Webアプリのホームページにアクセスしたときの挙動を定義しています。
def home():: '/'へのリクエストに対する処理を定義した関数です。
def home():global count: count変数をグローバル変数として扱います。
count = count + 1: リクエストごとにcountをインクリメントします。
global count
RET_TEXT = 'Hello World! count= ' + str(count): 応答メッセージを構築します。
count = count + 1
return RET_TEXT: レスポンスとして構築したメッセージを返します。
RET_TEXT = 'Hello World! count= ' + str(count)return RET_TEXT##### Run Flask instance,##### browse to http://<Host IP or URL>:8080if __name__ == "__main__":app.run(host='0.0.0.0', port='8080')

17

if __name__ == "__main__":: スクリプトが直接実行されるときに以下のコードを実行するように条件分岐しています。
app.run(host='0.0.0.0', port='8080'): Flaskアプリケーションを実行します。
Webアプリはhttp://<< Host IP or URL >>:8080でアクセス可能です。
host='0.0.0.0'は、外部からのアクセスを受け付けるために指定されています。
port='8080'はアプリがリッスンするポート番号を指定しています。

Copyright © Dell Inc. All Rights Reserved.

Photo Album：PaaS構築の経緯
PhotoAlbumの移行実績

2019年
アプリ利用開始
CloudFoundry

Heroku

2020年
無料プラン終了

2022年
無料プラン終了

パブリッククラウドへのリフト
社内トレーニング"Piper"

ローカルPCに構築

18

Copyright © Dell Inc. All Rights Reserved.

Render
2023年
APEX OpenShift展開

OpenShift

稼働中PhotoAlbumアプリの解説：機能モジュール◆pythonコード：300行程度◆DB：MongoDB◆Object Storage：ECS◆ソースコード管理：git

コードリポジトリ
Git

OpenShift Sandbox
UserIndexデータ
pythonコード
コンテナ/Pod

Kobernetes

NonSQL DB(MongoDB)

画像データ
Object Storage
(ECS)

19

Copyright © Dell Inc. All Rights Reserved.

PhotoAlbumアプリの解説: マルチクラウド視点
４つのクラウドサービスを利用◆ RedHat "Developer Sandbox OpenShift"

重要なスキル◆ MongoDB "Atlas"・ネットワーク◆ Dell "ECS TestDrive"・セキュリティ◆ GitHub"GitHub"https433OpenShift Sandbox
https 433
pythonコード
コンテナ/PodKobernetes

外部ネットワーク

User

コードリポジトリ
Git

MongoDB "Atlas"
TCP
27017

REST
443

NonSQL DB(MongoDB)"ECS TestDrive"(Dell)
Object Storage(ECS)

20

Copyright © Dell Inc. All Rights Reserved.

Hello World構築のデモ◆ OpenShift web-consoleから実行◆ ソースコードやコンテナイメージを指定（PaaS,CaaS）

GitHubのソースコードをインポート◆ 環境変数でセキュリティ情報を設定

Build/Deployが完了するとアプリが起動する

21

Copyright © Dell Inc. All Rights Reserved.

考察: オートスケール◆ 仮想マシンとの比較
動的な増減に対応◆ ロードバランサ―と対で動作
各PODへの負荷分散設定をアップデート

OpenShift Sandbox

pythonコード

User

pythonコード
コンテナ/PodUser

httpspythonコード
コンテナ/Pod
コンテナ/Pod

ロードバランサ等

Kobernetes

22

Copyright © Dell Inc. All Rights Reserved.

オートスケール

考察：セキュリティ

クラウドを跨るDBアクセス◆ 通信路
通信はTLS/SSLを使用し暗号化される
TCP 27017ポート ->Firewall(in/out),Proxy に注意 ：e.g. 12/20現在Dell社内からアクセス不可◆認証
セッション確立のため認証情報が必要

認証情報は設定ファイルや環境変数に保存される。

### Connect DB server
db_arg = "mongodb://" + DB_USER + ":" + DB_PASSWORD + "@clusterxxx.jnkoj.mongodb.net:27017,...

◆ その他
MongoDBのネイティブな独自プロトコル
pymongoライブラリ経由でMongoDBへアクセス

23

Copyright © Dell Inc. All Rights Reserved.

考察：Object Storageアクセスとセキュリティ◆ 通信路
通信はTLS/SSLを使用し暗号化される
TCP 443ポート ->Firewall,Proxy親和性高い”ECS”
マルチクラウドとの高い親和性◆認証接続のため認証情報が必要
ACLにより細かなアクセス制御が可能### ECSに対してS3 APIによるセッション接続
session = boto3.resource(service_name='s3', aws_key=ecs_key, aws_secret=ecs_secret, endpoint_url=ecs_endpoint_url)### ファイルのアップロード（ACL='public-read'）Upload the original image to ECS
session.Object(ecs_bucket_name, filename).put(Body=open("uploads/" + filename, 'rb'), ACL='public-read')◆ その他
REST APIで標準的なHTTPメソッドを利用（GET,PUTなど）
URI に基づくアクセスが可能(HTTPSアクセス）
SCSI/FC/SMB/NFSに比べクラウドを跨りやすい -> オンプレならECS
24

Copyright © Dell Inc. All Rights Reserved.

考察：アプリ可搬性◆メジャーなライブラリ/機能を選定：Python, S3(boto3), MongoDB(pymongo), AI(tensorflow)◆バージョン互換性：サポートの制限（例：Python ver2 2020サポート終了）◆データ保存先：オンプレかパブリック？ ストレージプロトコル◆機能分割：APIとセキュリティ◆そもそも可搬性が必要か？

：環境依存の尖った機能を使う場合

CloudFoundry

HerokuRender25

Copyright © Dell Inc. All Rights Reserved.

OpenShiftアプリ検証環境の紹介：◆OpenShift Sandbox：OpenShiftの柔軟な無料テスト環境（要登録、30日制限等）

https://developers.redhat.com/developer-sandbox◆MongoDB Atlas：MongoDBの無料プランで検証可能（要登録）
https://www.mongodb.com/ja-jp/atlas/database◆Dell ECS TestDrice：Object Storageの無料テスト環境（要登録）
https://portal.ecstestdrive.com/◆ソースコード：Gitリポジトリ"Hello world"

https://github.com/miho777/flask101"Photo Album" https://github.com/miho777/flask201

26

Copyright © Dell Inc. All Rights Reserved.

Q＆A
27

Copyright © Dell Inc. All Rights Reserved.

まとめ◆APEX Cloud Platform は、オンプレ、ターンキーのPaaS環境を提供します◆PaaSリテラシーを意識ください
効率化：Sandbox、ChatGPT◆オブジェクトストレージの活用を検討ください◆担当パートナーSEに”相談”してくださいThanks for yourgreat partnership.