運用におけるシェルの役割とそのあり方を考える – 山下和彦 氏
GMOペポバのサービス – ロリポップレンタルサーバ
・秒間2万8千アクセス/秒(DoSを受けた際はこれ以上)
・ビーク8Gbps
Shellに対するいくつかの考察
・Shell = Shell Script (bashで記載されたものを表す)
・RedMonk社(StackOverflow・GitHubでの人気度)によると、言語としては12位くらい
Shellの特徴
・メリット
・パイプ、オプションを利用した強力な組み合わせ
・ほとんどの場合は導入コストが低い(インストールの手間なし、依存性なし)
・デメリット
・テスト実装、変化に強い実装、再利用性の高い実装は苦手
ライフサイクル観点からの考察
・パイプ、オプションが強力すぎて、熟練者でないと見にくいことがある
⇒開発効率化には最適であるが、複数人での運用保守には向いていない(運用の際に負債として残る可能性あり)
・携わるメンバがShellに詳しければ問題ないが、Shellに学習コストをかけるかというと、
WEBエンジニアは覚えることが多くベターとは言えない
・例外として、USP研究所のようにShellに特化したユニケージ開発手法などが定着している場合もある
・RDBを利用せず、テキストファイルによってデータを管理
言語特性観点からの考察
・長期的な運用には不向き
・変化が少ない局面については有効
・バックアップスクリプト
・監視系スクリプト
なぜ人類はShellをかかなくなったのか?
・Infrastructure as CodeによってLLやGoを書き始めた
・自動化の高度化
LLやGolangで簡単にプロセスができ、人が介在せずとも処理ができるようになったため
処理を集めてjob.shとして実行することなどを、自動化と呼ぶ時代ではなくなった
それでもShellが好きな人も
・人は得意な言語で書くため、評価にも反映させる
なぜGolang?
・システムプログラミングに必要なAPIが一通りそろっている
・可搬性が高く、サーバに配置しやすい
まとめ
・長期運用するなら、Shellを頑張るよりも、他の言語で対応したほうが幸せになる
知らなかったこと
・shellcheckというshellの記法をチェックするようなツールもある
サーバーやNW機器の構成・設定管理に困ってませんか?簡単に最新状況が把握できるインベントリ収集ツールの紹介 – 船井 覚 氏
資料:サーバーやNW機器の構成・設定管理に困ってませんか?簡単に最新状況が把握できるインベントリ収集ツールの紹介
Open-Audit
・コミュニティ版と商用版がある
・20ノードまでは管理可能
・エージェントレス型
・SNMP,WMI,SSHでアクセスして、情報を取得する
できないこと
・収集のみ、設定変更はできない
・時系列での履歴管理
・インデント管理、資産管理
⇒OpenPIEを利用すればできるように
OCS Inventory NG
・エージェント型
・コミュニティ版のみ