タグ

akaimo3のブックマーク (721)

  • 【TCP】linuxで取れるtcpのメトリクスを理解していく記事 - 地方エンジニアの学習日記

    /proc/net/netstatを頑張って理解していく。ドキュメントないものをどうやって調べていくかはちょっと悩む... netstat グラフに出てくる項目 概要 TcpExtSyncookiesSent tcp.syncookies.sent 送信されるSYNクッキーの数 TcpExtSyncookiesRecv tcp.syncookies.recv TCPスタックが受信するSYNCookieの応答パケットの数 TcpExtSyncookiesFailed tcp.syncookies.failed SYNCookieからデコードされたMSSが無効 TcpExtEmbryonicRsts tcp.misc_errors.embryonic_rsts SYN_RECV状態の接続に対して受信された無効なパケット TcpExtPruneCalled tcp.misc_errors.pru

    【TCP】linuxで取れるtcpのメトリクスを理解していく記事 - 地方エンジニアの学習日記
    akaimo3
    akaimo3 2022/01/26
  • 自作して学ぶKubernetes Scheduler | メルカリエンジニアリング

    Mercari advent calender の21日目を担当します@sanposhihoです。現在大学の学部4回生で、メルカリでは内定者インターンとして、メルカリのホーム画面などのバックエンドを担当するチームに所属しています。 また、最近は個人的にKubernetesやその周辺のOSSにコントリビュートをしていて、特にKubernetesのコントロールプレーンのコンポーネントのうちの一つであるkube-scheduler周りを触ってることが多いです。 後で詳しく説明しますが、kube-schedulerはPodをどのNodeで実行するかを決定しているコンポーネントです。NodeAffinityや比較的新しいものだとPod Topology Spread Constraintsなど、Podのスケジュールの制約を指定できる機能も基的にこのkube-schedulerに実装されています。

    自作して学ぶKubernetes Scheduler | メルカリエンジニアリング
  • 次世代データベース TiDB の検証とその評価 [DeNA インフラ SRE] | BLOG - DeNA Engineering

    ※こちらは先日実施された DeNA インフラエンジニア / SRE MEETUP で話した内容を Blog 記事化したものです! こんにちは!IT基盤部の熊谷です。IT基盤部にて大規模ゲームのインフラを見ている 新卒2年目のインフラエンジニアです。この記事では “DeNA でのデータベース運用とそのツラミ” と、“TiDB導入への検証・検討” をご紹介させていただきます。 データベースの最適解 DeNA のデータベース構成は最適解を求めて改良を積み重ねてきました。最初期の構成、(便宜上、第1世代と呼びます) では VM Instance 上に MySQL を構築し管理する MySQL on EC2 構成。続く第2世代では、マネージドサービスを駆使した Aurora MySQL 構成。この2世代の中で生じた “ツラミ” を解消する次の世代、言わば 第3世代に該当する新しいデータベース構成を現

    次世代データベース TiDB の検証とその評価 [DeNA インフラ SRE] | BLOG - DeNA Engineering
    akaimo3
    akaimo3 2022/01/25
  • Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ

    eBPF(extended Berkley Packet Filter)という用語を著者が初めてみかけたのは、2015年ごろだった。最初は、eBPFをその字面のとおり、パケットキャプチャやパケットフィルタリングを担うだけの、Linuxの新しいサブシステムであろうと認識していた。しかし、実際にはそうではなかった。 システム性能の分析のための方法論をまとめた書籍Systems Performance 1 の著者で有名なBrendan Greggが、Linuxのネットワークサブシステムとは特に関係ない文脈で、古典的なシステム性能計測ツールでは計測できないことを計測するツールを作っていた。その計測ツールがeBPFという技術によって実装されていることを知ったときに、eBPFに興味をもったのだった。また、eBPFは、システム性能を調べる用途以外にXDP(eXpress Data Path)と呼ばれるプ

    Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ
  • 二酸化炭素を減らすと部屋が寒い (冬なので) - 本しゃぶり

    扉の反対側にある窓を「全開」にした。 生まれた「流れ」は二酸化炭素濃度を低下させる。 まあ、ちょっぴり寒くなるが。 「換気」と「寒気」 部屋が寒い。 2021年12月26日の室温 1日の大半が15℃以下。朝起きる時だけは暖房を入れているのでそれなりに上がるが*1、日中は基的に暖房を入れていない。だから寒いのである。 なぜ日中に暖房を入れないのかというと、二酸化炭素濃度の上昇を抑えるためだ。もちろん地球全体の話ではない。俺の部屋の中の話である。室内の二酸化炭素濃度の上昇を抑えるために、部屋のドアは開けっ放しがデフォとなっている。だから暖房を入れる気にならないのだ。 部屋のドア こんな生活を送るようになったきっかけは、今年の4月に二酸化炭素濃度測定器 (CO2センサ)を買ったからである。 カスタム (CUSTOM) CO2モニター CO2-mini カスタム(CUSTOM)Amazon 導入

    二酸化炭素を減らすと部屋が寒い (冬なので) - 本しゃぶり
    akaimo3
    akaimo3 2021/12/28
  • Kubernetes 専門家として知るべき 47 のこと - 誰かの役に立てばいいブログ

    この記事は私が過去 3 年ほど Kubernetes に携わる中で学んだ、ちょっと見つけにくい知識をまとめたものです。 特にカスタムコントローラーを開発するような人に必要となる知識群です。 感想とか指摘とかあれば Twitter までお寄せください。 更新履歴 2021-03-05: "コンテナの resources.limits と resources.requests の違いについて" の項を補足しました (thanks to @superbrothers) API コントローラー実装 プログラムと連携動作 資源管理 ネットワーク モニタリング アクセスコントロール API kube-apiserver が備える拡張機構を列挙しなさい 回答例 Custom resources: OpenAPI スキーマで独自のリソース型を追加できる Aggregation layer: kube-ap

    Kubernetes 専門家として知るべき 47 のこと - 誰かの役に立てばいいブログ
    akaimo3
    akaimo3 2021/12/20
  • フレッツ光回線でscpが遅かった話 - Qiita

    この記事は、Supershipグループ Advent Calendar 2021の7日目の記事になります。 先日、sshを使用したファイル転送が回線速度と比べて異常に遅いという現象に遭遇したので、その際に行った調査を再現しつつ原因や対策について書いてみたいと思います。 要約 OpenSSHはデフォルトでinteractiveなセッションに af21 、non-interactiveなセッションに cs1 をDSCP値としてIPヘッダに設定する フレッツ網はIPヘッダのDSCP値を帯域優先サービスで使用しており、契約に応じて指定された優先度以外が設定されたパケットの転送は保証されない そのため、OpenSSHをデフォルト設定のままフレッツ網で使うと通信ができなかったり、速度低下などの悪影響を受ける可能性がある OpenSSHがDSCP値を設定しないようにするためには、IPQoS noneを設

    フレッツ光回線でscpが遅かった話 - Qiita
  • MackerelでSLOとエラーバジェットを運用するためのツール shimesaba - KAYAC engineers' blog

    この記事はMackerel Advent Calendar 2021の7日目です。 こんにちは、SREチーム所属の@mashiikeです。 皆様はSLOとエラーバジェットという言葉を聞いたことはありますか? サービスの信頼性を保証することを目標するSRE(Site Reliability Engineer/Site Reliability Engineering)の領域に携わってる方なら聞いたことがあると思います。 今回は、SLOとエラーバジェットに関して、Mackerelを用いてサービス/サーバー監視をしている際に便利なツールとして shimesaba というものを作った話をします。 github.com はじめに 題に入る前に、SLIやSLO, エラーバジェットという言葉について触れておきます。 これらの言葉は、ざっくりと説明すると以下のようになります。 SLI(Service Le

    MackerelでSLOとエラーバジェットを運用するためのツール shimesaba - KAYAC engineers' blog
    akaimo3
    akaimo3 2021/12/19
  • PubSub/Redisを用いたGoによるスケーラブルなworkerの構築と運用 | メルカリエンジニアリング

    こんにちは。メルカリのNotification teamでソフトウェアエンジニアをしている@naruseです。 この記事は、Mercari Advent Calendar 2021 の19日目の記事です。 はじめに 私が所属しているBusiness Platform Notification teamでは、2つの役割で通知周りの基盤を担当しています。 1つ目はアプリケーションとしての役割の通知です。メルカリでは、アプリ内でのお知らせや個別メッセージ、やることリストなどを提供しています。私たちはそれらの膨大なデータを管理し、作成や取得のリクエストに応えています。これらの膨大なデータに対する私たちのチームの過去の記事として、昨年のAdvent calenderの一部である番稼働中の Spanner にダウンタイム無しに57時間かけてインデックスを追加して得た知見をぜひご覧ください。 2つ目は

    PubSub/Redisを用いたGoによるスケーラブルなworkerの構築と運用 | メルカリエンジニアリング
  • メルカリWeb版のPull Request環境の構築方法について | メルカリエンジニアリング

    こんにちは。メルカリのweb platformチームの@urahiroshiです。 この記事は、Mercari Advent Calendar 2021 の9日目の記事です。 今回は、メルカリWeb版のアプリケーションの開発に利用している検証環境の実現方法について記載します。 メルカリWeb版の開発では、フロントエンドアプリケーションのリポジトリに対してPull Requestを作成すると、そのコードベースの検証環境(以下ではPR環境と記載します)が自動で構築され、変更箇所に対するマニュアルテストや自動テストに利用されています。 ステージング環境やInternalリリース(https://engineering.mercari.com/blog/entry/2019-10-30-105936/ に記載しているTrialリリースに相当します)を用いた番環境でのテストも実施しているのですが、

    メルカリWeb版のPull Request環境の構築方法について | メルカリエンジニアリング
  • Goのロギングライブラリ 2021年冬 - moriyoshiの日記

    この記事はPySpa Advent Calendar 2021の14日目のエントリーとして書かれました。昨日のエントリーは冷凍品でウキウキ引きこもり生活 でした。ちなみに私も70ℓの冷凍庫を購入しましたが当にライフチェンジングでした。 総論: なぜログが必要か 可観測性 たとえ目的は自明でも、その動作までが自明なアプリケーションというものはほぼ存在しません。現実の世界のアプリケーションというものは、動作パラメータだったり実行環境だったり、起動時点でのさまざまな要因によって挙動を変えるものだからです。そして、そうしたアプリケーションにはライフサイクルというものがあります。ここでいうライフサイクルは、アプリケーションの処理が実行されるにつれ、アプリケーションの内外との情報のやりとりで生じる大局的な状態の変化のことです。アプリケーションが並行処理を行うようなものであれば、個々の並行処理の単位

    Goのロギングライブラリ 2021年冬 - moriyoshiの日記
  • おうちで学ぶサービスメッシュを支える透過型プロキシとしてのEnvoy - NTT Communications Engineers' Blog

    この記事は、NTT Communications Advent Calendar 2021 4日目の記事です。 こんにちは、イノベーションセンターでSREとして働いている昔農(@TAR_O_RIN)です。主にNTT Comのソフトウェアライフサイクルの改善への取り組みやアーキテクトに関わる仕事をしております。日はサービスメッシュを題材に,その中で用いられるEnvoyの活用パターンを手を動かして理解するお話をさせていただきます。 また,昨年までのアドベントカレンダー記事もご興味があればご覧ください! 2020年 How do you like k3s ? - CoreDNSで作るお家DNS Cacheコンテナ 2019年 TektonでCI/CDパイプラインを手の内化しよう 2018年 DevOpsってこんな仕事!考え方とスキルセットのまとめ 2017年 DockernetworkをCa

    おうちで学ぶサービスメッシュを支える透過型プロキシとしてのEnvoy - NTT Communications Engineers' Blog
  • Terraform Cloud から GitHub Actions に移行したお話

    スタディスト開発ブログ Advent Calendar 2021の13日目の記事です。 こんにちは、SRE Unit の wind-up-bird です。以前、 Serverless Framework を移行しているお話を書きましたが、今回は移行シリーズ第2弾ということで、 Terraform Cloud を Terraform on GitHub Actions に移行したお話をお届けしたいと思います。 # 移行前の運用スタディストではこれまで Terraform Cloud の Team & Governance プランを契約していました。移行前の Terraform による開発の流れは、以下のとおりです。 Terraform Cloud 上で Workspace を作成し、Version control workflow を利用する。Workspace には環境変数として、 AWS

    Terraform Cloud から GitHub Actions に移行したお話
    akaimo3
    akaimo3 2021/12/14
  • TiDB on AWS EKS 〜DMM動画のPoCレポート〜 - DMM inside

    |DMM inside

    TiDB on AWS EKS 〜DMM動画のPoCレポート〜 - DMM inside
    akaimo3
    akaimo3 2021/12/13
  • Spectre の脅威とウェブサイトが設定すべきヘッダーについて

    長い記事なので先に結論を書きます。 Spectre の登場で、ウェブサイトに必要とされるセキュリティ要件は増えました。具体的に必要な対策は下記の通りです。 すべてのリソースは Cross-Origin-Resource-Policy ヘッダーを使って cross-origin なドキュメントへの読み込みを制御する。 HTML ドキュメントには X-Frame-Options ヘッダーもしくは Content-Security-Policy (CSP) ヘッダーの frame-ancestors ディレクティブを追加して、cross-origin なページへの iframe による埋め込みを制御する。 HTML ドキュメントには Cross-Origin-Opener-Policy ヘッダーを追加して popup ウィンドウとして開かれた場合の cross-origin なページとのコミュニ

    Spectre の脅威とウェブサイトが設定すべきヘッダーについて
  • QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog

    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 前回は、QUICパケットとフレームの構造について説明しました。準備が整いましたので、今回はコネクションの確立時に実行されるハンドシェイクについて説明します。 トランスポート層を実装する場合、コネクションを確立する部分を作らないと何も通信できませんが、QUICはこのハンドシェイクの実装が結構難しく、実装者泣かせの仕様となっています。 TLS 1.3のハンドシェイク まずTCP上のTLS 1.3のハンドシェイクを以下の図を使って説明します。 最初にTCPのコネクションを張る必要があるので、お馴染みの TCP 3-way ハンドシェイクから始まります。 次にクライアントは、(楕円曲線)Diffie-Hellmanの系統を用いて、使い捨ての公

    QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog
    akaimo3
    akaimo3 2021/10/12
  • QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog

    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 前回の説明では、「Initial パケット」や「Version Negotiation パケット」といった用語を未定義で使いました。今回は、こういった「パケット」や「フレーム」が、どのような構造を持っているかについて説明します。 古典的なパケット IP、UDP、およびTCPでデータをやり取りする基単位は、すべて「ヘッダ+ペイロード」という構造を持っています。このヘッダ+ペイロードという単位は、それぞれ以下のように呼ぶのが慣習です。 IP – パケット UDP – データグラム TCP – セグメント すべてパケットと呼んでも間違いではありません。UDPの場合、IPペイロードが「UDPデータグラム(UDPヘッダ+UDPペイロード)」に

    QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog
    akaimo3
    akaimo3 2021/10/12
  • QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog

    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 QUICへの誘導 前回のブログで、ブラウザが HTTP/3 (HTTP over QUIC) に対応したサーバにアクセスしたときに、最初は HTTP/2 を使い、2回目の通信からHTTP/3を使うようになると説明しました。今回は、この過程でクライアントとサーバが何を折衝しているか、以下の順で解説します。 TLSのバージョン HTTPのバージョン HTTP/2からHTTP/3への誘導 QUICのバージョン TLSのバージョン あるURLで指定されたサーバにクライアントがアクセスすることを考えます。URLは、httpsで始まっていたとしましょう。つまり、TLSの中でHTTPが使われます。現在推奨されているTLSのバージョンは、1.2と1.

    QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog
    akaimo3
    akaimo3 2021/10/12
  • QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog

    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 不定期連載を始めます IIJ-II 技術研究所 技術開発室の山です。私はプログラミング言語HaskellでHTTP/2とTLS 1.3を実装した後、もっぱらQUICを実装することに時間を費やしてきました。 ご存知の方もいらっしゃると思いますが、今年の5月にQUICの仕様がRFC9000として公開されました。このRFCは実によく書かれているので、読みこなせばQUICの全容が掴めるでしょう。 しかし仕様は膨大ですし、実際に実装してみて初めて腑に落ちることもあります。そこでこの機会に、実際にQUICを実装した経験者目線で、QUICの解説をしていきたいと思います。なんとなくTCP/IPを分かっている方が、ある程度QUICの理解ができることを

    QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog
    akaimo3
    akaimo3 2021/10/12
  • NoSQLデータモデリング技法 · GitHub

    NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック

    NoSQLデータモデリング技法 · GitHub