Post on 23-Jan-2018
15分でわかる Bluemix
Bluemix User Group 勉強会2017年8月30日(水)日本情報通信株式会社Evangelist 常田秀明
@tokida
Bluemixをこれから始める人への3つのポイント
アジリティ & スケールクラウド上で仮想サーバを利用するだけでは対応できない。アプリケーションの開発に必要なものは変化している。
実行環境の管理は不要アプリケーションを実行するために必要な環境をサービスで提供
沢山の「サーバ」は沢山の管理が必要
たくさんの「サーバ」を管理したくない(台数も多くなり導入されるバリエーションも増え人で管理していくには大変になってきた)
沢山のサーバの上では多くの「アプリケーション」が実行されている
アプリケーションの管理は運用担当者が担当
OS
bin
OS
bin
OS
bin
OS
bin
OS
bin
面倒な事はBluemixが担当
実際に動作しているサーバは隠蔽されて見えない(実行上、サーバを管理する必要がない)
沢山のサーバの上では多くの「アプリケーション」が実行されている
アプリケーションの制御はBluemixが担当
開発者は事前に定義された環境を指定するだけ
BuildPackの仕組みによりアプリケーションの実行に必要な「Bin」や「(lib)ライブラリ」をまとめて定義されている。この仕組みにより多数の開発言語が利用できるようになっている。
使いなれた開発言語を利用することが出来る!
それだけでしっかりしたモノ動きます
LB
設定だけで分散可能
FQDNも自動で付与(すぐにインターネットから利用可能)・初期では mybluemix.net
・独自ドメインももちろん使える
HTTPSも使える(証明書も管理)
冗長化された入口
ワンクリックで複数台起動割当のメモリサイズも容易に変更
ワンアクションでデプロイ
運用担当者などの介在が不要、一定の品質が常に担保されることの安心感
従来の開発との比較
1. OSを指定して仮想サーバをオーダ
2. OSの最新かとユーザやファイルシステム、ネットワークの構成
3. 必要となる実行環境(Bin/Lib)をパッケージシステムなどを利用して導入し動作するように設定
4. アプリケーションの開発
5. アプリケーションのコードをOS上に転送し所定の場所で展開
6. インターネット接続のためのネットワークの設定(Firewall
等)
7. インターネットから接続するためのDomainとSSL証明書の購入、ミドルウェアへの証明書の設定。
8. アプリケーションの起動
1. アプリケーションの開発
2. アプリケーションの転送(cf push)
IaaSを利用した仮想サーバ上での構築 Bluemix上での構築
ミドルウェアの導入不要システムを構成する多くのソフトウェアがすぐに利用可能な状態に
Q: 実行環境にDatabaseソフトウェアをどうやって導入するの?
A: ムリではないが向いてない
事前に多くのソフトウェアがすぐに利用できる状態で用意済み
Data,DevOps,Security,Watson,IoT,Web/Mobile, Analytics etc
およそ140のサービスが利用可能な状態になっている
BINDという素晴らしい機能
Service Blocker
利用を開始した、”サービス”サービスへの接続の情報・ホスト名・ユーザ名・パスワード・その他の情報
サービスへの接続の情報・ホスト名・ユーザ名・パスワード・その他の情報
環境変数
アプリケーションの中で変数として接続情報が処理できる
提供されているサービスは簡単にコマンド(Web)から利用可能な状態にすることが可能
従来の開発との比較
1. 仮想サーバ上にRDBを導入
2. RDBが動作するための必要な構築(作業中略…)
3. RDB上にアプリケーション用のUserを作成
4. アプリケーション側の設定ファイルなどに、RDBの接続先を記入
5. アプリケーションからの接続の開始
1. RDBをオーダ(cf create service)
2. アプリケーションにオーダしたRDBをBIND
(cf bind-service)
3. アプリケーションからの接続の開始
IaaSを利用した仮想サーバ上での構築 Bluemix上での構築
欲しいサービスがない場合には?
Service Blocker
必要な機能が導入された仮想サーバや物理サーバ、またはCFア
プリケーション
サービスへの接続の情報・ホスト名・ユーザ名・パスワード・その他の情報
サービスへの接続の情報・ホスト名・ユーザ名・パスワード・その他の情報
環境変数
オレオレサービス登録cf create-user-provided-service
すぐに運用が可能運用フェーズ(Day2)で必要な機能も最初から含まれている
初期構築のその後に
従来の仮想サーバ等の場合には、初期構築後に発生する様々なシステムに起こる事象に対応するために監視の仕組み、ログ収集の仕組み、データのハウスキーピング等インフラ面やアプリ
ケーション面用意が必要となります。
維持運用に必要なサービス郡実際に運用を開始するために必要な機能もプラットフォームとして用意されています。構築時に必要なDevOpsサービス、監視サー
ビス、通知サービスなどを選択することが出来ます。
継続的デリバリ
ものすごい高機能ではないが必要十分な機能を備えている(かつ基本的なものはプリセット済み)これまでこの手のツールを使ったことがない人でも利用可能
地味に便利な監視と通知
Availability Monitoring
Alert and Notification
従来の開発との比較IaaSを利用した仮想サーバ上での構築 Bluemix上での構築
1. 各種の運用環境を用意(自動化Jenkins等,
監視Tivoli , Alert通知の環境等)
2. 各種環境のクライアント導入や設定の実施
3. 各種環境の維持メンテナンス
1. 必要な機能をオーダ
2. 設定の実施
維持運用のための環境の「維持」は想像以上に大変
利用するだけでクラウドネイティブ
Bluemix上で構築することで、クラウド上のベストプラクティス(12factor)に準拠
✔
✔
✔
✔
✔
✔
✔
✔
✔
https://12factor.net/ja
もう少し”Bluemix”
Infrastructures as Service
Contaienrs
Functions
• 物理サーバ、仮想サーバを中心に利用可能。世界40個所以上のデータセンターが利用可能• VMWareやSAPプラットフォーム、そしてGPUを活用したゲーム、AIサーバとして利用されています
• コンテナ管理として標準的なKubernetesを利用したコンテナ管理サービスを提供• コンテナからもBluemix上の140種以上のサービスをBINDして利用可能• コンテナイメージのセキュリティチェックなど運用面でも支援
• PaaSのをさらに推し進めたFunction as a Serviceを提供• イベント駆動型、Function型、多彩な呼び出し方法(SDK,Web,API)を標準でサポート• クラウド時代のステートレス処理の運用に最適なプラットフォーム
まとめ
実行環境の管理は不要
好きな言語を使ってすぐに開発が始められます。アプリケーションをデプロイするだけでインフラ管理は要りません。
ミドルウェアの導入不要
好きなソフトウェアを使ってすぐに開発が始められます。140種類のサービスから必要な物を選ぶことが出来ます
すぐに運用が可能
アプリケーションの継続的デリバリを支援するDevOps、セキュリティ、監視、通知、本番環境と開発環境。運用に必要なものはすぐに使い始められます。
• ログの管理機能が欲しい
• syslog転送して監視する機能もサービスで提供して欲しい
• 毎回VMやElasticSearchサービスを利用してsyslog転送している?他にいいアーキテクチャありますか?
• 複数リージョンをまたいだ障害対策
• グローバルロードバランサーまたはDNSサービスなどIaaSの環境を活かした分散装置が欲しい
• Gitサービスのgitlabのバージョンの最新化
• Slackへのインテグレーションの機能とか、Issueへの複数アサイン機能が欲しい
• Container サービスは、Container 単位の課金(従来通り)が良かった
• 従来のクラスターの課金体系でKubernates側が利用できると嬉しかった。現在のIaaSのVM使うものはDedicatedということで…
ログ転送アーキテクチャ
Loggre
gator
Logstas
h
CFアプリケーション(B) log転送機能
ユーザプロバイダ Logstash
On Container Service
Compose ElasticSearch
Service
Loggre
gator
CFアプリケーション(A) log転送機能
ContinerサービスとElasticSearchサービスを活用して、アプリケーションのログを保管する仕組み
Bluemix CFアプリケーションのログをlogstash経由でCompose ElasticSearchサービスへ保管する
http://www.niandc.co.jp/sol/tech/date20170731_717.php
出たか
ようやく
ご清聴ありがとうございました!