じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

『SREの車窓から』という題で #geekgig に登壇。

前書き

『GeekGig #1 〜Goと私の一年〜』という株式会社Showcase Gigが主催しているイベントでLTで登壇してきました。運営の皆様ありがとうございました。今回の登壇はSREというよりもシステム管理者がGo言語を使うメリットについて言及しました。タイトルはミスリードです。申し訳ございません。しかし、SREやシスアドの仕事は本当に楽しいことばかりではないですが如何に楽しくやっていくかを考えるのは楽しいなと思っています。

showcase-gig.connpass.com

また、Modern System Administrationでは特定の言語に縛られてはないのですがシステム管理者がプログラミング言語を習得することについてのいくつかの言及があったので読んでみてください。

learning.oreilly.com

SREやインフラエンジニアではないのですが個人的には小野 和俊さんの書籍である「その仕事、全部やめてみよう」で言及されている【ラストマン戦略】が好きで、コードが読めたり書けたりするインフラマンというのは重宝されるように思えます。今回の発表はその啓蒙の一つだと思います。

www.bookbang.jp

インフラとGo言語が混ざったFukuoka.go という最高の勉強会があって直近のものに関しては動画も公開されているのでみておくのも良いかと思います。

fukuokago.connpass.com

また、勉強会やコミュニティーに対して定期的に参加することは技術的なモチベーションにも繋がるので発表者になるのも良いかと思います。

nulab.com

登壇資料の文字起こしと補足

各分野や文字に対して響いた時に読んでほしい本がいくつかあるので記載しておきます。

speakerdeck.com

Q.今年は私がGo言語で何をしていたか?

A.ほぼ全てで Go言語を利用している

生業としてはインフラやプラットフォームの構築や開発をしたり、インフラでの便利ツールの作成をやってました。一昨年ぐらいから規模感でPythonシェルスクリプトを選択するという場面が減りました。
私は作業シェルにfishを利用しているのですがこれらの環境に直接影響があるものや自分でライブラリーの開発が必要でそれらが
面白くなさそうな場合以外は全てGo言語で実装するようになりました。最近では、個人開発の生産性の観点からも慣れのおかげでGo言語一択になっています。

自動化

  • 楽したいあわよくば全ての作業は自動化されてほしい。
  • しかし、開発スキルなしでは正確に自動化できず、運用スキルなしでは正しく自動化できません。
  • 昨今の運用が抱える自動化はソフトウェアチームの核心である継続的なデプロイや義務である継続的デリバリーだけではありません。しかも、この分野に全ての問題を一挙に解決してくれるカリスマ的なツールは存在せず。いくつかのツールを合わせて利用することになり、Go言語はさまざまなツールに対応しております(ちなみに、シェルスクリプトの知識は大事)。自作可能。
  • クラウドネイティブな世界ではプログラマブルに制御できる
範囲がGo言語だと広い

関連書籍

learning.oreilly.com

learning.oreilly.com

learning.oreilly.com

learning.oreilly.com

コラボレーション

開発者には運用スキルが必要です。彼らの責任はコードを書くことだけではなく、システムを本番環境にデプロイしてアラートを監視することです。同様に運用者にも開発のスキルが必要です。本番アラートを監視することだけではなく、不具合が起こった時の事象の認識、コードの特定、変更などできれば良い関係になるんではないでしょうか? もし、開発チームと運用チームが同じプログラミング言語で開発していたら素晴らしいと思いませんか(まぁどんな言語でもいいけど)?。それこそ、書籍でしか文字として認識しかしてない開発チームと運用チーム間の双方向のコラボレーションが発揮させれるのではないでしょうか?開発と運用が協力してツールや知識は開発と運用の間のすべてを双方向に生かされて成功は約束された感じがしてきませんか?最近だと、Node.jsDartなどもっと複数のレイヤーを跨いで協業できる言語も増えています。各チームや組織ごとに最適なものをその場、その場で決めていけば良いと思います。

10x.co.jp

関連書籍

learning.oreilly.com

learning.oreilly.com

解像度

Goで開発された世界の素晴らしいツールやミドルウェアの実装が読めると自分のチームの開発や運用の役に立つことや自分自身の実力になることも多く良い循環がまわるようになる。 現在、SREやインフラエンジニアが使う多くのツールやミドルウェアがGo言語で開発されている。そのため、Go言語特有のエラーやログのメッセージに慣れておくことによって今まで、不思議で意味のなかった文字列が開発者からのメッセージに見えてくるようになって、デバッグ時や問題発生時に非常に役に立ちました。ツールやミドルウェアを使っている時の解像度がグッと上がった気がします。

関連書籍

learning.oreilly.com

learning.oreilly.com

最後に

この発表はハッカー的な意味合いというより自戒や啓蒙などを込めたものでした。年に何回かエモいだけの発表がしたくなるのですが相応に数人が楽しく仕事できればもはやなんでも良いのではないかと思いだしました。次回があればもっと技術に寄った発表をします。でも、転職して3ヶ月で思ったことは本当にhttps://dart.dev/