タグ

ブックマーク / medium.com (36)

  • KubernetesのアーキテクチャでHTTP2のトラフィックが偏る問題を再現する

    KubernetesのアーキテクチャでHTTP2のトラフィックが偏る問題を再現するHTTP2 は L7 で動作するプロトコルなので、L4 ロードバランサ (L4LB) をアーキテクチャ上で使っている場合は、特定のPodにトラフィックが偏ってしまうことが知られています。HTTP2 は1つの TCP コネクションの中にHTTPリクエストを多重化して送ることでオーバーヘッドを削減出来ますが、逆に L4 LB だけでは、1つの TCP コネクションを使い続けてしまうので、結果としてリクエストが偏ります。 ※ GCPは、L4 ロードバランサはGCPでは Network Load Balancing として提供しています。(https://cloud.google.com/load-balancing/docs/network/) 実際にどの程度偏るのか?自分の環境で検証をしてみたい方もいると思います

    KubernetesのアーキテクチャでHTTP2のトラフィックが偏る問題を再現する
    castaneai
    castaneai 2022/02/10
  • CloudEventsの紹介、そしてServerlessな世界はこれからどこへ向かうのか

    5月の頭に開催されたCloudNativeCon & KubeConにてCloudEventsが発表されました。これはこれからのイベントドリブンなアプリケーション開発を助けるための重要な仕様であり、’サーバーレス’な世界はこれから次のフェーズに突入したといえるでしょう。 CloudEventsのスコープ自体はシンプルです。サーバーレスアプリケーションを開発する上で、イベントをより簡単に処理できるようにするためのメタデータのセットが含まれています。 例えば、AWSのS3にオブジェクトが作成された時のCloudEventは以下のようなJSONで表現されます。 そしてCFCN内で議論が進められており、Google, Microsoft, IBM, VMware, SAP, Oracle, Huawei, Alibaba, Red Hat, Iguazioといった様々なベンダーが参加しています。C

    CloudEventsの紹介、そしてServerlessな世界はこれからどこへ向かうのか
    castaneai
    castaneai 2021/02/07
  • Graceful scaledown of stateful apps in Kubernetes

    castaneai
    castaneai 2020/08/06
    statefulなアプリのPodが落ちた場合、k8s側でデータの移行(drain)はできるのかどうか、検証
  • TCPが遅すぎる?QUICを使おう!

    「それ、QUIC使えないの?」 それがなんであれ、QUICを使うことを主張することで、みんなが「なんか良くわからないけど、TCPを置き換えたほうがいいのかな?」と思うようになるはず。全てのアプリケーションを、TCPの代わりにQUICを使うように修正するとなれば、この先10年間ぐらい、エンジニアみんなの仕事を作ることができます。業界愛ですね。 すでに、SSHやDNSのQUIC対応は始められています。既存のアプリケーションをQUICに対応させる難しさを調査するために、RustでBGP over QUICを実装してみました。 QUICの実装QUICは、TCPと同じく、パケットの再送、輻輳制御など、信頼性のある通信を実現するトランスポートプロトコルです。実装面の大きな違いは、TCPがオペレーティングシステムのプロトコルスタックの一機能として実装されるのに対して、QUICはアプリケーションで実装され

    TCPが遅すぎる?QUICを使おう!
    castaneai
    castaneai 2020/07/14
    “今時は、おしゃれなオフィスを作る代わりに、自社のQUICを開発することで、おしゃれな会社であることをアピールすることができるはずです。”
  • Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】

    🍓 Raspberry Pi 4 が買えるようになりました2019年11月、待望の Raspberry Pi 4 技適取得版が発売されました。H.264 ハードウェアエンコーダを搭載した、リッチなシングルボードコンピュータです。2020年5月28日には 8GB メモリ搭載の上位モデルも登場しています。 はたしてこれは何をするためのデバイスなのでしょうか? そうです、録画ですね。もうテレビの録画をするために高価なパソコンを購入する必要はありません。5000円台から入手できるマシンを利用して、安価に録画サーバーを構築することができるようになったのです。 この記事では Raspbery Pi 4 を利用した Mirakurun + EPGStation での録画サーバー構築方法と、ハードウェアエンコーダを利用した録画ファイルのエンコードについて解説を行います。 筆者の⾃宅で運⽤している録画サー

    Raspberry Pi 4 で構築する録画マシン | 空気録学電子版【公式】
    castaneai
    castaneai 2020/06/14
    “特に見るわけでもないテレビのパソコン録画活動を続けて10年以上の月日が経ちました。録画を取り巻く環境は日々進化し続けています”
  • Reducing UDP latency

    Hi! I’m one of Embox RTOS developers, and in this article I’ll tell you about one of the typical problems in the world of embedded systems and how we were solving it. Stating the problemControl and responsibility is a key point for a wide range of embedded systems. On the one hand, sensors and detectors must notify some other devices that some event occurred, on the other hand, other systems shoul

    Reducing UDP latency
    castaneai
    castaneai 2020/03/28
    “chrt --rr 99”
  • Benchmarking with details

    castaneai
    castaneai 2020/02/03
    go benchmarkでヒストグラムとか出すライブラリたち
  • AES Golang Encryption Performance Benchmarks Updated

    castaneai
    castaneai 2019/12/17
    AES-GCMは速い
  • Protobuf definition best practices

    Protocol buffers are a mechanism for sending data through the series of tubes known as the Internet. One common use of them is to define gRPC specifications — essentially a form of remote procedure calls. With gRPC service definitions, you create a “service” that has RPC methods. These RPC methods take a request “message” and return a response “message”. service FooService { rpc GetFoo (GetFooRequ

    castaneai
    castaneai 2019/10/02
  • gRPC and why it can save you development time

    At this point you should have heard about “gRPC” (At least once in the title). In this post, I’ll stress about the benefits of adopting gRPC as a communicating medium between micro-services. First, I’ll try to provide a short brief history of architecture evolution. Second, I’ll stress about using REST (as the medium) and problems that can arise. Third, gRPC kicks in. And I’ll finish with an examp

    gRPC and why it can save you development time
  • Go: Should I Use a Pointer instead of a Copy of my Struct?

    Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.For many Go developers, the systematic use of pointers to share structs instead of the copy itself seems the best option in terms of performance. In order to understand the impact of using a pointer rather than a copy of the struct, we will review two use cases. Intensive allocation of dataLet’s

    Go: Should I Use a Pointer instead of a Copy of my Struct?
    castaneai
    castaneai 2019/05/18
  • Write a Networking Layer in Swift 4 using Alamofire 5 and Codable Part 2: Perform request and parse…

    In the previous part we have created the API Router for our networking layer which is in fact an enum that presents an endpoint. In this part we will see how we will perform the request and parse the JSON response using Swift 4 Codable protocol. CodableLet’s start by defining our data models and conform to Codable protocol. Here is our User model: The simplest way to make a type codable is to decl

    Write a Networking Layer in Swift 4 using Alamofire 5 and Codable Part 2: Perform request and parse…
    castaneai
    castaneai 2019/04/07
  • Kubernetesでステートフルなゲームサーバを動かした思い出

    とあるスマートフォン向けMMORPGプロジェクトで、アプリケーションサーバをほぼすべてGKE(Google Kubernetes Engine)に乗っけて動かしていました。 このゲームは、モバイル向けながら、複数プレイヤ間でそこそこリアルタイム性の高い同時プレイができるものでした。同じフィールドを誰かが歩けば、自分が見ている画面でもほぼ同時にそいつが歩いて横切っていく、同じ敵と皆で一緒に戦えば、誰かが繰り出した攻撃が参加者全員の画面に即同期される、もちろんチャットもできる、そんな具合です。今ではさほど珍しくないのかもしれませんが、PCのオンラインゲームのような機能を搭載した、リアルタイム性の高いモバイルゲームでした。 さて、こうなってくると、オーソドックスなWebサーバのような、HTTP/1でリクエスト/リプライを捌く、というサーバだけでは要件を満たすことができません。 複数プレイヤ間で

    Kubernetesでステートフルなゲームサーバを動かした思い出
    castaneai
    castaneai 2019/04/05
  • Reactの新Context APIとRedux is deadはどう関係するのか?

    先日、reduxのメンテナであるMark EriksonさんがBlogged Answers: Redux — Not Dead Yet! という記事を書いていて「はーなんだろうなー」と流し読みしていた。 そんな折、React 16.3 がリリースされ、Context APIが刷新されたのを見て、「あ、これは確かに向き合い方ちょっと変わるかも」というのを思ったのでまとめてみる。 Redux — Not Dead Yet!を要約する元記事をざっくり要約してみるとこんな感じ Reduxはどこにも行かないよ。メンテしていくし、役割もあるよContext APIによってReduxを置き換えられるパターンはありえるよ。ただその場合、最初からReduxいらなかった可能性あるよGraphQLがReduxを置き換えることはあるかも。でもReduxのほうがハマるパターンもあるよ最近Dan Abramovさん

    Reactの新Context APIとRedux is deadはどう関係するのか?
    castaneai
    castaneai 2019/03/25
    “小規模だけどギリバケツリレーが辛いぐらいな規模のときは、Redux選んでいたのをContextで済ます、みたいなパターンも出てきそう”
  • Go で構造の一部が動的に変わる JSON を扱いたい – Naomichi Agata – Medium

    json.RawMessage を使うと,一部のフィールドを見てから payload の型を決定することができます 問題WebSocket でやりとりするサーバを書いていて,一つのコネクション上でいくつかの種類のコマンドを JSON として受け付けるような仕組みが欲しくなりました. { "action": "increment", "payload": { "value": 3 } }と { "action": "greet", "payload": { "name": "World" "language": "English" } }のように, action フィールドに応じて payload の構造が変わるという構成です. golang でふつうに JSON を受け取って構造体にマップする際には,下のようにします. type Message struct { Action string

    castaneai
    castaneai 2019/03/13
    “json.RawMessage を使うと,一部のフィールドを見てから payload の型を決定することができます”
  • Firestore ローカルエミュレーターを試してみた。

    Firestoreセキュリティルールをテストする方法としてコンソールから使えるシミュレーターが以前からありましたが、今回発表されたのはローカルで実行できるエミュレーターです。 これを使えば、CI上でセキュリティルールのテストをルールをデプロイせずにできます。 試した環境は firebase-tools 6.0.1です。 最初は6.0.0で試してみたのですがどうやら日語環境ではエミュレータがエラーになるようで6.0.1で一旦デフォルトで英語になるように修正されました。 ローカルエミュレーターローカルエミュレーターはFirebase Summit 2018で発表された手元の環境でFirebaseのデータベースであるRealtimeとFirestoreセキュリティルールをテストすることができます。 今までセキュリティルールをテストしようと思うとコンソール上のシミュレーターで手動でテストをす

    Firestore ローカルエミュレーターを試してみた。
    castaneai
    castaneai 2019/02/04
    “これを使えば、CI上でセキュリティルールのテストをルールをデプロイせずにできます。”
  • ドワンゴを退職します

    TL;DRタイトルの通りです。給料上がんねーから 2019/1/31 付でドワンゴ辞めます 文入社に至った経緯ドワンゴには2016新卒で入社して2年10ヶ月在籍していたことになります。入社を決めた経緯としては 就職活動の時期に暇だったので Erlang を触り始めていたデブサミでちょうどドワンゴの中の人が配信基盤を Erlang で書き直してることを話してた研究室の先輩が何人か居た上記のような理由で仕事で Erlangを書くのはけっこう楽しそうだと思ったので入社することを決めました。実際にエントリーシートの志望動機には「Erlang で仕事したい」とだけ書いた記憶があります 入社後は新卒研修を終えてから無事希望していた DMC チームに配属されました。転部等もなく退職まで DMC チームに所属して多少飽きが来る程度には Erlang を書くことができたので入社した目的は達成されたと思いま

    ドワンゴを退職します
    castaneai
    castaneai 2019/01/31
    “いざタイムシフトがユーザに見える形でリリースされて価値を提供したと思っていたら最低限の昇給どころか昇給なしだったので査定結果を聞かされるその場で辞めることを上長に伝えました”
  • Export secret file to Gitlab pipeline

    castaneai
    castaneai 2019/01/17
    まぁこうなるか。。
  • 年収に効く要素とは何か

    Getting Started年収を表現するには様々なものから予想する必要があります。 新卒での就職や、中途での就職にはどのような方法で選ぶのでしょうか。 働き方などもあると思いますが、一つ重要な要素として年収(給与)の大きさがあるかと思います。 DoDaさまという転職サイトには大量の求人が記されており、この説明文から給与を予想することで、どのようなことが年収に影響をおよぼすのか、定量的に確認していきたいと思います アルゴリズムElasticNetを利用します。単語ごとに重みをつけるBag of Wordsを利用しようと思います 精度自体はさほどではないですが、解釈性がよいので、見通しが立てやすく、LassoとRidgeの双方の正則化項を利用します(ゴミみたいな情報が多いので正則化項は重要です) 予想精度自体はGBMやDeep Learningのほうが当然いいのですが、解釈を求めていきます

    年収に効く要素とは何か
    castaneai
    castaneai 2018/11/12
    “これらの単語が含まれていると、高収入が期待できます。(マネージメントが一番強い)”
  • 海外と日本でのソフトウェア開発職の文化を振り返ってみた – reyabe – Medium

    こんにちは。阿部と申します。とある渋谷のIT企業でエンジニアのお仕事をしています。普段はブログを書いていないのですが、お勤め先の社内ブログ用に以前執筆した記事をlean-agile podcastで紹介していただく事になり、当時の記事を今回こちらのプラットフォームでも公開する事にしました。長文になりますが、ご興味を持たれた方は是非ご覧ください。 「海外と日でのソフトウェア開発職の文化を振り返ってみた」という記事のタイトルにしているのですが、この話のモチベーション・裏付けとしてまず自分のバックグラウンドを簡単に説明しておきます。私は名前によらず外国籍・海外育ちで、今までヨーロッパと日それぞれでベンチャー・中小企業・大手の仕事環境を6社ほど転々とし、色々な国のエンジニア仕事をしてきました。 (*ちなみに、日語で記事を書くのはあまり得意でないので、言葉遣いがおかしいところは大目に見ていた

    castaneai
    castaneai 2018/11/06
    “ヨーロッパに比べて日本の技術職においては「名を上げる」事が成功するためのより大きな要素となっているからだと思います”