52

Java on Azure with Docker container

Embed Size (px)

Citation preview

Page 1: Java on Azure with Docker container
Page 2: Java on Azure with Docker container
Page 3: Java on Azure with Docker container
Page 4: Java on Azure with Docker container
Page 5: Java on Azure with Docker container
Page 6: Java on Azure with Docker container
Page 7: Java on Azure with Docker container
Page 8: Java on Azure with Docker container
Page 9: Java on Azure with Docker container

Windows Server 2016 TP3 からDocker を利用可能

http://tinyurl.com/windows-server-on-docker

Page 10: Java on Azure with Docker container

Docker の基礎

Page 11: Java on Azure with Docker container

コンテナ

Page 12: Java on Azure with Docker container

コンテナ・イメージコンテナ実行環境

Linux

イメージ・レポジトリ

Applications

Application

Frameworks

ホスト OSホスト OS

Page 13: Java on Azure with Docker container

Operating system

Page 14: Java on Azure with Docker container

Operating system

Operating system Operating system

Page 15: Java on Azure with Docker container

Operating System

Operating System

Page 16: Java on Azure with Docker container

Locally with:

• Boot2Docker (Linux)

• Hyper V (Windows)

Physical Servers

• Linux (Linux)

• Windows TP3 (Windows)

Clouds

• Azure (Linux & Windows)

Azureオンプレミス Service Providerローカル環境

Page 17: Java on Azure with Docker container

OSイメージ

ミドルウェア

Web アプリ環境構築用

のスクリプト

Page 18: Java on Azure with Docker container

Docker エンジン

ホスト OS

OSイメージ

ミドルウェア

Web アプリ

OSイメージ

ミドルウェア

Web アプリ

Page 19: Java on Azure with Docker container

Azure

OSイメージ

ミドルウェア

Web アプリ

ADD

CMD

COPY

ENV

EXPOSE

FROM

RUN

Dockerfile から Docker イメージ作成

Page 20: Java on Azure with Docker container

FROM ubuntu:latest

# Install GlassFish 4

RUN wget -q --no-cookies --no-check-certificate

"http://download.oracle.com/glassfish/4.1/release/glassfis

h-4.1.zip"

RUN mv /glassfish-4.1.zip /usr/local; cd /usr/local; unzip

glassfish-4.1.zip ; rm -f glassfish-4.1.zip ; cd /

ADD start-gf.sh /usr/local/bin/start-gf.sh

RUN chmod 755 /usr/local/bin/start-gf.sh

EXPOSE 8080 4848

ENTRYPOINT ["/usr/local/bin/start-gf.sh”]

Dockerfile の記載例

Page 21: Java on Azure with Docker container
Page 22: Java on Azure with Docker container
Page 23: Java on Azure with Docker container

# sudo docker build -t

yoshio3/glassfish:4.1 .

# sudo docker run -it -p 8080:8080 ¥

yoshio3/glassfish:4.1 /bin/bash

Page 24: Java on Azure with Docker container

コンテナ利用シーン

Page 25: Java on Azure with Docker container
Page 26: Java on Azure with Docker container

1. ローカルのアプリ開発&テスト

2. 開発チームのコラボ

3. 継続的インテグレーション

4. 本番環境へのアプリのデプロイ

5. プライベート PaaS 環境の構築

Page 27: Java on Azure with Docker container

開発環境

• JDK のバージョン• アップサーバのバージョン• MySQL のバージョン• OS のパッチ適用状況

Page 28: Java on Azure with Docker container

開発から本番環境までの環境統一は困難

開発環境 テスト環境 本番環境

Java JDK 8 u72 JDK 8 u60 JDK 8 u20

Ruby 2.3.0 2.2.4 2.2.4

MySQL 5.6 5.5 5.5

OS Win/Ubuntu RedHat RedHat

Page 29: Java on Azure with Docker container

開発から本番環境までの環境統一は困難

開発環境 テスト環境 本番環境

Java

Ruby

MySQL

OS

Page 30: Java on Azure with Docker container

1. ローカルのアプリ開発&テスト

2. 開発チームのコラボ

3. 継続的インテグレーション

4. 本番環境へのアプリのデプロイ

5. プライベート PaaS 環境の構築

Page 31: Java on Azure with Docker container
Page 32: Java on Azure with Docker container

早く 頻繁に 安全に

リリースサイクル改善の課題

Page 33: Java on Azure with Docker container

DevOps 手法の一覧

• Infrastructure as Code (IaC)

• 継続的インテグレーション

• 自動テスト

• 継続的デプロイ

• リリース管理

• アプリ パフォーマンスの監視

• ロード テストと自動スケーリング

• 可用性監視

• 変更/構成管理

• 機能フラグ

• 環境へのプロビジョニングの自動解除

• セルフサービス環境

• 自動回復 (ロールバックとロールフォワード)

• 仮説に基づく開発

• 運用環境でのテスト

• フォールト挿入

• 使用状況監視/ユーザー テレメトリ

http://www.itproguy.com/devops-practices/

Page 34: Java on Azure with Docker container

コンテナ1

コンテナn

コンテナ2

コンテナ3

Page 35: Java on Azure with Docker container
Page 36: Java on Azure with Docker container

1. ローカルのアプリ開発&テスト

2. 開発チームのコラボ

3. 継続的インテグレーション

4. 本番環境へのアプリのデプロイ

5. プライベート PaaS 環境の構築

Page 37: Java on Azure with Docker container

1. 可用性

2. 信頼性

3. セキュリティ

4. パフォーマンス

Page 38: Java on Azure with Docker container
Page 39: Java on Azure with Docker container
Page 40: Java on Azure with Docker container

mysql:

image: mysql

ports:

- ":3306"

environment:

MYSQL_USER: mysql

MYSQL_PASSWORD: mysql

MYSQL_DATABASE: mysql-db

myglassfish:

links:

- mysql

image: tyoshio2002/gf-

mysql:latest

ports:

- 8080:8080

- 4848:4848

docker-compose.yml

8080

48483306

Page 41: Java on Azure with Docker container

> docker-compose up -d

Page 42: Java on Azure with Docker container

3306

> docker-compose scale myglassfish=4

Page 43: Java on Azure with Docker container
Page 44: Java on Azure with Docker container
Page 45: Java on Azure with Docker container
Page 46: Java on Azure with Docker container

OSイメージ

ミドルウェア

Web アプリ

Azure

OSイメージ

ミドルウェア

Web アプリ

Page 47: Java on Azure with Docker container
Page 48: Java on Azure with Docker container

1. ローカルのアプリ開発&テスト

2. 開発チームのコラボ

3. 継続的インテグレーション

4. 本番環境へのアプリのデプロイ

5. プライベート PaaS 環境の構築

Page 49: Java on Azure with Docker container

MSDNサブスクリプションMicrosoft Azure無料枠

http://aka.ms/TryAzhttp://aka.ms/Free-Azure

Page 50: Java on Azure with Docker container

FeedBackPlease !!

feedback.azure.com

github.com/Azure/azure-content

Page 52: Java on Azure with Docker container