92
インフラエンジニアは んだ YAPC::Asia 2014 TOKYO August 29, 2014 Satoshi SUZUKI

インフラエンジニアは死んだ Yapc -asia 2014

Embed Size (px)

DESCRIPTION

http://yapcasia.org/2014/talk/show/df196eac-fb65-11e3-b7e8-e4a96aeab6a4

Citation preview

Page 1: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアは死んだ

YAPC::Asia 2014 TOKYOAugust 29, 2014Satoshi SUZUKI

Page 2: インフラエンジニアは死んだ Yapc -asia 2014

Me

鈴木哲詩

インフラエンジニア

Rubyist

LINE株式会社

Page 3: インフラエンジニアは死んだ Yapc -asia 2014

この定義なかったことにしてください

Page 4: インフラエンジニアは死んだ Yapc -asia 2014

今日お話させていただきたいこと

プログラミングスキルのないインフラエンジニアは

死ぬの?

Page 5: インフラエンジニアは死んだ Yapc -asia 2014

今日お話させていただかないこと

フルスタックエンジニアに

なろう!

Page 6: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニア

プログラミング

インフラエンジニア

プログラミング

インフラエンジニア

プログラミング

Page 7: インフラエンジニアは死んだ Yapc -asia 2014
Page 8: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアコードを書かない

コードを書けない

インフラエンジニアに付けられたラベル

Page 9: インフラエンジニアは死んだ Yapc -asia 2014

大多数の

インフラエンジニアが

該当している?

WEBであれだけ言われてるくら

いだし

Page 10: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアコードを書く

コードを書ける

インフラエンジニアに付けられたラベル

カッコイイ

スゴイ

Page 11: インフラエンジニアは死んだ Yapc -asia 2014

ちょっと

考えてみた

Page 12: インフラエンジニアは死んだ Yapc -asia 2014

そして

色々やってみたので

Page 13: インフラエンジニアは死んだ Yapc -asia 2014

その話を

します

Page 14: インフラエンジニアは死んだ Yapc -asia 2014

と、その前に

Page 15: インフラエンジニアは死んだ Yapc -asia 2014

プログラミング

あたし

Page 16: インフラエンジニアは死んだ Yapc -asia 2014

プログラミングとあたし

Page 17: インフラエンジニアは死んだ Yapc -asia 2014

プログラミングとあたし

C++, Java, PHP などやってみたけどモノになる前に挫折した期

Page 18: インフラエンジニアは死んだ Yapc -asia 2014

プログラミングとあたし

今日の話はココらへんのところ

Page 19: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアって何する人な

の?

Page 20: インフラエンジニアは死んだ Yapc -asia 2014

WEBサービスのシステムスタック

Page 21: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアの担当領域

Page 22: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアの担当領域

Page 23: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアの担当領域

Page 24: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアの担当領域

Page 25: インフラエンジニアは死んだ Yapc -asia 2014

WEBサービス

に限定しても

これだけ多様

Page 26: インフラエンジニアは死んだ Yapc -asia 2014

今日の話の中のインフラエンジニア

特に注記などない場合WEBサービス開発の現場で

ココだけを担当している人たちを主に指していると思ってください

Page 27: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアの今後

Page 28: インフラエンジニアは死んだ Yapc -asia 2014

ハードウェア

データホテルさん、ハートビーツさんのようなところに運用の一部または大部分をお任せ

・自分でする機会が減る

・ネットワーク関連

・システム障害の一次対応

・ハードウェア障害対応

例えば

Page 29: インフラエンジニアは死んだ Yapc -asia 2014

クラウド

AWS、GCEのようなクラウドを利用する

・AWS SDKなどを用いた運用システムの構築

・ハードウェアを基本的に意識しなくていい

例えば

Page 30: インフラエンジニアは死んだ Yapc -asia 2014

Nagios

言わずと知れた(?)、OSS監視ソフトウェア

・プラグインによる拡張が柔軟に行える

・なきゃ自分で書ける

・コードを書けないと拡張出来ない

例えば

Page 31: インフラエンジニアは死んだ Yapc -asia 2014

Fluentd

言わずと知れた(?)、OSSログコレクター

・プラグインによる拡張が柔軟に行える

・Ruby製だがPerlなど他言語でも拡張可能

・コードを書けないと拡張出来ない

例えば

Page 32: インフラエンジニアは死んだ Yapc -asia 2014

さらに最近では

・Immutable Infrastructure・Disposable Infrastructure・Infrastructure as a Code

Page 33: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニア死亡

何個かあげてきたように、今後ますますインフラエンジニアもコードを書く事が必要とされる時代になっていくのではないでしょうか?

Page 34: インフラエンジニアは死んだ Yapc -asia 2014

\(^o^)/

Page 35: インフラエンジニアは死んだ Yapc -asia 2014

コード読めない

コード書けない死

Page 36: インフラエンジニアは死んだ Yapc -asia 2014

今後もずっと

生き残りたい!!

Page 37: インフラエンジニアは死んだ Yapc -asia 2014

Operation Engineers’

Casual Talks

Page 38: インフラエンジニアは死んだ Yapc -asia 2014

こんな感じの勉強会をやった

・コード書けないインフラエンジニア、やることなくなって失職するんじゃないの?

・運用系エンジニアでありながら開発もこなせる凄い諸先輩方のお話を聞かせてもらいたい

Page 39: インフラエンジニアは死んだ Yapc -asia 2014
Page 40: インフラエンジニアは死んだ Yapc -asia 2014
Page 41: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアは死ぬ

Page 42: インフラエンジニアは死んだ Yapc -asia 2014

2012年末も

同じこと

言ってた

Page 43: インフラエンジニアは死んだ Yapc -asia 2014

勉強会の

内容ですが...

Page 44: インフラエンジニアは死んだ Yapc -asia 2014

ほげエンジニアの定義について

・自称は自意識に影響を与える

・何を解決すべきなのかを考えよう

・分業は不可能

・ひとまず自分で全部やる

・問題はコードで解決しよう

Page 45: インフラエンジニアは死んだ Yapc -asia 2014

枕を高くして寝る話

・コードは問題を解決する手段のひとつ

・書かないで解決できるならそのほうが

良い場合もある

・コードを書けばバグがつきまとう

・必要以上に自分だけで頑張らない

Page 46: インフラエンジニアは死んだ Yapc -asia 2014

登壇者全員が一貫して言っていたこと

・問題は何か

・それをどう解決するか

・問題解決のためになるなら読む

・問題解決のためになるなら書く

Page 47: インフラエンジニアは死んだ Yapc -asia 2014

Operation Engineers’ Casual Talks

セッションの様子は YouTube にあります

・ほげエンジニアの定義について

・枕を高くして寝る話

Togetter・「おぺかじ」まとめ

Page 48: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアがコードを読めること

書けることについて

僕が今思うこと

Page 49: インフラエンジニアは死んだ Yapc -asia 2014

絶対必要

Page 50: インフラエンジニアは死んだ Yapc -asia 2014

Someone said

・常識的に考えてインフラの知識もコード書く知識も無ければインターネットの仕事出来ない

・apache とか mysql とかの管理してるのに C わからないってマジやばい

・ふつうインターネットのサービス関わってるエンジニアって mysql とか apache とかにパッチ送ったり IOS でルーティングの管理したりワイヤリングとかするよね

Page 51: インフラエンジニアは死んだ Yapc -asia 2014

とは言え

・いきなり Apache とか MySQL をソースコードレベルで理解するとか無理

Page 52: インフラエンジニアは死んだ Yapc -asia 2014

目の前にある解決すべき問題は?

・Apache とか MySQL のソースコードレベルでのチューニングではないはず

Page 53: インフラエンジニアは死んだ Yapc -asia 2014

解決すべき

問題は

何なのか考える

Page 54: インフラエンジニアは死んだ Yapc -asia 2014

目的を果たすためにコードを書く

・求められている役割

・目の前の問題はなんなのか

CloudForecast, GrowthForecast, HRForecast, Kurado, Yabitz, Shib, Whada, Norikra, fluent-agent-lite, Ikachan, Nata2

Page 55: インフラエンジニアは死んだ Yapc -asia 2014

いざ

必要になったときに

実際に手を動かせるか

Page 56: インフラエンジニアは死んだ Yapc -asia 2014

名称にまとわりつく

先入観に惑わされてはいけない

Page 57: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアコードを書かない

コードを書けない

インフラエンジニアに付けられたラベル

Page 58: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアコードを書く

コードを書ける

インフラエンジニアに付けられたラベル

カッコイイ

スゴイ

Page 59: インフラエンジニアは死んだ Yapc -asia 2014

結論は結局

インフラエンジニアは

コード書けないと

やべーぞってこと?

Page 60: インフラエンジニアは死んだ Yapc -asia 2014

否、ではないけど...

・インフラエンジニアがコードを書けないからヤバイのではない(本当はヤバイと思うけど)

・ヤバイのは世間にあまねく◯◯エンジニアは

■■をしないという先入観

Page 61: インフラエンジニアは死んだ Yapc -asia 2014
Page 62: インフラエンジニアは死んだ Yapc -asia 2014

インフラエンジニアだから(する|しない)ではな

Page 63: インフラエンジニアは死んだ Yapc -asia 2014

運用するそのサーバで

動いているものは

すべてがプログラム

だということ

Page 64: インフラエンジニアは死んだ Yapc -asia 2014

どのように

習得したのか

Page 65: インフラエンジニアは死んだ Yapc -asia 2014

入門書レベルの

シンタックスの理解

くらいまでは

自分の力だけで

どうにかする

Page 66: インフラエンジニアは死んだ Yapc -asia 2014

とにかく

書いた

Page 67: インフラエンジニアは死んだ Yapc -asia 2014

Fluentd

僕がプログラミングをきちんとはじめなければならないなと思うようになったきっかけになってくれたプロダクト

・はじめは out_exec_filter と Perl でアプリケーションのログの解析っぽいことをやった

・Ruby を始めてからは plugin も書いた

Page 68: インフラエンジニアは死んだ Yapc -asia 2014

業務で書く書く書く書く書く

既存システムを置き換えるコードを書いては

つぶしてってことをずっとやってた

・転職してすぐのころはこんなんばっかで

まったくバリュー出してなかった

・許されていたわけではなかったけど

やらせてもらえた

Page 69: インフラエンジニアは死んだ Yapc -asia 2014

とにかく

読んだ

Page 70: インフラエンジニアは死んだ Yapc -asia 2014

OSSコントリビュータが周囲に多い

普段使っているソフトウェアの中でCloudForecast, GrowthForecast, HRForecast, Yabitz, Whada, Fluentd あたりを結構読んだ

・作者やコントリビュータが身近にいる

・わかんなかったら聞ける

・改修の相談もしやすい

Page 71: インフラエンジニアは死んだ Yapc -asia 2014

とにかく

見てもらった

Page 72: インフラエンジニアは死んだ Yapc -asia 2014

天才のコードっぽいって言われた

/proc/meminfo をパーズするコード

・超真面目に書いた

・今見たら普通にオカシイ

Page 73: インフラエンジニアは死んだ Yapc -asia 2014

天才のコードはこうなった

・実装

・コメント

・メソッド名

Page 74: インフラエンジニアは死んだ Yapc -asia 2014

コメント

・パッと見でわかりづらいところに ・メソッドが期待する入力はどのようなもの であるか ・返す値はどのようなものか

Page 75: インフラエンジニアは死んだ Yapc -asia 2014

命名

長くて冗長かなという感じになってしまってもわかりやすい名前をつける

convert_memory↓convert_memory_human_readable

Page 76: インフラエンジニアは死んだ Yapc -asia 2014

命名

・日本語で「◯◯するやーつ」で命名

・「◯◯してから△△するやーつ」とかになってたらそのメソッドやクラスに仕事をさせすぎかも知れないと疑って分割出来ないか考える

・それから英訳する

Page 77: インフラエンジニアは死んだ Yapc -asia 2014

教わるときに気をつけてること

・言われたとおりにまずはやってみる

・自分は未熟すぎるとの自覚

・諸先輩方が言ってることを素直に信じてみる

Page 78: インフラエンジニアは死んだ Yapc -asia 2014

教わるときに気をつけてること

・疑問に思ったことはちゃんと聞く

・「あのときはこう言ってました」

・「過去の自分は他人」

・「....」

Page 79: インフラエンジニアは死んだ Yapc -asia 2014

OSSにコントリビュート

※ コントリビュートと言っていいかどうかは...

Page 80: インフラエンジニアは死んだ Yapc -asia 2014

fluent-plugin-flatten, rewrite

・タグが書き換わらないと内部で無限ループ

するバグの修正をやらせてもらった

・コーディングスタイルや、どういうふうに

実装してくと良さそうということを具体的に

細かく教わった

Page 81: インフラエンジニアは死んだ Yapc -asia 2014

Serverspec

・機能追加の pull request をした

・バグ報告、修正の pull request をした

・実装のアドバイスをしてもらった

動作確認不十分なまま pull request 出して怒られたことも...

Page 82: インフラエンジニアは死んだ Yapc -asia 2014

ソースコード

リーディング会

Page 83: インフラエンジニアは死んだ Yapc -asia 2014

ソースコードリーディング会

・ほんの最近始めたばかりだが

・実際にプロダクションの実装をしてる人に

解説してもらいながらみんなでコードを読む

・プロダクションの実装に対して当事者意識が

芽生えてとてもいい

Page 84: インフラエンジニアは死んだ Yapc -asia 2014

仲間を

増やそう

Page 85: インフラエンジニアは死んだ Yapc -asia 2014

ひとりで頑張るのはつらい

僕がプログラミングを習得していった流れから読み取っていただけたかと思いますが、

僕は本当に仲間にめぐまれました

Page 86: インフラエンジニアは死んだ Yapc -asia 2014

刺激を与えられる

Page 87: インフラエンジニアは死んだ Yapc -asia 2014

刺激を与えられる

Page 88: インフラエンジニアは死んだ Yapc -asia 2014

まずは自分を知ってもらう

こういうカンファレンスに来ても、どこの誰で何してるかわからないと仲良くなりづらい

・ブログ書く

・勉強会で発表

Page 89: インフラエンジニアは死んだ Yapc -asia 2014

仲間を

見つけたらISUCON出よう

Page 90: インフラエンジニアは死んだ Yapc -asia 2014

結論

Page 91: インフラエンジニアは死んだ Yapc -asia 2014

結論

インフラエンジニアとして

目的を達成していくためには

プログラミング習得は必須

Page 92: インフラエンジニアは死んだ Yapc -asia 2014