Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2017年 Azure 最新サービスはこう使え

366 views

Published on

This is the material for Microsoft Azure onsite seminar on Jan 18, 2018 at

Published in: Technology
  • Be the first to comment

2017年 Azure 最新サービスはこう使え

  1. 1. http://aka.ms/azurejp20180118-2 本日の資料
  2. 2. 1.AI・認知機能学習済みモデル Microsoft Cognitive Services 2.高速分散オールインワン NoSQL Cosmos DB 3.オープンソースフルマネージド DB Azure Database for MySQL / PostgreSQL 2017年 注目のサービス振り返り
  3. 3. アスキーでよく Azure を記事にしていただく記者も このようにご紹介いただいています http://ascii.jp/elem/000/001/610/1610737/ Azure Database for MySQL / PostgreSQL Azure Cosmos DB Microsoft Cognitive Services
  4. 4. で、これらってどう使うのが良いの? Cognitive Services は利用者判定や自動回答チャッ トボットだけなの? Cosmos DB って世界規模に分散しないシステムに は向いてないの? LAMP アプリのフルマネジド化対応って何が良い の? よく聞く質問 お答え 洗練され良く構築されたものとしてはマーケティ ングオートメーションがあります。 認知データを属性と共に蓄積し、分析したデータ を各種システムにて利用できます。 国内での分散(東日本と西日本)でも OK、分散が 無くても OKです。 高速 EC 基盤として活用できます。 1. メンテナンスに労力を欠けなくて良いため新機 能開発(他社との差別化)を進められビジネス 伸長を進めやすくなります 2. スケーラビリティを獲得できます 3. CI/CD および DevOps が進めやすくなります
  5. 5. 創業100年 伊勢の老舗の商店:ゑびや
  6. 6. IT 活用で可視化を進め店舗経営を高度化 • 4年間で売上4倍 • 利益率10倍 • 平均給与 20% アップ • 完全週休二日制、残業無し、 特別休暇年間最大15日 (消化率80%) • 需要予測的中率 90% 超
  7. 7. 撮って蓄積したデータを需要予測に活用 (ゑびや来店予測 AI) データ収集 データ蓄積・管理 • 売上データ • 在庫データ • アクセスデータ • 来客数データ • 天候データ • 画像データ 需要予測 店舗運営状況の 一元化レポート 店舗内ビデオデータ 天候データ 売上データ 勤怠情報 アクセス数 サイト稼働データ アロバビューコーロ 画像解析 AI Azure Functions Cosmos DB / SQL DB Azure Machine Learning Power BI Embedded Cognitive Services
  8. 8. そんなことありません
  9. 9. Cosmos DB は単一の DB として利用できます Clients Web Apps Cosmos DB データ参照 Web 一覧 詳細一覧 マスターデータ保管 照会データ引き出し Cosmos DB は非構造のスキーマレスのデータの取り扱いに向いてますが ACID トランザクションの管理は RDB が向いてます 一般的な Web サイトの例
  10. 10. 冗長性を高め可用性を担保したセットとして構成 できます a. Traffic Manager でトラフィックを制御 b. App Service で高トラフィック時、ス ケールアウトし必要な処理能力を確保 c. Cosmos DB で分散し各所から低レイテ ンシーを確保しつつ自動的にデータの一 致性を実現  こうすれば万事の際に発生するビジネス インパクトがなくなります  何よりnon-VM の Cloud Native な Hot Pool 型の PaaS なので「非機能の限界 を超える」ことができます
  11. 11. 真骨頂は App Service + Cosmos DB + Azure Search の鉄板構成 API Apps Search Cosmos DB (Document) Blob Storage 利用者 App Service Microsoft Azure Storage Queue Blob Storage Functions Storage Queue SQL Database Cosmos DB Cognitive Services Machine Learning Functions PC Clients (Windows/Mac)Mobile Clients (iOS/Android) API Gateway Application Insights Azure Monitor Web Apps Token .NET Identity Framework Functions REST/OAuth2 SPA (Browser App)SPA (Browser App) 富士フイルム IMAGE WORKS の例
  12. 12. IMAGE WORKS 一覧表示画面 一覧表示 全文検索 サムネイル
  13. 13. IMAGE WORKS 詳細画面 画像属性情報
  14. 14. この構成を EC サイトで当てはめると(一覧表示) 一覧表示 全文検索 サムネイル 絞り込み
  15. 15. この構成を EC サイトに当てはめると(詳細表示) 詳細表示 注文数 単価
  16. 16. 実際、Domino’s Pizza や Jet.com は この構成で構築されています Azure Search SQL Database
  17. 17. これからは Non-VM Full PaaS の Serverless ですよ
  18. 18. 「製品のサポート切れ対応で 手一杯なんですよー」 あるエンジニアの例
  19. 19. ストレージ サーバー ネットワーク OS ミドルウエア 仮想化 データ アプリケーション ランタイム OS ミドルウエア データ アプリケーション ランタイムユ ー ザ ー 管 理 アプリケーション データ ベ ン ダ ー 管 理 Microsoft Azure 仮想マシン Windows Server Hyper-V Windows Server Microsoft Azure App Service Office 365 Dynamics 365 ベ ン ダ ー 管 理 ユ ー ザ ー 管 理 ユ ー ザ ー 管 理 サポート切れ対応を誰がするのか!!!
  20. 20. システムの運用は本当に大変… 「そういえばサーバーの運用って大丈夫?」 「セキュリティ対策で、 パッチ適用したいのですが?」 「必要最低限だけで いいですよ」 ※ 極端な例です 「幾つかこちらで設定した項目が あるので、関連するところは 変えられないです?」 パッチは適時適用されます システム内部の依存関係に ついては自動的に処理され ます
  21. 21. まだまだ やることが … 「新しい OS 出たんですが、どうします?」 「計画停止があるので、それだけ 了承してくださいね?」 「クラスタ組みましたので、 組んだエンジニアに 聞いてみますね」 適時新しいOSに更新されます 計画停止はありません 低レイヤーの構成については ベストプラクティスを採用し ているので考慮する必要はあ りません ※ 極端な例です
  22. 22. まだまだ、まだまだ やることが … DBのストレージ領域を 監視しないと・・・ 「パフォーマンスが最適に なるように構成しないと」 「どの仮想サーバーで、 何のアプリが動いているか 把握しておかないと」 実際のストレージの監視をして、 必要に応じて追加しています ベストプラクティスに沿った 構成をしており、常に見直され ます アプリケーションは、 最適なサーバー構成にて 自動配置されます ※ 極端な例です
  23. 23. 展開 ビジネス • NFC を組み込んだプレートによりモノとネッ トをつなぐ「スマートプレート」を展開 • OOH、店頭、POP 等の設置により利用者をダ イレクトに訴求サイトに誘導 アクアビットスパイラルズ ベネフィット • オートスケールによりビ ジネス機会拡大 • クラウド利用料削減 • 新機能開発高速化 • Cognitive Services 利用効 率化 ソリューション • オートスケール可能な Web App および Azure DB for MySQL を利用 • 既存 PHP アプリを Web App for Containers で移行 チャレンジ • キャンペーン利用に適した 高トラフィック対応が必要 • Azure ML を使ったユー ザー行動パターン分析への 効率的な接続 Microsoft Tech Summit 2017 で採用
  24. 24. スマートプレート構成図 25 基本的に non-VM Full PaaS
  25. 25. 最も単純なデプロイメントの流れ Local PC Container Registry • 開発、ビルド、テスト • コンテナイメージ作成 コンテナイメージを Registryにプッシュ Web Appが コンテナイメーを Registryからプル https://hub.docker.com/ deployment slot • dev • Staging • production
  26. 26. Microsoft Azureでの CI/CD オプション Web Appの Webhook とコンテナ レジストリ連携 • Docker Hub/Azure Container Registry にイメージ PUSH で Webhook キックされて Web App のコ ンテナ入れ替える、お手軽な手法 • https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-ci-cd 自動化を支える CI/CD ツール群 • Visual Studio Team Services • Jenkins • TravisCI / CircleCI
  27. 27. デプロイメントサイクルと CI/CD Commits code Build/CI CD pipelineContainer Registry commits code Build/CI CD pipelineAzure Container Registry Code Repository Build + Testing Release Commits code Build/CI CD pipelineContainer Registry
  28. 28. 知識習得のために:Webinar オンデマンド WebinarLive Webinar 登録 https://aka.ms/azurejp-live-webinar https://aka.ms/azurejp-ondemand-webinar
  29. 29. 実際に利用するために:自習書 https://www.microsoft.com/ja-jp/cloud-platform/azure-site-usage
  30. 30. 体験するために:Azure Antenna https://aka.ms/aajp
  31. 31. ターンキーのソリューション利用:Cloud Everywhere https://aka.ms/cejp 80+ ソリューション提供社数 150+ 掲載ソリューション数
  32. 32. フルマネージド化対応までの流れ 1. アプリの Docker コンテナ化 2. MySQL 接続部を Azure DB for MySQL に対応 3. 作成したコンテナイメージをコンテナレジストリにpush(Docker Hub / Azure Container Registry) 4. Web App for Container の プロビジョニング + コンテナイメージのデプロイメン ト
  33. 33. サンプルコード 本ウェビナーの説明で使用する設定ファイルコードは全て GITHUBにアップしてあります。ご自分の環境でお試しに なりたい方は下記レポジトリよりgit clone/ダウンロード してお使いください。 https://github.com/yokawasa/WordPress git clone https://github.com/yokawasa/WordPress.git
  34. 34. アプリのDockerコンテナ化 Best practices for writing Dockerfiles https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ FROM python:3.4-alpine ADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD ["python", "app.py"] サンプルDockerfile (Pythonアプリapp.pyの環境)
  35. 35. 標準的なWordpress用Dockerfile ベースイメージはphp:7.0-apache その他追加パッケージのインストール 推奨PHP設定(OPcache ) ファイル・ディレクトリ関連設定 docker-entrypoint.sh シェルを介して実行する設定内容を記述。 ここではWordpress用パラメータ設定 ファイル(wp-config.php)の初期設定等https://github.com/yokawasa/WordPress/blob/master/Dockerfil Wordpressアプリ環境の構成内容を記述 ベースはDocker公式のWordpressイメージ https://github.com/docker-library/wordpress/tree/master/php7.0/apache
  36. 36. Web App用カスタムコンテナのための 設定ポイント https://blogs.msdn.microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/ 1. パラメータは環境変数から読み込むように設定 DB接続先やアプリ内の可変パラメータなど 2. 外部公開用ポートの自動バインド 外部公開可能なポートは1つのみ。ポートは自動で検知されコンテナにバインドされる。 WEBSITES_PORT環境変数で明示的に指定可 3. SSHの設定 Azureポータル内のクライアントからのみコンテナイメージにSSHログインが可能。rootユーザー パスワードは“Docker!”, ポートは2222 https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-ssh-support 4. 永続化データと/homeディレクトリ WEBSITES_ENABLE_APP_SERVICE_STORAGEをtrueにすることで/homeディレクトリは ストレージにマウントされる
  37. 37. Web Appコンテナ用WordpressアプリのDockerfile https://github.com/yokawasa/WordPress/blob/master/Dockerfile.webap p Web AppへのSSHログインのための設定 永続化ディレクトリ(/home)にアプリ コード展開とログ出力するための設定
  38. 38. アプリのコンテナイメージ化と実行 コンテナをビルドする (image_name:tag=wordpress-app:0.0.1) コンテナをローカルで走らせてテスト 環境変数でMySQL接続情報とストレージ永続有効化設定をセット
  39. 39. [参考] Docker-compose.ymlに整理すると アプリ + MySQLコンテナの実行用ファイルWordpressアプリコンテナの実行用設定ファイル docker-compose_remotedb.yml docker-compose_localdb.yml docker-compose -f docker-compose_remotedb.yml up 次のようにdocker-composeで実行
  40. 40. Azure DB for MySQLの作成 DBアカウント作成 az mysql server create --name <dbaccountname> --resource-group <groupname> --location <region> --admin-user <adminuser> --admin-password <password> --performance-tier <Tier:Basic|Standard> --compute-units <unit#> → サーバ名: <dbaccountname>.mysql.database.azure.com 例)DBアカウントyoichikademo01作成 (Basic帯, リージョン:西日本, adminユーザ:myadmin) az mysql server create --name yoichikademo01--resource-group myrgroup --location japanwest --admin-user myadmin --admin-password *** --performance-tier Basic --compute-units 50
  41. 41. Azure DB for MySQLの設定 1. ファイアウォールの設定(ここではテストのため便宜上全てのIPレンジを許可) az mysql server firewall-rule create --resource-group <group> --server <dbaccountname> --name AllowFullRangeIP --start-ip-address 0.0.0.0 --end-ip-address 255.255.255.255 mysqlコマンドでテストアクセス (DBアカウントyoicikademo01へのアクセス ) mysql -u myadmin@yoichikademo01 -p -h yoichikademo01.mysql.database.azure.com 2. ssl-enforcement パラメーターを無効化(以降のアプリのテスト簡略化のため・・・) az mysql server update --resource-group <group> --name <dbaccountname> --ssl-enforcement Disabled https://docs.microsoft.com/en-us/cli/azure/mysql
  42. 42. MySQL接続先を変更して実行テスト myadmin **** yoichikademo01.mysql.database.azure.com
  43. 43. Docker HubにイメージをPUSH Docker HubにPUSH (image-name:tag=wordpress-app:0.0.1) Docker Hubにイメージが PUSHされていることを確認 <dockerhub-user>/<imagename>:<tag> = yoichikawasaki/wordpress-app:0.0.1
  44. 44. Web App for Containerプロビジョニング Azure CLIによる設定 https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image Web App for Containerの作成(プロビジョニング時にコンテナを指定) # App Settingsに環境変数をセット (--settingsのパラメータにスペース区切りで複数設定可)

×
Save this presentationTap To Close