Talisman

gitで機微情報をアップしてしまって大変、という話は数多ありますがそういった事故を防いでくれるツールがTalismanです。
githookとして動作し、認証情報などが含まれる場合に警告を表示して中断します。開発元はあのThoughtworksです。

https://thoughtworks.github.io/talisman/

2019/10/02にバージョン 1.0.0に到達しました。
自分は個別のローカルレポジトリごとに導入しています。

curl https://thoughtworks.github.io/talisman/install.sh > ~/install-talisman.sh
chmod +x ~/install-talisman.sh
cd my-git-project
~/install-talisman.sh

以上でgit hookとしてTalismanが導入されます。グローバルに共通して導入する場合はGitHubのREADMEを参照してください。
検知ルールをカスタマイズする場合は、 https://github.com/thoughtworks/talisman/blob/master/detector/ 以下を編集してください。例えばファイル名や拡張子に関するルールは filename_detector.go に記述があります。

動作を見てみましょう。
ここでは拡張子 .pem の(空)ファイルを追加してpushを行ってみます。

$ git commit -m "add hoge.pem"
[master d1e81ab] add hoge.pem
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hoge.pem
$ git push -u foo
The following errors were detected in hoge.pem
         The file name "hoge.pem" failed checks against the pattern ^.+\.pem$

error: failed to push some refs to 'git@some:where/far.git'

検知されてpushはfailしました。
拡張子だけでなく、鍵ファイルの内容など様々なdetectorが用意されています。
githookで手前で防ぐことができ便利ですので、興味のある方はお試しください。

2020年の振り返り

2019年以上に低入力低出力な一年でした。
コロナの影響もありましたが、前年の異動以来もろもろうまく行ってない感が拭えません。厳しいですな...
そんな中ですが、2020年の振り返りと良かった本をまとめます。

ssmjpでレジリエンスの勉強成果を発表した

w4yh.hatenablog.com
コロナ前ギリギリのオンサイト回で登壇しました。理論?寄りの話なので話す機会を探っていましたが懐の深いssmjpさんでできました。20分もいただきましてありがとうございました。
勉強の進捗報告みたいな内容でしたが、長いこと学びながら悩んだことを一つ形にできたので良かったです。またその後の学びをアウトプットしていきたいです。

レジリエンスエンジニアリング関連の読み物

レジリエンスエンジニアリング関係では芳賀先生の本をよく読んでいますが、今年も2冊読みました。そのうち一冊をご紹介します。
www.amazon.co.jp
2009年に出た本ですがエラーパターンについては非常に"あるある"な事例を、対策については構造的で体系立ったお話が見開き2ページに1トピックでテンポ良く展開されます。自動化やシステム化の齋の注意と対策にそのままあてはまる内容も多く学びの多い一冊です。

ちなみに芳賀先生のもう一冊、2020年7月に出たこちらも学びが深く、現在読み込み中です。
www.amazon.co.jp


レジリエンスエンジニアリング関係ではもうお一人、ホルナゲル先生の本もよく読むのですが、そのうちETTO本と言われる一冊について2020年11月にttkzwさんによる秀逸なブログエントリがありました。
heartbeats.jp
レジリエンスエンジニアリング関連の理論を実際のIT業務に紐付けて考えるのはなかなか頭を使い大変なのですが、こちらのブログではETTO理論に絞って現実に迫られる選択、もしくは気付かないうちにしてしまっている選択にスコープを当てて見事に解説されています。ご興味のあるかたはぜひご一読を。

念願の一冊

一年前に書いた2019年のまとめブログの中で、読んだ本の中から BUID TRAP(英語版)を挙げて「日本語化されて欲しいな~」と書いていました。
w4yh.hatenablog.com

嬉しいことに2020年10月に日本語版が出ました。やったね!図が白黒になったりはしていますが内容は原著の明確でテンポの良い語りっぷりを踏まえた小気味良いものに仕上がっています。
www.oreilly.co.jp

まとめ

低入力低出力な中、なんとかレジリエンスエンジニアリング関連は興味を持って触れ続けることができた、という感じでしょうか。この学びをインフラ自動化の実践
に結びつけていきたい、というのが学びのきっかけでもあるので引き続き頑張って行こうと思います。ssmjpさんとか吉祥寺.pmさんとかでの発表を目指したいと思います。

ssmjp 202003回でレジリエンスの勉強報告をしました

2019年は低インプット低アウトプットだったなあ..と反省していた年末年始、正月の勢いでssmjpさんへ発表を申し込んでみました。ありがたいことに今回機会いただけて発表してきました。理屈っぽい話なのでどこで話すべきかなあ..と悩んでいたネタだったのでssmjpさんの懐の深さはありがたいです。

ssmjp.connpass.com

レジリエンスエンジニアリングおよびSafety-IIについてはここ何年か勉強続けています。きっかけは、スライドの中でも引用元として記載したNHKの"視点・論点"という番組でした。朝4時20分からの10分番組ですが、たまたま見ていて内容に刺激されて一気に目が覚めました。NHKオンデマンドにまた出ないかな..

www.nhk.or.jp

学ぶ中で私が引っかかった点から、以下の二つについて触れました。
・ITインフラ運用の自動化の文脈ではSafety-Iの固定的な世界が前提とされていないか
Kubernetesって自立的で柔軟でということになっているけどそうなのか。設定次第とか分散トレーシングの活用次第とか(暗黙の)条件があるのではないか

今回の発表では、自動化/Auto-remediationとか自立的という意味でクラスタリングソフトを引き合いに出して"クラスタリングソフトを導入すればレジリエントなのか"という仮説を検証してみる流れでお話してみました。私が長いこと引っかかっていた議論を独白->反省するという若干照れもある内容でした。初めて聞く方にはおまぬけっぽく感じられないか不安でしたが、どうでしたかね... ssmjpのSlackでは好意的なリアクションいただけていて心安まりました。

speakerdeck.com

(時間調整で直前にスライドを何枚か削りました。参考資料にあるkumagiさんの分散システムのスライドが本文中で参照されていませんが、スプリットブレインあたりの文脈で参照させていただきました。)

こういった話にお詳しい方にどういう場でお会いできるのかがイマイチ掴めていないのですが、ご教示くださる方や一緒に学んでくださる方がいらしたらぜひ知りたいです。もしくはご興味持ってくださる方が現れるきっかけとなればとても嬉しいです。さらにはこういった視点での運用改善のおしごとの場があればぜひお声がけいただきたいです。

発表直後なので達成感というかちょっとテンションが高くなっています。同じ流れの話題でssmjpさんとか吉祥寺pmさんとかの懐の広い場での発表をまた申し込んじゃおうかなー

Speakerdeckではリンクがクリックできないので、参考資料へのリンクを以下に並べておきます。

書籍)
www.amazon.co.jp

www.amazon.co.jp

www.amazon.co.jp

www.amazon.co.jp

Web)

www.slideshare.net

www.slideshare.net

cfgmgmtcamp2020の資料リンク集(随時追加)

さっそくですがcfgmgmtcampの発表資料をまとめていきます。
12トラックもあるのでまだかなり抜けもありますが。
公式サイト: https://cfgmgmtcamp.eu/ghent2020/


20200203

09:40-

untitled config game
speakerdeck.com

11:40-12:30

Cloud Native Configuration Management
speakerdeck.com

12:45-12:50(LT)

YAML Magic

www.slideshare.net

12:50-12:55(LT)

Devops is dead, Servers are dying, and I don't feel so great myself.
(201808)
noti.st

12:55–13:00(LT)

Rethinking Open Source in the Age of Cloud
(201911)

www.slideshare.net

14:25–

To Foreman 2.0 and beyond: an architecture perspective
https://cfp.cfgmgmtcamp.be/media/foreman-architecture-to-2.0-and-beyond.pdf

14:50-

YANG and NETCONF
https://blog.lieter.nl/presentations/cfgmgmtcamp-YANG-NETCONF.pdf

Terraform Without The Mess
jen20.dev

Ansible Collaboration within your Organization
https://cfp.cfgmgmtcamp.be/media/PulpAnsible_ConfigMgmtCamp2020.pdf

Achieving fully hands-off deployment of an Icinga 2 cluster using Puppet
https://landervdb.github.io/cfgmgmtcamp2020/

16:50-

Config management for_kubernetes: GitOps + Helm

www.slideshare.net

Rollout all your Prometheus exporters with Puppet!
github.com

20200204

09:30-

I got 99 problems and a bash DSL ain't one of them
( http://scribes.tweetscriber.com/tdpauw/707 )

10:20–

How Convenience Is Killing Open Standards

www.slideshare.net

12:20-

Web Application Firewall - Friend of your DevOps pipeline?
(201805)

www.slideshare.net

12:30–12:35(LT)

Bare Metal Provisioning with Ansible and Cobbler
https://ffrank.github.io/presentations/2020-02-ansible-bare-metal/ansible-bare-metal.pdf

12:45–12:50(LT)

Terraform, Pulumi... but what do we really need!?
(202001)
www.dropbox.com

12:45-

seccomp — Your Next Layer of Defense
xeraa.net

14:00-

Lessons learned from testing over 200,000 lines of Infrastructure Code
cloud.mail.ru

A RUDDER walkthrough: manage your configurations through compliance
speakerdeck.com

16:00-

Running Puppet from mgmt on overdrive
ffrank.github.io

Ansible with ARA on RHEL7/CentOS7, welcome to hell!
speakerdeck.com

DeliveryConfの資料まとめ(追加中)

明日2/3からのcfgmgmtcampも楽しみですが、先に行われたDeliveryConfも良い発表揃いだったので資料を整理しておきます。
DeliveryConf | Continuous Integration / Continuous Delivery conference

発表はすべて公式チャンネルで動画が公開されています。
各発表の後に20分のグループディスカッションという構成だったので動画を追った方が現場感もあって良いと思います。
DeliveryConf - YouTube

同じタイトルであちこちで発表されている有名人の多いイベントだったので最新ではないかもしれない資料リンクも混じっていますが、以下イベントタイムテーブル順に。

20190121

Main Keynote:
What Will The Next 10 Years Of Continuous Delivery Look Like? - Dave Farley, Jez Humble

www.slideshare.net

10:30 - 11:00

A Whole Team Approach to Testing in Continuous Delivery - Lisa Crispin
(201809)
https://lisacrispin.com/wp-content/uploads/2018/09/VermontCodeCampTestDevOpsCompressed.pdf

Lessons I learned about Automating Database Deployments - Bob Walker


CI/CD for PowerShell That Isn't a Mess - Thomas Rayner

11:40 - 12:10

Pragmatic Pipeline Security - James Wickett


The Last Bottleneck of Continuous Delivery - Casey Lee, Christine Sills


Legacy is a Frame of Mind - Laura Santamaria
speaking.nimbinatus.com

14:00 - 14:30

Continuous Delivery for Azure Serverless / PaaS - Mandy Riso


How we fixed our broken deployment process - Ryan Rousseau
broken.rousseau.dev

Where's the map of your pipeline? - Steve Pereira

15:10 - 15:40

Continuous Delivery for Machine Learning: Patterns and Pains - Emily Gorcenski


Real World DevOps - Abel Wang

(同テーマのPodcast)
cloudskills.io


Lessons Learned when a Dev does Opsy Things - Cora Fedesna
noti.st

16:20 - 16:50

CICD-ing My VAX - Cat Swetel, Jimmy Judd


Progressive Delivery Patterns In The Wild - Dave Karow
speakerdeck.com

Continuous Delivery with GitHub Actions - Sean Sullivan
speakerdeck.com

17:30 - 18:00

Reimagining Continuous {Integration | Delivery | Deployment | Whatever} - Bryan Liles

20190122

Keynote Panel

Dr. Rebecca Parsons, Dr. Nicole Forsgren, Caleb Hailey, Brooke Treadgold

10:30 - 11:00

What is quality, and how should we build it in? - Jez Humble, Maryam Umar

www.slideshare.net

Localdev And A Tight Feedback Loop For Happy Customers And Happy Developers - Patrick Gray


CI/CD Agility and Controlling Pipeline Sprawl - Angel Rivera

11:40 - 12:10

Taking Care of Code ... More and More Code - Jessica Kerr


Building Deployment Pipelines with Jenkins & Spinnaker - Isaac Mosquera


Go Faster, Be Safer: Release Velocity And Psychological Safety - Heidi Waterhouse

14:00 - 14:30

Continuous Delivery - Show, Don't Tell - James Relph
github.com

Tools for Builders: Crafting User Experiences for Technical Practitioners - John Ryan


Project Smooth - Streamlined Software Delivery Initiative - Sonali Shrivastava

15:10 - 15:40

How secure is your build/server? - Patrick Debois

www.slideshare.net

Blue is the New Green - DJ Schleen
(201905)

www.slideshare.net


CI/CD + ML == MLOps - The Way to Speed Bringing Machine Learning to Production - David Aronchick

16:40 - 17:10

Fast & simple: observing code & infra deployments at Honeycomb - Liz Fong-Jones, Danyel Fisher

2019年に読んで印象に残った本

前の投稿に書いたとおり2019年は低入力低出力だったのですが、本だけはある程度読んでいました。印象に残っている本を何冊がご紹介します。

1. Escaping the Build TRAP

Escaping the Build Trap: How Effective Product Management Creates Real Value (English Edition)

Escaping the Build Trap: How Effective Product Management Creates Real Value (English Edition)

  • 作者:Melissa Perri
  • 出版社/メーカー: O'Reilly Media
  • 発売日: 2018/11/01
  • メディア: Kindle
"プロダクトマネージーが知っておくべき○○の事"のような感じでまとめられたテンポの良い本です。章毎の模式図が分かりやすくメッセージが絞られていて分かりやすいです。PdMアンチパターンのところなどは指摘が鋭くうなってしまいました(例:"The Mini-CEO")。日本語版出ないかなあ。

2. 全図解トヨタ生産工場〔生産管理・品質管理〕のしくみ

全図解トヨタ生産工場〔生産管理・品質管理〕のしくみ

全図解トヨタ生産工場〔生産管理・品質管理〕のしくみ

運用改善の流れでトヨタ生産方式(TPS)の勉強を始めました。2011年の本ですがこの本は図が多くてイメージしやすく分かった気になれます。TPSは用語や考え方など独特の物がありますが、勉強する上で求められる前提的な部分をざっと見したり、あらためてイメージし直したりと何周分も役に立ってくれる便利な本です。

3. 入門 監視

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

付録Cネタで盛り上がった本ですが、もちろん本体もしっかり良い本です。監視を通して見ているシステムや現象、そのデータの扱い方など"監視"という言葉の周辺で起きることが網羅されています。より良質なアウトカムを得るための道しるべとなる本だと思います。

4. Safety‐2の実践

Safety‐2の実践―レジリエンスポテンシャルを強化する

Safety‐2の実践―レジリエンスポテンシャルを強化する

次はSafety-IIの本です。日本語版出てくれてありがてえありがてえという感謝しかありません。他の本で前提知識を得てからでないと難しい部分もありますが、レジリエンス"ポテンシャル"という中核をなす概念についてがっつり説明がなされている貴重かつ理解の支えとなる本だと思います。

5. 新しい東京 2020

新しい東京 2020 (ぴあ MOOK)

新しい東京 2020 (ぴあ MOOK)

  • 作者:
  • 出版社/メーカー: ぴあ
  • 発売日: 2019/05/30
  • メディア: ムック
最後はMookです。1990年代から2000年代前半に上京してきたぴあMap愛好世代にオススメしたい一冊です。ページデザインや説明の語りっぷりなど、あの頃のぴあMapが2020年の東京を案内してくれます。

こうして見ると考え方や概念寄りの本が多いですね。2019年の自分はあまり手を動かせていなかったこともあってツールに特化した本よりもこうした本の方が頭に残りやすい状態だったのかな。

2019年振り返り

2019年は変化がありましたが良い方には活かせませんでした。

4月に初めての異動を経験したのですが、あまりコミュニティ活動に前向きでは無い管理のされ方になってしまいました。そんなこともあって特に2019年後半は低入力低出力な感じになってしまったので非常に不本意です。あぁ転職したい..
とうわけで今年は成果は少ないので、考えさせられたことを書きます。

(1)CoC的な物
今年はコミュニティにおけるいざこざも印象に残りました。特にギークの聖地的な存在であるbuildersconやISUCONで起きたことは残念でした。それだけ裾野が広がって多種多様な方が参加されるようになってきた事を示しているのかもしれません。同じノリで阿吽の呼吸で通じる範囲ではなくなったと。
自分も全くの不勉強ですが、インクルージョンについてはMonitorama 2018での発表を見たときの衝撃が強かったのでリンクだけご紹介しておきます。
Monitorama PDX 2018 - Beth Cornils - How to appreciate that our differences make our teams better on Vimeo

(2)Safety-Ⅱ, レジリエンスエンジニアリング
ここ何年か勉強し続けていますがいまだにもがきながら学んでいます。
3月に"Safety‐2の実践"という本が出るなどこの分野自体まだまだ熱があります。

Safety‐2の実践―レジリエンスポテンシャルを強化する

Safety‐2の実践―レジリエンスポテンシャルを強化する

先日、自治体IaaSの障害の流れで哲太郎先生の2019/03のスライドを知りました。

www.slideshare.net

その中で紹介されている本も読んでみました。

様々な分野からの定義やアプローチが述べられていて、概念やイメージはより理解が深まったと思います。...しかし、そろそろレジリエンスエンジニアリングの実装実践に進みたいのです。どうもそこまで会得できていないようですが、途中経過としてどこかで発表してみようと思います。

2019年末は足腰のリハビリにかなり注力してきたので回復が進む事を期待して2020年を迎えようと思います。
みなさまどうぞ良いお年を。