20161028 openshift on azure でasp.net coreと戯れよう

47
OpenShift on Azureで ASP.NET Core と戯れよう Tokyo Jazug Night #5 @tanaka_733

Upload: takayoshi-tanaka

Post on 28-Jan-2018

57 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

OpenShift on AzureでASP.NET Core と戯れようTokyo Jazug Night #5

@tanaka_733

Page 2: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

自己紹介お仕事◦ OpenShift◦ .NET Core on Red Hat Enterprise Linux (RHEL)◦ Red Hat Solutions on Azure (RHEL, OpenShift etc)

個人◦ Microsoft MVP for Visual Studio andDevelopment Technologies◦ C#, .NET Core

◦ Build InsiderでC#関連の記事を執筆していたりします◦ 最新はRoslyn SDK 拡張連載

Page 3: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

今日のGoal

◦OpenShift を知ってもらう

◦AzureのサービスとOpenShiftを連携させてみる

◦OpenShiftでASP.NET Coreを試してみよう

Page 4: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

関連IgniteセッションBRK3236Red Hat OpenShift on Microsoft Azure

https://techcommunity.microsoft.com/t5/Microsoft-Ignite-Content/BRK3236-Dive-into-RedHat-s-Openshift-on-Microsoft-Azure/td-p/9562

せっかくなので、OpenShiftについてはこの資料で説明してみましょう

(公開時には引用した部分はリンクのみになります)

Page 5: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

kubernetes をみんなで便利に使おう

User Experience

Containerized Service

Orchestration

Container

Container Host

Page 6: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

https://www.redhat.com/en/microsoft

https://azure.microsoft.com/campaigns/redhat/

Page 7: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 8: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Microsoft

Azure

Dev: single

VM

Dev:

container

Community Supported

Commercially Supported

Your choice of infra

OpenShift Online

OpenShift Dedicated

http://docs.openshift.com

Page 9: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 10: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

OpenShiftConcepts & Architecture Overview

Page 11: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

10,000 foot overview

Page 12: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

OpenShift runs on your choice of infrastructure

Page 13: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Nodes are instances of RHEL where apps will run

Page 14: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Apps and components run in containers

Container

Image

Container

Pod

Page 15: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Pods are the orchestrated unit in OpenShift

Page 16: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Masters are the Control Plane

Page 17: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

API and Authentication

Page 18: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Desired and Current State

Page 19: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Scheduler Pulls From The Registry

Page 20: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Orchestration and Scheduling

Page 21: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Placement by Policy

Page 22: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Services connect application components

Page 23: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Health and Scaling

Page 24: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

What about unhealthy Pods?

Page 25: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

The Master remediates Pod failures

Page 26: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

What about app data?

Page 27: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Routing layer for external accessibility

Page 28: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Access via Web UI, CLI, IDE, API

Page 29: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 30: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 31: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 32: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 33: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう
Page 34: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

http://aka.ms/openshift

Page 35: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Master - 10.0.0.0/24 Avail Set: Nodes - 10.0.1.0/24

vNet – 10.0.0.0/16

Master

PIP: 22, 8443, …

Nodes

PIP: 80, 443

Nodes DIP: 22, …

Page 36: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

https://keithtenzer.com/2016/10/14/enterprise-container-platform-in-the-cloud-openshift-on-azure-secured-

by-azure-ad/

Page 37: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

ASP.NET Core on OpenShift Originon CentOS on Azure今回は、upstream であるOpenShift Originを使い、

OSもAzureですぐに利用できるCentOSを使い構築

今回程度の規模のテスト目的ではSingle VMで十分

動かすアプリは、ASP.NET Coreにしてみました

Page 38: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

構築方法Documentに従って進めましょう◦ https://docs.openshift.org/latest/install_config/install/advanced_in

stall.html

◦ Quick InstallよりAdvanced Installの方をお勧めします

ワイルドカードドメイン◦必須ではないが、アプリケーションのルーティング用に使用◦ NameCheapなどで取得し設定◦ 今回は、CNAMEでVMのpublic ip のホスト名を解決するように設定

◦ IPベースで解決でよければ xip.io でも

Page 39: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

Azureサービスとの連携ARM Tempaltes◦必要なVM、VNETなど一式を起動するのに便利

AAD OpenID Connect◦ Web Console/CLIの認証に利用可能◦ ADもしくはAAD DSによるLDAP認証も利用可能

OMS◦ Linux VMのログ監視とかメトリクス監視に利用できる(らしい)

Page 40: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

S2I ASP.NET Core

Page 41: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

DEMO1: s2i とGitHub自動ビルド

s2iイメージによる、コードのビルド+デプロイ

Webhookを利用し、コミットからの自動デプロイも可能

https://goo.gl/tyYhUi

Page 42: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

DEMO1α ASP.NET Core 1.1 Preview

まだ、Red Hat公式Dockerイメージはないので、

自作イメージで実行

Page 43: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

DEMO2: MVC Auth と Secret

ServiceStackのデモをデプロイ

SecretKeyの格納にOpenShift Secretを使用

https://goo.gl/8FSuGk

Page 44: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

DEMO3: EF Core と DB用コンテナ

PostgreSQLのコンテナを利用

Environmentで開発:SQLite,本番:PostgreSQLでEF Core+Migration

https://goo.gl/rWMz8y

Page 45: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

DEMO4: Redis 3.2 GeoRadius

ServiceStackのデモをデプロイ

Redis 3.2のコンテナを利用し、GeoRadiusコマンドを使用

https://goo.gl/VUbRfv

Page 46: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

DEMO5: SignalR

SignalR-Server が.NET Core1.1必須なので、なんとか動かすのが間に合えば…

https://goo.gl/G9u6xb

Page 47: 20161028 OpenSHift on Azure でASP.NET Coreと戯れよう

今日のまとめ

◦OpenShift を知ってもらう

◦AzureのサービスとOpenShiftを連携させてみる

◦OpenShiftでASP.NET Coreを試してみよう