手抜力
細合 晋太郎
九州大学
with 作業効率化大喜利
WWEST2016
2016/3/4 WWEST2016 1
手抜力
≠成果を疎かにする
☆ 少ない労力で最大限の成果を
☆ 作業を効率化する
☆ 人に任せる
☆ 機械に任せる
自動化できることは全部
任せて悠遊とすごしましょう
2016/3/4 WWEST2016 2
石炭産業科学館に行ってきました
☆ 手掘り→蒸気機関→圧縮空気→電気
☆ 25000人(ピーク時)→2000人(閉鉱時)
大牟田
機械化,自動化はロマン
2016/3/4 WWEST2016 3
なんでも自動化すればよい?
ボールをある地点に持っていくだけに工数かけすぎ! だがそれがいい.
2016/3/4 WWEST2016 4
トレードオフ
☆ 投入コストと回収できるコストを把握する
☆ 投入
☆ 学習コスト
☆ 実装コスト
☆ 回収
☆ 手動での作業コスト – 運用コスト
☆ 作業工程の明示化,モチベーション
☆ 初回で回収するのはまず無理.何度同じよう
な作業を繰り返すのか把握すること
☆ 複数人で利用する場合は,布教・説得・教育
コストもかなり大きい.もちろん導入できれ
ばx人数なので,リターンも大きい
投入
回収
0 1 2 3 4 5 6
2016/3/4 WWEST2016 5
おしながき
☆ インフラ構築
☆ Vagrant, Docker
☆ Ansible, chef, puppet, salt, Noob
☆ クラウド
☆ サービスあれこれ
☆ ソフトウェア開発
☆ MDD,テンプレート
☆ ビルド環境
☆ CI
☆ 機械加工
☆ 3Dプリンタ,レーザーカッター,CNC
☆ 事務処理
☆ POI, iText, Groovy
適宜,それ使ってるよ!
という事例があれば割り込んで
頂けると助かります!
2016/3/4 WWEST2016 6
インフラ編
まだ手動でOSインストールしてますか?
2016/3/4 WWEST2016 7
仮想環境
☆ Virtual Boxベースの
ハイパーバイザ型VM
☆ Linuxベースのコンテナ型VM
☆ 起動早い
☆ Linux環境が必須
Host OS
Vagrant
VM
Host OS
Docker
VM
2016/3/4 WWEST2016 8
構成管理(1)
☆ OSインストール後に設定したり,インストール
してくれるツール
☆ 例えば,LAMP環境を一括導入・設定する 等
☆ 基本的に作業スクリプトを作成し,実行する
(リモートでできるものもあり)
☆ レシピがあれば,いつでも誰でも同じ環境を構
築できる
☆ 作業手順を明示化できる.(よくあるApacheを
インストールして,httpd.confの~の項目
を・・みたいなマニュアルは要らなくなる)
☆ 特定環境でしか動かないようなものも,レシピ
だけ残しておけば,いつでも再現可能.Docker
と合わせると,テスト環境の仮想化が捗る
2016/3/4 WWEST2016 9
version DSL 特徴 総合評価?
3.0 ruby or
puppet-
dsl-ruby
Web UIからノードのリアルタイ
ム制御が可能?
★★★★ 8.2
11.4 ruby, json Web UI,Rubyからいろいろい
じれる.要クライアント.jsonで
設定をまとめられる
★★★★ 8.3
1.3 python? Web UI,ターゲットOSにクライ
アントをインストールしなくてよ
い
★★★★★ 9.0
0.17 yaml,
python,
PyDSL
Web UI,SSH経由でクライアン
トインストールされる
スケーラビリティに優れる(ら
しい)
★★★★ 8.8
構成管理(2)
http://www.infoworld.com/article/2609482/data-center/data-center-review-puppet-vs-chef-vs-ansible-vs-salt.html
大きな差異はないかも.慣れた言語や周り
の環境に合わせて導入するのがよいかと
2016/3/4 WWEST2016 10
構成管理(Extra)
☆ Raspberry Piのイメージ作成超メンドイ.
☆ 20チーム分用意しろとか,DDだと何時間かかん
ですか・・.
☆ noobでちょっと幸せになれました.
☆ インストーライメージを焼く感じ,小さいので書
き込みにもそれほど時間掛からない.
☆ 初回起動時に自動的に展開されインストールが始
まる.RPiが複数枚あれば,並”列”処理可能
☆ もちろん独自イメージも扱える(ちょっとややこ
いですが・・)
☆ ただしIPの設定等は,インストール完了後に個別
設定
☆ 構成管理ツールでIP設定が結構鬼門です..リ
モートでやるにしてもIP分かってないと難しいん
ですよね.
2016/3/4 WWEST2016 11
クラウドサービス
☆ IaaS (Infrastructure as a Service)
☆ 仮想PCをあなたに
☆ AWS EC2,IDCFクラウド,IBM Cloud
☆ PaaS (Platform as a Service)
☆ 組み合わせれば大きなサービスもサクサク開発
☆ Google App Engine, Microsoft Azure,Yahoo
myThings, IBM Bluemix
☆ SaaS (Software as a Service)
☆ いつでもどこからでも同じアプリを
☆ Google (Drive, Docs, GMaiil,,),Dropbox
2016/3/4 WWEST2016 12
IaaS
☆ プライベートクラウド(VM Sphere),
AWS EC2, IDCFクラウド,IBM Cloudと
使ってきたが,大きな差異はない.
☆ どこのものでもちょっとした設定で,VMを
立てられる
☆ 性能/コストと他サービスとの連携で選択
2016/3/4 WWEST2016 13
PaaS
☆ 大抵,サービスがコンポーネント化されて提
供されており,必要なものを選択・組み合わ
せて利用する
☆ 例えば,Node,MQTT,StorageでIoTっぽ
い何かが欲しい場合,コンポーネントを選択
するだけで,基本的なサービスはすべて提供
される.
☆ 上記のような典型パターンがパックされたも
のも多い
https://console.ng.bluemix.net/catalog/2016/3/4 WWEST2016 14
SaaS
☆ どこからでも同じサービスを受けられる
☆ ローカルのデータが吹っ飛んでも,問題ない
☆ 今年に入ってスマホを二回(水没,分解失敗)変
えましたが,移行楽々でした
☆ Googleのエコシステムからはもう抜けられ
ない気がしています.楽天で予約したメール
を解析されて,カレンダとマップに自動追加
されちゃうとか.
☆ Google*, Dropbox,Kindle,Todoist,
Trello, Idobata, Chatwork, feedly
2016/3/4 WWEST2016 15
ソフトウェア開発編
ソフトウェアはソフトウェアで作ればいいよね
2016/3/4 WWEST2016 16
ビルドスクリプト
☆ ビルド手順の形式化,ライブラリ等依存関係
の管理
☆ make
☆ 基礎教養
☆ ant
☆ 最近はあんまり見ないですね
☆ maven
☆ とりあえず
☆ gradle
☆ 最近オススメ
2016/3/4 WWEST2016 17
バージョン管理
☆ CVS
☆ Subversion
☆ git
☆ バージョン管理もエコシステムが大事.CIと
仲良くないと扱いずらい
☆ 最近はもう全部githubでええやんってなって
ます
2016/3/4 WWEST2016 18
CI (Continuous Integration)
☆ 継続的インテグレーション
☆ CD (Continuous Delivery),DevOpsなども
ほぼ同義
☆ コミットから,自動ビルド,自動テスト,自
動デプロイまで,常に最新版が自動的に作ら
れる
2016/3/4 WWEST2016 19
Bots
☆ Slack / Idobata等チャットと連携
☆ 簡単な時刻のお知らせから,ビルド結果やカ
ンバンの監視,コマンドの受付などなど
2016/3/4 WWEST2016 20
Framework
☆ 最近はフレームワークに加え,ライブラリや
プラグインのパッケージ管理まで含めたもの
が便利です.
☆ Spring 4
☆ Spring Bootがステキ.
☆ Node
☆ NPMで大体揃う.多過ぎて選ぶのが大変・・
Framework
Package
Repository
検索
依存関係も
含め取得
作るのココだけ!
2016/3/4 WWEST2016 21
モデル駆動技術
☆ MDDに限らず
☆ 抽象度の高いものからコード生成
☆ DSL
☆ ちょっとしたスクリプト
☆ 稀によくやるExcel to Code
☆ 特定の構造に沿った何か → 変換ルール →
コード
☆ メタモデル(のようなもの)を把握するのが
大事.作っておけば使いまわせる
2016/3/4 WWEST2016 22
astah m2t
☆ astahでゆるめにコード生成するプラグイン
☆ 実体は単なるgroovyスクリプトで,astahの
APIを叩いてモデル取ってきて,テンプレー
トエンジンに流し込んでるだけ
2016/3/4 WWEST2016 23
機械加工
ちっさな工場がおうちにやってきた
2016/3/4 WWEST2016 24
3Dプリンタ
☆ なんでも作れる夢の機械
☆ ではない.
☆ 材料の特性や作成可能な形状,積層方法など
いろいろと気を使ってモデリングが必要
☆ 材料を手動で削り出して同じもの
作る労力を考えたら,まるで魔法
☆ 3Dモデリング環境もフリーで十分
使えるものが多くある
2016/3/4 WWEST2016 25
レーザーカッター
☆ 木材,紙,スチロール,アクリル,皮革等,
正確に切り出せる
☆ ガラスや鏡に彫刻することも可能
☆ 金属が切れるものは高いので手が出ません
☆ が,調整が結構大変,,失敗すると切れない,
出力上げすぎると燃える
☆ 制御ソフトがくs・・
2016/3/4 WWEST2016 26
CNC
☆ 基板の削り出しや金属(アルミ・真鍮等)の
削り出しまでできちゃう機械加工の王道
☆ 図面のままに部品が削り出せる嬉しさ.手で
加工したらここまでの精度出せないよ
☆ 切子で机の周りが大変なこと
になります.切削油が必要な
場合はさらに最悪な状況に
2016/3/4 WWEST2016 27
その他もろもろ
一番時間食ってるのは雑務かも
2016/3/4 WWEST2016 28
POI,iText
☆ 未だに避けて通れない,Office系ファイルと
PDF
☆ 自力でパースするには,あまりにエグいファ
イルフォーマット.
☆ apache POI : Office系ファイルを扱えるラ
イブラリ,もちろんxlsx等~x形式も使える
☆ iText : PDFライブラリ.解析,生成等いろ
いろ行える.
☆ ExcelのリストからPDFの帳票を出力など
☆ 修了生リストから,修了証作成とかに利用し
た
2016/3/4 WWEST2016 29
Chocolatey (Winパッケージ管理)
☆ cinst chrome
でインストールできる.
☆ 基本的にインストーラを拾ってきて,インス
トールしてくれるだけ.inst/uninstの管理
はしてくれる
☆ 主要なアプリは登録されている
☆ Linux, Macだと余裕でできますよね.わかっ
てます.Windowsのパッケージ管理はクソ
でした.かなりマシになりました.
2016/3/4 WWEST2016 30
まとめ
☆ 便利な道具をうまく使って手抜きしましょう
☆ 自動化に拘り過ぎて目的を見失わないように
しましょう
☆ よいツールがあったら情報共有しましょう
2016/3/4 WWEST2016 31

手抜力