SlideShare a Scribd company logo
IBM Bluemix
www.bluemix.net
Bluemix のご紹介
IBM Bluemix DevOps Services (IDS) で
Java の Webアプリを開発する
2016年6月30日
日本アイ・ビー・エム 株式会社
クラウド・ソフトウェア事業部
Bluemix & XaaS テクニカル・セールス
鈴木 一平
© 2016 IBM Corporation
2
IBM Bluemix
www.bluemix.net
ご注意
この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株
式会社の正式なレビューを受けておりません。
資料の内容には正確を期するよう注意しておりますが、この資料の内容は2016年6月現在の情報であり、
製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。
当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤
またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受
けたいかなる被害に関しても一切の補償をするものではありません。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business
Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標
である場合があります。現時点でのIBMの商標リストについては
http://www.ibm.com/legal/copytrade.shtmlをご覧ください。
© 2016 IBM Corporation
3
IBM Bluemix
www.bluemix.net
アジェンダ
1. 概要
2. 前提
3. CF アプリの開発手順
3-1 Bluemix に Cloud Foundry (CF) アプリを作成する。
3-2 IDS にファイルを作成する。
3-3 IDS でビルド&デプロイする。
3-4 CF アプリ の実行結果を確認する。
4. まとめ
© 2016 IBM Corporation
4
IBM Bluemix
www.bluemix.net
1. 概要
© 2016 IBM Corporation
5
IBM Bluemix
www.bluemix.net
テーマ
Liberty for Java™
IBM DevOps Services
IBM Bluemix
• Web アプリ作成
• Web アプリの実行 & 確認
• プログラミング
• ビルド & デプロイ
Git の追加CF PUSH
 IBM Bluemix DevOps Services (IDS) だけで、Bluemix の Java の Webアプ
リを開発する。
 ランタイムは、Liberty for Java を使⽤する。
 Liberty for Java とは?
IBM WebSphere Liberty Profile は、クラウド⽤に設計された IBM WebSphere
Application Server の、高度な構成が可能な超高速および超軽量のプロファイル
Java Web アプリを簡単に開発、デプロイ、および拡張可能
© 2016 IBM Corporation
6
IBM Bluemix
www.bluemix.net
IBM Bluemix DevOps Services (IDS) とは
 「Bluemix アプリ開発に最適化」されたSaaS型開発環境
 JazzHub として提供していたサービスを2014年4月に名称変更
Track & Plan と Delivery Pipeline が Bluemixのサービスとして提供
 Webブラウザから全ての機能を利⽤可能
 Bluemix アプリの継続的デリバリーをサポート
 チーム開発のための機能がすぐに使える
名称 説明
Web IDE
Eclipse Orionをベースとしたブラウザ上で稼動する統合開発
環境。多数の言語に対応したエディタを備える。
(Track & Planの利⽤で使⽤される機能)
Code
Management
ソースコード等の構成管理のためのリポジトリを備える。IDS
上にホストされたGit、Jazz SCMの他、GitHubとの接続も可
能。(Track & Planの利⽤で使⽤される機能)
Delivery Pipeline
Bluemix環境向けにアプリケーションを自動的にビルド・デ
プロイするパイプライン機能を提供
Track and Plan
チーム開発におけるアジャイルベースの計画および作業管理
を行うための機能を提供
<提供機能>
© 2016 IBM Corporation
7
IBM Bluemix
www.bluemix.net
2. 前提
© 2016 IBM Corporation
8
IBM Bluemix
www.bluemix.net
IBM Bluemix にログインできること。
https://console.ng.bluemix.net/
© 2016 IBM Corporation
9
IBM Bluemix
www.bluemix.net
IDS にログインできること。
https://hub.jazz.net/
© 2016 IBM Corporation
10
IBM Bluemix
www.bluemix.net
3. CF アプリの開発手順
© 2016 IBM Corporation
11
IBM Bluemix
www.bluemix.net
3-1
Bluemix にCloud Foundry (CF) アプリを作成する。
© 2016 IBM Corporation
12
IBM Bluemix
www.bluemix.net
CF アプリを作成する。(1)
https://console.ng.bluemix.net/クラシック・エクスペリエンスで操作してください。
© 2016 IBM Corporation
13
IBM Bluemix
www.bluemix.net
CF アプリを作成する。(2)
「完了」をクリック
数十秒で CF アプリが完成
© 2016 IBM Corporation
14
IBM Bluemix
www.bluemix.net
Git に追加する。(1)
CFアプリの「概要」からこちらをクリック
© 2016 IBM Corporation
15
IBM Bluemix
www.bluemix.net
Git に追加する。(2)
「閉じる」をクリック
ここまでの手順で、CF アプリを Git に追加
© 2016 IBM Corporation
16
IBM Bluemix
www.bluemix.net
ご参考) デフォルトで使⽤可能なフィーチャー
※ Java EE 7 Web Profileに含まれる仕様が構成
*
*
*
*
本書のプログラムで使⽤*
© 2016 IBM Corporation
17
IBM Bluemix
www.bluemix.net
3-2
IDS にファイルを作成する。
© 2016 IBM Corporation
18
IBM Bluemix
www.bluemix.net
IDS を起動する。
こちらをクリックして、
DevOps Services を起動
© 2016 IBM Corporation
19
IBM Bluemix
www.bluemix.net
IDS の Web IDE にファイルを作成する。(1)
こちらのファイルツ
リーを操作して、次
頁のファイルやフォ
ルダを作成
ファイルの中身
はこちらで編集
© 2016 IBM Corporation
20
IBM Bluemix
www.bluemix.net
IDS の Web IDE にファイルを作成する。(2)
 Git にCF アプリのスターターコードがコミット、プッシュされた状態になっている。
 コミットメッセージ「Add starter application package」
 以下のファイルを作成する。
 (root) 
srcmain
 java
wasdevsamplemodelHelloBean.java
wasdevsampleservletHelloServlet.java
 webapp
WEB-INFbeans.xml
WEB-INFweb.xml
hello.jsp
hello.xhtml
pom.xml
CDI Bean
Servlet、JSP、JSF から参照している。
Servlet
CDI の設定ファイル
CF アプリは CDI 1.2 のため空ファイルを配置
すれば、@Named のクラスを検索する。
Maven のプロジェクト・オブジェクト・モデル
現 Geronimo の設定を削除して、WebSphere
Liberty Profile の設定を追記する。
JSP
JSF
WAR の設定ファイル
JSF 定義を記述する。
© 2016 IBM Corporation
21
IBM Bluemix
www.bluemix.net
HelloBean.java
package wasdev.sample.model;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named
@SessionScoped
public class HelloBean implements Serializable {
/** シリアルバージョンID */
private static final long serialVersionUID = 2324340609815434023L;
/** メッセージテンプレート */
private static final String MESSAGE_TEMPLATE = "【%s】こんにちは、Bluemix。[%d]";
/** カウンター */
private int count = 0;
/** メッセージ */
private String message = String.format(MESSAGE_TEMPLATE, "デフォルト値", count);
@PostConstruct
public void init() {
setCount(0);
setMessage(String.format(MESSAGE_TEMPLATE, "@PostConstruct", getCount()));
}
public void action() {
int next = getCount() + 1;
setCount(next);
setMessage(String.format(MESSAGE_TEMPLATE, "ボタンアクション", next));
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
© 2016 IBM Corporation
22
IBM Bluemix
www.bluemix.net
HelloServlet.java
package wasdev.sample.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import wasdev.sample.model.HelloBean;
import javax.inject.Inject;
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
/** シリアルバージョンID */
private static final long serialVersionUID = 1808808594661653378L;
@Inject
private HelloBean helloBean;
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html; charset=UTF-8");
PrintWriter out = res.getWriter();
out.println("<html><body>");
out.println(
"<head><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-
1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous" /></head>");
out.println("<h1>" + helloBean.getMessage() + "</h1>");
out.println("</body></html>");
out.println("</body></html>");
}
}
© 2016 IBM Corporation
23
IBM Bluemix
www.bluemix.net
beans.xml
※ 空ファイル
© 2016 IBM Corporation
24
IBM Bluemix
www.bluemix.net
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Hello Java</display-name>
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
© 2016 IBM Corporation
25
IBM Bluemix
www.bluemix.net
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
crossorigin="anonymous" />
</head>
<body>
<h1>
<c:out value="${helloBean.message}" />
</h1>
</body>
</html>
© 2016 IBM Corporation
26
IBM Bluemix
www.bluemix.net
hello.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
crossorigin="anonymous" />
</h:head>
<h:body>
<h1>
<a href=“./hello.xhtml"><h:outputText value="#{helloBean.message}" /></a>
</h1>
<h:form>
<h:commandButton class="btn btn-primary btn-lg btn-block"
id="buttonId" value="メッセージ更新" actionListener="#{helloBean.action}" />
</h:form>
</h:body>
</html>
© 2016 IBM Corporation
27
IBM Bluemix
www.bluemix.net
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>net.wasdev.maven.parent</groupId>
<artifactId>java7-parent</artifactId>
<version>1.4</version>
<relativePath></relativePath>
</parent>
<groupId>net.wasdev.wlp.sample</groupId>
<artifactId>JavaHelloWorldApp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Liberty Profile Sample - Servlet</name>
<url>https://wasdev.github.io</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://raw.github.com/WASdev/sample.servlet/master/LICENSE</url>
<distribution>repo</distribution>
</license>
</licenses>
<repositories>
<repository>
<id>Liberty</id>
<name>Liberty Repository</name>
<url>http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/</url>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was-liberty</artifactId>
<version>8.5.x.6</version>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was-liberty</artifactId>
<type>pom</type>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>JavaHelloWorldApp</warName>
</configuration>
</plugin>
<plugin>
<groupId>net.wasdev.wlp.maven.plugins</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>1.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>net.wasdev.wlp.maven.plugins</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<configuration>
<configFile>src/main/wlp/server.xml</configFile>
<bootstrapProperties>
<appLocation>../../../../../${project.build.finalName}</appLocation>
</bootstrapProperties>
</configuration>
</plugin>
</plugins>
</build>
</project>
(続き)
• <repository>, <dependency> (2箇所) に WebSphere
Liberty Profile の設定を追記
• < dependency> (2箇所) から Geronimo の設定を削除
© 2016 IBM Corporation
28
IBM Bluemix
www.bluemix.net
3-3
IDS でビルド&デプロイする。
© 2016 IBM Corporation
29
IBM Bluemix
www.bluemix.net
パイプラインを確認する。(1)
「歯車」をクリックし、ドロップダウン
メニューの「ステージの構成」で確認
(A) (B)
© 2016 IBM Corporation
30
IBM Bluemix
www.bluemix.net
パイプラインを確認する。(2)
デフォルト設定でOK
ビルダー・タイプが「Maven」であることを確認
(A)
「master」ブランチにプッシュされたら
自動的にビルドが実行される設定であることが分かる
ブランチ運⽤やチーム開発に関する Tips は本書には記述しない
© 2016 IBM Corporation
31
IBM Bluemix
www.bluemix.net
パイプラインを確認する。(2)
(B)
デフォルト設定でOK
デプロイ・スクリプトを見ると、 cf push コマンド
で Bluemix にプッシュされることが分かる
© 2016 IBM Corporation
32
IBM Bluemix
www.bluemix.net
Web IDE の Git に移動する。
© 2016 IBM Corporation
33
IBM Bluemix
www.bluemix.net
Web IDE のローカルリポジトリ (Git) にコミットする。
正) src/main/webapp/WEB-INFbeans.xml
正) src/main/webapp/WEB-INFweb.xml
この画面キャプチャーは、ファイルパスを2箇所ミスしている。
ファイルを修正して、コミット、プッシュする。
コミットメッセージを入力して
こちらをクリック
© 2016 IBM Corporation
34
IBM Bluemix
www.bluemix.net
リモートリポジトリ (Git) にプッシュする。
「プッシュ」後にこちらをクリック
© 2016 IBM Corporation
35
IBM Bluemix
www.bluemix.net
ステージ結果を確認する。
こちらをクリックしてアプリを起動
(スターターコード)
© 2016 IBM Corporation
36
IBM Bluemix
www.bluemix.net
3-4
CF アプリ の実行結果を確認する。
© 2016 IBM Corporation
37
IBM Bluemix
www.bluemix.net
実行結果 – スターターコード
© 2016 IBM Corporation
38
IBM Bluemix
www.bluemix.net
実行結果 - Servlet
CDI Bean をインジェクトした時の値
http://hello-java-ippei0605.mybluemix.net/HelloServlet
© 2016 IBM Corporation
39
IBM Bluemix
www.bluemix.net
実行結果 - JSP
http://hello-java-ippei0605.mybluemix.net/hello.jsp
CDI Bean をインジェクトした時の値
© 2016 IBM Corporation
40
IBM Bluemix
www.bluemix.net
実行結果 - JSF
• CDI Bean をインジェクトした時の値
• 「メッセージ更新」ボタンをクリックすると 【】内メッセージが変わり、[] 内の数値が加算される
• CDI Bean はセッションスコープのため、他のブラウザでアクセスすると動作確認できる
http://hello-java-ippei0605.mybluemix.net/hello.xhtml
© 2016 IBM Corporation
41
IBM Bluemix
www.bluemix.net
4. まとめ
 IDS はローカル環境に Eclipse などの IDE が無くても Java の Web アプリを
開発できるので便利。(クイックスタート)
 しかし、次の点を注意して運⽤する必要がある。
 Bluemix Public、IDS のセキュリティは HTTPS と ユーザー認証であること。
 Web IDE は Eclipse Orion ベースのため、Java ソースコードはコンテンツ・アシストできな
いこと。
import 文など、クラスは候補選択でなく、手入力する必要がある。
 ローカル環境の IDE よりは、ビルド & デプロイに時間がかかること。
検証しながら開発するようなケースには不向き。
 結論
 コードレビュー、限定的な改修、変更確認およびリリースなどに向いている。
 ゼロからの新規開発には向いていない。
 おまけ
本プロジェクトを Eclipse にインポートする方法を別紙で紹介する。
© 2016 IBM Corporation
42
IBM Bluemix
www.bluemix.net

More Related Content

What's hot

Bluemixと既存システムとの連携
Bluemixと既存システムとの連携Bluemixと既存システムとの連携
Bluemixと既存システムとの連携
IBMソリューション
 
最適なBluemixデータベース・サービスを選ぶ
最適なBluemixデータベース・サービスを選ぶ最適なBluemixデータベース・サービスを選ぶ
最適なBluemixデータベース・サービスを選ぶ
IBMソリューション
 
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
IBMソリューション
 
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
慎一 古賀
 
デモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスデモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービス
IBMソリューション
 
IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界
IBMソリューション
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発
Kazushi Kamegawa
 
IBM Bluemix Node-REDを使って簡単アプリ作成を体験する
IBM Bluemix Node-REDを使って簡単アプリ作成を体験するIBM Bluemix Node-REDを使って簡単アプリ作成を体験する
IBM Bluemix Node-REDを使って簡単アプリ作成を体験する
Masaya Fujita
 
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
慎一 古賀
 
SoftLayer Bluemix概要
SoftLayer Bluemix概要SoftLayer Bluemix概要
SoftLayer Bluemix概要
YoshiyukiKonno
 
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
慎一 古賀
 
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
Lightning Component公開への道  ~「Multi-View Calendar」開発で分かったこと~Lightning Component公開への道  ~「Multi-View Calendar」開発で分かったこと~
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
寛 吉田
 
トラブル発生、その時あなたがすることは?
トラブル発生、その時あなたがすることは?トラブル発生、その時あなたがすることは?
トラブル発生、その時あなたがすることは?
Kazushi Kamegawa
 
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
慎一 古賀
 
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
Akihiro Iwaya
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
Kazushi Kamegawa
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
Kazushi Kamegawa
 
Watsonを使ってAIアプリを作ってみよう!-ハンズオン-
Watsonを使ってAIアプリを作ってみよう!-ハンズオン-Watsonを使ってAIアプリを作ってみよう!-ハンズオン-
Watsonを使ってAIアプリを作ってみよう!-ハンズオン-
BMXUG
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
minazou67
 
第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?
第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?
第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?
Takashi Takebayashi
 

What's hot (20)

Bluemixと既存システムとの連携
Bluemixと既存システムとの連携Bluemixと既存システムとの連携
Bluemixと既存システムとの連携
 
最適なBluemixデータベース・サービスを選ぶ
最適なBluemixデータベース・サービスを選ぶ最適なBluemixデータベース・サービスを選ぶ
最適なBluemixデータベース・サービスを選ぶ
 
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発BluemixとIBM DevOps Servicesで始めるアプリケーション開発
BluemixとIBM DevOps Servicesで始めるアプリケーション開発
 
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
 
デモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービスデモで理解する!Bluemixモバイル・サービス
デモで理解する!Bluemixモバイル・サービス
 
IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界IoTクラウドで拡がるBluemixの世界
IoTクラウドで拡がるBluemixの世界
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発
 
IBM Bluemix Node-REDを使って簡単アプリ作成を体験する
IBM Bluemix Node-REDを使って簡単アプリ作成を体験するIBM Bluemix Node-REDを使って簡単アプリ作成を体験する
IBM Bluemix Node-REDを使って簡単アプリ作成を体験する
 
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
 
SoftLayer Bluemix概要
SoftLayer Bluemix概要SoftLayer Bluemix概要
SoftLayer Bluemix概要
 
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
 
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
Lightning Component公開への道  ~「Multi-View Calendar」開発で分かったこと~Lightning Component公開への道  ~「Multi-View Calendar」開発で分かったこと~
Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~
 
トラブル発生、その時あなたがすることは?
トラブル発生、その時あなたがすることは?トラブル発生、その時あなたがすることは?
トラブル発生、その時あなたがすることは?
 
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
 
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
 
Watsonを使ってAIアプリを作ってみよう!-ハンズオン-
Watsonを使ってAIアプリを作ってみよう!-ハンズオン-Watsonを使ってAIアプリを作ってみよう!-ハンズオン-
Watsonを使ってAIアプリを作ってみよう!-ハンズオン-
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?
第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?
第25回 #TFSUG ノウハウお伝えします! 鉄人から学ぶ TFS セミナー編 - イマドキのチーム開発を支えるプロセスとは?
 

Viewers also liked

Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
Tomoya Hibi
 
Heroku でカンタンすぐに実現する CI/CD
Heroku でカンタンすぐに実現する CI/CDHeroku でカンタンすぐに実現する CI/CD
Heroku でカンタンすぐに実現する CI/CD
Takashi Abe
 
Docker on Heroku のはじめ方
Docker on Heroku のはじめ方Docker on Heroku のはじめ方
Docker on Heroku のはじめ方
Takashi Abe
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
Maho Takara
 
MySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayer
Maho Takara
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
 
Apache CloudStack 技術者認定試験について
Apache CloudStack 技術者認定試験についてApache CloudStack 技術者認定試験について
Apache CloudStack 技術者認定試験について
Midori Oge
 
ラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そうラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そう
Maho Takara
 
自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介
Takeshi Take
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121a
Maho Takara
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
cyberblack28 Ichikawa
 
Being a Moby maintainer
Being a Moby maintainerBeing a Moby maintainer
Being a Moby maintainer
Akihiro Suda
 
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
cyberblack28 Ichikawa
 

Viewers also liked (13)

Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
Heroku でカンタンすぐに実現する CI/CD
Heroku でカンタンすぐに実現する CI/CDHeroku でカンタンすぐに実現する CI/CD
Heroku でカンタンすぐに実現する CI/CD
 
Docker on Heroku のはじめ方
Docker on Heroku のはじめ方Docker on Heroku のはじめ方
Docker on Heroku のはじめ方
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
 
MySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayerMySQL Clusterに適したベアメタルクラウド SoftLayer
MySQL Clusterに適したベアメタルクラウド SoftLayer
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 
Apache CloudStack 技術者認定試験について
Apache CloudStack 技術者認定試験についてApache CloudStack 技術者認定試験について
Apache CloudStack 技術者認定試験について
 
ラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そうラズパイ+SL+BMでワトソンと話そう
ラズパイ+SL+BMでワトソンと話そう
 
自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介自作仮想化基盤 「n0stack」の紹介
自作仮想化基盤 「n0stack」の紹介
 
IBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121aIBMワトソン 勉強会 20161121a
IBMワトソン 勉強会 20161121a
 
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical previewKubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
 
Being a Moby maintainer
Being a Moby maintainerBeing a Moby maintainer
Being a Moby maintainer
 
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
 

Similar to IBM Bluemix DevOps Services で Javaの Web アプリを開発する

Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたBluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Seiichiro Imazeki
 
Jsug 20160422 slides
Jsug 20160422 slidesJsug 20160422 slides
Jsug 20160422 slides
Yuichi Hasegawa
 
JViews Diagrammer チュートリアル (JSF 2)
JViews Diagrammer チュートリアル (JSF 2)JViews Diagrammer チュートリアル (JSF 2)
JViews Diagrammer チュートリアル (JSF 2)
RWSJapan
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
Yasutaka Sugamura
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
Yusuke Tochigi
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
Keiji Kamebuchi
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Daiyu Hatakeyama
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic BeanstalkAmazon Web Services Japan
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
Amazon Web Services Japan
 
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Masaki Takeda
 
Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!
Hiroyuki Mori
 
見せます! 半歩先のクラウド型アプリケーション開発
見せます! 半歩先のクラウド型アプリケーション開発見せます! 半歩先のクラウド型アプリケーション開発
見せます! 半歩先のクラウド型アプリケーション開発
Tatsuki Manchu
 
220523JS7.pdf
220523JS7.pdf220523JS7.pdf
220523JS7.pdf
OSSラボ株式会社
 
Spring native について
Spring native についてSpring native について
Spring native について
Takamasa Mitsuji
 
Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02
Hiroaki Komine
 
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-Amazon Web Services Japan
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
Takashi Kanai
 
Klocwork 2017.1アップデート
Klocwork 2017.1アップデートKlocwork 2017.1アップデート
Klocwork 2017.1アップデート
Masaru Horioka
 
20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration
Insight Technology, Inc.
 

Similar to IBM Bluemix DevOps Services で Javaの Web アプリを開発する (20)

Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたBluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
 
Jsug 20160422 slides
Jsug 20160422 slidesJsug 20160422 slides
Jsug 20160422 slides
 
JViews Diagrammer チュートリアル (JSF 2)
JViews Diagrammer チュートリアル (JSF 2)JViews Diagrammer チュートリアル (JSF 2)
JViews Diagrammer チュートリアル (JSF 2)
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk[AWSマイスターシリーズ] AWS Elastic Beanstalk
[AWSマイスターシリーズ] AWS Elastic Beanstalk
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
 
Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!
 
見せます! 半歩先のクラウド型アプリケーション開発
見せます! 半歩先のクラウド型アプリケーション開発見せます! 半歩先のクラウド型アプリケーション開発
見せます! 半歩先のクラウド型アプリケーション開発
 
220523JS7.pdf
220523JS7.pdf220523JS7.pdf
220523JS7.pdf
 
Spring native について
Spring native についてSpring native について
Spring native について
 
Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02Watson API トレーニング 20160716 rev02
Watson API トレーニング 20160716 rev02
 
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
第20回「事件は現場で起きている!IBMクラウド”CoDサービス”実運用の現場より、IBM Systems Softwareを活用した運用自動化のご紹介」...
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
 
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
 
Klocwork 2017.1アップデート
Klocwork 2017.1アップデートKlocwork 2017.1アップデート
Klocwork 2017.1アップデート
 
20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration
 

Recently uploaded

論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 

Recently uploaded (8)

論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 

IBM Bluemix DevOps Services で Javaの Web アプリを開発する

  • 1. IBM Bluemix www.bluemix.net Bluemix のご紹介 IBM Bluemix DevOps Services (IDS) で Java の Webアプリを開発する 2016年6月30日 日本アイ・ビー・エム 株式会社 クラウド・ソフトウェア事業部 Bluemix & XaaS テクニカル・セールス 鈴木 一平
  • 2. © 2016 IBM Corporation 2 IBM Bluemix www.bluemix.net ご注意 この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株 式会社の正式なレビューを受けておりません。 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2016年6月現在の情報であり、 製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。 当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤ またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受 けたいかなる被害に関しても一切の補償をするものではありません。 また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標 である場合があります。現時点でのIBMの商標リストについては http://www.ibm.com/legal/copytrade.shtmlをご覧ください。
  • 3. © 2016 IBM Corporation 3 IBM Bluemix www.bluemix.net アジェンダ 1. 概要 2. 前提 3. CF アプリの開発手順 3-1 Bluemix に Cloud Foundry (CF) アプリを作成する。 3-2 IDS にファイルを作成する。 3-3 IDS でビルド&デプロイする。 3-4 CF アプリ の実行結果を確認する。 4. まとめ
  • 4. © 2016 IBM Corporation 4 IBM Bluemix www.bluemix.net 1. 概要
  • 5. © 2016 IBM Corporation 5 IBM Bluemix www.bluemix.net テーマ Liberty for Java™ IBM DevOps Services IBM Bluemix • Web アプリ作成 • Web アプリの実行 & 確認 • プログラミング • ビルド & デプロイ Git の追加CF PUSH  IBM Bluemix DevOps Services (IDS) だけで、Bluemix の Java の Webアプ リを開発する。  ランタイムは、Liberty for Java を使⽤する。  Liberty for Java とは? IBM WebSphere Liberty Profile は、クラウド⽤に設計された IBM WebSphere Application Server の、高度な構成が可能な超高速および超軽量のプロファイル Java Web アプリを簡単に開発、デプロイ、および拡張可能
  • 6. © 2016 IBM Corporation 6 IBM Bluemix www.bluemix.net IBM Bluemix DevOps Services (IDS) とは  「Bluemix アプリ開発に最適化」されたSaaS型開発環境  JazzHub として提供していたサービスを2014年4月に名称変更 Track & Plan と Delivery Pipeline が Bluemixのサービスとして提供  Webブラウザから全ての機能を利⽤可能  Bluemix アプリの継続的デリバリーをサポート  チーム開発のための機能がすぐに使える 名称 説明 Web IDE Eclipse Orionをベースとしたブラウザ上で稼動する統合開発 環境。多数の言語に対応したエディタを備える。 (Track & Planの利⽤で使⽤される機能) Code Management ソースコード等の構成管理のためのリポジトリを備える。IDS 上にホストされたGit、Jazz SCMの他、GitHubとの接続も可 能。(Track & Planの利⽤で使⽤される機能) Delivery Pipeline Bluemix環境向けにアプリケーションを自動的にビルド・デ プロイするパイプライン機能を提供 Track and Plan チーム開発におけるアジャイルベースの計画および作業管理 を行うための機能を提供 <提供機能>
  • 7. © 2016 IBM Corporation 7 IBM Bluemix www.bluemix.net 2. 前提
  • 8. © 2016 IBM Corporation 8 IBM Bluemix www.bluemix.net IBM Bluemix にログインできること。 https://console.ng.bluemix.net/
  • 9. © 2016 IBM Corporation 9 IBM Bluemix www.bluemix.net IDS にログインできること。 https://hub.jazz.net/
  • 10. © 2016 IBM Corporation 10 IBM Bluemix www.bluemix.net 3. CF アプリの開発手順
  • 11. © 2016 IBM Corporation 11 IBM Bluemix www.bluemix.net 3-1 Bluemix にCloud Foundry (CF) アプリを作成する。
  • 12. © 2016 IBM Corporation 12 IBM Bluemix www.bluemix.net CF アプリを作成する。(1) https://console.ng.bluemix.net/クラシック・エクスペリエンスで操作してください。
  • 13. © 2016 IBM Corporation 13 IBM Bluemix www.bluemix.net CF アプリを作成する。(2) 「完了」をクリック 数十秒で CF アプリが完成
  • 14. © 2016 IBM Corporation 14 IBM Bluemix www.bluemix.net Git に追加する。(1) CFアプリの「概要」からこちらをクリック
  • 15. © 2016 IBM Corporation 15 IBM Bluemix www.bluemix.net Git に追加する。(2) 「閉じる」をクリック ここまでの手順で、CF アプリを Git に追加
  • 16. © 2016 IBM Corporation 16 IBM Bluemix www.bluemix.net ご参考) デフォルトで使⽤可能なフィーチャー ※ Java EE 7 Web Profileに含まれる仕様が構成 * * * * 本書のプログラムで使⽤*
  • 17. © 2016 IBM Corporation 17 IBM Bluemix www.bluemix.net 3-2 IDS にファイルを作成する。
  • 18. © 2016 IBM Corporation 18 IBM Bluemix www.bluemix.net IDS を起動する。 こちらをクリックして、 DevOps Services を起動
  • 19. © 2016 IBM Corporation 19 IBM Bluemix www.bluemix.net IDS の Web IDE にファイルを作成する。(1) こちらのファイルツ リーを操作して、次 頁のファイルやフォ ルダを作成 ファイルの中身 はこちらで編集
  • 20. © 2016 IBM Corporation 20 IBM Bluemix www.bluemix.net IDS の Web IDE にファイルを作成する。(2)  Git にCF アプリのスターターコードがコミット、プッシュされた状態になっている。  コミットメッセージ「Add starter application package」  以下のファイルを作成する。  (root) srcmain  java wasdevsamplemodelHelloBean.java wasdevsampleservletHelloServlet.java  webapp WEB-INFbeans.xml WEB-INFweb.xml hello.jsp hello.xhtml pom.xml CDI Bean Servlet、JSP、JSF から参照している。 Servlet CDI の設定ファイル CF アプリは CDI 1.2 のため空ファイルを配置 すれば、@Named のクラスを検索する。 Maven のプロジェクト・オブジェクト・モデル 現 Geronimo の設定を削除して、WebSphere Liberty Profile の設定を追記する。 JSP JSF WAR の設定ファイル JSF 定義を記述する。
  • 21. © 2016 IBM Corporation 21 IBM Bluemix www.bluemix.net HelloBean.java package wasdev.sample.model; import java.io.Serializable; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; import javax.inject.Named; @Named @SessionScoped public class HelloBean implements Serializable { /** シリアルバージョンID */ private static final long serialVersionUID = 2324340609815434023L; /** メッセージテンプレート */ private static final String MESSAGE_TEMPLATE = "【%s】こんにちは、Bluemix。[%d]"; /** カウンター */ private int count = 0; /** メッセージ */ private String message = String.format(MESSAGE_TEMPLATE, "デフォルト値", count); @PostConstruct public void init() { setCount(0); setMessage(String.format(MESSAGE_TEMPLATE, "@PostConstruct", getCount())); } public void action() { int next = getCount() + 1; setCount(next); setMessage(String.format(MESSAGE_TEMPLATE, "ボタンアクション", next)); } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
  • 22. © 2016 IBM Corporation 22 IBM Bluemix www.bluemix.net HelloServlet.java package wasdev.sample.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import wasdev.sample.model.HelloBean; import javax.inject.Inject; @WebServlet("/HelloServlet") public class HelloServlet extends HttpServlet { /** シリアルバージョンID */ private static final long serialVersionUID = 1808808594661653378L; @Inject private HelloBean helloBean; public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html; charset=UTF-8"); PrintWriter out = res.getWriter(); out.println("<html><body>"); out.println( "<head><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384- 1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous" /></head>"); out.println("<h1>" + helloBean.getMessage() + "</h1>"); out.println("</body></html>"); out.println("</body></html>"); } }
  • 23. © 2016 IBM Corporation 23 IBM Bluemix www.bluemix.net beans.xml ※ 空ファイル
  • 24. © 2016 IBM Corporation 24 IBM Bluemix www.bluemix.net web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Hello Java</display-name> <servlet> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> </web-app>
  • 25. © 2016 IBM Corporation 25 IBM Bluemix www.bluemix.net hello.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous" /> </head> <body> <h1> <c:out value="${helloBean.message}" /> </h1> </body> </html>
  • 26. © 2016 IBM Corporation 26 IBM Bluemix www.bluemix.net hello.xhtml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous" /> </h:head> <h:body> <h1> <a href=“./hello.xhtml"><h:outputText value="#{helloBean.message}" /></a> </h1> <h:form> <h:commandButton class="btn btn-primary btn-lg btn-block" id="buttonId" value="メッセージ更新" actionListener="#{helloBean.action}" /> </h:form> </h:body> </html>
  • 27. © 2016 IBM Corporation 27 IBM Bluemix www.bluemix.net pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>net.wasdev.maven.parent</groupId> <artifactId>java7-parent</artifactId> <version>1.4</version> <relativePath></relativePath> </parent> <groupId>net.wasdev.wlp.sample</groupId> <artifactId>JavaHelloWorldApp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>Liberty Profile Sample - Servlet</name> <url>https://wasdev.github.io</url> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>https://raw.github.com/WASdev/sample.servlet/master/LICENSE</url> <distribution>repo</distribution> </license> </licenses> <repositories> <repository> <id>Liberty</id> <name>Liberty Repository</name> <url>http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>com.ibm.tools.target</groupId> <artifactId>was-liberty</artifactId> <version>8.5.x.6</version> <type>pom</type> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.ibm.tools.target</groupId> <artifactId>was-liberty</artifactId> <type>pom</type> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <warName>JavaHelloWorldApp</warName> </configuration> </plugin> <plugin> <groupId>net.wasdev.wlp.maven.plugins</groupId> <artifactId>liberty-maven-plugin</artifactId> <version>1.1</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>net.wasdev.wlp.maven.plugins</groupId> <artifactId>liberty-maven-plugin</artifactId> <configuration> <configFile>src/main/wlp/server.xml</configFile> <bootstrapProperties> <appLocation>../../../../../${project.build.finalName}</appLocation> </bootstrapProperties> </configuration> </plugin> </plugins> </build> </project> (続き) • <repository>, <dependency> (2箇所) に WebSphere Liberty Profile の設定を追記 • < dependency> (2箇所) から Geronimo の設定を削除
  • 28. © 2016 IBM Corporation 28 IBM Bluemix www.bluemix.net 3-3 IDS でビルド&デプロイする。
  • 29. © 2016 IBM Corporation 29 IBM Bluemix www.bluemix.net パイプラインを確認する。(1) 「歯車」をクリックし、ドロップダウン メニューの「ステージの構成」で確認 (A) (B)
  • 30. © 2016 IBM Corporation 30 IBM Bluemix www.bluemix.net パイプラインを確認する。(2) デフォルト設定でOK ビルダー・タイプが「Maven」であることを確認 (A) 「master」ブランチにプッシュされたら 自動的にビルドが実行される設定であることが分かる ブランチ運⽤やチーム開発に関する Tips は本書には記述しない
  • 31. © 2016 IBM Corporation 31 IBM Bluemix www.bluemix.net パイプラインを確認する。(2) (B) デフォルト設定でOK デプロイ・スクリプトを見ると、 cf push コマンド で Bluemix にプッシュされることが分かる
  • 32. © 2016 IBM Corporation 32 IBM Bluemix www.bluemix.net Web IDE の Git に移動する。
  • 33. © 2016 IBM Corporation 33 IBM Bluemix www.bluemix.net Web IDE のローカルリポジトリ (Git) にコミットする。 正) src/main/webapp/WEB-INFbeans.xml 正) src/main/webapp/WEB-INFweb.xml この画面キャプチャーは、ファイルパスを2箇所ミスしている。 ファイルを修正して、コミット、プッシュする。 コミットメッセージを入力して こちらをクリック
  • 34. © 2016 IBM Corporation 34 IBM Bluemix www.bluemix.net リモートリポジトリ (Git) にプッシュする。 「プッシュ」後にこちらをクリック
  • 35. © 2016 IBM Corporation 35 IBM Bluemix www.bluemix.net ステージ結果を確認する。 こちらをクリックしてアプリを起動 (スターターコード)
  • 36. © 2016 IBM Corporation 36 IBM Bluemix www.bluemix.net 3-4 CF アプリ の実行結果を確認する。
  • 37. © 2016 IBM Corporation 37 IBM Bluemix www.bluemix.net 実行結果 – スターターコード
  • 38. © 2016 IBM Corporation 38 IBM Bluemix www.bluemix.net 実行結果 - Servlet CDI Bean をインジェクトした時の値 http://hello-java-ippei0605.mybluemix.net/HelloServlet
  • 39. © 2016 IBM Corporation 39 IBM Bluemix www.bluemix.net 実行結果 - JSP http://hello-java-ippei0605.mybluemix.net/hello.jsp CDI Bean をインジェクトした時の値
  • 40. © 2016 IBM Corporation 40 IBM Bluemix www.bluemix.net 実行結果 - JSF • CDI Bean をインジェクトした時の値 • 「メッセージ更新」ボタンをクリックすると 【】内メッセージが変わり、[] 内の数値が加算される • CDI Bean はセッションスコープのため、他のブラウザでアクセスすると動作確認できる http://hello-java-ippei0605.mybluemix.net/hello.xhtml
  • 41. © 2016 IBM Corporation 41 IBM Bluemix www.bluemix.net 4. まとめ  IDS はローカル環境に Eclipse などの IDE が無くても Java の Web アプリを 開発できるので便利。(クイックスタート)  しかし、次の点を注意して運⽤する必要がある。  Bluemix Public、IDS のセキュリティは HTTPS と ユーザー認証であること。  Web IDE は Eclipse Orion ベースのため、Java ソースコードはコンテンツ・アシストできな いこと。 import 文など、クラスは候補選択でなく、手入力する必要がある。  ローカル環境の IDE よりは、ビルド & デプロイに時間がかかること。 検証しながら開発するようなケースには不向き。  結論  コードレビュー、限定的な改修、変更確認およびリリースなどに向いている。  ゼロからの新規開発には向いていない。  おまけ 本プロジェクトを Eclipse にインポートする方法を別紙で紹介する。
  • 42. © 2016 IBM Corporation 42 IBM Bluemix www.bluemix.net