Sort by - linked count
-
QUIC
#Network #HTTP インターネット上の通信で多く用いられてきたTCPの課題を解消する、Googleが開発したプロトコル UDPをベースし、コネクション確立によるRTTの増大を防ぎつつ、TCPと同様の高い信頼性の実現、TLSを必須とするセキュリティの考慮がされる。 HTTP/3で用いられるプロトコルで高速なHTTPS通信を実現する コネクションID QUICではIPアドレス、ポート番号を抽象化する形で宛先、送信元に対応するコネクションIDが用いられる。 コネクションIDによりモバイル機器のようなWiFi・モバイルデータ通信等が頻繁に切り替わりIPアドレスの変更がある場合でも、コネクションを途切らせずに通信を続けられる。 QUICヘッダー QUICヘッダーはTCPと異なり明確にロングヘッダー、ショートヘッダーの2つに分類される。ロングヘッダーはコネクション確立時、ショートヘッダーはその後のデータ送信に用いられる ロングヘッダーはコネクション確立に必要な情報をまとめて送る(1-RTTハンドシェイク)ことでRTTの改善がされる ストリーム QUICでは順序制御や再送制御を管理する単位としてストリーム(ID)という概念を用いる。ストリーム同士は独立しておりHoLブロッキングのような問題の回避をする
-
エラーバジェット
#Reliability プロダクト開発者とSRE間でリリース可否を決めるための指標となるような考え方。 SLOを満たせない時間を名前の通り予算として管理する。 エラーバジェットが残っていればリリース可能、エラーバジェットを使い切っていればリリースはストップしシステムの改善を行うというような運用をする。 エラーバジェットによってプロダクト開発者とSREでイノベーションと信頼性のバランスを適切に扱う
-
Bearerトークン
#Security トークンを保持するBearer(持参人)が誰であれ、そのトークンをリソースへのアクセスに使うことができる 平文の文字列でシークレットや署名は扱わず、セキュリティはTLSのようなトランスポート層での仕組みに任せている HTTP通信のAuthorizationヘッダーに付与するのを推奨されている RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
-
ユーザーストーリーマッピング
#Agile #Documentation Blog / Agile Studio
-
Kubernetes Deployment
#Cloud Native KubernetesにおいてPodとReplicaSetのアップデート機能を提供する spec.replicas によるレプリカの数の制御やリリースバージョンのロールバック、カナリアリリース等のリリース手法の指定を行う Deployment | Kubernetes
-
サイドカープロキシ
#Network サービスメッシュ内でプロキシを利用して実装される汎用パターン
-
Kubernetes Job
#Cloud Native KubernetesにおいてPodを1つ以上作成し、作成したPodがJobとして正常終了するまで再試行をすることができる。 .spec.completions, .spec.parallelism の指定によって並列実行の制御をすることも可能 Job | Kubernetes
-
Martin Kleppmann
-
レプリケーション
#Database 書き込みまたは読み取りをリーダー、読み取りをフォロワーで行われ、リーダーへの書き込みがフォロワーに伝播される仕組みをレプリケーションと呼ぶ。 レプリケーションの方法として ステートメントベース write-aheadログ 等がある。 ステートメントベースはSQLをそのまま転送する形になるため副作用を持つ関数が返す結果にズレが生じる方法で、MySQL5.1以前に採用されていた。 write-aheadログはPostgreSQL,Oracleで使用されているが、ログが低レベルに記述されているため詳細実装と密になってしまう。 その他レプリケーションのトポロジーとしていくつかのパターンがある マルチリーダーレプリケーション 複数のデータセンターにリーダーが存在する。リアルタイムの同時編集がイメージに近い。 書き込みの衝突があった際に最終的に同じ値に収束させるような方法が取られる リーダーレスレプリケーション AmazonがDynamoシステムで利用し流行しDynamoスタイルと呼ばれる。 一部のノードが何らかの理由で利用できなくてもクオラムによって読み取りあるいは書き込みの正当性を判断する
-
ヘキサゴナルアーキテクチャ
-
Basic認証
#Security HTTPプロトコルにおける認証方式 ユーザー名とパスワードをコロンで連結した文字列をBase64エンコードした結果を、Authorizationヘッダーに付与することでリクエストを行う
-
仮説検証型アジャイル開発
#Agile #市谷聡啓 Blog
-
サービスの信頼性の階層
-
Elastic Load Balancing
#Cloud Native #API Architecture AWSが提供するロードバランサーコンポーネント リソースごとに以下のような種別がある Application Load Balancer Network Load Balancer Gateway Load Balancer What is Elastic Load Balancing? - Elastic Load Balancing
-
分散コンピューティングの8つの誤謬
#Network 分散システムを扱い際、しばしば陥りがちなネットワークへの仮定を8つリストアップしたもの ネットワークは信頼性がある レイテンシはゼロ 帯域幅は無限 ネットワークは安全 トポロジは変わらない 管理者は1人だけ 転送コストはゼロ ネットワークは均質 The Eight Fallacies of Distributed Computing
-
クリーンアーキテクチャ
-
Scott Wlaschin
-
HMAC
Hash-based Message Authentication Code #Security 共有秘密鍵と暗号化ハッシュ関数による暗号方式 共有の鍵を有するので両者ともに署名付きトークンを生成・検証できる
-
広木大地
-
契約による設計
#OOP 契約による設計事始め
-
オニオンアーキテクチャ
-
リチャードソン成熟度モデル
#API Architecture Leonard RechardsonによるREST APIの観点からAPI実装の成熟度をレベルに分類したもの 各レベルのタイトルは以下 レベル0 HTTP/RPC レベル1 リソース レベル2 動詞(メソッド) レベル3 ハイパーメディアコントロール QCon 2008での発表は以下 Justice Will Take Us Millions Of Intricate Moves
-
Amazon S3
Amazon Simple Storage Service #Cloud Native AWSが提供するオブジェクトストレージサービス What is Amazon S3? - Amazon Simple Storage Service
-
メッセージキュー
#Data Processing イベントストリーム処理において、Pub/Subの間に配置されイベントをキューイングする役割。 基本としてイベントをコンシューマーと1対1でやりとりし処理が完了したらイベントが削除される実装がある。(Amazon SQS等) 対しログベースのメッセージキューはコンシューマーと1対Nでやり取りし古いイベントのリプレイも可能である。(Amazon Kinesis Stream等) メッセージキューとは何ですか?
-
テストピラミッド
-
レポーティングデータベース
#Martin Fowler #Database #Data Processing アプリケーションのドメインモデルに対応するテーブルとは別にレポート目的の中間テーブルを用意することで、レポートの関心を分離してテーブルに変更を加えることができる。 ReportingDatabase
-
DNSラベル標準
#Network RFC 1123で定義されているDNSに指定可能な文字列
-
輻輳制御
#Network TCPプロトコル等で行われるネットワークのリンク上でパケットが混線した際の制御 輻輳制御アルゴリズムは大きく以下の3つに分類される Loss-based Delay-based ハイブリッド型
-
サークルオブライフ
-
Agile Conversation
#Agile Agile Covnersation では人間中心主義での2つの価値観を原則としている。 自己開示: プロセスを隠さず失敗を認める 他者理解: 相手に関心を持ち立場を理解しようとする 組織が高パフォーマンスを発揮するためにはどのような対話をするべきか、5つの対話ステップが紹介されている。 信頼を築く対話 不安を乗り越える対話 WHYを作り上げる対話 コミットメントを行う対話 説明責任を果たす対話 重要なのはこれらは段階的に踏んでいくステップでありそれぞれ独立していないこと。第1ステップの「信頼を築く対話」はその後のステップの基礎となる。 アジャイルソフトウェア開発宣言 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
-
モノリスからマイクロサービスへ
-
適応度関数
Fitness Function #API Architecture システムの品質特性を数量化可能な指標で評価する、システムの目標を一貫して保証するためにビルドパイプラインに組み込まれる それぞれの特性は以下のようにカテゴライズされる コード品質(Code Quality) レジリエンス(Resiliency) オブザーバビリティ(Observability) パフォーマンス(Performance) コンプライアンス(Compliance) セキュリティ(Security) 運用操作性(Operability) Fitness function-driven development | Thoughtworks
-
Clean Craftsmanship
-
Bツリー
#Database Bツリーはデータベースを固定サイズのブロックあるいはページに分割する。固定サイズの空き容量がない状態で新しいキーが追加される場合、半分の領域が空いた2つのブロックに分割される。 このアルゴリズムはツリーバランスが保たれ、ツリーの深さも3ないし4レベルに収まることがほとんど。 また信頼性を高めるためにwrite-aheadログ(WAL)と呼ばれる書き込み内容の構造化データを追記して保持している。 Wikipedia
-
GM Weinberg
#Person
-
ドメインイベント
#DDD ドメイン イベント: 設計と実装 - .NET Domain Events and Eventual Consistency
-
GKE
-
モジュラモノリス
#Software Design Shopifyはいかにしてモジュラモノリスへ移行したか モジュラモノリスで表現する複雑なドメイン領域と境界
-
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
#DevOps Slideshare
-
アジャイルテストの4象限
-
関数型ドメインモデリング
-
Authorization to implement with Extensible Effect
#Security #Functional Programming Effによる認可実装の話
-
Swagger
-
テスト駆動開発
-
Introduction to safe programming with numeric library
数値ライブラリで始める安全なプログラミング #Functional Programming #Security Scala Matsuri 2024での自身の発表 Spireライブラリを用いて安全な数値計算を行うテクニックを紹介している
-
Datadog RUM
Datadog Real User Monitoring #Observability Datadog上で個々のユーザーのアクティビティをリアルタイムで可視化する Datadog APMと紐づける(以下、詳細)ことでフロントエンドで収集したデータをバックエンドのトレースと相関づけて追跡できる Connect RUM and Traces RUM & セッションリプレイ
-
LeanとDevOpsの科学
-
Datadog Agent
#Observability Datadogへホストのログを送信するソフトウェア。 各ホストの環境別にいくつかのインストール手段が用意されている Agent
-
A Mess is not a Technical Debt
Robert C. Martinによるブログ 技術的負債は戦略的に適用されるものであり、ただのクリーンでないコードに対して用いる概念ではない。という主張 負債が増えるのを意図的に捉えテストやリファクタリングを拡充すべきとしている Clean Coder - A Mess is not a Technical Debt.
-
テスト駆動開発の定義