Osaka ComCamp 2016 powered by MVPs
1015年前「Microsoftの社員だと思って働け!」
と教育されて嫌気がさして出てった人
から見た「外の世界」の話
すいません願望からか
サバ読んでました!(意外と年取ってたw)
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
Webアプリケーション総明記
OS仮想化の潮流
テスト自動化・CI/CDの台頭
クラウドの猛威
MS変わって来たんちゃうん?ええんちゃうん?期 OSコンテナ技術総明記
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる 俺 Javaサーバサイドアプリしこたま書く
俺 ESXi気に入り、テスト環境一式作る
俺 自動テストは触っていた、CIサーバを探す
俺 Jenkinsに惚れ込みCI現場で作る
俺 Docker内だけで「受入テストパイプライン作る俺 MSのプロダクト&Jenkinsの自動化する
本日は
「在る老害の仕事歴」
について、
当人の感想文を
発表するものです
(「プログラマと環境」という視点から)
昨日のレビュー指摘は全部それっ
言いたいこと
• OSSオレは好きだし、追っかけてみて
–食わず嫌いしてるなら一度
• 昔MSキライになった人、今一度見よう
–食わず嫌いしてるなら一度
• Devの人ら、いっしょにDevOpsしよ!
–もっとグイグイはみ出そうぜ
自己紹介
• 通称:みうみう,「なんで来たん?」氏
• Twitter:@kazuhito_m
• Github:kazuhito-m
• 老害度:38歳、独身、意識低い系
• 職業:プログラマ(SIer、ビジネスアプリ属),自動化大好きおじさん
– フリーランス,屋号「みうらさんとこ」
• 好きなもの:自動化,「継続的なんとか」
– CI/CDとか大好物
– 「楽する」ためには「苦労は厭わない」
三浦 一仁(ミウラ カズヒト)
自己紹介
• 通称:みうみう,「なんで来たん?」氏
• Twitter:@kazuhito_m
• Github:kazuhito-m
• 老害度:38歳、独身、意識低い系
• 職業:プログラマ(SIer、ビジネスアプリ属),自動化大好きおじさん
– フリーランス,屋号「みうらさんとこ」
• 好きなもの:自動化,「継続的なんとか」
– CI/CDとか大好物
– 「楽する」ためには「苦労は厭わない」
三浦 一仁(ミウラ カズヒト)
”昔話大好きおじさん”で良いです!
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
199x〜200x年代は、
オブジェクト指向が花開いた時代
どうやって開発してたのか…オレの年代の人は
「ハッ?VB6でオブジェクト指向?出来るわけねーじゃんwくっさw」
「それ…昔の話やからってホラふくなよw」とか言うけど…
VisioでER設計
Accessでテーブル設計
※当時こんなアイコンちゃいますけどw
自社製独自DBデザイナ
残念ながら参照整合性を手入力
マルチRDBMS種なDDL群
MDBをインポート
Rational Rose で論理/物理クラス設計
自社製独自
コンバータ
テーブルのカタチしたクラスモジュールファイル群(変更しちゃダメな奴)
テーブルのカタチしたクラスモジュールファイル群(変更(拡張)していいヤツ)
MSのDBライブラリを
ラップしたモノ
VBプロジェクトの自社製雛形
ビジネスクラスとGUIを実装!
(ある程度自社都合のカタチを仕込まれた)ビジネスクラスの雛形
データ設計
業務視点のなアプリ設計
コンパイル VB6で出来たexe
どうやって開発してたのか…オレの年代の人は
「ハッ?VB6でオブジェクト指向?出来るわけねーじゃんwくっさw」
「それ…昔の話やからってホラふくなよw」とか言うけど…
VisioでER設計
Accessでテーブル設計
※当時こんなアイコンちゃいますけどw
自社製独自DBデザイナ
残念ながら参照整合性を手入力
マルチRDBMS種なDDL群
MDBをインポート
Rational Rose で論理/物理クラス設計
自社製独自
コンバータ
テーブルのカタチしたクラスモジュールファイル群(変更しちゃダメな奴)
テーブルのカタチしたクラスモジュールファイル群(変更(拡張)していいヤツ)
MSのDBライブラリを
ラップしたモノ
VBプロジェクトの自社製雛形
ビジネスクラスとGUIを実装!
(ある程度自社都合のカタチを仕込まれた)ビジネスクラスの雛形
データ設計
業務視点のなアプリ設計
コンパイル VB6で出来たExe
MS製品がというより…
「これが出来る
メカニズム」
にほれこんだ!(今で言うRAD,MDA,技術的にはORM,FW)
これだけ見たら…楽なんだがなぁ• その頃作ってた「クライアント・サーバの業務アプリ」というものの構成は…
Lan(イーサネット)内
サーバ クライアント クライアント(サーバも兼ねる)
RDBMSサーバ(SQLServer,Oracle等)
(自分たちの)VB6アプリ
RDBMSサーバ(SQLServer,Oracle等)
(自分たちの)VB6アプリ
もしくは
で、一年生の俺に課された仕事は…
• 「インストールテスト」という仕事
–ある日「インストールテストしといて」という命令が
• 何それ?意味は?
–先輩「インストールしてカンタンなテストするんや」
–オレ「???」
なんとも行けてない…
• この時期、事故が多数起こっていて…– ライブラリ(DLL)が足らず起動不能
– ライブラリ(DLL)のVerが古くて途中アベンド
– OSの組合わせで異なった挙動
– 他アプリのインストール組合わせで不可解な動き
• が、リリース後に発覚
最後の「テストしにくいとこ」やな
• 当時インストーラは…– 「インストーラ作成系ツール」でビルドするもの
• 最後はexeファイルに
– MSのライブラリ、(あれば)サードライブラリ、自前のDLL/EXE、を登録
– くわしくはここらへん
なので、ある程度サポートしてくれるものの「今リリースで新たなDLL増えた」などは入れ忘れやVerマチガイもあり、事故ってた
ざっくり言うと
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
…というようなテストを「環境の組み合わせ分」するテストが必要だったのです
(今で言うところの「インストール + スモークテスト + α」みたいなものでしょうか)
さっき「割と単純」と書いたな…
クライアント
(自分たちの)VB6アプリWindows98
SE
クライアント
(自分たちの)VB6アプリWindows95
クライアント
(自分たちの)VB6アプリWindowsNT
クライアント
(自分たちの)VB6アプリWindows
2000
クライアント
(自分たちの)VB6アプリWindowsMe
さっき「割と単純」と書いたな…
クライアント
(自分たちの)VB6アプリWindows98
SE
クライアント
(自分たちの)VB6アプリWindows95
クライアント
(自分たちの)VB6アプリWindowsNT
クライアント
(自分たちの)VB6アプリWindows
2000
クライアント
(自分たちの)VB6アプリWindowsMe
おいおい、
割と量あるぞ?これ…
さらに
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
✕環境の 組合せ分
さらに
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
✕環境の 組合せ分
すごいめんどくさい!
…と明らかにわかる
責任が伴う重大なもの…なのだけど
• そう、インストールテストは– ある程度重要
–手順化できるくらい明確
– しかし時間がかかる
– 待ち時間が多い
– が”終わり”を見てないとアカン
•総じて「こういうテスト」だ
–「面倒臭いが、手が抜けない」
–「単純だが、時間がかかる」
責任が伴う重大なもの…なのだけど
• そう、インストールテストは– ある程度重要
–手順化できるくらい明確
– しかし時間がかかる
– 待ち時間が多い
– が”終わり”を見てないとアカン
•総じて「こういうテスト」だ
–「面倒臭いが、手が抜けない」
–「単純だが、時間がかかる」
だから、
一年生に
お鉢が回ってくる…と思う(当時の上司様、どうなん?)
壮絶にやりたくないオレは…
当時の三浦一仁(20歳)
やりた無いなぁ…なんとか
ならんかなぁ…
古来より「業務アプリ開発者達が戦ってきた事」は…
1.環境構築のプログラム化(〜AsCode)&自動化
2.環境構成のフリーズドライ
3.物理筐体の用意
だったんじゃないだろうか?
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x・手作業でPC探してくる、「ブートセレクタ」入れる
・手でOSのインストールディスクを入れる
・手動でウィザード形式の対話型を進んでいく
・手動でディスク入れたり、インストールしたり
・バッチでProgramFilesとsystem32とレジを退避
・手で電源入れて、OS選ぶ
・バッチで退避ファイルを書き戻す
・手動でディスク入れたり、インストールしたり
・手作業でアプリにログインしたり操作したり
アプリ・インストラビルド ・手動にてアプリビルド、インストーラの編集・ビルド
やること・使うもの 想定:Win,VB6,クラサバ
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x・手作業でPC探してくる、「ブートセレクタ」入れる
・手でOSのインストールディスクを入れる
・手動でウィザード形式の対話型を進んでいく
・手動でディスク入れたり、インストールしたり
・バッチでProgramFilesとsystem32とレジを退避
・手で電源入れて、OS選ぶ
・バッチで退避ファイルを書き戻す
・手動でディスク入れたり、インストールしたり
・手作業でアプリにログインしたり操作したり
アプリ・インストラビルド ・手動にてアプリビルド、インストーラの編集・ビルド
やること・使うもの 想定:Win,VB6,クラサバ
うーん…だいたいが
「時間のかかる手作業」
「状態保存できないもの」
ばかりじゃないか…
事実と個人的ないまぜだけど…
• 連携とれてるところは、とことん親和性が良い
• デザインの統一
• なんだかんだ言っても最大勢力だったから習得して損なし
• 当時の(オレの)イメージMSの良いとこ
• 排他的
• 拝金主義
• 露骨なロックイン
– 怪文書”ハロウィーン文書”
• 方針を「びみょうな時間感」で変えてくる
• 「対話型・ウィーザード」GUI文化
MSのヤナとこ
• ヤナとこが良いとこを上回ってるなぁ感
ここが「環境作成&
インストールの自動化」を阻む!
さらに
MS「次VerからVS系全部ご破産な!.Netってのするから」
(.Net構想)
.Net発表のインパクト
• これは別に「悪い話」では無かった– VBとかは「半端OO言語」を脱する
– 「ランタイム統一」は世の流れ
• ただし、立場別に「過敏に反応」–技術者:技能がパラダイムシフトでご破産
–企業:過去資産が使えないorこの先レガシー
• 反対運動も…
– VB.NOT
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
a
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
一社目やめるとともに脱MS!OSSで(主にLinuxとそのアプリ )
の世界へと華麗に転身♪
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
a
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
一社目やめるとともに脱MS!OSSで(主にLinuxとそのアプリ )
の世界へと華麗に転身♪
できませんでした。そんな世の中あまくない…
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
a
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
a
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる
できなかったので…この線は「ゆったり」と
ゆるい目標をたてた–「PG人並みインフラちょとわかる」プログラマ
–主戦場はLinuxにしよう
•Winはどうせ職場でやる
•最終形態は「家にWin無い生活」
–言語はJavaにしよう
–選ぶ道具はすべて「OSS」にしよう
井の中のなんとやら…
• OSS…そしてLinuxは…とんでもない広い「大海」だった
–「ディストリビューション」と呼ばれる「横のバリエーション」
–その上で走る「プログラムパッケージ」の量
• 広い!…けど傾向から2つにしぼった
–ディストリは「パッケージ管理方式」で系統がわけられるため、一つずつ学ぶ• RPM系:FedoraCore(後にCentOSに乗りかえ)
• deb系:Debian(後にUbuntuに乗りかえ)
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x・手作業でPC探してくる
・「PXEインストール」でネットワーク(Lan内)から
・「KickStart」で自動インストール
・「パッケージを列挙したスクリプト」の実行
・スクリプトで/binや/libなどを退避
・手で電源入れて、OS選ぶ
・バッチで退避ファイルを書き戻す
・パッケージインストールorコマンドorどっかからコピー
・手作業でアプリにログインしたり操作したり
アプリ・インストラビルド ・手動にてアプリビルド、パッケージの編集・ビルド
やること・使うもの 想定:CentOS,Xのアプリ,クラサバ
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x・手作業でPC探してくる
・「PXEインストール」でネットワーク(Lan内)から
・「KickStart」で自動インストール
・「パッケージを列挙したスクリプト」の実行
・スクリプトで/binや/libなどを退避
・手で電源入れて、OS選ぶ
・バッチで退避ファイルを書き戻す
・パッケージインストールorコマンドorどっかからコピー
・手作業でアプリにログインしたり操作したり
アプリ・インストラビルド ・手動にてアプリビルド、パッケージの編集・ビルド
やること・使うもの 想定:CentOS,Xのアプリ,クラサバ
割と
「環境構築のプログラム化(〜AsCode)」に考慮がある!
ええやんLinux!
ええやんOSS陣営!
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x・手作業でPC探してくる
・「PXEインストール」でネットワーク(Lan内)から
・「KickStart」で自動インストール
・「パッケージを列挙したスクリプト」の実行
・スクリプトで/binや/libなどを退避
・手で電源入れて、OS選ぶ
・バッチで退避ファイルを書き戻す
・パッケージインストールorコマンドorどっかからコピー
・手作業でアプリにログインしたり操作したり
アプリ・インストラビルド ・手動にてアプリビルド、パッケージの編集・ビルド
やること・使うもの 想定:CentOS,Xのアプリ,クラサバちょっと…現実的じゃない?
(オレは常用してるけど)
BIOSの技術なのでLinuxオンリーじゃない
Windowsにも「Unattended Install(無人セットアップ)」
という技術が当時あった
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x・手作業でPC探してくる
・「PXEインストール」でネットワーク(Lan内)から
・「KickStart」で自動インストール
・「パッケージを列挙したスクリプト」の実行
・スクリプトで/binや/libなどを退避
・手で電源入れて、OS選ぶ
・バッチで退避ファイルを書き戻す
・パッケージインストールorコマンドorどっかからコピー
・手作業でアプリにログインしたり操作したり
アプリ・インストラビルド ・手動にてアプリビルド、パッケージの編集・ビルド
やること・使うもの 想定:CentOS,Xのアプリ,クラサバちょっと…現実的じゃない?
(オレは常用してるけど)
BIOSの技術なのでLinuxオンリーじゃない
Windowsにも「Unattended Install(無人セットアップ)」
という技術が当時あった
今見てみると、
少し「ひいき目」
でした
そうこうしているうちに…
• 世の業務アプリのデファクトが「Webアプリケーション」に
• サーバサイドJavaが隆盛に向かった時期
–みうらはOSS側へ向かってたのでJava(orLL)のデベロッパでむかえた
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
a
MSクライアント・サーバ全盛期
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる
Webアプリケーション総明記
俺 Javaサーバサイドアプリしこたま書く
良い方向かな?• 構成は…
– アプリがサーバ側に移動
– 「個々クライアントにインストール」が「サーバにデプロイ」という行事に変わった
Lan(イーサネット)内
サーバ クライアント
RDBMSサーバ(SQLServer,Oracle等)
Webブラウザ自分たちが作ったWebアプリ
良い方向かな?• 構成は…
– アプリがサーバ側に移動
– 「個々クライアントにインストール」が「サーバにデプロイ」という行事に変わった
Lan(イーサネット)内
サーバ クライアント
RDBMSサーバ(SQLServer,Oracle等)
Webブラウザ自分たちが作ったWebアプリ
あれ?構成物が減った?やった!楽になったw
ところがどっこい
サーバ クライアント
RDBMSサーバ(SQLServer,Oracle等)
自分たちが作ったWebアプリ
Webブラウザ
Webブラウザ
WindowsXP
クライアント
Webブラウザ
Windows2000
クライアント
MacOS
ところがどっこい
サーバ クライアント
RDBMSサーバ(SQLServer,Oracle等)
自分たちが作ったWebアプリ
Webブラウザ
Webブラウザ
WindowsXP
クライアント
Webブラウザ
Windows2000
クライアント
MacOS
増えとるw今度は「OSとブラウザ」の
組み合わせと戦うハメに…
クラサバ時代とWeb時代の比較
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
アプリ・インストラビルド
クラサバ
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境をクリーニング
アプリをデプロイ
アプリ・アーカイブビルド
ハード調達
インストールディスクIN
OSインストール作業
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
クラサバ時代とWeb時代の比較
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
アプリ・インストラビルド
クラサバ
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境をクリーニング
アプリをデプロイ
アプリ・アーカイブビルド
ハード調達
インストールディスクIN
OSインストール作業
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリ• テストはまだ必要
–アーカイブするときにコピーor設定ミスがあり得る
• サーバサイド
–AsCodeは以前からほぼなってる
–「LAMP構成の一式インストール」など「簡易化」が進んだ
• クライアントサイド
–Windowsが主なら、相変わらず手順書との戦い
–ただしブラウザだけなので関連アプリインストールとクリーニングが不要に
前からあったけど…
• 「OS仮想化技術」が一般的なもの
として普及
–VMWareを筆頭に
•後に無料化したのも起爆剤に
–OSSの仮想化技術も続く
• 構成を一式で扱えるように
• 境界を飛びこえて移植可能に
–異種OS間
–ハードウェア・ソフトウェア間
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
Webアプリケーション総明記
OS仮想化の潮流
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる 俺 Javaサーバサイドアプリしこたま書く
俺 ESXi気に入り、テスト環境一式作る
むちゃむちゃ出来るな…
• 構成の柔軟さがエグく出来るようなった
Windows
Linux
Linux
Windows
ESXi
Windows
Windows
Linux
どちらをホストOSにしても構わない
一台に複数台OSで「システム構成」を再現
Linux
Windows
Windows
Virtual to Physical (V2P)
Linux
Windows
Windows
Physical to Virtual (P2V)
なんでもありやな…
なにより
自分にとってすごかったのは…
• 「環境をフリーズドライできる」こと–クリーンな環境から始められる
–「開発終了した数年前のテスト環境」なども蘇らせれる
–(ソノ気になれば)本番一式を持って帰ってこれる
クラサバ時代とWeb時代の比較
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
アプリをデプロイ
アプリ・アーカイブビルド
ハード調達
インストールディスクIN
OSインストール作業
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
作業は変わらず手動を含むが、
コンソール(実機じゃない)で出来るように
クライアントとサーバを一台ずつハード調達せずともよくなった
クリーンな状態をフリーズドライして
いつでも蘇らせれるので「環境のクリーニング」が
不要に
利用はどちらもあちらもありませんが
OSSプロダクト
• OS仮想化の多くのプロダクトはOSS
KVM
Xen
VirturalBoxQEMU
VMWareシリーズ
Windows Virtual PC
Hyper-V
OpenVZ
ここへきて
• 「Devから来た技術(開発手法)」が開花
– 自動テストが一般的に
• テスト¥ビルドツールが発達
– 「自動テストをどうまわす?」からCI(継続的インテグレーション)が生まれる
• Jenkins流行る
– 「ビルド・デプロイ」までもループの中に入れてしまう考え方、CD(継続的デリバリー)が発表される
– 「UIの自動テスト」が課題になり、プロダクトが生まれ始める
• Seleniume , Friendly
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
Webアプリケーション総明記
OS仮想化の潮流
テスト自動化・CI/CDの台頭
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる 俺 Javaサーバサイドアプリしこたま書く
俺 ESXi気に入り、テスト環境一式作る
俺 自動テストは触っていた、CIサーバを探す
ソフトウェア開発の技法は強い…
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
アプリをデプロイ
アプリ・アーカイブビルド
ハード調達
インストールディスクIN
OSインストール作業
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
ビルドツールの発達で、アプリのビルド、
アーカイブのビルドが確実なものに
UIテストのプロダクトにより、
自動テスト可能にCIサーバが自動起動の起点と
一連の動作をつなぐ橋渡し役に
ソフトウェア開発の技法は強い…
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
アプリをデプロイ
アプリ・アーカイブビルド
ハード調達
インストールディスクIN
OSインストール作業
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
ビルドツールの発達で、アプリのビルド、
アーカイブのビルドが確実なものに
UIテストのプロダクトにより、
自動テスト可能にCIサーバが自動起動の起点と
一連の動作をつなぐ橋渡し役に
• 一気に「自動化可能」な場所が増える
–あと残すのは「物理」か…
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
Webアプリケーション総明記
OS仮想化の潮流
テスト自動化・CI/CDの台頭
クラウドの猛威
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる 俺 Javaサーバサイドアプリしこたま書く
俺 ESXi気に入り、テスト環境一式作る
俺 自動テストは触っていた、CIサーバを探す
俺 Jenkinsに惚れ込みCI現場で作る
ここへきて
• 「クラウドにサーバを構築」するのが容易かつリーズナブルな時代に
– 「必要な時に必要なだけ借りる」文化が根付いた
–上記前提の設計パターンが生み出された
• 従来「ハード」だった部分すらもソフト化
– 「サーバを一台立てる」「結線する」「増設する」ような操作をソフトウェア化、WebのUIから可能に
• 操作すべてをプログラマブルに
– すべての操作をWebAPI化、操作用SDKも提供
–上記の「ハード」の操作がプログラムで書けるのでいわば「ハードの自動化」が可能に
これは前回までの…
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
アプリをデプロイ
アプリ・アーカイブビルド
ハード調達
インストールディスクIN
OSインストール作業
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
クラウドの導入により…
クラウドインスタンス用意
ミドル・サードのインスト
アプリをデプロイ
アプリ・アーカイブビルド
クラウドインスタンス用意
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
ハードの操作が必要だった
部分+
OSインストール部分がごっそりなくなる
この操作はスクリプトに
より、自動化可能
クラウドの導入により…
クラウドインスタンス用意
ミドル・サードのインスト
アプリをデプロイ
アプリ・アーカイブビルド
クラウドインスタンス用意
ブラウザインストール
環境を選び
代表的業務のテスト
Webアプリサーバ クライアント
ハードの操作が必要だった
部分+
OSインストール部分がごっそりなくなる
この操作はスクリプトに
より、自動化可能
インストールテストはほぼすべて「自動化可能」に!
よくわからない年表1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
Webアプリケーション総明記
OS仮想化の潮流
テスト自動化・CI/CDの台頭
クラウドの猛威
MS変わって来たんちゃうん?ええんちゃうん?期 OSコンテナ技術総明記
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる 俺 Javaサーバサイドアプリしこたま書く
俺 ESXi気に入り、テスト環境一式作る
俺 自動テストは触っていた、CIサーバを探す
俺 Jenkinsに惚れ込みCI現場で作る
俺 Docker内だけで「受入テストパイプライン作る俺 MSのプロダクト&Jenkinsの自動化する
もうつい先日とかそういうの
• みうら、最近MSにいわば「出戻って」きてます
–評判聞いたり
–勉強会行ったり
–Windowsの自動化仕事受けたり
• そこで感じるのは…
ということ
隔世の感がすごい
なにやら
• ウワサによると…
– ”Microsoft love Linux”前でCTOが写真とってる
– VS系の言語(.NET周り)も「後発のOO」を経て円熟期に入ってる
– OSS陣営のエバンジェリスト達が集まってきてるらしい
– DevOpsに力を入れている
–GUIだけでなくスクリプト(AsCode)な文化が発達
– クラウド(Azure)に力入れている
– Linuxで開発できる手段をいろいろ提供しだした
– 最近、開発者仲間から「MS変わったらしいよ」「いいらしいよ」をよく聞く
なにやら
• ウワサによると…
– ”Microsoft love Linux”前でCTOが写真とってる
– VS系の言語(.NET周り)も「後発のOO」を経て円熟期に入ってる
– OSS陣営のエバンジェリスト達が集まってきてるらしい
– DevOpsに力を入れている
–GUIだけでなくスクリプト(AsCode)な文化が発達
– クラウド(Azure)に力入れている
– Linuxで開発できる手段をいろいろ提供しだした
– 最近、開発者仲間から「MS変わったらしいよ」「いいらしいよ」をよく聞く
えっ?
オレが出てった時に
「気に入らん」言うたとこ、全部変わってんちゃうん?
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x
・クラウド(AWS,Azure,etc...)でインスタンス起動
・プロビジョニングツール(PS/PS DSC)でパッケージ管理(OneGet,Chocolatey)を蹴る
・クラウドにイメージを保存
・クラウドからOSインスタンスを起動
・インストーラDLしてサイレントインストール
・テストPG(Friendry使用)で業務操作
アプリ・インストラビルド・アプリはMSBuild、インストーラはInstallSheeld等でそれぞれビルド
やること・使うもの 想定:Win7,C#,クラサバ
一連をCIサーバで起動、自動運転、通知
先ほどの作業を照らしてみると…
ハード調達
インストールディスクIN
OSインストール作業
ミドル・サードのインスト
環境を選び
環境をクリーニングし
アプリをインストールし
代表的業務のテスト
クリーン環境の退避
x
・クラウド(AWS,Azure,etc...)でインスタンス起動
・プロビジョニングツール(PS/PS DSC)でパッケージ管理(OneGet,Chocolatey)を蹴る
・クラウドにイメージを保存
・クラウドからOSインスタンスを起動
・インストーラDLしてサイレントインストール
・テストPG(Friendry使用)で業務操作
アプリ・インストラビルド・アプリはMSBuild、インストーラはInstallSheeld等でそれぞれビルド
やること・使うもの 想定:Win7,C#,クラサバ
一連をCI
サーバで起動、自動運転、通知
(コケさえしなけりゃ)
ほぼ全自動!
答えを待つだけに!
MSとOSS
• 「新規性」と「トレンド」の発生が企業からOSSに移った十数年– 自身がOSSに注目し始めたころから「新しい技術」や「デ
ファクトになるようなトレンド」は、OSS側から生まれてくるようになったと思う
– 今、SIerの業務システムの開発での道具の大多数はOSS由来のもの
– MSさえ「OSSを応援する立場」になったなら、今後ますますその流れに拍車がかかると思われる
–個人的には「MSが作るOSSプロダクト」に期待
OSSを追いかける意味
• 個人的な価値– インターネットさえあれば、だれでも利用・習熟・改良が
できる(ことが多い
• みんなにチャンスがある
• 最悪「根性」の出しようがある
•著名プロダクトで「プルリク通った」時のうれしさたるや
– 文化が好き
• これは「OSS」というより 「Unix/Linux」文化かも
• 「自動化」とか好きなら…
• ビジネス的な価値– 先見の明あらば「先行者」となれる
Devはもっと「歌って踊れるDev」のはず• 2年前から「ずーっと引っかかってること」
オレは上の資料を2年前から「バイブルかのごとく」何度も見てるんですが…
1998年頃
2001年頃
2005年頃
MS MS以外(主にOSS)
2010年頃
2013年頃
2015年頃
MSクライアント・サーバ全盛期
Webアプリケーション総明記
OS仮想化の潮流
テスト自動化・CI/CDの台頭
クラウドの猛威
MS変わって来たんちゃうん?ええんちゃうん?期 OSコンテナ技術総明記
俺 VB6で猛烈にアプリ書く
俺 インストールテストとかしてる
俺 「脱MS!」をがんばる 俺 Javaサーバサイドアプリしこたま書く
俺 ESXi気に入り、テスト環境一式作る
俺 自動テストは触っていた、CIサーバを探す
俺 Jenkinsに惚れ込みCI現場で作る
俺 Docker内だけで「受入テストパイプライン作る俺 MSのプロダクト&Jenkinsの自動化する
Devはもっと「歌って踊れるDev」のはず
こんな落ちこぼれでもいや、落ちこぼれだったからこそ
(バツゲームかのごとく)一年生の時から
「インフラのはじっこ」に触れて仕事している…
オレみたいなプログラマーはいっぱい居ると思うんです
Devはもっと「歌って踊れるDev」のはず
• 今、自分は「オレ、プログラマーや!」言うてるのに、なぜか「インフラチーム」に居るわけで…
–(プログラマが”精鋭部隊”過ぎて寄してもらえないみたいですが…)
• そこからながめるに…
「プログラム出来るインフラエンジニア」
より
「インフラ知ってるプログラマ」
の方が多い(気がする
Top Related