SRE NEXT 2020参加レポート

SRE NEXT 2020に参加したのでブログレポートを。

https://qiita.com/Hassan/items/6f7fb1c206f77716ee2a

全体の感想

SRE NEXTに参加するにあたって、アプリエンジニアとの対比として、運用の非機能要件を担うと決めたエンジニアとは、どのような心持ちなのかを聞きに来るつもりで参加しました。 様々な「実践したこと」が話されていて、凄く刺激になった。

話したこと

所属企業では、スポンサーを担っており、私はスポンサーセッションで以下の発表をしました。 AIをプロダクト化する組織で、実プロダクトにするために考えてやってきたことを駆け足で話させてもらいました。

タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて https://www.slideshare.net/dena_tech/xaikubernetesai-sre-next-2020

聴講して印象に残っているもの

以下の感想は所属企業の考えではなく、私個人の感想です。

分散アプリケーションの信頼性観測技術に関する研究

https://speakerdeck.com/yuukit/a-study-of-sre?slide=17

SREは信頼性を制御することを前提に置いた一つのアプローチである

今まで非機能要件といわれてきたものに、工学として当てはめようとするアプローチがSREなんだという気づきを得た。

パフォーマンスを最大化するためのSREオンボーディング事例

https://speakerdeck.com/tkuchiki/sre-next-2020

SREとしてオンコールを受けられるようにするまで、組織でやっていることの事例。 この話は"新人に対して"であるが、私の課題にオンコールを受けられるエンジニアをどうやって増やして今の組織で回していくか、というのがあって、そこにつながるアプローチに思えて、参考になった。

Paractices for Making Alerts Actionable

https://speakerdeck.com/egmc/practices-for-making-alerts-actionable

アラートの計測を行い、定期的な振り返りで改善していった話。

スクラムを1年回して SREと開発組織がどう変わったのか

https://speakerdeck.com/licht110/sukuramuwo1nian-hui-site-sretokai-fa-zu-zhi-gadoubian-watutafalseka

開発とは異なるSREで、スクラムをまわして、タスクコントロールしていった事例。 優先度を数値にして、それを基準にプロダクトと握るのは凄く正しく、SREでもそれができるとの話が印象的だった。

ZOZO MLOps のチームリーディングとSRE (Engineering)

https://docs.google.com/presentation/d/1zEkR9Dm_epg7fxOCFE-asBsUlHDozwObsBEGAILiqic/

心理的安全性を下げる組織の作りを、ただ心理的安全性というだけではなく実践して文化にしていくのに感心した。 印象に残ったことは多いですが、振り返りたいと思ったのは以下のこと。

  • KPTその日にアクション
  • 1on1 でAction Itemの確認、ちゃんとやる
  • 文化として「技術力で殴る」
  • リーダーをボトルネックにしない

実践Observability

https://www.slideshare.net/toshihumianan/observability-224174523

本当に実践した内容を話してくれて、とても参考になる。 Release後もTestは続くという考え方とても良いと思う。 Istio入れて、どこでBlue/Greenするかとか、クラスター外もトレースできているの良いなと思う。

Webサービスを1日10回デプロイするための取り組み

https://speakerdeck.com/fujiwara3/sre-next-2020

だれでも安全に、即座にデプロイできる仕組みは開発体験に重要

これの実践するために何をしていったかというお話。

2019年をエンジョイしたソフトウェア6つ

2020年を迎え、2019年を振り返るために、2019年から特にお世話になったソフトウェアをまとめてみます。 ただし人様の役には立たないと思います。

1. VSCode Remote Development

リモートLinuxPythonインタプリタとか拡張機能を動かしながら、VSCodeのフロントエンドはmacOSWindowsで使えるようになる機能 https://code.visualstudio.com/docs/remote/remote-overview

今年開発環境が凄く快適だったのは、VSCode Remote Developmentのおかげが大きい。これにより、macOSWindowsのデスクトップを使いながら、全てLinuxのソフトウェアで開発ができるようになった。

会社PCは、macOSWindowsのどちらかという制限があったのを、Parallels DesktopUbuntu Serverを入れて、VSCodeのRemote SSH機能を使って、運用中。Docker for Macの辛さとか、開発のためだけにmacOSでライブラリのコンパイルしなきゃいけないのとか、そういうものから開放されて、Linuxの世界に引き込もれるようになったのは、ほんと大きい。Linuxは人権。まじおすすめ。

技術書典7でRemote Developmentの本を出しました。Boothで販売中→ https://74th.booth.pm/items/1575583

f:id:j74th:20200126142302p:plain

2. xonsh

Pythonでカスタマイズできるシェル。 https://xon.sh/

BashZshにしても、カスタマイズをするにはシェルスクリプトの世界に降りていかなければならない。それが、Pythonで書けると凄くカスタマイズが捗ります。

・プロンプトにKubernetesクラスタ、ネームスペースを表示する ・プロンプトにGitの情報をたくさん出す。現在のブランチ名にmasterの時は🌟マークを追加したり、cleanだとフクロウ🦉が褒めてくれるが、stashがあるとサボテン🌵🌵🌵が立つ。

こちらも技術書典6で本にしました。Boothで販売中→ https://74th.booth.pm/items/1317300

f:id:j74th:20200126142328p:plain

3. Homebrew(Linux)

Linuxでも使えるパッケージマネージャ

Linuxに環境を移してもすぐに開発が立ち上がったのは、HomebrewがLinuxでも使えたことが大きい。昔はLinuxbrewはmacOSのHomebrewとは別リポジトリだったが、今は同じHomebrewになり、基本的にmacOSのHomebrewで使えていたパッケージがそのままLinuxでもそのまま使えることになった。

4. Vivlio Style

CSS組版エンジン https://vivliostyle.org/ja/

Re:viewから移行し、技術書典7ではこれで2冊を作成。Re:viewは非常に完成度の高い本ができるけれど、Re:view以上の表現力が欲しくなったらTeXに降りていかなければならず、それは気軽ではなかった。CSS組版になった今では、Markdownで表現力が足りなくなったら、HTML+CSSでなんとかなるようになりました(ヘッダーに節見出しが載せられないなど、課題はあるけれど)。

5. Emby

自分専用の音楽ストリーミングサービスを立てることができる https://emby.media/index.html

手持ちのCDを全部スマホに入れることは不可能だけど、自宅サーバ上になら全部入れられて、好きな時に聴くことができる。 M3で同人CDを30枚くらい買ったのを聞けるようにして、これがなかなか便利でした。Google Play Musicでも良いのだけれど、いつまでサービス続くかわからないので。

6. QMK Firmware

自作キーボード用ファームウェア。独自のキーバインドを設計できる。

冬コミでLily58に一目惚れして、自作キーボードに入門。Linux Desktop用とmacOS用に設定を切り替えられるようにして使っています。

2019年の休日はほとんど本の執筆に奪われたので、2020年は溜まったアイディアをソフトウェアにしていきたい。

2019年からではないけれど2019年もお世話になったソフトウェア VSCode, Kubernetes, Python, Go, Fabric(Invoke), Ubuntu Server

KubeCon&CloudNativeCon North America参加レポート

f:id:j74th:20200126142642p:plain

サーバAPIのインフラをKubernetesで構築しているのもあり、KubeConに参加して来ました。 Kubernetesのカンファレンスで最も規模が大きいこともあり、様々なインプットが得られ、非常に楽しむことができました。 参加するまでCloud Nativeの意味を理解していなかったのですが、参加してみると、クラウドベンダーの提供するクラウドインフラを使いながらも、クラウドベンダーにミドルウェアを独占させないために、オープンソースでコミュニティベースのミドルウェアを健全に育てていこうという動きだとわかりました。 本稿では、実際に聴講したセッションと、その面白かったところを紹介します。

Building Reusable DevSecOps Pipelines on a Secure Kubernetes Platform - Steven Terrana, Booz Allen Hamilton & Michael Ducy, Sysdig https://schedhttps://sched.co/UaWr.co/UaWr CI/CDの世界にSecurityを入れるDevSecOpsを実現するために、SecureなPipelineをテンプレートとして提供し、PipelineはテンプレートとしてJenkins Tenplating Engneが良いよというのが前半。 後半は、コンテナが怪しい動作をしていないかBehaviorを監視するFalcoの話。SystemCallレベルで本当に期待したことだけを実施しているかを監視できる。Falcoで何ができるのかわかってよかった。

Building the Cloud Native Kernel: Kubernetes Release Engineering - Tim Pepper & Stephen Augustus, VMware https://sched.co/UaWx Cloud Nativeになって、KubernetesLinuxの立ち位置って似ている、Linuxにディストロがあったように、クラウドベンダーがKubernetesサービスを打ち出している。コミュニティベースのKubernetesディストロがあってもいいんじゃない、というKubernetesをめぐるクラウドベンダーとの対立を面白く話していた。

Mario’s Adventures in Tekton Land - Vincent Demeester, Red Hat & Andrea Frittoli, IBM https://sched.co/UabG Kubetenes上のCI、Tektonを使ってみた話。N社は無関係。

Are You About to Break Prod? Acceptance Testing with Ephemeral Environments - Erin Krengel, Pulumi & Sean Holung, Nordstrom https://sched.co/UaWE CIでUTを実行するだけじゃなくて、IntegrationTestができるレベルの環境を、Pulumiを使ってPRごとに環境を構築して使い捨てることができるようにした、その実現方法と、結果を紹介。本当にインフラを作って使って捨てるのは良さそうだった。

Don’t Catch Feelings, Catch Issues With Kuberhealthy - Joshulyne Park & Shilla Saebi, Comcast htps://sched.co/UaXs Podの異常を宣言的な記述でアラート化できるKubehealtyの紹介。前半のアプリ開発者とKubernetes運用者の対立の話も面白かった。

Cloud Native Architecture: Monoliths or Microservices? - Goutham Veeramachaneni & Edward Welch, Grafana Labs https://sched.co/UaX6O MonolithかMicroserviceか、いや、Monomicrolithだ! モジュールの共有とかをすると大変なので、シングルバイナリのMonolithでMicroserviceを構築しようという話。

How Container Networking Affects Database Performance - Tyler Duzan & Vadim Tkachenko, Percona https://sched.co/UaZ8 ネットワークでサチらない状況をつくって、それをネットワークモジュールによってどの程度差が付くのかを比較してみた話。なぜそうなるかまでは踏み込まれなかった。

★Debugging Live Applications the Kubernetes Way: From a Sidecar - Joe Elliott, Grafana Labs https://sched.co/UaXU Sidecarを用いて稼働中のアプリケーションを分析する話。このオプションつけてサイドカーに加えると、プロセス解析のツール動かせるよ!と、Kubernetes、コンテナのオプションを良く理解した方法で収穫があった。

★Use Your Favorite Developer Tools in Kubernetes With Telepresence https://sched.co/UaeA Telepresenceという、ローカルとPodをつなぐプロキシをたてて、ローカルで動かしつつ、クラスタで通信を流すことで、デバッグツールが今までローカルで使ってたものが使えるよと言う技術の紹介。これは試さないといけない。 https://www.telepresence.io/

Keynote: Seamless Customer Experience at Walmart Stores Powered by Kubernetes@Edge - Maneesh Vittolia, Principal Architect & Sriram Komma, Principal Product Owner, Walmart https://sched.co/UdJf. Wallmartで、PosをCloud Nativeにやるために、通信障害に備えて衛星通信つかったり、EdgeのKubernetesを使ったり、している実例。すごい。

Handling Risky Business: Cluster Upgrades - Puneet Pruthi, Lyft https://sched.co/UaYz クラスターのアップデートについて。ノードの、Cordon、Drain、Deleteする手順とか、振り替えれる。たぶんまだ開発中のK8stroverの公開が待たれる。

Kubernetizing Big Data and ML Workloads at Uber - Mayank Bansal & Min Cai, Uber https://sched.co/Uaad UberのビックデータのワークロードをKubernetes上でどう実行しているかの紹介。どんなミドルウェアをつかい、どんな種類のワークロードがあるか。すごいことはわかったが、すげぇとしか感想がない。

Bringing the Envoy Service Mesh to Mobile - Jose Nino & Michael Schore, Lyft https://sched.co/UaWW MobileアプリもIstioのデータプレーンであるEnvoyを繋げられるSDK、EnvoyMobileの紹介。これは強力そう!

Ready to Serve! Speeding-Up Startup Time of Istio-Powered Workloads - Michal Malka & Etai Lev-Ran, IBM https://sched.co/UacN Istio、SideCarを使うとスピンアップにオーバーヘッド余分にかかるのを、いかにハックしてオーバーヘッドを少なくしたか。

日本だとツールの利用者が講演するのを、ここではそのツールのメンテナが講演するため、より深い実装の話や深い理解の話が展開されて、良い講演が多かった。