SREcon19 Asia/Pacific参加メモ: 1日目
2019/6/12~6/14にシンガポールで行われているSREcon19 Asia/Pacific(以下SREcon19AP)に参加しています。開催場所はシンガポール市内のSuntec Singapore International Convention & Exhibition Centreです。
SREconはSite Reliabilityの話題を中心に、DevOps、分散システム、OSやネットワークのデバッグ・チューニングなどがテーマで、特定の技術にフォーカスしていないぶん、幅広いトピックがあるカンファレンスです。
今回のSREcon19APは、セッション内での発表によると参加者は580人(125の企業、24カ国)だそうです。Google/Microsoft/Facebook/Baiduなどの業界を代表する大企業を中心に、ユーザー企業、ツールベンダーなどバラエティに富んだ参加者の印象です。日本からも十数人の参加者がいます。
開催期間は3日間で、3トラックで同時進行し80くらいのセッションがあります。その他はランチ・レセプション・スポンサーブースなどがあり、一般的な技術カンファレンスの構成です。
私は現在、株式会社サイバーエージェント・アドテクスタジオのエンジニアとして、インフラ部門のチームに所属していくつかのプロダクトのインフラ構築・管理・オペレーションなどを行う仕事をしています。”SRE”という肩書ではありませんが、実質的にSRE的な役回りをやっていることも多くあり、幅広い視野と一段高い視点を得たいと思ってこのカンファレンスに参加しました。
現地にいる間に感じたことを速報・メモ的に書き留めたいと思います。
全体の所感
SREというポジションは、特定の技術領域を指しているものではないので、技術カンファレンスとしてはガチガチの技術トピックというよりは、アプローチ・マインドセット・組織づくりなどに関する内容が多い印象です。 例えば、現在アプリケーション実行基盤としてデファクトスタンダードになっているKubernetesを正面から取り上げたセッションはありませんし、プログラミング言語をタイトルに冠したセッションもJavaが1つ、Pythonが1つという感じでバラバラです。 ただ、ふわっとしている内容なのかというとそういうわけではなく、それぞれの内容を具体的に応用可能な知見にするための方法論が話されている印象を受けました。 多数の言語・多数のミドルウェア、インフラ基盤に接している私の今の状況にはフィットしていると思いました。
各セッションの一行所感
参加したセッションを端的に紹介していきます。
A Tale of Two Postmortems: A Human Factors View
2つの「あるあるな」障害振り返り(Postportem)の事例を紹介しながら、どこに注目すべきか・ありがちな落とし穴・注意点などを考察。
Availability—Thinking beyond 9's
「99.99%」「99.9999%」などの9を並べたSLA/SLOの定義をあらためてまとめつつ、Failureの定義は何かとか、誰がその指標を使うのかといった視点から可用性(Availability)について考察。
Use Interview Skills of Accident Investigators to Learn More about Incidents
システム障害後の調査のため関係者にインタビューする際のノウハウをまとめたセッション。基本的には「彼ら個々の頭にあるストーリーを語ってもらうこと」を推す内容。
Leading without Managing: Becoming an SRE Technical Leader
SREとしてのキャリアを、いわゆるマネージャとしてではなく、テックリードのポジションで上を目指すための具体的な方法論・取り組むべきことについて紹介。LinkedInでそのポジションにあり、Kafkaについての著書もあるなど実績もある方の話でとても説得力・具体性があった。
Practical Instrumentation for Observability
「Avalilability」「Latency」「(Service/Product)Quality」の3つに焦点をあて、Observability(可観測性)の基本をあらためておさらい。基本的な内容かもしれないが実際はできてないことばかりで頭が痛い。
Let's Build a Distributed File System
ファイルシステムの基礎からはじまり分散ファイルシステムのアーキテクチャについて述べ、簡単なデモ用OSS「PyDFS」を例に分散ファイルシステムの具体的な実装を紹介。
Ensuring Site Reliability through Security Controls
Paypalのエンジニア2人が登壇。Malicious(悪意のある)トラフィックを遮断するためのL7レイヤーでの検知および対処方法について紹介。このあたりは既存のWAFソリューションを入れるとあとはお任せみたいにしてしまうこともありがちで、具体的に中身について考えられたのは良かった。
Why Does (My) Monitoring Suck?
モニタリングはなぜ難しいのか、そしてどう改善すべきかの具体的な方法論について紹介。結論としては「SLOを定めよ」「アラートを整理しろ」「メトリクスを取るための仕組みを導入せよ」。
Enhance Your Python Code beyond GIL
PythonのGIL(Global Interpreter Lock)について紹介し、それを前提にしつつpythonでの並行・並列処理をうまく実装するための選択肢(multithread/multiprocess/ASyncIOおよびその組み合わせ)について紹介。
1日目は以上です。 残り2日間も追って投稿します。
VPCエンドポイントについて整理
あとで復習用にメモっておく
VPCのネットワークにはコンポーネントがいくつもあって、混乱しやすいので用語の整理。
VPCエンドポイント
「インタフェースタイプ」「ゲートウェイタイプ」の2種類がある。
インタフェースタイプ
Private Linkとも呼ぶ
などが対象
参考:
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-endpoints.html
昔はVPCのCIDRブロックが重複していると相互接続できなかった。いまでもVPCピアリングはできないが、PrivateLinkを使えば(部分的に)接続可能になる。
ゲートウェイタイプ
- S3, DynamoDBのときに利用
- ルートテーブルの書き換えが必要
ポートとプロセス・ユーザーの関係をss コマンドで把握
ss -ltunp
でわかる。
オプションについて:
参考 【Linux】lsof、ss、nmapコマンドでポート確認! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
Evernote, Trello, Google Keep, Scrapbox, Pocketのデータを全部Notionにひとまとめにした
いろいろ使ってたツールを統合してNotionに移行した。
(↑アフィリエイトリンクです。私のアカウントの無料期間が増える)
- Evernote(メモ, PDFなど)は組み込み機能でそのままインポート。
- Trello(タスクリスト)は組み込み機能でそのままインポート。
- Google Keep(メモ) はGoogle TakeoutでHTMLでエクスポートしたものをインポート。
- Pocket(ウェブクリップ)はHTMLでエクスポートしたものをPerlでTSVに変換してそれをインポート。
perl -wnl -e '/\<a href="(.*?)" .*\>(.*)\<\/a\>/ and print "$2\t$1"' fromPocket.html > toNotion.tsv
こんな感じ。CSVインポート機能で、TSVファイルも問題なくインポートできる。
cat fromScrapbox.json | jq -r '.pages[] | [.title, (.lines | join("\n")) ] | @csv' > toNotion.csv
こんな感じでNotionできれいに読み込めるようなCSV形式に変換してやる。
全部一箇所に集約できた。
などの条件を全部満たしてる。デザインもシンプルで良い。
iDeCo, つみたてNISA
前から証券会社にアカウントは持っていたのだが、ちょっとだけ入金したまま放置になっていたので、GWを契機にテコ入れしてみようと思った。 iDeCoとかNISAとかなんとなく知ってはいたが、ちゃんと分かっていなかったので改めて調べてみた。
投資に時間使うつもりはない、ただ勉強はしたい、理解はしたい、やってなくてただただ機会損失しているは避けたいので、最小限の労力でやっておくことができるのであればやってみたいという感じ。
- 作者: 水瀬ケンイチ
- 出版社/メーカー: フォレスト出版
- 発売日: 2017/12/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
ネットの記事をいくつか読んだのと、上記の本を読んで、インデックスファンドを中心に国内・海外あわせてポートフォリオ作ってiDeCoを申し込んでみた。
現時点での自分の理解だと、
- iDeCoは所得控除があるので、直近でも節税という点で直接的なメリットがある。60歳以降に引き出せれば良いという点が了承できるのであれば、ただ貯金しておくのと比べてやらない理由がない。
- NISAとつみたてNISAはそれぞれ微妙に違うが、少額で長く、インデックス投資を中心にということであればつみたてNISAのほうがよさそう。ただこちらは所得控除がないので、投資利益が大きくならないとそこまでメリットがない。
- ジュニアNISAのほうも興味があるが、それほど投資資金があるわけではないので、いったん一年はiDeCoとつみたてNISAだけでやってみて、副業の税金の金額を見て来年また考える。
最近LinkedInとかに、不動産投資関係の人からコンタクトがちらほらある。投資対象または税金対策としてそれなりにポピュラーなのだろう。
これら以外にも少額ではあるがクラウドクレジットは前からやっている。これはクラウドファンディングに投資するような気持ちでほそぼそとやっている。海外でのビジネスに自然と興味と親近感がわくのでよい。
基本的に健康で居続けることができて、仕事がある限りは引退せず70歳だろうと80歳だろうと働き続けるつもりなので、そこまで老後資金なくてもいいと思っている。ただ、今より収入減るのは想像できるので、それを穴埋めできるくらいまで積み立てておいて、あとは自己投資に全振りしたい。
アフターデジタル オフラインのない時代に生き残る
- 作者: 藤井保文,尾原和啓
- 出版社/メーカー: 日経BP社
- 発売日: 2019/03/23
- メディア: 単行本
- この商品を含むブログを見る
下記の記事で見たからというのが直接のきっかけ。 他にも読んだという投稿をSNSで見かけたのもあったけど。
https://irnote.com/n/n71cb2926eab1
この本の内容を全部自分のものにできるには、いろいろ知識も経験が足りない気がしたが、ポイントになる部分はよくわかった。 それは、オフラインにオンラインを取り入れる、というような発想はすでに時代遅れで、OMO(Online Merge Offline)という言葉で表されるように、両者の区別が無く、UXがシームレスに設計されること前提で、しかもそれをその場限りのユーザー体験ではなく、継続的に顧客関係を作っていく中でデータを用いて高速かつ繰り返しユーザー体験を改善していくことがポイントであること。 そしてそれは単なる理想論ではなく、中国でアリババなどはすでに実践していること。
この本を読む前と読んだ後で認識が変わったのは、アリババやテンセント、平安保険などのビジネスマンは、中国国内の規制のなさをいいことに顧客のデータを吸い上げていいように吸い上げて好き勝手に利用しているというような感じではなく、顧客の満足を中心に考えていて、決して驕り高ぶってはおらず、国内外に広く学ぶ態度があり、まっとうなB2Cビジネスを営んでいるということだ。また、B2Bの視点でみても書いて売り手がWin-Winの精神でエコシステムが健全に成り立つように取り組んでいる。これは中国駐在の著者から見た視点であるということは割り引くにしても、すでにデジタル消費ビジネスの最先端という意味では日本は中国に学ぶ点のほうが多く、「中国の体制だからこれが可能なのだ」的な考えで思考停止していてはだめだと思った。 スターバックスが中国で業績を落としてしまったくだりで、中国は外資系企業を規制しているからうまくいかなくなったのではなく(そういう側面は無いとはいえないかもしれない。ただ本書では言及されていない)、顧客体験という点で中国国内のラッキンコーヒーなどに負けてしまっていた、というエピソードも興味深い。
去年の11月に中国・上海へ行ったのだが、この本の内容を踏まえてもう一度行ったら、また違った視点で中国のことを見れる気がした。
docker-machineのenvをセットしたりリセットしたり
ᐅ docker-machine env myvm1 export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.100:2376" export DOCKER_CERT_PATH="/Users/xxxxx/.docker/machine/machines/myvm1" export DOCKER_MACHINE_NAME="myvm1" # Run this command to configure your shell: # eval $(docker-machine env myvm1) ᐅ eval $(docker-machine env myvm1)
こんな感じでdocker-machineのENVを読み込んで使うことがあるが、戻したい場合。
ᐅ eval $(docker-machine env -u)
参考:
こちらに本家のドキュメントがあった。