なかっちゃんtech blog

勉強会とか日々の勉強の記録

ネットワークとプログラミングの話

この記事は 琉大情報工学科(知能情報コース) Advent Calendar の11日目です.

自己紹介

そこら辺の人も参加していいよということだったので,参加しました.

twittergithubを載せておきますね.

twitter.com

github.com

九州の学生です.

普段はネットワークの研究を主にやってます.あとはバイトでセキュリティと,フロントエンドをやったりしてました.

コミュニティ的なところで行くと,Perl入学式のメンターなどやったりしてます.(あんまいけてないけど)

こんな自称フルスタックエンジニア(笑)な僕が,普段はプログラミングをいっぱいしてであろう皆さん(勝手なイメージ)に少し,ネットワークのお話をしてみたいと思います.

もちろん講義みたいな話ではなく,ネットワークやインフラとプログラミングの調和みたいな話をしたいと思います.

ちなみにこんな流れで書くことになりました.  アナグラくんとはかれこれ2年くらい?の仲になってます??(あんま覚えてないや 3年?

ネットワークを知ると,どんなことがうれしいの?

まずは何が嬉しいかという話をします.

インターネットは今やつながるのが当たり前で社会基盤として存在しています.特に今の大学生の年齢だと,あるのが当たり前だと思います.僕もそうです.

ただ,ちゃんとわかっているかと言われれば,きっとそうではないと思います.

当たり前にあるし,IT=プログラミングみたいな風潮もあり,高校生まででネットワークしたいって人はまあまずいないんじゃないかな.

ただ,ある程度わかると,すごく楽しい.

そして,ニュースになるようなレベルの障害発生時はやることそっちのけで,自分で「普段のネットワークと比べてここがおかしいから,原因はこれか?」みたいなことができます.

大規模な接続障害、Googleが謝罪 「ネットワークの誤設定」原因

これを覚えていますか? 去年の8月に起こったゴタゴタになります.

ツイッターでは「Githubが繋がらないから仕事ができない」や「slackが死んだので仕事できない」みたいなツイートがよく見受けられました.

せっかく仕事できないので,エンジニアらしく原因追求しましょう.

そうすると「ツイッターではOCNが死んでる」という情報を得て終わりなんですが,実際にgithubにパケットを送って経路を確かめたりできます.

原因がわかるとすごい楽しい.まさに世界レベルでのデバック大会.

そんな世界だと僕は思っています.

ちなみに,ネットワークばっかりやるとどのプログラミング言語でweb appを書こうとTCPレベルでは,どの言語も変わらないぜ!!って思ってしまう.

アプリケーション側でどれだけ高速化の処理を行おうと,ネットワークが遅ければ,意味ないしな.

ここからさきはインフラとネットワークと意味を厳密に区別せずに話をします.なのでわかる方には違和感あるかもですが,ご了承ください.

どっちもいるの??

じゃあプログラミングとネットワークをどっちもやるのかという話になります.

実際のところ,どっちもできるひとはかなり少ないです.片方ならプロという方はいっぱいいるのが現状です.

そしてPaaSやSaaS,FaaSの出現でさらにネットワークを意識しなくてもよい機会が多くなっています.

じゃあネットワークわかんなくても,WebサービスをPaaSに乗せればサービス提供できるじゃん!と思うんではないでしょうか.

まあ実際そうなっていってるんじゃないかなぁと思います.

しかし,そんな中,インフラとプログラミングの両方を必要とするような仕事も出てきています.

今日はそんな2刀流な分野の紹介をしたいと思います.

前置きが長くなったけど,ここから本題 2つほどご紹介したいと思います.

Infrastructure as code

これはインフラをコード化する(そのまま)ことを言います.

これによってあるサーバの設定など(IaaSレベル)を冪等性がある状態を,「コード」を通して再現することができます.

これはネットワークというよりは,インフラよりな話にはなります.

しかし,「インフラ+プログラミング」をする分野になっています.

SRE

「Site Reliability Engineering」の略です.

Googleが提唱したシステム管理とサービス運用の方法論になります.

可用性の確保、レイテンシの低減、パフォーマンスの管理、作業の効率化、変更管理、モニタリング、障害対応、キャパシティ管理という管理業務に加えてソフトウェア開発を行う部隊になります.メルカリさんとかもあった気がします.

こちらも「インフラ+プログラミング」です.

まとめ

今,ご紹介したように,時代の進化とともに,なにか一つの分野だけというよりは複数分野を組み合わせた職業も出てきています.

そんなものに少しでも興味を持っていただけば嬉しいです.

ただ,知らないと興味を持つこともないので,この記事が誰かの興味を少しでも広げることができればいいなと思います.

ツイッターとか貼ってるのでよければフォローください.