2019/07/13

ひとりインフラサバイバルガイド

まえがき

人生は色々あるので365日24時間会社のサービスのオンコールを受け続けないといけない事も時にはあります。

そうした状況で色々と安心してひとりインフラをやっていく為のノウハウが自分の中に溜まってきたので、ここにガイドとしてワーッと書いちゃおうと思います。

もちろんサービス構成によってはそうはいかない面も多々あるとは思いますが、あくまで一例として参考にしてもらえればと思います。

前提条件

  • インフラ
    • AWS
  • 通知系
    • Sentry
    • Datadog
    • PagerDuty

という環境ではありますが、PagerDuty を利用されている方々であればおおよそ誰でも該当するような内容かなと思います。

装備品

必須アイテム

  • スマートフォン📱
    • PagerDuty からの障害通知を受け取ったり、障害アナウンスや対応依頼等の連絡に用いる必須アイテムです
    • 必ず常に持ち歩きましょう
    • 振動に気付けるような場所に(服のポケット等)入れておくと速やかに通知に気付けます
      • Android であれば PagerDutyのアプリの設定でサイレントモードを無視して音を鳴らす事も可能です
    • バッテリー切れにならないように日頃から運用に気を払いましょう
    • Datadog, PagerDuty, AWS マネジメントコンソール、あるいは1Password などの、監視・インフラ系・認証情報系のサービスにいつでもログイン出来る環境を整備しておくと良いでしょう。
    • バッテリーの容量が大きい端末を選択すると良いでしょう。
  • 社用ラップトップ 💻
    • 障害対応で手を動かすために必須です
    • 基本的には365日24時間常に持ち歩きましょう
      • MacBookPro を常に持ち歩くのは想像以上に大変です。必要に応じて、普段の開発用の端末とは別に、MacBookAir などの1kgちょっとの軽量なラップトップを(個人か会社かはわかりませんが)用意し、障害対応用に持ち歩くのは良いアイデアです。
        • その場合は、対応に必要な認証情報にアクセスできる状態を維持しておく必要があります(1Password のトークンがわからずに認証情報にアクセスできない、という状況は最悪です!)。
      • ラップトップを持ち歩きたくないシチュエーションもあります(クラブでガン踊る時や、いつひったくりに合うかわからない場所を歩かなくてはならない場合など)。
        • そのような場合は短時間で端末を回収できる安全な場所(コインロッカーなど)に保管し、スマートフォンを持ち歩くようにするべきです。
  • カバン 🎒
    • 365日常に端末を持ち歩く必要があるので、完全防水のカバンを用いるようにしましょう。リュックだと腕への負荷を軽減することが可能です。
      • 前述の通り、ラップトップの重量の問題は軽視出来ない問題です。ビジネス向けよりもアウトドア向けの、軽量かつ身体に負荷がかかりにくい素材のものをおすすめします。

おすすめアイテム

  • スマートバンド/スマートウォッチ ⌚
    • スマホのアプリ通知を受け取ることが出来て、防水性能が優れておりフル充電から最低5日はバッテリーが持つものを用意すると安心です。
      • 防水性能が高く、熱耐性も優秀なもの(防水性能が高くても40度に耐えきれないものもあるらしい)であれば、入浴中もアラートに気付く事が出来ます
        • 流石に銭湯や温泉はロッカーと浴槽が遠くて Bluetooth が届かない可能性が高いですが、無いよりは安心できるかもしれません。
    • 映画鑑賞中も音を立てることなくアラートを受け取ることが可能になるので、プライベートが豊かになります
    • とても便利なものではありますが、これを会社から支給されると「アラート対応に縛り付ける闇のバンド」みたいな扱いになり、つらい空気になっていくので、めっちゃ良いスマートウォッチを支給するか、安いスマートバンドを個人で買って善意で身につけるのが良いと思います。
      • Mi Band シリーズは防水も熱耐性も優秀で、フル充電で20日は持つというカタログスペックを誇る(実際は二週間が限界な印象があります)為、充電がズボラな人間でも安心してアラートを受け取ることが出来るおすすめ商品です。装飾品としては今ひとつですが。
  • モバイル WiFi 📶
    • 外出中に障害対応が必要になった時に、速やかにラップトップをインターネットに繋げるように、モバイル WiFi を用意しておくと良いでしょう。
      • 障害対応だけであればスマホのテザリングで対応可能だとは思いますが、明らかに仕事でそれをやるのは良くないので、これは会社が支給してくれたほうが印象は良いのかなと思います。VPN が絡んでくると、なおさら重要です。
  • 大容量モバイルバッテリー ⚡
    • スマホとラップトップの充電が可能な大容量モバイルバッテリーがあると、スマホやラップトップのバッテリーに気を払わなくて良くなります
    • が、同時にバッテリーの充電に気を払う必要が出てくる上に、各種ケーブル類を含めるとわりと重たいものを持ち運ぶことになるので、外出時間などを加味した上で運用したりしなかったりするといいでしょう
      • これも会社が支給してくれたら「あっ、いい会社だな」って思えるポイントになると思います。

推奨される日常的な行動

  • 手元に届く通知を最適化する
    • 基本的にすべての通知はスマートフォンで受け止めることになります。インストールしているアプリ等の通知は、本当に必要なものだけに絞るように調整しましょう。
      • メール通知は重要です。PagerDuty 経由でなくとも、各種ベンダーからの重要な通知はだいたいメールで飛んできます。そんな中、たとえば「体調悪いんで今日休みます」みたいなメールの通知に混じって障害アラートの通知が飛んでいると、本当に重要な通知に気づくことが出来ません。メールフィルタは丁寧に育て上げましょう。
      • スマートフォンへの通知はほぼバイブレーションで気付くことになります。不要な趣味アプリの通知などは可能な限り削りましょう。おすすめのコスメの通知などは必要ありませんよね? ソシャゲのイベント開始の通知は時には重要になるかもしれません。必要に応じて調整する必要があります。
  • 障害通知が届いた時に何かしらの手段で確実に気付くことが出来る状態を常に保つ
    -「 気付けませんでした」が最悪なので、まずは絶対に気付ける状況を作りましょう。スマホを常に持ち歩くのは必要があります。
    • スマートウォッチが震えてくれれば起床出来る可能性がありますが、理想を言えば家のスマートスピーカーがアラートを通知してくれるので起床出来る、という状態を目指したいところではあります。
      • 本当の理想の形は、誰かが気付けなくても他の人が気付ける、という状態です。
  • 可能な限り速やかに問題対応に取り掛かれる状況を常に作る
    • 少なくとも障害アラートを Acknowledge してから10分以内にはラップトップを回収して作業できるようにするのが理想です。
  • 最悪自分が動けない場合に誰かを呼び出してなんとか出来るようにする
    • 色々な事情があり、自分で動くことが出来ないシチュエーションもあります。例えば新幹線の中で電波が途切れがちなので他の人に作業を依頼するとか、自分には権限がなくて、上の人を経由しないと対応できないものなどです。問題の重要度によりますが、必要に応じて Slack で鬼リプライを飛ばすなり、最悪直接電話をかけるなりして、誰かを動かす必要があります。
      • そのためには非常時の緊急連絡網をちゃんと整備しておく必要があります。休日は Slack は見ないという主義の人もいるので、電話番号一覧を社内に用意するのが最低ラインかなと思います。
        • が、それも面倒なので入手できる権限は予め入手しておく事も大事です。

避けるべき日常的な行動

  • WiFi が使えない飛行機、電波が繋がらなくなる可能性の高いフェリーでの移動
    • その時間帯に他の人がアラートを受け取れるのであれば問題はありませんが、ひとりの場合は断念する他ないです。
  • なんかよくわからんけど自ら監禁・軟禁されに行くような行動
  • 高速道路などの一時停止が行いづらい状況で、単独で車両の走行するなどの行為
    • まあ最悪スマホで通知さえ受け取れたらなんとでも出来る気はしますが、そわそわと運転するのはサービス的にも運転者的にも危険です。代理ドライバーを乗せておくなりして、安心して運転できる環境を作りましょう
  • スマートフォンおよびラップトップの破壊
    • 絶対にやめましょう
  • 無思慮な海外旅行
    • 例えば中国の場合、Google 等、金盾の影響で色々なサービスが遮断されている環境では、想定外のサービスが利用不可に見舞われる可能性があります。香港 SIM などを購入したり、事前に VPN を用意しておくなど、金盾外からインターネットにアクセスできる環境を用意する必要があります。
    • インターネット環境がろくに整備されていない地域に出向いた場合、かなりの確率で詰みが発生します。旅行先のインターネット環境については入念に調査を行い、本当にそこに向かっても問題がないのか、確認を行うべきです。

業務上推奨される行為

  • インフラ改善
    • コスト面も、セキュリティ面も、アーキテクチャ面も、今ある形が最適解とは限りません。改善していきましょう。
    • 「そういえば何気なく使ってるあの社内システムって、新しいバージョン出てないんだろうか?」と日頃から疑問を抱く事は良いことです。
  • 非常事態時のバックアップ構成およびリストア操作の把握
    • バックアップが確実に取られていることを確認するのは大事ですが、リストアのオペレーションを理解することもとても大事です。GitLabとかSpotifyがちょっと前にやらかしましたね。
    • 障害復旧リハーサルなどを行うことは大変有益です。他のエンジニアが知らなかったオペレーションを共有する事が出来る、というメリットもあります。
  • 「これ本当に維持する必要ありますか? 何に使ってたんですか?」って色々な人に訊く
    • 本当に大事です
    • なんか経緯もよくわからないし誰が使ってるのかもわからないけどとりあえず動かしておくか、みたいなものは得てして発生しがちで、ちゃんと「必要ですか?消していいですか?」と訊ねてお片付けをすると無駄なコストを払わずに済みます。
  • AWS や各 SaaS の請求書をじっくり読み込む
    • リザーブドインスタンスやスポットリクエストの利用状況の把握や、適宜の購入は重要です
    • 想定外のコスト(不正利用や、過剰使用など)が発生している事を把握できる可能性があります。余裕がある限りは請求書一式は目を通すべきです
  • 問題を抱え込まずに適切にエスカレーションする
    • インフラをひとりでやっていると、様々な問題を見つけてしまいます。その時は抱え込まずに、Issueを立てて周知するなり、オフィスで大きな声を出したりする必要があります。
      • 今は見逃してやる……系も、中くらいの声で「見逃す……!」と発言しておくと「ああなんかあったな」という意識を根付かせることが出来るので、有用です
    • 本当にマズいやつを見つけた時に、エスカレーション先がわからなかった場合は深刻そうな顔してえらい人に「あの……すみません……ご相談なんですが……」言うと良いです。

業務上行ってはならない行為

  • 個人情報や企業情報や監査ログなどのデータへの不必要なアクセス
    • 見れば見るだけ罪が重くなると思ってください。
    • 権限が付与されがちな立場なのでやむを得ない面も多々ありはしますが、それでもちゃんと権限に応じて見れる範囲を絞っていくべきです。
  • サービス提供に関する破壊的な行為
    • 大いなる権限には大いなる責任が伴います。良識を持って仕事をしましょう。
  • よくわからないけどエイヤで変更かけようぜ的な行為
    • 100%大丈夫という保証がない限りはきっちりと問題がないということのエビデンスを取ってから変更を行いましょう。
    • 気軽に押したボタンでサービスダウン、ではあまりにもやりきれません。
    • でも時には無断深夜デプロイが必要だったりする事もあるので、「絶対にこれでいける」という自信が170%くらいあるなら(諸説ありますが少なくとも私は)やっていいと思います。

マインド

  • ユーザが問題なくサービスを閲覧できる状況を維持する事に注力しましょう。
    • ユーザが何気なしにありがたがってくれるのが最善です。
  • エンジニアの人が LGTM を出しても信用してはいけません。ねっとりと「本当か?」って言いましょう。
    • 問題があれば速やかに revert して問題のない状態に戻しましょう。不運な問題を解決するのが先決です。「アイツがこれで行けるって言ったんだ!」などの糾弾は無用な諍いを生むので、とにかく復旧に専念しましょう。問題を起こした当人も何かしらの反省は自ずと抱くはずなので、さらなる修正に期待しましょう
  • SLO を計測することは大切です。
    • ですが、100%正確な SLO を速やかに用意するのは一般に考えられているほど簡単ではありません。
    • 不正確でもいいので、暫定的な SLO を用意するべきです(たとえば計画メンテ時のダウンタイムが数値に影響を与えている状態でも構いません)。これは外部に公開する必要はありません。内部的に用意して、それから少しずつ正確な SLO を出せるように行動していくようにしましょう。Datadog にも PagerDuty にもメンテナンスウィンドウという機能があるので、正確な SLO 計測に役立つはずです。やがて、外部にも公開可能な SLO が出来上がってくるはずです。

障害対応フロー

なにかしらの問題で障害アラートが鳴ったとします。
以下の順序で対応していきましょう。

  1. アラートを元に障害の影響範囲を把握する(大体は、まあサービス利用に問題ないわ、とか、レアケースだし修正だけしてアナウンスはしないわ、みたいな対応になる)。
  2. (アクセス不能などのように)影響範囲が広そうであれば、Slack のパブリックなチャンネル(多くの人が目を通していそうなチャンネルを選ぶべきです)等で、対外的に「障害発生中で対応中です」というアナウンスをしてもらうように依頼する。たとえば、下書きに保存すれば編集中のデータがロストせずに済む、というような状況であれば、回避策も一緒にユーザーにアナウンスするといいでしょう。それと同時に、エンジニア全員に障害情報の詳細を共有して、関連してそうな操作を行った人がいないかを確認すると良いでしょう。
  3. 障害が発生した原因について調査する。インフラエンジニア以外の人間も巻き込めるとベストです。
  4. 必要に応じて問題のコミットを Revert するなり、このアラートはどうしても起きちゃうやつだわと判断して諦めるなり、根深い部分に問題が生じてるのでオペでなんとかするなり、対応方針を固めましょう。
  5. 方針に応じた対応をする。問題のある一部のユーザよりも、大多数のユーザが問題なくサービスを利用することが出来る事を最優先すると良いでしょう。(モノによるが)一部のデータの欠損等は、全ユーザに比べたら影響が小さいので、最悪諦めるという判断をしても良いでしょう。
  6. 全ユーザに向けて復旧アナウンスをする
  7. 色々と諦めて欠損したものを、アクセスログや RDS の PITR やアクセスログ等から復旧出来ないか考慮し、復旧できそうなものはユーザに対して謝罪と復旧を行う旨を伝えて、復旧作業を行う。
  8. 個々のユーザに対して、データ復旧の告知を行う。

基本的にはこんな感じのフローが良いのかなと思います。
大切なのは、やれる限りはユーザが望んでいた状態を復旧させる為に尽力することです。

本当に大事だったこと

ひとりにインフラを負わせない

2019/01/01

2018年ふりかえり

2018/12/09

2018年遊んだSteamゲーム

2018年1月14日 Life is Feudal: MMO

中世ヨーロッパをベースにしたオープンワールドMMOがどのような結論を生み出すのか、我々は『EVE Online』『アーマード・コア5』を通じて理解していった。
一つの世界に人が大勢集まれば、そこには様々なコミュニティ、生産体制、経済、流通網、そして抗争が自然発生する事となる。そんな世界で一旗揚げようと、我々はたったの数名でこのゲームをプレイし、既に構築されている圧倒的な経済規模の国家群とその間の政治的抗争に度肝を抜かれ(具体的には、集落のような場所に近づくとフル武装の騎士が馬の上からデカい剣を振り回しながら牽制してきたり、実プレイヤーのみで構成された大蛮族地方で慈悲の欠片もなく虐殺されたりする)、一週間も経たない内に投げ出すことになった。
このゲーム内で何が起こっているのかを知りたければ、この日誌を参照すると良いだろう。本物の経済と政治と戦争の記録が記されている。

2018年1月20日 Mandagon

チベット仏教をベースにしたドットアートの無料の2Dアクションだが、どうにもそうした世界観に共感出来るだけの感受性はもはや私の中には残っていないようだった。

2018年1月8日 RIOT

2013年に発表されたこの暴動シミュレーションゲームへの期待度は、2014年ウクライナ騒乱を経て爆発的に増していた。全世界の人間がこのゲームを待望していたはずだ。だが、度重なる延期を経てめでたくアーリーアクセスが可能になった頃には、長期の開発によって高度に複雑化したシステムを理解するだけの熱意は残っておらず、簡単な暴動をいくつかシミュレートし、ふうん、そんなもんよね……という気持ちだけが燻るのであった。

2018年2月23日 Cypher

もしももう一度大学で何か一つの学問を修める事が出来るなら、僕はこのゲームの為に暗号学を履修するでしょう。

2018年2月3日 The Red Strings Club

人間の精神状態を自在に操作することが出来るようになった世界で、幸福というものは一体どのように定義されるのか、というテーマはもう100000回くらい見てきた気がしますが、それでもやはりハイクオリティなドットアートで表現されるサイバーパンクの世界で、ゲームという形式を通してそれを問われるという経験はやはり格別な味わいを生み出すものです。 サイバーパンクバーテンダーゲームというゲームジャンルは 『VA-11 Hall-A』 の為だけに用意されたものだと思っている人々は今すぐ思い直してください。それは『VA-11 Hall-A』と『The Red Strings Club』の為だけに(あるいはいずれ『N1RV Ann-A』の為にも!)存在しているのです。

2018年4月28日 Cliff Empire

地表が核兵器によって汚染され、万年雪の高山地帯の崖の上に都市を築いていくシミュレーションゲームだが、ジオラマ的なビジュアルに力を置きすぎたせいかシミュレーションゲームとして満足のゆく作品になりきれなかったのと、完全に『Frostpunk』と被ってしまったのが悔やまれる。

2018年4月28日 Frostpunk

オタクは極限状況下と極寒の世界とスチームパンクと都市シミュレーターが大好きなのはみなさんもご存知の通りで、貴重なゴールデンウィークをすべてこれに投じた記憶がある。 定石を理解しないとまともに都市機能を回していけないというシビアさもさることながらクライマックスに-100℃の大寒波が必ず訪れるというシステムはこの世界観ならではのもので、これまでの「犠牲は最小限に抑えて当たり前だし、上向きに発展して当然」というプレイ感覚を「犠牲は出て当然で、発展させるのは一人だけでも生き残らせる為」に塗り替えられるという体験はこのゲーム以外では味わえないものです。

2018年4月28日 Minit

1分で死ぬ主人公を操作して、という説明の時点でまあ絶対に面白いに決まっているじゃないですか。 余談ですが類似する作品としては『片道勇者』を思い出すんですけど、この話題を2018年に出すのは犯罪だとは思うので、これ以上は何も言いません。

2018年6月23日 Assassin’s Creed Syndicate

僕は老人なので『Assassin's Creed』シリーズはエツィオコレクションを超えることはないと思っているので、新作が出る度に1、2年のスパンを置いてから購入することにしているんですが(3000円くらいになるし)、大抵の場合はもはや新作に対する期待感が一切なくなってて、よっぽどシナリオが上手いかアクションそのものが楽しくない限りは長くは続かない、そして Syndicate でロープランチャー(これは本当に楽しいギミックだ!)よりも馬車での移動のほうが高速であることに気づいた時、このゲームに対するモチベーションはすべて失せてしまった。 ヴィクトリア朝時代のロンドンという人類史上最も美味しい時代を Syndicate が不完全燃焼のまま使い潰してしまったことを心から惜しんでいます。

2018年6月23日 Night in the Woods

大学を中退した猫が失意のうちに故郷のクソ終わった炭鉱街に帰還してエモくなる話で、設定の時点で最高の作品であることがわかっており、中途半端に英語で遊ぶよりも日本語化を待つべきだ、という判断でセールになっていたのを購入した所、めでたく playism が日本語化予定ということで、今一番期待している作品です。

2018年6月23日 The Vanishing of Ethan Carter

『Painkiller』や『BulletStorm』の開発メンバー(遊んでないけどめちゃくちゃ懐かしい気持ちになる)によって作られた、探偵モノ寄りのアドベンチャーゲームだと思ってたんですが突然宇宙空間にぶっ飛んだり、オカルティックな要素が増えてきたあたりで、これは期待していたようなシャーロック・ホームズめいたミステリー作品じゃないぞ、と気づいてきた辺りでプレイを中断してしまった。なんか突然宇宙空間に飛ぶタイプの(たぶんクトゥルフ神話あたりを引用した)アドベンチャーゲームに興味がある人には向いてるんじゃないでしょうか。

2018年6月25日 Doki Doki Literature Club

ヘイヘイ! モニカ

僕たちの愛は、初めから傾いていた

まるでピサの斜塔のように

でも塔はいまでも建っている

キミもここに立っている、僕も立っている

いやあ本当にいい曲ですね。
いやまあ本当はユリとなナツキのほうが好みなんですが、とにかくこの作品が日本国外で作成されたという事実に敬意を評します。諸々のファンメイドスピンオフとか全員マッチョになるやつとかもやりました。みなさんもやりましょう。
ただまあこれを『君と彼女と彼女の恋。』と同列に論じるのは間違いで、ここから先は面倒なオタクの意見になるしクソネタバレになるんですけど、ゲームの最終的な結末を選ぶことが出来る人物が異なっていて、DDLCは彼女が、ととの。はプレイヤーが操る事ができる。ととの。はプレイヤーがヒロインを選び、ヒロインごとに選んだヒロインに対するプレイヤーの態度を問い詰める。一方でDDLCは彼女が展開するゲームの世界をあるがままを受け止める。ヒロインがゲームシステムを操作してプレイヤーを陥れる、という展開そのものは共通していますが、決してその結果「誰が最終的に選択するか」という点においてはDDLCとととの。は異なっているし、DDLCの光っている点は「ヒロイン自らが後ろに下がる」点だと思ってます。これは日本国内のエロゲ事情を含めても、今まで出てこなかった展開だな、という点で本当に素晴らしい作品です。
ちなみに、DDLCと一番近くに位置している作品は、ゲームではないですが、 RAINBOW GIRLだと思ってます。

2018年6月27日 The Awesome Adventures of Captain Spirit

これは『Life is Stranger』という人類史上最も優れたゲームシリーズの最新作こと『Life is Strange 2』の前日譚的なスピンオフ作品で、『Life is Strange 2』に登場する異能を先取りして、これが現代アメリカのクソど田舎においてどのように作用するか、というのを実験的に、それも楽観的に描いた作品です。父親が朝ごはんのスクランブルエッグを作りながらビールを飲んでいたとしても、小学校の教師が家庭環境調査のために自宅訪問をしてきてたとしても、男児の頭の中には広大で自由な夢想の世界が広がっており、その夢想はあるいは現実に作用を及ぼすのではないか、という現実と想像が曖昧な年齢の男児が、現実世界においてある種の超能力を見出してしまう話。結末はなく、すべては『Life is Strange2』に委ねられています。

2018年6月6日 Vampyr

『Life is Strange』の開発メンバーによって作られたスチームパンクヴィクトリア朝時代を舞台に、吸血鬼でありながら医者である主人公の職業倫理を主題に据えた作品で、絶対に面白いんですが、これを英語でプレイしても4割くらいしか味わえ無さそうなので、日本語化されるまではお蔵入りです。

2018年7月14日 Hacknet

俺はスーパーハカーだよ

2018年7月7日 Shape of the World

こう、アーティスティックな勢いで登山するゲームで、ジャンルとしては壺おじさんとあんまり変わりないです。強いて言うなら演出がエモい。 でもやっぱりこういうゲームはやりきっちゃうんで、登山ゲーというのは人々の心を掴んで離さない、というのがわかりますね。

2018年8月22日 Hentai Girl

60円を払ってえっちなパズルをやっていたら3000個の実績を解除することが出来たので感謝です。

2018年9月1日 SCUM

なんというかサバイバル系オープンワールドみたいなの、システムを発展させていくと空腹度とか肥満度とか膀胱のアレとかそういうのを管理し始めてしまうみたいなのがあるけど、やっぱりPUBGくらいが一番丁度いいんだな、って気持ちになる。せめてオープンワールドではなく一本道ゲーでこのステータス管理をやれたらもうちょっと没頭できたんだろうな、と思う。Metroシリーズはすごいですね。

2018年9月22日 Ring of Elysium

無料でPUBGの後釜っぽく雪山でサバイヴ出来るゲームがあるという話で数プレイしたけど既にPUBGすら遊んでなかったんで、ああ、そうですね、という気持ちだけが残った。

2018年9月23日 Stardew Valley

マルチプレイが遂に実装されたということで、満を持してプレイしたところ、まずは村人を全員女性にするためのMODを入れて、オキニのNPCと結婚を狙う、という事をやっていたけれど、これをR-18ではないゲームでやっているという事実に耐えきれなくなり、次の日に何故か『ダンジョンタウン ~遺跡の森と夢魔の薬~』を購入して全クリしました。

2018年9月2日 Grand Theft Auto V

なんかクソ安かったしバーチャルおばあちゃんが遊んでたので買ったけど、iPhoneかなんかを爆破させるイベント終わったんでよっぽどのことが無い限りやらないと思います、完全に時期を逃した。

2018年10月13日 Helium Rain

宇宙船を操作して交易網を構築していくSF宇宙交易シミュレーター。色々出来るということは、プレイヤーを広大な荒野の真ん中に放置するという事と同義である。

2018年10月20日 Return of the Obra Dinn

2018年ベストゲームアワードを授与するならこれの他には無いだろう。 開幕20分で追体験出来るあまりに陰惨な終焉のシーンといい、その終焉に至るまでの経緯を死体の記憶を経由して一つずつ収集していく淡々としたゲームシステム、レトロなグラフィックデザイン、容赦の無い展開、各船員の出自に応じた行動、それらの上に複雑に張り巡らされた伏線、そしてそれらを一つずつ解き明かしていく快楽、最後にはすべて理解がいくようなストーリーテリング。それは私達が小規模のゲームに求めていたものである。

2018年10月6日 Project Highrise

久々にハードなシミュレーターをやりたい気持ちになって、ビル経営シミュレーターを購入した。ビジネスオフィスビル、高級マンション、ショッピングビル、ホテルなど、色々な選択肢を選択しながら無理やりなビル改装を繰り返して顧客が不満を抱かないようにビルを増築していくゲーム。これを真剣に繁栄させようと思うと途方も無い時間がかかると思う、僕は10階建てのホテルを構築して、併設の中流階級向けの飲食店が軒並み逃げ出したあたりで諦めた。

2018年10月7日 Life is Strange 2 - Episode 1

『Life is Strange』は徐々に洋ドラ的な展開でヘヴィな結末を各EPごとに叩き込んでくる形式でしたが、LiS2はEP1から倫理観に対する大きな問題を提示しており、もうこれは今後のEPを待つ他にないです、はやく全部リリースして欲しいとしか言いようがないです。 みなさん割と『Life is Strange』自体は盛り上がってるけど、スピンオフとか続編とかに対するアンテナが低くて僕はちょっと怒ってます。

2018年11月10日 Thief Simulator

人々はみな泥棒が好きだ。可能であれば、近所の金持ちそうな家庭に忍び込んで高級な電子機器やアートや家具などを盗みたいと毎日思っているだろうし、警官という制度がいかに億劫な存在なのか、身をもって理解していることだろう。しかしこのゲームの中では君は自由だ、罰則を恐れることなく自由に窃盗や強盗を行うことが出来る。見返りは? 新たな窃盗スキルだ。

2018年12月1日 Montaro : RE

Twitterで2018年最も購入すべきゲームだという意見を見かけて購入して、なるほどね、という気持ちを抱き、そしてプレイ時間43分という記録が刻まれた

2018年12月8日 Celeste

孤独感やパニック障害をテーマにしたモチーフはまあそうですねという感じですが、それらが寛解していく時の演出がステージのギミックと連動してるのは確かに唸らされるものがある。 みなさんが壺おじさんで盛り上がっている間に本物の登山ゲームが登場したというだけで僕は嬉しいです。ちなみに1785回死にました。

2018年12月9日 11-11 Memories Retold

『Valiant Hearts The Great War』を求めてこのゲームをプレイするのは間違いだ。それほどお伽噺に満ちてもないし、泥臭い仕事ばかりが待っている。

2018年12月22日 Assassin’s Creed Origins

Origins というサブタイトルからは Assassin's Creed シリーズを新たに再構築するという強い意気込みを感じる。その取り組みが成功したかどうかはわからないが、新たな門出を祝福しないわけにはいかないだろう。

2018年12月22日 Kingdom Come: Deliverance

中世ヨーロッパでガチンコオープンワールドFPSを作るという偉大な目論見は、多くのバグと共に無事にその目的を達成することが出来たと言えるだろう。 時折信じられないようなクエストが発生することもある(衛兵と一緒に20分かけて街を歩くだけとか)が、中核となるシナリオは心躍る復讐劇だし、異様な執念を感じさせる装備アイテムの数々や乗馬システムはやはり見事である。Kickstarter開始からずいぶん時間が経った気がするが、Warhorse Studioはオープンワールド黄金時代の終幕に相応しい作品を残してくれたのではないでしょうか。

2018/08/16

レヅブックスログ

2018/04/02

IoTやめた

アー、今はDucaのアイの庭を聴いています。みなさんも聴きましょう。

仕事やめた

IoTというのがあります。ご存知ですね。アレです。

IoTというのをやるのをやめたので、その話をします。

しないつもりでしたが、僕よりも数ヶ月早く辞めた人が退職エントリを書いていて、これはどう見ても続いていく流れだったので、やります。社名は出しません。

会社自体は決して悪い会社ではありませんでした。

福利厚生は充実していたし、(主に総務部の)社員の方々はとても活き活きと仕事をしていて、毎日ほぼ定時に帰宅している、そういう会社でした。各現場はまあ別ですが、これは会社の責任では全くありません。

IoTやめた

IoT、アツいですよね、みなさんIT Proとか読んで大興奮してるでしょう、IoT業界はマジでフロア温まってます。

京都というか関西圏は大手製造業がメチャ多くて、既に売れるモノは持ってて、でも上司から新しいアイデアで一発当てろ的な圧によって、モノにどう付加価値を与えて新製品を送り出そうかみなで頭を捻っております、恐らく。

そうした際にIT Proを読むとどうなるか、考えるまでもないですね、攻めのIT、IoTでビッグデータでエーアイでビジネス加速です、心が踊りますね、勝手に踊ってろ。

そんなノリの文脈の需要を手広くキャッチしてガチで全部実装する仕事をしてました。で、辞めました、よろしゅうな。

僕は京都のことを本当に愛していて、福岡のヤンキー文化から逃げ出すように京都で大学生をやって、はじめて街を愛するという感覚を理解して、この街で日々を過ごしていきたいと思って京都で就職をしたのですが、マジで今では四条烏丸のビル群を見るだけで気分が悪くなるくらいには京都が嫌いになりました、マジで許せねえ。

時系列

僕はバリクソ文系の人間で、パソンコが好きという極めて軽薄なノリでSIに入りました、この辺の判断の是非については一旦置いといて下さい、頼む。

その会社には内定者アルバイトという(比較的新しい)文化が社内の一部の組織にあって、これをやってました、クソ粘着質なデバッグ作業をやってこれ報告したら現場の人間死ぬんちゃうかな……って心配するみたいなことをやってました。

その後アッ、ハイという感じの新入社員研修を経て無事に滋賀県草津市にて就業することとなりました。

この段階でエッ、内定者アルバイトをやっていた組織に配属じゃないの、みたいな感覚はありましたがまあある程度の規模の企業となるとそこまで都合の良い事は起こらないわな、という納得を行っておりました。

滋賀県の感想はこの記事が詳しいです。本当に最悪だった。

しかしまあ滋賀での仕事というのはとても良く管理の行き届いた環境での仕事で、というのも錆びついた現場の人間では誰も触れられない技術をリベースするという事をやっていて、別に世界全体で見ればまあ55点くらいの仕事なんですけど、この世の現場というのはとにかく壮絶で、その壮絶な環境からするとウオーみたいな感じだったぽくて、かなり裁量のある状態で色々やり、まあ壮絶な感じのアレもそこそこやったんですが、まあ事故る事なく安定稼働していたので良かったですねという感想です。

あの会社の中であれだけやりやすい職場というのは他に無かったように思います。常駐先の社食も安くて美味かったし。

赤紙騒動などは過去の記事に書いた気がするので置いときましょう。

なんやかんやの引き抜き騒動に巻き込まれて、これビジネス的に破綻してませんか、なんなら僕がこれ使って不当に利益上げますけどいいですが、みたいなサービスの開発に従事して精神を破壊するなどして、最終的に内定者アルバイトを行っていた部署に戻ってくることが出来ました。やったね。君はまだこの後の悪夢を知らないからそんな笑みを浮かべられるんだ。

これまでの泥臭く錆びついた枯れ技術を駆使する現場とは異なり、イマドキなギジュツでイイカンジにサービスをヤッテイク的な組織で、ワカモノだった僕はそれに心を踊らせていたのですが、まあ現実はそうじゃない、クソ錆びついた会社の錆びついたなりに利益を上げている企業で無理やりベンチャーっぽいマインドでビジネスをやるという、まあ安定感はあるのだけれど普通にどこかで衝突して事故るだろみたいな危険な立ち位置に立たされました。まあ、それは別にどうでもいい。

その組織というのが、運用・ヘルプデスク的な業務からの逸脱という観点から、研究開発という立ち位置でIoTを中心にやっていく感じで、当初は自社サービスを展開するなどしてイイカンジだったんですが自社サービス自体がそもそも収益化を度外視してIoTというプラットフォームを盛り上げていく為のサービスになっていて、それは自体は悪いことではないのだけれど、当然収益が一切発生しないのでウチのサービス使いませんかみたいなノリで営業を拡大していく、という流れになっていっていた、その段階で僕がアサインされたという感じです、つまり僕自身は研究開発そのものには一切関わってなかったという事になります。

まあ別に僕自身としては確かに現場でウオーってやるの自体は大変だけど嫌いではないし、組織の流れが研究開発という目的から逸れていったという事自体はあまり気にしていませんでした。

研究開発という名目で最低限だけしか動かなくて実運用絶対無理みたいなゴミがじゃんじゃん生まれてた(S3にデータを上げる部分の例外処理が存在してなくて一度でもアップロードに失敗したらそのままプロセスが死ぬ!!!!!)、という現実的な課題が存在することや、どうせ研究開発という枠組みでなら泥臭い実務に関わらずにそれっぽく実働部隊に対してマウンティングしながらちゃんと仕事してます的な態度を取れるみたいな魂胆があるんだろ、それもお前個人の精神性の根っこの部分によ、みたいな事はしばしば考えていましたが、まあそれもどうでもいいです。

そんな感じで、退職を決意する事になった組織に所属した次第であります。

やっていた

そうしてIoTというものをやっておりました。

部屋の室温度をモニタリングするとかそういうなまっちょろい奴じゃなくて、絶対にバグってはいけないクソデカいマシンの状態や稼働状況とかをガーーーーってAWSまでぶち上げて、いい感じに可視化するみたいなことをやってました。

IoTにおいて最も肝要なのはどこを中継地点にしてクラウド上のDBにデータをぶち込むかみたいなので、これはモノの性質次第で、例えばクソ雑魚デバイスだとブチ上げる用のゲートウェイ的なデバイスを用意する必要があるし、モノ自体にSIMを載せられていい感じのフォーマットでアップロード出来るリソースがあるならそれに全部任せたいし、結局モノの都合によってクラウド側のアーキテクチャをそれぞれ用意していい感じにデータが流れるように調整する必要があるわけです。

一発で1万件のデータを既存のクソ雑魚端末でいい感じに捌く、みたいな案件が来ると発狂します。要は、モノ側が一切その他のリソースを考慮せずに実現したい結果だけ伝えてくるパターンがめちゃくちゃ多くて、多少の不都合はクラウド側で頑張って処理してよwみたいな案件が事実として多くて、こちらとしても基本的にはモノ側で都合のいいデータを吐いてもらえるように打診するんですけど、リソースの問題や既存実装の問題で断られるなんてザラだし、納入済みのデバイスとの整合性なんかが絡んでくるともう地獄でしか無い。

まあそのへんのモノ側の都合を考慮しつつ色々とやっていて、開発担当の一員だったわけですが、開発として業務フローの最適化みたいなことをやっていくんですけど、まあ事実として存在しないAPIを使う前提の業務設計がされていたりとか、業務フローをシステム的に作ったと思ったらその作業員の作業管理とか在庫管理とか出荷準備とか全部やることになって、実装しないといけない案件がありながらも物理的なモノの管理を人力でやっていくなどして、僕の脳の作業領域が破滅していって、それでもなんとかやっていってました。

そんなシチュエーションで、組織の立ち上げ人が某社にヘッドハンティングされて退職するというハプニングがありつつ、技術リーダー的な立場の人も他社にヘッドハントされて辞めていく、という事態がありました。

僕自身は組織立ち上げ人に、お前が欲しいと言われた事が一番の労働の原動力だったので、彼が辞めたという事実は僕がこれ以上無理矢理にでも踏ん張っている必要性が消失したという事態に直結するわけです、もちろんだからといって速やかに退職を決意するということはなかったけど、それでも理不尽を耐え続ける理由が消失した、という感覚は間違いなくあり、アッ、フーン、そういう感じね……ってなりました。

ただまあこれはで人事のアレコレあって、実務そのものに直接的な関係はありません。

人事というのはいつだって色々ある、そういうものです。

アイ・オ・ーテー

IoTで一番厳しい瞬間って何だと思いますか、それはデータ欠損が絶対に許されない現場と、データの順序整合性を絶対に遵守しないといけない現場です。

これらを実現しようと思うと途端に実装がハードになるし、実装がハードということは安定稼働への過渡期の運用フェーズが限界までハードになり、調査部隊も地獄のようにハードになります。そしておれはこれを一人で、と言うのは嘘で、まあ2人とか2.5人くらいで全部やっていた。

これはコツなんですが、データそのものの発生のタイムスタンプがあるのであれば全てをそれに合わせるべきだし、本来Aが届くはずなのにBが連続して届いてしまった場合、みたいなのは大抵モノ側に何か問題があって、それを後手後手で帳尻を合わせ始めるとそれは死にます。ですが高度に複雑化した現実という問題があって、それをやむを得ず選択せざるを得ない瞬間というのも勿論あって、こうなると全力で歯を食いしばる以外の選択肢が消えます。

そんな場面が何故起こりうるのか? それはモノ側の細かい特性を十全に把握しないまま雰囲気で設計を開始してしまったという業務フローそのものに問題があります。ただ、それはそうなんですが、一方で設計開発のアウトソーシングで飯を食っていた以上、そんなモノ特有の性質まで想定しきれるわけがない、というちょっぴり甘えた矛盾が発生するわけです。これをアジャイルな感じでやるとどうなりますか?  死にます。

といった感じのアイ・オー・テー独自のつらさというのはありますが、それはまあ頑張ればなんとかなる世界で、そういう特性を持った領域の仕事だよなー、という感じで納得していたので、それ自体もつらくはあったがまあ改善の余地はあるしそういうものだと思っていた。

一番の問題というのがあって、それは何かと言うと、アイ・オー・テーという領域の業務を外注としてメインに受け持っているという点です。

上記の破綻している部分はモノの性質を理解して、モノ側とアイ側でうまくやりとりが出来るようにきっちり調整してやればそれでいいだけの話だし、モノの特性を隅々まで知っていないまま仕事を進めてしまった側に問題があった、これに尽きます。

現場のエンジニアもみな「いや、この機械がどういう風に動くみたいなのは一切見たこと無いね」と言っていて(俺も見たことがない)、いわゆるドメイン知識的なものに対する理解をしないまま開発を進めていたのは致命的な問題だったように思えます。

これはつまりモノを作っている側の人間がリテラシーを蓄え出すと外注に出すメリットが一切なくなるという話で、結局のところ我々がちょっとばかりクラウド側のアーキテクチャやウェッブシステムに詳しいからその仕事を取れていただけで、そのあたりの一般的な知識が次第に常識化していくと外注でアイ・オー・テーを委託する必要性は一切無くなっていくわけです、それなのに我々はやれソラコムだのエーダブリューエスだのでボタンをポチポチ押せるというだけでデカい顔して尊大に仕事をしている、そういう危機感の無さや、単純にビジネス的な危うさの中で当時の各クライアントのリテラシーの無さみたいなものに胡座をかいて仕事をやって、自社内で先端技術部門としてデカい顔をしているという立場に耐えきれなかった、これはもう僕の自意識の問題でしかないが、僕の自意識が耐えきれなかったのでそれはシンプルに無理だし、なので、やめました。

勿論他にも金銭絡みの奴隷事情などがあり、お前たちは研究開発部門で投資対象なのだから会社上の人件費はゼロ円だ、だから実働しまくって限界まで稼いで来い、その金で来年からは給与を上げる予定だ、と直々に宣告されてアッ、ハイ……となった事件とか、まあ色々あるんですが、そういうのが連鎖的に積み上がっていってる中で、僕が一番尊敬していたエンジニアの先輩が退職したというのもあってもうどうでもいいなこれとなったので退職しました。

労働における人間の原動力というのは、誰かに求められるということと、羨望出来る人間が近くにいるということ、この二点に尽きます。

あと僕は単純にIoTに興味が一切なかった、プライベートな事はプライベートにしておきたいし、ビジネスありきのIoTなんて単にディストピア社会への歩みでしかないし、なんでもジャンジャンクラウドに上げてデータ分析!みたいなのもまあ勝手にやっててくださいよ僕はやりませんがみたいなスタンスだったので、大量のデータを捌くという事以外へのモチベーションが湧かなかったというのがある。

アイ・オー・テーのセキュリティの話

セキュリティ方面マジでヤバくて、それもとりわけ外注で開発してると「いいのかな? まあいいか納期もそろそろだし」みたいなノリで運用現場のすべてをガン無視した色々とヤバいパブリックなS3バケットがポコポコ立っていく世界観で、このへんは本当に暗黒なのでこれ以上は話しませんがまあ企業人としてこれ以上関わってたら絶対に面倒事に巻き込まれるな、というのがあって、一刻も早く身を引きたいという気持ちがありました。

クラウドサービスを運用する上でのセキュリティポリシーというのは、やはり各企業によってマチマチという感じで、厳しい企業はもちろん厳格だし、あまりノウハウが無い企業はよくわからないのでおまかせ丸投げ、というのがあって、実装上の都合で普通にビジネス的に致命的な運用がなされるみたいな事例は数を数え切れません。

怖いですね。

いま

じゃあお前今何してんのという話なんですがまあ色々とやってて、うまくいけばどっかで明るみに出るんじゃないでしょうか。もしその時がきたらよろしくお願いします。

さいごに

これは当時の僕の未投稿記事の様子です。


そういえば

これは特定の組織・団体・企業・個人に対する批判ではなく、単に筆者個人の心持ちの移り変わりを描いたある種の幻想文学的な散文であり、あらゆる現実的な事象とは一切関係のない抽象的かつ夢想的な事柄に対する感想です。