#技育祭 ではじめてでもわかる!コンテナ入門 という講義をしたのですがコンテナ技術以前に何が必要か?

概要

空腹状態から回復する為に飯を食っても腹が出る人類の不思議について考えていたら夜でした。2021年03月13日 の15:50 から16:50 までの一時間で技育祭というイベントでコンテナの入門講義を行った。以前から事前に情報が共有できない入門講義は罪深いとは思っている。事前知識のある有無や特定のコンテキストへの理解など参加者のスタートラインを確認できないからで講義時間の関係上それらに一線を引いてここからあそこまでの入門講義だと思い込んで講義を行わなければならない。これは地味にシンドイ。講義する側になると予習復習は大事というのが身に染みます。

講義の感想にたまにこんな声が聞こえる。

コンテナ技術以前の前提知識が必要だと思う

こういうことを聞くとオジサンなので彼らの為になるようにXXといういい本があるよ!!! インフラの勉強をするにはこういう名著がある。もちろん、基本的な知識としてネットワーク・ルーティング・スイッチング・ファイアウォール・負荷分散・高可用性・障害復旧・TCPUDPのサービス・複数のUNIX・複数のウェブサーバー・キャッシュ・データベース・ストレージインフラ・暗号・アルゴリズム・キャパシティ計画立案に精通した人材になることが必要だよと、本格的に這い寄ると彼らは逃げる。なぜなら、彼らはインフラエンジニアになりたいわけではないのだから!!!

では、何が必要なのか?ちょっと考えてみる。

おまけ

資料

speakerdeck.com

とその投稿

神様ではないので分かりません。

エリック・レイモンドはエッセイ「How To Become A Hacker」の中でどんな言語を勉強すべきかを述べている。まずPythonJavaから始めよ、学ぶのが容易だから。真剣なハッカーはさらに、UnixをハックするためにCを学び、システム管理とCGIスクリプトのためにPerlを学ぶべし。と言っている。 実はこの主張は2007年の公開から少しずつ変更されている。大きな変更として学習すべき言語をJavaからGolang へ変更したことである。まぁ勉強すべき言語や方法はその時期などによって全く異なるということである。ハッカーになろう基本的なハッキング技術 から何となく環境がちょくちょく変わっているその雰囲気が伝わると嬉しいです。

まぁというようにエンジニアが学ぶべきことは年々変わる。素晴らしいハッカー(本来の意味での)たちが C言語を異常に勧めてくるのにはそれなりの理由があるのだが初学者には関係ない。彼らは強力なツールによって簡単に見かけ上の理解に到達できてしまい。それらに押しつぶされた経験がないからである。でも、最初からそんなに潰されたり一歩ずつ進む必要もない。小さな自信を積みながら楽しむやり方だってあるはずです!!!

なので、勝手にコンテナ技術以前の前提知識 のオススメを紹介します。

シェル芸

芸は身を助くということわざがある。一芸を身につけておくと、いざというとき生計を助けることもあるという意味です。

シェル芸 とは、主にUNIXオペレーティングシステムにおいて「マウスも使わず、ソースコードも残さず、GUIツールを立ち上げる間もなく、あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力 一撃で 終わらせること」(USP友の会会長・上田隆一による定義)

しかし、これだけは言いたいシェル芸 に助けられるばかりのコンテナ生活です。シェル芸を学ぶと各種コマンドの性質を掴めるようになります。将棋でいうと一手詰め将棋のようなものです()。基本的にコンテナも最終的にはシェルが動作しますのでこれらを学ぶことにあまり損は感じません。

こちらの資料は最高なのでぜひ読んでください。

www.slideshare.net

基本的な構築と自動化...

なんだかんだ言ってもインフラの構築経験がなければDockerfile に何を記載すればプロセスが動作するのか分からないと思います。なのでConoHa (宣伝含む) などに好きなミドルウェア(Nginx やApacheなど他多数) をインストールして設定をして様々な設定を遊んでみることも大事かと思います。あとは、自動で構築するのにもある程度慣れた方がいいのでAnsibleないしは類似したツールを使ってみることをオススメします。Dockerfile と違って都度実行結果が異なることも多いのでそこに考慮した書き方は将来的に役に立ってくると思います。

Linux の基礎知識

LPIC と LinuC に関しては勉強してあまり損しないと思います。レベル1ぐらい持っていても罰は当たりません。

最後に

好き勝手にいいましたがTwitter有識者がもっと素晴らしい意見を言ってくれることを祈っています。今日はもう寝ます。おやすみなさい。