shinobe179の日記

@shinobe179 の技術メモ・やらかし録

『Fearless Change』を読んで、エンジニア的なモチベーションで社内営業に取り組めそうって話

はじめに

『Fearless Change アジャイルに効く アイデアを組織に広めるための48のパターン』の読書メモです。

www.amazon.co.jp

営業のスキルシート

私はエンジニアリングを仕事にしていることを結構気に入っています。エンジニアリングをやる理由としては邪道な気もしますが、何かを生み出すことよりも、何かが「できるようになった」ことが明確に分かるからです。エンジニアリングのスキルは「PythonAPI書いてました、インフラはAWSでEC2とRDS使ってウェブアプリ作るのに困らない程度には分かる、RDBの設計やチューニングのコアなところはからっきしです」みたいに、できること・経験があることをある程度明確に説明できて好きです。SES業界にはスキルシートなんてものもあるわけで。好きですね。

一方で、私は営業活動が苦手です。特に社内営業というやつはクソ喰らえだと思っています。そんなものがあるから、SlackのDMはいっこうになくならないし、タバコミュニケーション / 飲みニケーション的なものがまかり通っているのだと思います。

何よりクソ喰らえなのは、「何ができて、何ができないのか分からない」ことです。人とのコミュニケーションや、コミュニケーションを通じて自身の要求を通すスキルって、それができた・できなかった事実だけが残って、自分の何がその結果を生み出したかって分からなくないですか?ていうか、相手次第だったりするじゃないですか。ある結果を自分のスキルが(あるいはスキルのなさが)生み出したのか分かりません。エンジニアのスキルも時代と共に陳腐化しますが、営業力ってそれ以前の話だなと。細分化されてなくて、ただただ「営業力」っていう内部パラメータが実績のみで増減する感じ。LinkedInとかWantedlyで営業職の方のスキル一覧、見てみてくださいよ。「BtoB営業」「プレゼン」「Microsoft Office」「盛り上げ力」「一発芸」……なんじゃそりゃと。営業の皆さん、自分の出した結果が何によってもたらされたのか説明できますか?それって自分のスキルですか?どうですか?

そもそも「私、昔営業職やってました」って話から入るべきだったんですけど、そういうのが嫌でこの仕事を志したんですよ。そしたら結局、自分がやりたいことをやろうと思ったら、社内営業が必要なんですよ。どこまで行っても仕事は結局「人」、ようやく諦めがついたのが数年前です。

48の営業技

コミュニケーションで金を稼ぐことはついぞ叶わなかった私ですが、せめて技術で何かを解決するためのサブウエポンとしてのコミュ力・営業力というやつを身に付けるぐらいはしてもいいだろうという気持ちです。

ここでようやく『Fearless Change』です。同著は、新しいアイデアを如何に組織に浸透させるか?についてのハウツー本です。翻訳書特有のバタ臭いケーススタディには若干胃もたれしますが、そこに気を取られてはいけません。大事なのは「48のパターン」です。この本のいいところは、社内営業の手法を48のパターンとして個別に紹介してくれているところです。要は、あの「営業力」というよく分からん内部パラメータが、これを読むことで(少なくとも「社内営業力」に関しては)48のスキルの習熟度で構成されていると捉えられるようになるわけです。これには営業生まれSES育ち、嘘っぱちスキルシートはだいたい友達の私もにっこり。戦闘(社内営業)中、これまで「たたかう」という漠然としたコマンドしかなかったのが、同著を読み終えた瞬間から「とくぎ」が48個増えている安心感ったらない。

f:id:befs_anne:20201011224828p:plain
『Fearless Change』を読むと、技が48個増える。なお、有利不利はもちろんあるし、熟練度は別途上げる必要あり。

好きな技

私が気に入っているのは「次のアクション(19)」「お試し期間(47)」です。同著を読む前からよく使ってたと思うので、それなりに熟練度が高いはずです。

できるようになりたいな、って技

同著内で「最小基本パック」と呼ばれている「エヴァンジェリスト(1)」「予備調査(4)」「ふりかえりの時間(5)」「小さな成功(2)」「ステップバイステップ(3)」はもちろん、「感謝を伝える(18)」「勢いの持続(41)」あたりもです。特に一度走り出した施策がダレちゃうみたいなことってよくあるんで、気をつけないといけません。あとは、「成功の匂い(40)」ですね。ようはちょっと前に言われていた「信頼貯金」ってやつです。タイプしているだけでも、怖気のする字面だ。

本当は嫌だけど、身につけないといけない技

ダントツで「みんなを巻き込む(33)」。というか、これをやるための他47の技だろって話なわけで。なんで(33)なんだ……?(1)か(48)だろって気もしますが。ちなみに(1)はエヴァンジェリスト(これは分かる)、(48)は「将軍の耳元でささやく」です。位置づけも含めて本当にクソな技だ。でも大事なことです。

あー……あとは「懐疑派代表(44)」「恐れは無用(46)」みたいな、反対派との付き合い方みたいなのも苦手ですね。根本的に「はい、お前らのせいでこの施策台無しでーすサヨウナラ!会社も辞めますこんな連中とはやってられないんで!!!」みたいな精神性なのでダメです。でもこれもスキルとして捉えられるようになって、だいぶ気が楽になりました。私は反対派に迎合するのではなく、スキルを駆使しているのだと。我ながらひねくれている。

おわりに

『Fearless Change』、社内営業がダルいなーと思ってる方にぜひ読んでみてほしいです。営業力とかいう漠然としたものを、スキルっぽく捉えられるようになりますよ。

【ISUCON】ISUCON10本選出場した話 #ISUCON

はじめに

ISUCON10本選に某チームインフラ担当として出場しまして、賞金はおろか特別賞ももらえないという地味な結果に終わりました。本選でのshinobe179の働きと課題をまとめます。

今回の働き

EnvoyのNginx化

sudo lsof -i:443HTTPSをEnvoyが捌いてることが判明した時は、チームに激震が走りました。Envoyのまま走ってしまおうかとも思ったんですが、ログフォーマットの変え方が分からなかったこと(kataribe-friendlyな形式にしたかった)、チームメンバーがNginxのgrpc_passの存在を教えてくれたこと、config.tomlを見るにそれほど難しいことをしているわけではないことから、思い切ってNginxの設定ファイルを書き起こしました。修正とベンチを繰り返したら数度目でパスして、なぜかスコアもちょっと上がってました。その後はコンテンツキャッシュや負荷分散など、堂々活躍してくれました。

Envoyはこの日まで名前を聞いたことしかなかったのですが、今は「なぁんだ、Nginxみたいなもんじゃん」という気持ちです。サービスメッシュについては帰りにググりました。

Netdata

はい出た十八番。予選突破のブログでは「MySQLの詳細ログも取れるようにしたい」と言っていて実際試しもしたんですが、ISUCONの競技用マシンのリソースだとめちゃくちゃ重くなって再起動不可避になることが練習で分かったため、予選同様にメモリ、CPU、ディスクI/O、ネットワークI/Oだけで臨みました。今回もこれを起点にアーキテクチャを提案したりできたので、Netdata様様といった感じです。

課題

ネットワーク

本選HTTP/2あるなーと思って『詳解HTTP/2』を読んでいたんですが、よさを引き出してやることができなかったと思います。今回その余地があったのかどうかも、あまりちゃんと判断できませんでした。SETTINGフレームの内容を見る限り、できることはないのかな、という程度で。

また、Wiresharkが出力したJSONをパースして、HTTPのリクエストとレスポンスを紐づけて見られるようにするツールも作ってあったのですが、これが使えませんでした。リクエストに対応するレスポンスのパケット番号情報(HTTP/1.1だと、Wiresharkが解析して付与してくれる)がなかったためです。Wiresharkが古いのか……?

私のエンジニアとしての能力をレーダーチャートにしたら、ネットワークは最も尖っている部分だと思いますが、パフォーマンスの改善に繋がるインサイトを得られていない実感があります。それを突き止める眼力を養う術が分からないことも含めて、歯がゆいです。

アプリケーション

今回もアプリケーション改善はメンバーに任せっきりでした。エンジニアとしてのレベルアップを目的のひとつとして参加していて、インフラはある程度貢献できるようになってきましたが、できることばかりやっていてはダメなので、ボトルネックになりそうな箇所を見つけて、対策を立案して、それをゴリゴリ実装できる実力を身に付けたいです。今回で言えば、唯一のアプリ担当がメインの改善で手一杯だったので、二人目のアプリ担当として、Web Pushの実装に手を付けられたらよかったです。

また、「インフラ面は貢献できるようになった」とは言ったものの、データベースのクエリ改善やKVSみたいな、アプリと直結しているプロダクトについては無知です。このあたりについても根拠を持って提案・実装できないと、「ISUCONで本選進んだチームのインフラ担当です」と胸を張って言えないというのもあります。

チーム紹介スライド

私が素案を考えたんですが、ウラを狙いすぎて完全にスベってました。これで「あそこのチームか」などと思われるのも正直つらい

さいごに

「最後のISUCON、やっていくぞ」と決起集会が開かれたのが今年の1月。9ヶ月にも及ぶ戦いが幕を閉じました。これまで参加した中で、心技体全てにおいて最高のチームだったと思っていますが、それでもこの結果。まだまだやれることがあります。

どうやら最後じゃないらしい、というのは若干拍子抜けではあったものの、紛うことなき福音でした。来年また会いましょう*1。ISUCON最高です。対戦ありがとうございました。

*1:また会いま賞はもらえていません

【ISUCON】ISUCON10予選突破した話と、インフラ担当としての振り返り

はじめに

先日開催されたISUCON10で、私が所属する某チームは予選を突破しました。:tada: なぜかチームメンバーの誰もブログを書かないので、決勝に備えて某チームのインフラ担当たる自分のことだけでも振り返っておこうと思います。

※注意: 自分のことしか書かないので、チームとしてどうやって点数を上げていった的な話は他のメンバーに任せます。他のメンバーも何も、諸般の事情で所属チーム非公開なんですけれども。

よかったこと

Netdata

これまでのISUCONでもNetdataは使ってきたんですが、オリジナルのダッシュボードを作っての参加ははじめてでした。これで方針が決まったりしてて、正直バチボコに"効いた"と思っています。公開したときほとんど反応なかったけど、これ使って決勝出たんでよろしければお手にとってみてください。決勝に向けて改善の予定もあります(後述)。

github.com

befs-anne.hatenablog.com

ミドルウェアさばき

アプリ2名インフラ1名(私)みたいな割り振りだったので、インフラのオペレーションは(事前事後の連絡・相談はするものの)私に一任されていました。今回毎週平日1回、予選が近くなってからは追加で土曜日まる1日練習に費やしていたし、事前によくあるオペのチートシートも作ってあったので、これまでのISUCONとは比べようもないくらいスピードと正確さが上がっていたと思います。ほとんどググらなかったです。

課題

解析力の向上

Netdataはよかったですが、今のところ代表的なコンピュータリソースの確認しかできていません。予選ではそれで十分だったわけですが、決勝はより踏み込んだ解析に対応するために、例えばMySQLのCache hit rateやBuffer poolなどの指標も可視化できるように改良するつもりです。

また、ベンチマーカーが吐くネットワークパケットの解析もあまりできませんでした。WireSharkだけだと結構無理があるので、別のツールを作っているところです。これも間に合えばGithubで公開しちゃおうかと思っています。

また、可視化だけしてもしょうがないので、それらを利用するための事前知識も養おうと思っています。こちらも(ネットワークはこれまで積み重ねてきたものである程度なんとかなりそうなので)MySQLが主になる予定です。この本、おすすめです。

さいごに

決勝進出は本当にメンバーの力によるところが大きいなと思っていますが、手前味噌ながら私もそれなりに貢献できたんじゃないかと思います。決勝参加者の皆さん、対戦よろしくお願いします。持てるリソース全ツッパして、悔いのない戦いをしたいです。最後のISUCONですからね。ん……?最後のISUCON……でしたよね……?

【インフラ】ISUCON用Netdataダッシュボードを自作したので公開する

はじめに

もうすぐISUCON10予選ですね。私もとあるチームの一員として出場します。今回の開催が最後ということでチーム一同気合が入っておりまして、特訓の日々です。

さて、競技中のモニタリングというのは言うまでもなく重要なポイントでありまして、今回ISUCON向けに3台のサーバーの主要指標(CPU、メモリ、ディスクI/O、ネットワークI/O)を1画面で見られるようなNetdata用ダッシュボードを準備しました。せっかくなので公開します。取り立ててよいところがあるわけではないですが、シンプルで見やすいと思うのでよかったら使ってみてください。

github.com

よく分かる解説

見方

上からメモリ使用率、プロセス毎のCPU使用割合、CPU使用率、ディスクI/O、(消えてますが)ネットワークI/Oです。このうち「プロセス毎のCPU使用割合(Apps CPU Time on servers)」については注意が必要なので後述しますね。

f:id:befs_anne:20200907004027p:plain

「Apps CPU Time on servers」について

上から2番目「Apps CPU Time on servers」は、どのプロセスがCPUを食ってるのかを調べるためのものです。しかし、Netdata(厳密にはapps.plugin)がアプリケーションとして認識できるのは、apps_goups.confに記述されているもののみです。有名どころは認識されるようになってますが、それ以外はグラフ上では「Other」という扱いになります。つまり、ISUCON用にこさえられたアプリは「Other」として扱われる わけです。私は割り切ってこのまま使っていきますが、気になる方は以下をご参照ください。※サーバー側とクライアント側両方のapps_groups.confをいじってもOtherのままだったので、んーまあいいかってなった

learn.netdata.cloud

github.com

接続方法

ローカルでNetdataを動かして、競技用サーバー(こっちでもNetdataが動いてます)へは安易にSSHポートフォワードで接続することを前提としています。競技用サーバーとは別にNetdataがインストールされたモニタリングサーバー的なものを用意して、isucon.htmlをパブリックに見られるようにしたほうがOX(Operator Experience(造語))が上がると思うんですが、ちょっとめんどくさいなと。あくまで弊チームでの利用を前提としたものという点のみ、すみませんがご承知おきを。

その他

これ、全く以て超絶技巧ではなく、Netdataをインストールすると付いてくる tv.html をちょいちょいっといじっただけのものです。 /usr/share/netdata/web/ の下にあると思いますんで、自分だけの最強のダッシュボードを作ってみてくれよな。

おわりに

公開は競技後でいいかーと思ってたんですが、よく考えたら今回最後じゃんということで、今のタイミングで公開することにしました。出し惜しみするほどのものでもないんですけど、Netdataのこういう使い方を知らなかった人にこの記事が届いたら嬉しいです。弊チームだけでなく、全ての参加者にとって悔いのないラストISUCONになるといいですね。言うて、きっとなんらかの形で続きはするんだろうなという気もする。

ここ最近のトピックまとめ(2020/07/01 - 07)

はじめに

2020年7月1日〜7日のもろもろをまとめました。1ヶ月はちょっと貯め過ぎて、1週間分見るのに30分以上かかったのでやむを得ず小分けに……。

トピック

技術

MVP

なるほどなと思った。

Elasticが検知ルールを無償提供

Elastic SIEMと合わせて使ってみたい。

SIEMって何?

何?

WebView

ふぁぼった時はなんの気なしにだったけど、最近色々あってスマホアプリのキャッチアップすることになったのでメモ。

イエラエ社

イエラエ社の動向にはめちゃくちゃ注目している。

低レイヤーガール

観よう。

gixy

Nginx設定不備の解析ツール

github.com

Ncom不正アクセス事件

あったな。これきっかけで『ゼロトラストネットワーク』を買った。社内ネットワーク運用に興味が出てきた。ドメインテイクオーバーもこの頃だったと思うけど、特にふぁぼってなかった。

foxsecurity.hatenablog.com

PenTesterAcademy

VHLが終わったらやるかも。終わるのか……?

www.pentesteracademy.com

CRYPTRECガイドライン

読まなきゃね。

www.cryptrec.go.jp

番外

ユニクロの白Tの話

よかった。

紙の話

電子書籍やマークダウンでのメモにシフトしようと頑張ってたけど、無視できないレベルのオーバーヘッドがある気がして。結局本は物理を買うことにした。

ここ最近のいいねまとめ(2020/06/30)

はじめに

ここ最近のいいねまとめました。

セキュリティ業界に就職したいなら

MVP。全ての某書読者は朝晩声に出して読むべき。

脅威インテリジェンスの教科書

以前読んだ『インテリジェンス駆動型インシデントレスポンス』とセットで、あらためてインプットしたい。

t.co

AWS 認定セキュリティ専門知識対策本

出るらしいです。たぶん買う。

www.amazon.co.jp

技術を知らないマネージャー

自分にあって相手にないものが自分の価値。資格だけエンジニアとかも叩かれがちだけど、分母だけが大きくなっていくのは相対的に自分の価値が高まることになるので、そういう観点からは(独善的だとは思うけど)割と好ましく思っています。

バグバウンティを狙う際には、絶対にルールを読みましょう。

はい。

Tsunami 試してみた

デモとは言え、出力される情報が結構心許ないか気がする。 CVE 番号とかが出てくれるとすごく嬉しいんだけど。これなら OpenVAS のほうがいいかなと思ったけど、 OpenVAS に比べて手軽に使えるのが魅力か。

NTT フレッツ光における通信速度などの現状について、背景や仕組みから正しく理解する 2020

既知の内容っぽかったけど解像度が段違いだった。本題から外れるけど、「引っ越しで光配線方式をツモりたい」は参考にしたいところ。

htn.to

ハニーポットまとめ

構築したい気持ちと、構築したところでちゃんとお世話しないだろうなという気持ちがある。

github.com

AWS 認定ソリューションアーキテクト プロフェッショナル 対策本

買った。

www.amazon.co.jp

tcpdump チートシート

ええやん。

https://cdn.comparitech.com/wp-content/uploads/2019/06/tcpdump-cheat-sheet.jpg

(おわり)

【VirtualBox】ゲスト OS を放置してたら DHCP で割り当てられる IP アドレスが消えていたときの対処

はじめに

ゲスト OS の Linux を放置しているといつの間にかインターネットに接続できなくなっていて、 ip aip r すると NAT インターフェイスがなくなってデフォゲがなくなっていることがあります。 sudo systemctl restart network-manager とか sudo ifconfig eth0 downup とかしても解決しないので、 ゲスト OS を再起動していました。

結論

ゲスト OS で sudo dhclient したら、無事 IP アドレス/デフォゲ共々復活しました。リース期限切れなのか、はたまた別の理由なのかは不明です。

参考(「linux ipconfig renew」でググったら見つけた): https://www.atchfactory.com/mvt/cat2/linux/ipconfig-renew-ubuntu.html