並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 700件

新着順 人気順

gRPCの検索結果41 - 80 件 / 700件

  • gRPCのGo実装の新星、Connect | フューチャー技術ブログ

    サービス間通信とIDL(インタフェース記述言語)連載の2日目のエントリーです。 本当はGraphQLネイティブなデータベースの紹介をしようとしたのですが、紹介しようとしていたものがまだベータでクライアントライブラリが公開されていない(空っぽのリポジトリしかない)みたいな感じで試せなかったので、急遽2022/6/1に公開されたばかりのgRPC関連のライブラリのConnectを紹介することにしました。 Connectの開発元が公開したブログは次のサイトにあります。 Buf | Connect: A better gRPC 公式ドキュメントはこちらです。 Introduction | Connect なお、gRPCについての詳細はこのエントリーでは紹介しません。ちょうど、H.SakiさんがgRPCの詳しい紹介の記事を書いてくれているので、ぜひ、みなさんこちらを参照ください。 作ってわかる! はじ

    • RustのgRPCがGoよりも遅い?

      夏のある日、GoのgRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Goはgrpc-go、Rustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

        RustのgRPCがGoよりも遅い?
      • Packaging Generated Code for gRPC Services

        Blog Introducing BugSnag Real User Monitoring for Flutter & React Native Applications

          Packaging Generated Code for gRPC Services
        • REST APIの設計で消耗している感じたときのgRPC入門 - Qiita

          REST APIによる設計 最近のシステムは様々なデバイスやスケーラビリティを重視するため、各システムを分割し軽量なAPIで連携するマイクロサービス的なアーキテクチャスタイルが増えてきています。 そして、そのAPI連携で広く採用されているのが、REST APIです。 しかし、こうした設計を行っていくには、適切に考慮、選択しなければならないことも多くあります。 URL、パラメータ、エラーなどの設計 各言語ごとのライブラリや、サーバ、クライアントの選定、設計 認証、認可 ドキュメント管理 ユニットテスト、インテグレーションテスト、モック、Consumer-Driven Contracts 開発用ツール 絶対的スタンダードがない状況下で、こういった問題はシステムやメンバーが増えるにつれ複雑化していき、設計や管理、その仕組み作りに時間を取られ、本来の目的となるべき機能開発の時間を失っていくことにな

            REST APIの設計で消耗している感じたときのgRPC入門 - Qiita
          • gRPC-Web is going GA

            On behalf of the Cloud Native Computing Foundation, I’m excited to announce the GA release of gRPC-Web, a JavaScript client library that enables web apps to communicate directly with backend gRPC services, without requiring an HTTP server to act as an intermediary. This means that you now easily build truly end-to-end gRPC application architectures by defining your client- and server-side data typ

              gRPC-Web is going GA
            • Amazon EKSでgRPCサーバを運用する - 一休.com Developers Blog

              以前の記事でも紹介した通り、一休では、gRPCを使ったサービスを導入し始めています。 user-first.ikyu.co.jp この記事では、このサービスをAmazon EKSで提供するための設計や気をつけたポイントについて紹介します。 背景 一休では、ウェブアプリケーションの実行環境としてAWS Elastic Beanstalkを採用しています。 そして、この4月からElastic BeanstalkをAmazon EKSへ移行するプロジェクトを進めています。 このgRPCサービスもElastic Beanstalkで運用をしていましたが、以下の問題を抱えていました。 適切にロードバランシングできない。 Elastic BeanstalkでgRPCサービスを運用しようとするとNetwork Load Balancer(NLB)を使うことになります。NLBはレイヤ4のロードバランサです

                Amazon EKSでgRPCサーバを運用する - 一休.com Developers Blog
              • gRPCって何? - Qiita

                この記事は、gRPC を調べたことを走り書きしたレベルものです。実際の利用経験に基づいた情報でもなければ、しっかり時間をかけて裏付けをとった情報でもないため、誤った理解が含まれている可能性がある点にご注意ください。ツッコミや編集リクエストは歓迎します。 概要 gRPC は、RPC (Remote Procedure Call) を実現するためにGoogleが開発したプロトコルの1つです。Protocol Buffers を使ってデータをシリアライズし、高速な通信を実現できる点が特長です。 gRPCでは、IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .proto ファイルとして定義し、そこからサーバー側&クライアント側に必要なソースコードのひな形を生成します。言語に依存しないIDLで先にインタフェースを定義することで、様々なプログラミング言語の実装を生成できるというメリッ

                  gRPCって何? - Qiita
                • gRPC Streaming によるスケーラブルな常時接続型 API の構築

                  常時接続型 API を構築するとき、 Go + gRPC Streaming はパフォーマンスに優れる有力な選択肢となります。しかしながら常時接続ゆえ、通常通信時間が短時間で終了する Web API とは異なる注意点があります。そこで本セッションでは、gRPC Streaming の紹介にはじまり、注意点やハマりポイントをご紹介します。また、GKE 上でオートスケールするオートモーティブ移動体情報配信システムを構築した事例をご紹介します。

                    gRPC Streaming によるスケーラブルな常時接続型 API の構築
                  • gRPCと手動テスト | メルカリエンジニアリング

                    この記事はMERPAY TECH OPENNESS MONTHの5日目の記事です。 merpayでNFC決済のmicroservice (nfc-service) を開発担当している @Hiraku です。メルペイのバックエンドシステムは、各microserviceが主にgRPCを主な通信プロトコルとして用意しています。当然、各チームはgRPCサーバーを開発しています。この記事では、ちょっとした開発の日常をお見せしたいと思います。 とあるエンドポイントの場合 そもそもgRPCサーバーだけで、iOS/Androidのバックエンドができるのか?と思う方がいるかもしれません。 下図は、典型的なリクエスト経路を示しています。 merpay-gateway … 主にプロトコルの変換を担う merpay-api … BFF(Backend for Frontend)的な役割を担い、他のmicroser

                      gRPCと手動テスト | メルカリエンジニアリング
                    • Big Sky :: gRPC のサービスが簡単に作れるライブラリ「lile」

                      gRPC は型の強い RPC を色々な言語を使って実装できる仕組みとライブラリです。 Big Sky :: Protocol Buffers を利用した RPC、gRPC を golang から試してみた。 grpc/grpc · GitHub gRPC - An RPC library and framework https://github.com/grpc/grpc gRPC は Google が開... https://mattn.kaoriya.net/software/lang/go/20150227144125.htm とても便利なのですが幾分手数が多いのが難点で、ちょっとしたサービスを gRPC で実装したいと思っていてもそう簡単に作る事が出来ませんでした。 ところが今回ご紹介する lile を使うと、とても簡単に gRPC を使った golang の実装を作れてしまいます

                        Big Sky :: gRPC のサービスが簡単に作れるライブラリ「lile」
                      • モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す

                        まとめ 相性バツグンといわれる、モバイル x gRPCは思ったよりずっと簡単に実装可能 複数言語間でもProtocol Buffersの恩恵により型変換を意識することなくスムーズに開発が進められる。 メソッド、引数の型、引数の返り値の型が自動生成されるのでとても良い RESTful APIにおけるheaderを、表現力の高いMetaDataとして利用し、認証認可等にも使えそう Streamをうまく使いこなせば、ユーザー体験をめっちゃ高くできそう。チャットやゲームなどの双方向通信が比較的楽に実装できるかも どんな人向きでない記事? NestJSの詳しい実装を知りたい方 Bidirectional streaming, Client streamの詳細実装を知りたい方 モバイル向け通信技術の本格的な選択肢、gRPCを実際に試してみたい 現在、私の働いているMinediaで開発しているサービス群

                          モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す
                        • いまさら聞けないgRPCの基礎 - Qiita

                          はじめに この記事では、gRPCのgもRPCも何もわからないという方でもgRPCを理解できようにと思い書きました。できる限り丁寧な解説を目指したいと思うので、ここら辺がわかりにくかったなどがあればぜひコメントで教えてください! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 gRPCの概要 gRPCはオープンソースのRPCフレームワーク(後述)です。Googleによって開発され、2015年にオープンソースとして公開されました。gRPCは一般的にマイクロサービス間での通信や、モバイルアプリとバックエンドサーバー間の通信で用いられます。 マイクロサービスとは、機能ごとにサービスとして独立させることを指します。マイクロサービス

                            いまさら聞けないgRPCの基礎 - Qiita
                          • gRPCが遅すぎる?eBPFでカーネル内で動かす!

                            gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日本語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

                              gRPCが遅すぎる?eBPFでカーネル内で動かす!
                            • DroidKaigi 2018 gRPC/Protobuf

                              RPC > Remote procedure call is the synchronous language-level transfer of control between programs in disjoint address spaces whose primary communication medium is a narrow channel. ଞͷΞυϨεۭؒʢe.g. ωοτϫʔΫ্ͷαʔόʣʹ͋ΔॲཧΛ ࣮ߦ͢Δ͜ͱɻ Bruce Jay Nelson. 1981. Remote Procedure Call. Ph.D. Dissertation. Carnegie Mellon Univ., Pittsburgh, PA, USA. AAI8204168. https://dl.acm.org/citation.cfm?id=910306

                                DroidKaigi 2018 gRPC/Protobuf
                              • grpc-gatewayを使用したマイクロサービスの管理画面 - クラウドワークス エンジニアブログ

                                SREチームの那須です。 3/7に開催されたピクスタさんの 大規模プラットフォームを支えるエンジニアの技術と工夫〜Web現場Meetup #3〜 で登壇させていただきました。そのときにお話ししたgrpc-gatewayを使った管理画面の構築について改めてまとめてみます CrowdWorksのマイクロサービス化の試み CrowdWorksでは現在マイクロサービス化を進めています。 CrowdWorksはモノリシックなアプリケーションです。様々な機能が一つのアプリケーションに同居し、サービスを提供しています。 モノリシックなアプリケーションの問題点としては一つの問題が全体に波及してしまうということがあります。メッセージの機能を改修したところ問題が発生しアプリケーション全体が不安定になるということもありえます。 そこでCrowdWorksでは最初の試みとして、新しく作るサービスをCrowdWor

                                  grpc-gatewayを使用したマイクロサービスの管理画面 - クラウドワークス エンジニアブログ
                                • GoとDockerでLet's try gRPC - LiBz Tech Blog

                                  はじめに gRPCとは gRPCの特徴 gRPCが解決するマイクロサービスの課題 gRPCの課題 Let's try gRPC 1. 準備 2. protoファイルの作成 3. server側の処理 4. client側(リクエスト)の処理 5. buildして実行 最後に はじめに こんにちは!エンジニアの渡邊です。早いもので、11月でLiBに入社して丸1年がたちました。 このブログへの投稿も4回目になります。 前回の とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 では、jetsの開発者であるtongueroo氏や、Rubyの生みの親まつもとゆきひろ氏をはじめ、多くの方にシェアをしていただき大変励みになりました!みなさんありがとうございました。 今回はGoogleが開発したRPCフレームワークgRPCについて書こうと思います。 g

                                    GoとDockerでLet's try gRPC - LiBz Tech Blog
                                  • gRPC-JSON proxy - 世界線航跡蔵

                                    grpc-gateway という gRPC からJSON APIへの変換プロキシ生成機を書いた。 これを使えばシステム内部ののmicroservicesはgRPCで通信しつつ公開APIはJSON APIで提供する、みたいなことが簡単になる。 なお、gRPCそのものについては mattnさんの記事 が参考になる。 背景 gRPCの良い点はいくつもある。 データはデフォルトでprotocol buffersで直列化される。ベストではないにせよ十分にコンパクト且つ高速だし、サイズで言えばJSONとは比べるべくもない。 簡単に複数の言語でサーバーのテンプレートやクライアントを生成できる。通信の詳細はgRPCにまかせて開発者はサーバーロジックの実装に注力できる。 design by Googleという安心感。 gRPCの素晴らしさは認めるものの、一方では欠点もある。まず、クライアントライブラリの多く

                                      gRPC-JSON proxy - 世界線航跡蔵
                                    • .NET Core 3.0 で gRPC がシームレスに統合されて素晴らしい件 - ecbeing labs(イーシービーイング・ラボ)

                                      こんにちは、アーキテクトの小林です。 .NET Core 3.0 がついに GA になりました。 .NET Core 3.0 では gRPC の機能サポートが組み込まれています。 今回は .NET Core 3.0 で簡単に gRPC の開発をスタートすることができることを知っていただいきたいと思いまして、gRPC サーバーとクライアントの疎通確認ができるまでの手順を記事にしてみました。 そもそも gRPC とは何? gRPC は、Google によって開発されたスキーマファーストの RPC(リモートプロシージャーコール)フレームワークで、マイクロサービスアーキテクチャにおけるサービス間通信において有力な選択肢として注目されている技術です。 マイクロサービスアーキテクチャでは、大きなシステムを細かいサービスに分割し、各サービスを独立させ、疎結合に保つことが重視されます。細かいサービスに分割

                                        .NET Core 3.0 で gRPC がシームレスに統合されて素晴らしい件 - ecbeing labs(イーシービーイング・ラボ)
                                      • gRPCに関する初のカンファレンス、gRPC ConfがGoogle本社で開催

                                        マイクロサービスのベースとなるRPCフレームワークのgRPCに関するカンファレンスが、Google本社で開催された。 クラウドネイティブなアプリケーションでは、アプリケーション全体を小さなプロセスに分割してステートレスなコンテナの集合体として実装することが最近のトレンドだ。その際の「プロセス間の通信をどうするのか?」については、REST APIというのが大凡の解答だったように思える。 それに対して、Googleが社内で使用していたStubbyの経験を活かして、オープンソースとして公開したのがgRPCだ。2016年にGoogleがgRPC 1.0を公開し、CNCFでのインキュベーションプロジェクトとなったのが約半年後の2017年1月、その後2019年3月に至るまですでに多くのユースケースで利用が拡がっている。そのgRPCに関する初めてのカンファレンスgRPC Conf 2019が、Googl

                                          gRPCに関する初のカンファレンス、gRPC ConfがGoogle本社で開催
                                        • RustにおけるfutureとgRPC | POSTD

                                          (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) 本記事は、Tang Liu(tl@pingcap.com)が「Bay Area Rust Meetup August 2017」で行った講演内容をまとめたものです。 動画はこちらからご覧いただけます 。 講演者の自己紹介 非同期プログラミング なぜ同期にしないのか なぜ非同期にするのか コールバック地獄 コルーチンで簡単に書く もう1つの方法、future Rustにおけるfuture Futures コンビネータ 同期 Stream Sink Task gRPC なぜgRPCを使うのか HTTP/2 gRPCのベースはHTTP/2 futureとgRPCを組み合わせる C gRPCのキーワード 疑似フロー 単一通信 クライアントストリーミング サーバストリーミング 双方向ストリーミング 単一通信fu

                                            RustにおけるfutureとgRPC | POSTD
                                          • gRPC WebがGAになったのでそろそろ理解してみる

                                            2018/10/23に「gRPC-Web is Generally Available」というタイトルでgRPC-WebがGAになった事がgrpc公式ブログで発表されました。 https://grpc.io/blog/grpc-web-ga 翌日にCNCFのブログでも「gRPC-Web is going GA」というタイトルで同等の内容が公開されました。 https://www.cncf.io/blog/2018/10/24/grpc-web-is-going-ga/ 今までブラウザからgrpcが使えるgRPC-Webの存在は知っていましたが、ちまたで実際に利用しているというのもあまり聞かなかった為ほとんど気にしていませんでした。 この度GAになったのをきっかけにエコシステムができあがってくれば間違いなくパラダイムシフトになると思いちゃんと検証してみました。 この記事で書く事 gRPC-W

                                              gRPC WebがGAになったのでそろそろ理解してみる
                                            • コピペでできるGoでgRPCサーバ立ててRailsからアクセスする方法 - SMARTCAMP Engineer Blog

                                              最近社内でElixirをひっそり布教しようとしている、瀧川です。 弊社の一部プロダクトでは、gRPCでGolangアプリケーションを呼び出す構成をとっています。 それを説明するためにハンズオンをしたので、その一連の流れをこちらにもつらつら書いていきます! 内容は、以下の画像みたいなのを作っていこうと思います。 必要なコードは記事中に載せるのでコピペで動くはずなので、ぜひ実際にやってみてください! そもそもgRPCって? 実践 事前にインストールしてください リポジトリを作成しましょう さっそくProtocol Buffersで通信を定義しましょう GolangのgRPCサーバ作りましょう 定義からGolangのソースコードを生成 生成したGolangのインタフェースを実装したサーバを作成 動作確認 Railsを実装しましょう gRPC定義からRubyのソースコードを生成 呼び出すコードをC

                                                コピペでできるGoでgRPCサーバ立ててRailsからアクセスする方法 - SMARTCAMP Engineer Blog
                                              • API設計:REST、gRPC、OpenAPI - 気まぐれ開発日記

                                                googleからタイトルについて書かれた記事が出たので読んでいた cloud.google.com これらについて自分でもなんとなく考えていたことがあったけれど良い機会なのでまとめておく 記事での注目ポイント 冒頭より引用。 私としては、HTTP を使用する API のビルドには、重要かつ特徴のあるアプローチが 3 つあると考えています。次のようなアプローチです。 1. REST 2. gRPC(および Apache Thrift など) 3. OpenAPI(およびその競合製品) なるほど、と思うかもしれないが、読み進めていくとRESTについてはこう書かれていた。 このスタイルの API の特徴的な性質は、クライアントが他の情報から URL を構築せず、サーバーから渡された URL をそのまま使用することです 何の話かと思ったけれど、REST APIにはLv3までありこの記事ではLv3の

                                                  API設計:REST、gRPC、OpenAPI - 気まぐれ開発日記
                                                • マイクロサービスバックエンドAPIのためのRESTとgRPC

                                                  1. The document discusses RESTful APIs and gRPC, comparing their characteristics and use cases. 2. RESTful APIs typically use HTTP and JSON to access resources via URLs while gRPC uses protocol buffers and HTTP/2 for efficient streaming and RPC. 3. gRPC is better suited for microservices and mobile apps due to its ability to handle streaming and performance, while REST is more widely used due to i

                                                    マイクロサービスバックエンドAPIのためのRESTとgRPC
                                                  • 新しいオープン ソース HTTP/2 RPC フレームワーク、gRPC のご紹介

                                                    .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

                                                      新しいオープン ソース HTTP/2 RPC フレームワーク、gRPC のご紹介
                                                    • Better gRPC な Connect に乗り換える - Go言語編

                                                      デジタル認知行動療法アプリ Awarefy は、2022年4月からバックエンドシステムを Go + gRPC / Protocol Buffers を用いて開発・運用しています。現在進行中の Web アプリ開発のために、connect-go への切り替えが事実上必要になったため、grpc-go から connect-go へのマイグレーションを実行しました。 Connect とはそもそも Connect とはなにかですが、Better gRPC と理解するのがよいでしょう。 Getting started | ConnectConnect is a slim library for building browser- and gRPC-compatible HTTP APIs.ConnectConnect is a slim library for building browser- an

                                                        Better gRPC な Connect に乗り換える - Go言語編
                                                      • GitHub - GoogleCloudPlatform/microservices-demo: Sample cloud-first application with 10 microservices showcasing Kubernetes, Istio, and gRPC.

                                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                          GitHub - GoogleCloudPlatform/microservices-demo: Sample cloud-first application with 10 microservices showcasing Kubernetes, Istio, and gRPC.
                                                        • Protocol BuffersでgRPCとGraphQL両対応のコードを生成するプラグイン書いた - blog::wnotes.net

                                                          gRPC、あるいはGraphQL 昨今のAPI開発にgRPC、またはGraphQLを採用するケースは増えてきていて、ドメインロジックをgRPCで実装して、フロントエンド(BFF)はGraphQL経由のHTTP一本で取得するのはベストプラクティスの一つだと思っています。 とはいえ人的リソースや管理の問題から、ProtobufとGraphQLスキーマを両方メンテナンスしていくのはとてもつらくて、 他のエントリでも結果としてどちらかに寄せました、というケースをよく目にしました。 実際自分もやってはみたものの、両方のメンテナンスをしていくのは相当辛くて、Protobufを直してgRPCのI/Fを変更、合わせてGraphQLのSchemaにも手を入れてフロントに渡して…というのは管理コストに見合わないな、ってことで諦めました(今は grpc/grpc-web 、または grpc-ecosystem/

                                                          • ZOZOSUITからZOZOMATへ - Envoy gRPC-JSON transcoderによる部分的モダン化の実践 - ZOZO TECH BLOG

                                                            はじめに こんにちは、計測プラットフォーム部バックエンドチームの高木(@TAKAyuki_atkwsk)です。ZOZOMATシステムではAPIのリバースプロキシとしてEnvoyおよび付随するgRPC-JSON transcoderを導入しています。これらによって依存するサービスにレガシーなサーバーが存在していても部分的にgRPCを採用しモダンなアーキテクチャを広めようとしていることについて紹介します。 なお、本記事は以下記事のシリーズとなっておりますので合わせてご覧いただけるとZOZOSUITやZOZOMATなど計測プラットフォーム部の取り組みについてより深くご理解頂けるかと思います。 techblog.zozo.com ZOZOMATシステムとEnvoyについて ZOZOMATシステム構成におけるEnvoyの役割について簡単に説明しておきます。クライアント(ZOZOTOWNアプリ等)とZ

                                                              ZOZOSUITからZOZOMATへ - Envoy gRPC-JSON transcoderによる部分的モダン化の実践 - ZOZO TECH BLOG
                                                            • ZOZOMATにおけるEKSやgRPCを用いたシステム構成と課題解決 - ZOZO TECH BLOG

                                                              ZOZOテクノロジーズSRE部の市橋です。普段は主にAWSを用いて複数プロダクトのシステム構築、運用に携わっています。今回は2020年2月にリリースされたZOZOMATについて、システム構成と開発時に直面した課題、その課題を解決するために工夫した点について紹介します。 ZOZOMATではEKSやgRPCを新規に採用しており、これによって仕様の変更に強くなる、通信のオーバーヘッドを削減できるなど様々なメリットを享受できました。しかし導入時に一筋縄ではいかないことがあったため、今回苦戦した点についてご紹介できればと思います。 ZOZOMATとは お客様の足を3Dで計測するために開発された計測用マットです。ZOZOMATでの計測情報をもとに、靴の推奨サイズを参照するなどのサービスをご利用いただくことが可能です。ご興味のある方はこちらをご確認ください。 ZOZOMATのシステム構成 システムの全体

                                                                ZOZOMATにおけるEKSやgRPCを用いたシステム構成と課題解決 - ZOZO TECH BLOG
                                                              • GoogleがオープンソースのRPCフレームワーク「gRPC 1.0」を発表 | OSDN Magazine

                                                                Googleは8月23日、オープンソースのRPC(リモートプロシージャコール)フレームワークの最新版「gRPC 1.0」公開を発表した。HTTP/2に対応し、大規模な分散システム向けの機能を備えるもので、運用環境で利用できるとしている。 gRPCはGoogleが2015年に発表したRPC(リモートプロシージャコール)フレームワーク。HTTP/2を標準とし、クラウド、マイクロサービスなど最新の利用に適したサーバー間通信プロトコルを目指す。それまで「Stubby」として社内開発、利用されていたものをオープンソースで公開した。同社ではgRPCを利用して毎秒100億単位のリクエストを処理しているという。 双方向ストリーミング、フロー制御、ヘッダー圧縮、多重リクエストなどの機能を持つ。フレームワーク内で複雑な処理を行うため、分散システムでの接続、運用、デバッグをローカルでの関数呼び出しのように容易に

                                                                  GoogleがオープンソースのRPCフレームワーク「gRPC 1.0」を発表 | OSDN Magazine
                                                                • gRPC-Web + Typescript + GoでHelloWorld - Qiita

                                                                  gRPC-Webが正式リリースとのことなので、色々と試してみました。 grpc-web/net/grpc/gateway/examples/helloworld at master · grpc/grpc-web · GitHub 上記のように公式のサンプルもあるのですが、Javascript中心で書かれているので、typescript+goで試してみます。 また、簡単に修正しながら試せる環境となるように整備してあります。 ソース一式はGitHubにおいてます。 サンプルの説明 概要 gRPC-Webを使用することで、プロトコル定義ファイルから自動生成したコードを使用してgRPCサーバとの通信ができるようになります。 REST APIでブリッジして通信する場合と比べ、統一的なフォーマットでAPIを記述できることがメリットです。 ただし、gRPC-WebのgRPCサーバのプロトコルが違うため

                                                                    gRPC-Web + Typescript + GoでHelloWorld - Qiita
                                                                  • ネットワークスイッチをプログラマブルでgRPC対応にする「Stratum」をONFが発表。ホワイトボックススイッチのリファレンス実装に、Googleがオープンソース提供

                                                                    Open Networking Foundation(ONF)は、ネットワークスイッチをソフトウェアで定義するオープンソースソフトウェアの開発プロジェクト「Stratum」プロジェクトを発表しました。 Stratumはおもに「P4」「gRPC Network Management Interface」「gRPC Network Operations Interface」の3つのオープンソースソフトウェアから構成されるプロジェクトです。現在公開されているバージョンは、Googleが本番ネットワークで用いているネットワーク基盤の一部をオープンソース化したものだと説明されています。 Stratumはホワイトボックススイッチのリファレンス実装を目論む Stratumがターゲットとするのは「ホワイトボックススイッチ」と呼ばれる、ブロードコムなどに代表される市販のネットワーク処理プロセッサを搭載しつつ

                                                                      ネットワークスイッチをプログラマブルでgRPC対応にする「Stratum」をONFが発表。ホワイトボックススイッチのリファレンス実装に、Googleがオープンソース提供
                                                                    • EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散 – PSYENCE:MEDIA

                                                                      自己紹介 こんにちは。今年の7月からリクルートマーケティングパートナーズに入社した木村 勇太です。 私は現在開発支援G 1)エンジニアをサポートするエンジニア~RMP内製開発の強さ・魅力~ という。インフラや自動化など内製エンジニアへの開発支援を行うグループに属しています。 はじめに 弊社サービスの スタディサプリ ENGLISH ではアーキテクチャにMicroservices、gRPCを利用してサーバーサイドを構築しています。スタディサプリ ENGLISH のMicroservices化についての詳細は以下の記事にてご紹介しています。 スタディサプリENGLISH 大規模改修の裏側 – PSYENCE:MEDIA 今回、gRPCの負荷分散にEnvoyとAmazon ECS Service Discoveryを利用した構成を導入したので紹介します。 gRPCとは? gRPCとはGoogle

                                                                        EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散 – PSYENCE:MEDIA
                                                                      • gRPC を使って1万接続を達成するまでの話

                                                                        先日、Wata で1万接続を達成した という記事を書きましたが、gRPC で1万接続するにあたって引っかかったところを纏めました。 Wata サーバは簡単に言えば PubSub サーバです。今回達成したのは Publisher が 1 で Subscriber が 10,000 の配信です。Wata の詳細については Wata プロジェクトについて を参照してください。 gRPC C++ の非同期 API をストリーミングで扱う方法が分からない本番での Wata クライアントは Unity のアプリケーションになるわけですが、テスト時に1万の Unity アプリケーションを立ち上げるのはかなり辛いものがあります。 なので gRPC で通信するテスト用の Wata クライアントを書くわけですが、少ない台数でやるためには、1台で大量の接続を捌く必要があります。 1スレッド1クライアントだと死ぬ

                                                                          gRPC を使って1万接続を達成するまでの話
                                                                        • Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例

                                                                          秒間16万リクエストをさばくオンライン広告入札システムにおける、gRPCの活用についてお話しします。 オンライン広告入札システムではRTB(リアルタイムビッディング)という仕組みで広告入札が行われ、遅くとも100ミリ秒のレイテンシが求められます。広告入札における処理の中で、最適な広告を配信する一部のロジックについて、gRPCを用いて実現しました。 gRPCはProtocol Buffers、HTTP/2を用いたRPCフレームワークです。そのgRPCを利用するに至った背景および、活用結果について共有したいと考えています。

                                                                            Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
                                                                          • GitHub - fullstorydev/grpcurl: Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers

                                                                            grpcurl is a command-line tool that lets you interact with gRPC servers. It's basically curl for gRPC servers. The main purpose for this tool is to invoke RPC methods on a gRPC server from the command-line. gRPC servers use a binary encoding on the wire (protocol buffers, or "protobufs" for short). So they are basically impossible to interact with using regular curl (and older versions of curl tha

                                                                              GitHub - fullstorydev/grpcurl: Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
                                                                            • 新しいRPCフレームワーク、gRPCをGoで試してみる。

                                                                              みなさん、今年の2月末にGoogleが発表したgRPCをご存知でしょうか?gRPCとは、こちらも今年の5月にRFCとして公開されたばかりのHTTP/2を標準でサポートした新しいRPCフレームワークであり、効率的で拡張性の高いAPIや最近流行のマイクロサービスの作成をサポートします。本記事では、Goでのサンプルアプリケーションの作成を通してこのgRPCの通信を試してみようと思います。 gRPCの概要 図1.gRPCの全体像(http://www.grpc.io/docs/より転載) gRPCのサーバーとクライアントはお互いに様々な環境(Google内部のサーバーから、各自のデスクトップ環境まで)で通信でき、gRPCがサポートしている言語(C++, Java, Go, Python, Ruby, Node.js, Android Java, C#, Objective-C, PHP)で書くこと

                                                                                新しいRPCフレームワーク、gRPCをGoで試してみる。
                                                                              • Go言語でのgRPCコード生成(2020年10月以降版)|Dentsu Digital Tech Blog

                                                                                でご紹介したGo言語でのgRPCコード生成の状況の続報(2020年末)をお伝えしたいと思います。 概要としては前回の記事に記載した通りで ・Protocol Buffer側のレポジトリは golang/protobuf から protocolbuffers/protobuf-go に移行 ・gPRC側のレポジトリのgrpc/grpc-goに新たにprotoc-gen-go-grpcコマンドができた なのですが、以下が追加になりました。 ・gPRC用のコードを生成するには Protocol Buffersのメッセージやシリアライズに protocolbuffers/protobuf-go のprotoc-gen-go、gPRCのサーバ/クライアントに grpc/grpc-goのprotoc-gen-go-grpc、と両方を使うことになった 以降で詳細をご紹介します。 経緯2020年3月のpr

                                                                                  Go言語でのgRPCコード生成(2020年10月以降版)|Dentsu Digital Tech Blog
                                                                                • grapi: Bulding JSON API server with grpc-gateway for microservices

                                                                                  presented at Go Conference 2018 Spring https://gocon.connpass.com/event/82515/ grapi: https://github.com/izumin5210/grapi grpc-gateway: https://github.com/grpc-ecosystem/grpc-gateway

                                                                                    grapi: Bulding JSON API server with grpc-gateway for microservices