地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【SRE】同じインシデントは二度と起こらないが、パターンは繰り返す

surfingcomplexity.blog

記事は、ヘラクレイトスの言葉「同じ川に二度と足を踏み入れることはない」を引用し、インシデントが再発する際に、同じ状況や原因が再現されるわけではないことを指摘している。たとえば、データベースの障害が再発した場合、前回と同じ原因であるとは限りません。しかし、組織は前回の経験を活かして迅速に対応できる可能性が高くなるという話。

要するに、インシデントの詳細に固執するのではなく、より高次のパターンやリスクに注目し、組織全体での適応力と複雑性の管理能力を高めることが、効果的なリスク対応につながるというメッセージが込められている。やれているかな。

【Python】asyncio.Semaphore

asyncio.Semaphore は、非同期プログラムでのリソースの制限を管理するために使用される同期プリミティブです。セマフォは、リソースの同時アクセス数を制限するために用いられます。asyncio.Semaphore は非同期タスクがリソースを安全に共有できるようにするため、特にIO操作や並行処理が多い場合に役立ちます。

基本的な概念

セマフォは、指定された数の許可(「トークン」)を保持しており、リソースを使用するにはトークンを取得する必要があります。リソースを使用し終わると、そのトークンを返却します。これにより、同時にリソースを使用できるタスクの数が制限されます。

使用方法

import asyncio

# セマフォの作成(最大同時実行数は3)
semaphore = asyncio.Semaphore(3)

async def access_resource(task_id):
    async with semaphore:
        print(f"Task {task_id} is accessing the resource")
        await asyncio.sleep(2)  # リソースにアクセス中(非同期操作)
        print(f"Task {task_id} has finished using the resource")

async def main():
    # タスクを並行して実行
    tasks = [access_resource(i) for i in range(5)]
    await asyncio.gather(*tasks)

# 非同期実行
asyncio.run(main())

【SRE】堅牢性と回復力

uptimelabs.io

ユーカリの木の回復力は、風や環境のストレスに柔軟に適応し、成長し続ける能力を指します。記事では、ユーカリの木を例にとって、回復力の概念を説明しています。

具体的には、ユーカリの木が風に耐えるために支柱を立てるのではなく、風によってしなり、ストレスを分散させながら成長する過程が回復力を示しています。このように、ユーカリは外部の圧力やストレスに対して柔軟に対応することで強く成長し続けます。

この例は、システムや組織が同様に、堅牢さ(強固さ)だけでなく、予測できない状況や変化に適応できる柔軟性や回復力を育むことの重要性を示しています。

あってよかった問題

「あってよかった問題」は、ある機能や仕組みが“ちゃんと働いているほど存在感が消える”ため、価値が過小評価される現象のことです。SRE文脈だと、信頼性が高いほど障害が目立たず、運用・予防・改善の努力が見えなくなるパラドックスを指します(= “Invisible Work” の一種)。

なぜ起きる?

  • 成功の非対称性:失敗はニュースになるが、正常稼働は話題にならない。
  • 可視化の欠如:改善や未然防止は「起きなかった出来事」なので証跡が残りにくい。
  • 評価軸のミスマッチ:機能追加や短期売上に比べ、信頼性向上は“遅く静かな成果”。

SRE以外

SREに限った話ではない思いついたものだとこんなあたりだろうか。

  • セキュリティ
  • QA
    • 例:回帰バグの未然防止、リリース前の品質ゲート
  • 設備保全 / 設備管理(製造・建物・インフラ)
    • 例:予知保全、点検、消耗品交換
  • 公共インフラ(電力・上下水道・交通)

世の中にはありふれていて目立たなくても社会や人々の生活を支える大切な仕事があるという話にも繋がる。(すずめの戸締りでも出ていた)

note.com