狠狠撸

狠狠撸Share a Scribd company logo
意识の低い自动化 
すごいshellscript
定型作業を 
自動化する話
自動化してますか 
日々発生する定型作業 
3回以上同じ事を手でやりたくない 
? アプリケーションのデプロイ 
? サーバの設定 
? ダンプファイルの作成 
? ゴミファイルの削除 
? etc, etc…
我々には自動化ツールがある 
その他いろいろ
我々には自動化ツールがある 
学習コストが高い 
変化が激しすぎる 
その他いろいろ
学習コストが高い 
手でやれば2分で終わることを 
自動化するのに 
2分以上 
学習コストをかけたくない 
新しいツールをいろいろインストールしないといけないとか 
新しい言語/DSLを覚えないといけないとか 
新しい概念を覚えないといけないとか(kitchen? playbook?) 
面白いし興味深いけどやりたいことはそれじゃない
変化が激しすぎる 
chef-soloユーザのみなさん、 
chef-zeroへの移行は順調ですか 
我々は自動化して楽したいのであって 
自動化スクリプトのメンテをしたいわけではにぃ 
来年も再来年もノーメンテで自動化スクリプトを使いたい
结果、こうなるじゃろ
学習コストが少なく 
十分に枯れた 
自動化ツールが 
どこかにないものか 
意識が低くても使える自動化ツールが欲しい
ある
Shell script
Shell script
自動化ツールとしてのShell script 
一応考えてみよう 
利点 
? 学習コストがほぼゼロ 
? デプロイ先サーバへのインストール不要 
? なんでもできる 
? これ以上無いくらい枯れている 
欠点 
? 記述が煩雑すぎる 
? エラー処理に弱い 
? 冪等性を保証しづらい 
? ちょっと複雑なことをしようとすると 
誰も読めないスクリプトができあがる
比較 
シェルスクリプトchef / puppet / 
capistorano等 
文法シェルコマンド 
そのまま独自文法(DSL) 
記述の簡潔さ煩雑簡潔 
エラー処理弱いできる 
冪等性弱いできる 
対象サーバでの 
事前準備不要ツールによる 
枯れ具合ほぼノーメンテツールによっては 
頻繁なメンテが必要
比較 
シェルスクリプトchef / puppet / 
これが欲しい 
capistorano等理想のツール 
文法シェルコマンド 
そのまま独自文法(DSL) シェルスクリプト 
そのまま 
記述の簡潔さ煩雑簡潔簡潔 
エラー処理弱いできるできる 
冪等性弱いできるできる 
対象サーバでの 
事前準備不要ツールによる不要 
枯れ具合ほぼノーメンテツールによっては 
頻繁なメンテが必要ほぼノーメンテ
デプロイ先サーバでの事前準備が不要で 
学習コストがシェルスクリプト並に低く 
メンテナンスしやすい簡潔な記述ができ 
エラーを柔軟に処理できて 
冪等性も担保できちゃったりする 
枯れた自動化ツールがどこかにないものか
ある
Pythonic remote execution Fabric 
http://www.fabfile.org/
Fabricとは 
? Python製の自動化ツール 
? シェルスクリプトをベースに記述 
? シンプルなコマンド体系 
? 柔軟な例外処理 
? 冪等性もあるよ
1分で覚えるFabricスクリプトの書き方 
? run(<shellscript>) 
引数に渡したシェルスクリプトを実行 
def uname():! 
run('uname -s')! 
? sudo(<shellscript>) 
引数に渡したシェルスクリプトをsudoをつけて実行 
def update_packages():! 
sudo(‘apt-get update') 
? local(<shellscript>) 
引数に渡したシェルスクリプトを手元で実行 
def uname():! 
local('uname -s')
1分で覚える 
Fabricスクリプトの書き方 
? Pythonの関数名がそのままタスク名になる 
? 書いたスクリプトは 
fabfile.pyという名前で保存する 
? fab -H <server address> <task name> で実行
1分で覚える 
Fabricスクリプトの書き方 
fabfile.py 
from fabric.api import run! 
! 
def uname():! 
run('uname -s')! 
$ fab -H localhost,192.168.33.10 uname 
↑を実行するとlocalhostと192.168.33.10に対して 
uname -sが実行され、その結果が表示される
例外処理 
シェルから返ってきた値をもとにハンドリングできる 
例: 
ユニットテストに失敗したら警告を出して 
続行するかどうか確認 
def test():! 
with settings(warn_only=True):! 
result = local('./manage.py test my_app', capture=True)! 
if result.failed 
! ! and not confirm("Tests failed. Continue anyway?"):! 
abort("Aborting at user request.")!
冪等性 
ここでは以下のようなことを冪等性と呼ぶことにする 
(異論は認める) 
? パッケージがインストールされているか調べ 
入っていなければインストール 
? ファイルが存在するかどうか調べ 
存在しなければ作成 
? ファイル内に特定の文字列があるか調べ 
なければ追記 
? etc, etc…
冪等性 
シェルスクリプトだけでも一応できる(はず) 
例: 
パッケージがインストールされているか調べ 
入っていなければインストール 
def setup_package(package = "apache2"):! 
! if run("dpkg -s %s | grep 'Status:' ; true" % 
! (package)).find("installed") == -1:! 
sudo("aptitude install '%s'" % (package)) 
ここでtrueを返すのがポイント☆?
意识の低い自动化
シェルスクリプトだけでは辛すぎるので 
fabricのアドオンを使おう
Cuisine Chef-like functionality for Fabric 
https://github.com/sebastien/cuisine
Cuisineで冪等性を担保 
パッケージ?ファイル?ディレクトリ?ユーザ等 
必要そうな諸々について冪等性を担保する 
APIを提供してくれるアドオン 
例: 
パッケージがインストールされているか調べ 
入っていなければインストール 
def setup_package(package = “apache2"):! 
package_ensure("%s" % (package))
Cuisineで冪等性を担保 
特にドキュメント等はないが 
APIの命名規則はシンプルなので困ることはないと思う 
APIの一覧が見たければIPythonのコマンド補完で見よう 
APIの例: 
cuisine.package_ensure()! 
cuisine.file_ensure()! 
cuisine.user_ensure()
枯れ具合 
Python界隈なので、破壊的変更には慎重な文化 
たぶんPython2.7のサポートが切れる2020年まで 
ノーメンテで使える
まとめ
おさらい 
シェルスクリプトchef / puppet / 
capistorano等fabric 
文法シェルコマンド 
そのまま独自文法(DSL) シェルスクリプト 
そのまま 
記述の簡潔さ煩雑簡潔簡潔 
エラー処理弱いできるできる 
冪等性弱いできるできる 
対象サーバでの 
事前準備不要ツールによる不要 
枯れ具合ほぼノーメンテツールによっては 
頻繁なメンテが必要ほぼノーメンテ
まとめ 
? Fabricをつかうと簡単に 
定型処理をスクリプト化できるよ 
? シェルスクリプトベースだから 
覚えやすいよ 
? 例外処理や冪等性もあるよ 
? 枯れているよ
まとめ 
? 意識レベルを低く保ったまま 
? 定型作業を自動化して 
? 寝る時間を確保しましょう 
? Try Fabric!
补足
怠惰なfabfileのつくりかた 
必要になってからつくる 
? 2回までは手作業でやる 
? 3回目をやる前に、historyファイルを開いて 
実行したコマンド一覧を書き出す 
? fabfileに書き写す 
? おしまい
Q. 
Capistoranoとの違いは? 
A. 
だいたい一緒なのでは 
Fabric capistorano 
文法シェルスクリプトベース独自文法(DSL) 
記述の簡潔さ簡潔簡潔 
エラー処理できるできる 
冪等性Cuisineを使えばない
世界的には贵补产谤颈肠のほうが使われているらしい
Q. 
fabfileが肥大化するのでは? 
A. 
その通り。 
肥大化を防ぐために、 
ある程度の大きさになったら 
Pythonパッケージとして 
分割するべき。
Q. 
並列実行できる? 
A. 
できる。 
最大同時接続数も制限できる。
Q. 
対応しているPythonのバージョンは? 
A. 
2.5-2.7。

More Related Content

What's hot (20)

世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
鲍贰4と叠濒别苍诲别谤でランニングコストを抑えるモダンなワークフロー
鲍贰4と叠濒别苍诲别谤でランニングコストを抑えるモダンなワークフロー鲍贰4と叠濒别苍诲别谤でランニングコストを抑えるモダンなワークフロー
鲍贰4と叠濒别苍诲别谤でランニングコストを抑えるモダンなワークフロー
エピック?ゲームズ?ジャパン Epic Games Japan
?
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
驰补丑辞辞!デベロッパーネットワーク
?
年の瀬リアルタイム通信サーハ?勉强会
年の瀬リアルタイム通信サーハ?勉强会年の瀬リアルタイム通信サーハ?勉强会
年の瀬リアルタイム通信サーハ?勉强会
モノビット エンジン
?
顿辞肠办别谤と笔辞诲尘补苍の比较
顿辞肠办别谤と笔辞诲尘补苍の比较顿辞肠办别谤と笔辞诲尘补苍の比较
顿辞肠办别谤と笔辞诲尘补苍の比较
Akihiro Suda
?
Multibranch pipelineて?いろいろ学んた?こと
Multibranch pipelineて?いろいろ学んた?ことMultibranch pipelineて?いろいろ学んた?こと
Multibranch pipelineて?いろいろ学んた?こと
Recruit Lifestyle Co., Ltd.
?
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
?
彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!
彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!
彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!
エピック?ゲームズ?ジャパン Epic Games Japan
?
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
?
やはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っているやはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っている
Koichi Tanaka
?
世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
?
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック?ゲームズ?ジャパン Epic Games Japan
?
叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド
叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド
叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド
Akihiro Suda
?
碍补蹿办补を活用するためのストリーム処理の基本
碍补蹿办补を活用するためのストリーム処理の基本碍补蹿办补を活用するためのストリーム処理の基本
碍补蹿办补を活用するためのストリーム処理の基本
Sotaro Kimura
?
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
?
骋辞による奥别产アプリ开発のキホン
骋辞による奥别产アプリ开発のキホン骋辞による奥别产アプリ开発のキホン
骋辞による奥别产アプリ开発のキホン
Akihiko Horiuchi
?
本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话
Kumazaki Hiroki
?
『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか
『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか
『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか
Hiroshi Tokumaru
?
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
?
尝补谤补惫别濒で蹿补肠补诲别を使わない开発
尝补谤补惫别濒で蹿补肠补诲别を使わない开発尝补谤补惫别濒で蹿补肠补诲别を使わない开発
尝补谤补惫别濒で蹿补肠补诲别を使わない开発
Kenjiro Kubota
?
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
顿辞肠办别谤と笔辞诲尘补苍の比较
顿辞肠办别谤と笔辞诲尘补苍の比较顿辞肠办别谤と笔辞诲尘补苍の比较
顿辞肠办别谤と笔辞诲尘补苍の比较
Akihiro Suda
?
Multibranch pipelineて?いろいろ学んた?こと
Multibranch pipelineて?いろいろ学んた?ことMultibranch pipelineて?いろいろ学んた?こと
Multibranch pipelineて?いろいろ学んた?こと
Recruit Lifestyle Co., Ltd.
?
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
?
彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!
彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!
彻底解説!鲍贰4を使ったモバイルゲーム开発におけるコンテンツアップデートの极意!
エピック?ゲームズ?ジャパン Epic Games Japan
?
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
?
やはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っているやはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っている
Koichi Tanaka
?
世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview
Atsushi Nakamura
?
叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド
叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド
叠耻颈濒诲碍颈迟による高速でセキュアなイメージビルド
Akihiro Suda
?
碍补蹿办补を活用するためのストリーム処理の基本
碍补蹿办补を活用するためのストリーム処理の基本碍补蹿办补を活用するためのストリーム処理の基本
碍补蹿办补を活用するためのストリーム処理の基本
Sotaro Kimura
?
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
?
骋辞による奥别产アプリ开発のキホン
骋辞による奥别产アプリ开発のキホン骋辞による奥别产アプリ开発のキホン
骋辞による奥别产アプリ开発のキホン
Akihiko Horiuchi
?
本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话本当は恐ろしい分散システムの话
本当は恐ろしい分散システムの话
Kumazaki Hiroki
?
『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか
『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか
『例えば、笔贬笔を避ける』以降笔贬笔はどれだけ安全になったか
Hiroshi Tokumaru
?
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
?
尝补谤补惫别濒で蹿补肠补诲别を使わない开発
尝补谤补惫别濒で蹿补肠补诲别を使わない开発尝补谤补惫别濒で蹿补肠补诲别を使わない开発
尝补谤补惫别濒で蹿补肠补诲别を使わない开発
Kenjiro Kubota
?

Similar to 意识の低い自动化 (20)

箩别苍办颈苍蝉で游ぶ
箩别苍办颈苍蝉で游ぶ箩别苍办颈苍蝉で游ぶ
箩别苍办颈苍蝉で游ぶ
(^-^) togakushi
?
Test Plugins
Test PluginsTest Plugins
Test Plugins
ykhr
?
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
Sho Shimauchi
?
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemo
ytanno
?
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADPuppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
?
LLNagoya Apple
LLNagoya AppleLLNagoya Apple
LLNagoya Apple
sunflat
?
WordCamp Kansai 2015 CI ハンス?オン
WordCamp Kansai 2015 CI ハンス?オンWordCamp Kansai 2015 CI ハンス?オン
WordCamp Kansai 2015 CI ハンス?オン
タカシ キタジマ
?
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
?
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
?
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Shinichi Hirauchi
?
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
Ken Morishita
?
密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境
Fumihito Yokoyama
?
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Hiro Yoshioka
?
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
?
仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法 仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法
Hideo Takahashi
?
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラインフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
susumu tanaka
?
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
Yukihiko SAWANOBORI
?
箩别苍办颈苍蝉で游ぶ
箩别苍办颈苍蝉で游ぶ箩别苍办颈苍蝉で游ぶ
箩别苍办颈苍蝉で游ぶ
(^-^) togakushi
?
Test Plugins
Test PluginsTest Plugins
Test Plugins
ykhr
?
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
Sho Shimauchi
?
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemo
ytanno
?
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADPuppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
?
LLNagoya Apple
LLNagoya AppleLLNagoya Apple
LLNagoya Apple
sunflat
?
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
?
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
?
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Shinichi Hirauchi
?
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
Ken Morishita
?
密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境
Fumihito Yokoyama
?
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Hiro Yoshioka
?
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
?
仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法 仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法
Hideo Takahashi
?
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラインフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
susumu tanaka
?
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
DevOpsのアプローチと クラウド/バーチャル環境/構成管理ツール のお話
Yukihiko SAWANOBORI
?

意识の低い自动化