並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 329件

新着順 人気順

grpcの検索結果41 - 80 件 / 329件

  • 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よりも遅い?
    • GraphQL 導入の反省と再挑戦 / jsconf jp 2021

      GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection

        GraphQL 導入の反省と再挑戦 / jsconf jp 2021
      • プロダクトにNext.jsとGoを採用した理由と背景 - ANDPAD Tech Blog

        はじめに こんにちは!エンジニアの柿森です。新規プロジェクトを担当しております。 ANDPADではマイクロサービス開発を推進しており、新規プロジェクトは個別に技術選定を行い、既存システムとAPI経由で連携します。 また、マイクロサービス基盤はk8sで構築されており、死活監視やログ収集もよしなにやってくれる環境が整っております。 新規プロジェクトを立ち上げで、k8s上に乗せることを前提に技術選定を行いました。 技術選定を行うにあたって検討したポイントと、採用した技術について話していきたいと思います。(あくまで筆者個人の考えです。) 採用した技術スタックの概要 フロントエンドはBlitz-jsを参考にNext.jsを採用。 バックエンドはGo + gRPCを採用。 技術選定の方針 大きな方針としては一般的な考えを踏襲しています。 ドキュメントがしっかりしており、GitHubのStarがそれなり

          プロダクトにNext.jsとGoを採用した理由と背景 - ANDPAD Tech Blog
        • モバイルとの相性最強と言われる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でカーネル内で動かす!
              • 純粋培養GraphQL / Pure GraphQL Architecture

                GraphQL Tokyo #10 Links: p11 https://speakerdeck.com/qsona/graphql-for-service-to-service-communication-protocol p12 https://note.com/qsona/n/nfc73a8…

                  純粋培養GraphQL / Pure GraphQL Architecture
                • 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
                  • ニコニコ動画のコメントサーバーを引っ越した時の話 - dwango on GitHub

                    こんにちは。ニコニコ動画開発の多胡です。 今回は PHPerKaigi2023 向けの記事として、2021年に実施したニコニコ動画のコメントサーバーをお引越しした時のことを書いてみたいと思います。 文中の 5 つのフレーズをチャレンジトークンとしてみました。ぜひ探してみてください! (※ 記事の見出しにの横についている「#」はチャレンジトークンではありません。チャレンジトークンは文中に配置されています。紛らわしくてすみません!) 背景 実はニコニコ動画の #コメントサーバーを引っ越した のはこの時が二度目でした。 一度目は2014年から2016年にかけてのプロジェクトでファイルベースのシステムからの引っ越しでした。このファイルベースのシステムは、ニコニコ動画生誕当時から利用されており、当時のコメント参照や投稿にはすでに耐えられない状態になっていました。 そこで、このファイルベースのシステム

                      ニコニコ動画のコメントサーバーを引っ越した時の話 - dwango on GitHub
                    • モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG

                      こんにちは、プラットフォームチーム所属のまこたすです。 昨今、様々な場で「モジュラーモノリスを導入した」という話を目にするようになってきました。弊社でも昨年からモジュラーモノリスの試験導入を進めており、社内でノウハウが徐々に溜まってきたため、今回 技術ブログ で なぜ導入したのかと知見の共有 をさせていただけたらと思います。 想定読者 モノリスなアプリケーションの分割を検討している Railsへのモジュラーモノリスの導入を検討している 話さないこと チーム体制がどうあるべきかという観点の話 以下アーキテクチャについての詳細 モノリスアーキテクチャ モジュラーアーキテクチャ 背景 今回「モジュラーモノリスを導入した」というタイトルですが、最初に検討・導入に至るまでの背景について触れたいと思います。 hacomonoという組織・サービスの成長 hacomonoというサービスはリリースから現在に

                        モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG
                      • なぜGraphQLを採用するべきなのか、あるいはなぜ採用するべきではないのか 2021冬

                        この記事はGraphQL Advent Calendar 2021の22日目の記事です。 またこれは書籍、出来る100%TypeScript 作って学ぶNext.js + GraphQL + Prismaに掲載していたコラムに加筆修正を行ったものです。 GraphQLは一言でまとめてしまえばDSL(GraphQL query language)による宣言的な記述を介してGraphQLサーバーから柔軟にデータを取得/提供する事が出来る仕組みです。文法は全く異なりますが動作モデルとしてはSQLとRDBの関係に近いかもしれません。なおHTTP上で利用される事がほとんどですが特に決まりがあるわけではありません。 元々はFacebook社(現Meta社)で開発され2012年からfacebook.comで利用されている技術で、その後2015年にはオープンソース化されFacebook以外でも徐々に利用さ

                          なぜGraphQLを採用するべきなのか、あるいはなぜ採用するべきではないのか 2021冬
                        • 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 - 気まぐれ開発日記
                          • Pyroscopeを使ったContinuous Profilingの活用事例

                            LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINE株式会社OA SREチームのhasebeです。 先日、私の担当するプロダクトにてPyroscopeというツールを導入しました。このブログではなぜPyroscopeを導入したのか、導入した結果どういった利点があったのかなどについてご紹介したいと思います。 Pyroscopeとは Pyroscopeとは、Continuous Profilingを実施することができるOSSのツールです。 Profilingについては特に説明は不要でしょう。ざっくりいうと、CPUやメモリ等のリソースをプログラム中のどこが多く消費しているのか(= ボトルネック)を突き止める手法のことを意味します。 一般的には、なにか問題が起きたときに手動でPr

                              Pyroscopeを使ったContinuous Profilingの活用事例
                            • The Protobuf Language Specification

                              At Buf, our goal is to improve the way software systems integrate by making schema-driven development a "pit of success". And we've put our money on Protobuf as the winning way to describe those schemas. We are expanding on the work of the Protobuf team by providing the community a complete language spec. Protobuf is the most stable and widely adopted IDL today. By building on Protobuf, we are sta

                                The Protobuf Language Specification
                              • Dropboxが毎秒数百万のアクセスをさばくトラフィック制御基盤をNGINXからEnvoyへ移行中

                                クラウドストレージサービスを提供するDropboxは、自社トラフィック制御基盤をNGINXからEnvoy Proxyへと移行しました。なぜNGINXからEnvoyへと移行したのか、その理由や問題点などについて、Dropboxがブログ上で公開しています。 How we migrated Dropbox from Nginx to Envoy - Dropbox https://dropbox.tech/infrastructure/how-we-migrated-dropbox-from-nginx-to-envoy NGINXはDropboxのトラフィック制御基盤として過去10年ほど問題なく稼働していましたが、サービス間通信のREST APIからgRPCへの移行、Bazelによるビルド管理など、モダンなシステム導入が進むにつれて、Dropboxのアプリケーションデプロイに関するベストプラク

                                  Dropboxが毎秒数百万のアクセスをさばくトラフィック制御基盤をNGINXからEnvoyへ移行中
                                • 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言語編
                                  • Kubernetesをとりまくコンテナランタイムの栄枯盛衰 / The rise and fall of the container runtimes surrounding Kubernetes

                                    A talk at Kubernetes Novice Tokyo #10

                                      Kubernetesをとりまくコンテナランタイムの栄枯盛衰 / The rise and fall of the container runtimes surrounding Kubernetes
                                    • 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
                                        • A new Go API for Protocol Buffers - The Go Programming Language

                                          Joe Tsai, Damien Neil, and Herbie Ong 2 March 2020 Introduction We are pleased to announce the release of a major revision of the Go API for protocol buffers, Google’s language-neutral data interchange format. Motivations for a new API The first protocol buffer bindings for Go were announced by Rob Pike in March of 2010. Go 1 would not be released for another two years. In the decade since that fi

                                            A new Go API for Protocol Buffers - The Go Programming Language
                                          • 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
                                            • ProtobufでREST APIを快適に開発する方法のご紹介 - TIER IV Tech Blog

                                              こんにちは、ティアフォーで認証認可基盤を開発している澤田です。 最近取り入れたProtobufで、素晴らしいREST APIの開発体験をしたのでご紹介します。 なお、ティアフォーではマイクロサービスを支える認証認可基盤を一緒に開発いただけるメンバーを募集しています。ご興味のある方は下記ページからご応募ください。 herp.careers 実現したかったこと マイクロサービス間連携のAPI開発において、以下の条件を満たすやり方を探していました。 スキーマを最初に定義してリクエストとレスポンスの型が自動で生成される ドキュメント(openapi.yaml)が生成される バリデーションが定義できて、その実装が自動で生成される 実現方法 Go言語で開発する場合はgo-swaggerでも実現できますが、本記事では、Protobufで実現できるgRPC Gatewayとprotoc-gen-valid

                                                ProtobufでREST APIを快適に開発する方法のご紹介 - TIER IV Tech Blog
                                              • Stailerを支えるアーキテクチャ - Koichi Ishida blog

                                                目次 tl;dr アーキテクチャ サービスアーキテクチャ まとめ 「Stailer」は株式会社 10Xが提供する「開発不要でネットスーパーアプリを立ち上げられるシステム」です。バックエンドとそれにつなげるアプリ(iOSとAndroid)を提供しています。 10Xではよりよいチームを目指しエンジニアも含めメンバーを募っています。エンジニアが気になるどのような技術を使っているかに関して今回このブログで紹介しようと思います。少しでもチームに興味を持ってもらえたら採用ページがあるのでぜひぜひこちらからご応募ください。 tl;dr インフラはGCP クライアントはFlutter(Dart)でサーバもDart サービス間通信はgRPC 分析環境はBigQuery/Redash/Digdagの組み合わせ 監視はCloud Monitoring アーキテクチャ Stailerは主なサービスはGCP上に構築

                                                  Stailerを支えるアーキテクチャ - Koichi Ishida blog
                                                • 【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話 - Mirrativ Tech Blog

                                                  こんにちは ハタ です 今回はインフラ/基盤開発で導入している Envoy について紹介したいなと思っています 現在ミラティブでは Go移行 を進めているところで、 既存のWebアプリケーション(Perl で実装されてます)と、新たに Go で実装された Web アプリケーションをシームレスに導入/切り替えするために Envoy の導入を行いました Envoy xDSとConsul によるインスタンス管理 NGINX や HAProxy または Apache HTTP Server など使い慣れた && ノウハウもあるミドルウェアではなくなぜ Envoy を選定したかというと、 なんといっても魅力的なのが xDS と呼ばれる Discovery Service 群があることで柔軟に既存コンポーネントと連携を取りやすいことやAPI操作によるコントロールの柔軟性が高いことが決め手となっています

                                                    【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話 - Mirrativ Tech Blog
                                                  • 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
                                                    • ZOZOMATのgRPCリクエスト負荷分散をNLBからALBに移行した話 - ZOZO TECH BLOG

                                                      こんにちは、計測プラットフォーム本部バックエンド部の髙木(@TAKAyuki_atkwsk)です。普段はZOZOMATやZOZOGLASSなどの計測技術に関する開発・運用に携わっています。ちなみにZOZOGLASSを使って肌の色を計測したところ、私のパーソナルカラーはブルーベース・冬と診断されました。 さて、本記事ではZOZOMATシステムで利用されていたNetwork Load BalancerをApplication Load Balancerに移行した事例をご紹介します。 ZOZOMATのシステム構成(2020年当時)に関しては、こちらの記事で詳しく説明されていますので合わせてご覧ください。 techblog.zozo.com 移行の背景 ZOZOTOWNアプリやZOZOTOWNシステムからZOZOMATシステムに対するリクエストの負荷分散のためにNetwork Load Balan

                                                        ZOZOMATのgRPCリクエスト負荷分散をNLBからALBに移行した話 - ZOZO TECH BLOG
                                                      • RustでProtocol BuffersからGraphQL BFFを自動生成してみた知見 | Wantedly Engineer Blog

                                                        Wantedlyでインターンをしている遠藤です。インターンのタスクとして「RustでProtocol BuffersからGraphQL BFFを自動生成する」という技術検証を行ったので、その知見を共有したいと思います。 今回の技術検証で作成したツールのソースコードはここにあります: EXPERIMENTAL] Generate GraphQL schema and gateway from Proto definitions. Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in

                                                          RustでProtocol BuffersからGraphQL BFFを自動生成してみた知見 | Wantedly Engineer Blog
                                                        • ISUCON10 本選問題の解説と講評 : ISUCON公式Blog

                                                          ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです こんにちは、ISUCON10 の本選出題を担当した白金動物園の mirakui です。最近はパン作りにハマっています。この記事では、本選問題であるアプリケーションの「XSUCON」について、問題の概要と想定していた解き方について解説していきたいと思います。 XSUCON とは近年の ISUCON にはとても多くの方が参加してくださり、スコアランキングを表示したりベンチマーカー実行を指示したりするいわゆる「ポータルサイト」の負荷対策には毎年の出題担当たちが苦労してきました。記念すべき 10 回目の開催である ISUCON10 ではぜひこの ISUCON ポータルサイト自体を問題にしたい、と私たち白金動物園が1年前から温めて

                                                            ISUCON10 本選問題の解説と講評 : ISUCON公式Blog
                                                          • 東京Node学園40時限目で話をしてきました | フューチャー技術ブログ

                                                            オンライン開催された東京Node学園40時限目で発表してきました。スライドはこちらです。 内容としてはこのブログに書いた、gRPCがフロントエンド通信の第一の選択肢になる時代がやってきたかも?という記事をベースにして、gRPCとは何かとか、Connectプロトコルの存在や、今までの公式実装ととどのように開発のスタイルが変わるか、みたいな話を絵つきで説明したりしました。 あとは、streamを使って受信する部分のTypeScriptコードがどうなるかの紹介とかも追加しました。 // 単発実行 return await client.greet({name}); // ストリームからの受信 for await(const res of client.conversation({name})) { setMessage(res.message); } あるいは最近追加されたconnect-web

                                                              東京Node学園40時限目で話をしてきました | フューチャー技術ブログ
                                                            • インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた - SMARTCAMP Engineer Blog

                                                              こんにちは!今年の 4 月からスマートキャンプに入社し、只今新卒エンジニア研修期間中の中田です。本記事は、インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた!という内容のエントリです。 背景 gRPC とは Protocol Buffers とは 4 つの通信方式を試してみた 実装 準備 インターフェース定義 コンパイル サーバーとクライアントの実装 UnaryCall ClientStreamingCall ServerStreamingCall BidirectionalStreamingCall ドキュメント生成 学び まとめ 背景 新卒エンジニア研修では、同期のメンバーと 2 人で Go (REST API) + React/TS 構成の SPA を作っています。 このアプリの開発では、Server - Client 間でインター

                                                                インターフェース定義の悩みを解決するために gRPC、Protocol Buffers を調査してみた - SMARTCAMP Engineer Blog
                                                              • TypeScriptにおけるgRPC関連ライブラリの比較とプロダクト開発で採用した方法の紹介 - CADDi Tech Blog

                                                                こんにちは、テクノロジー本部バックエンド開発グループの山田です。 弊社のプロダクト開発では、以下の図のようにフロントエンド <-> BFF <-> バックエンドの構成をとっており、Node.js上で稼働しているBFFと、Rustで作成しているバックエンドの間をgRPCで通信しています。 そこで今回は、TypeScriptにおけるgRPCの関連ライブラリについて、以下を紹介していきます。 【1】 公式チュートリアルに沿った2種類の実装サンプルに、アプリケーション開発中に認証や分散トレーシング等で利用するMetadataの実装を追加したコード 【2】 2種類の方法をライブラリの実装も見つつ比較 【3】 直近の開発で採用している方法の紹介 お急ぎの方は下部にまとめを記述しているのでそちらを参照ください。 また、説明の都合で記事中のサンプルコードは一部を抜粋して記述していくため、完全なサンプルコー

                                                                  TypeScriptにおけるgRPC関連ライブラリの比較とプロダクト開発で採用した方法の紹介 - CADDi Tech Blog
                                                                • マイクロサービスのデータぜんぶ抜く……gRPCで! - Retty Tech Blog

                                                                  どうも、エンジニアの神 id:pikatenor です。書きかけの記事を下書きに突っ込んで放置していたらマネージャーの常松に目をつけられ、#Rettyマイクロサービス強化月間 第1週目の記事に祭り上げられることになりましたが無事に遅刻しました。記事の公開をお待ちいただいていた皆様には深くお詫び申し上げます。 engineer.retty.me そういうわけで今回は自作OSSの宣伝とそいつをサービスに組み込むに至った背景のお話です。 マイクロサービスのDB分割と集約 Logstash + gRPC という選択 大雑把な説明 gRPC Server 側の実装 良かったこと おまけ: プラグインの実装についてあれこれ マイクロサービスのDB分割と集約 さて、Retty がマイクロサービスアーキテクチャへの移行に取り組んでいるという話は従前の通りですが、最近では共有DBの呪いから解き放たれるべくD

                                                                    マイクロサービスのデータぜんぶ抜く……gRPCで! - Retty Tech Blog
                                                                  • 今流行りのgRPCについて簡単にまとめてみた(Goのサンプルコード付き) - Qiita

                                                                    はじめに (当時)Go歴1ヶ月の私が急遽gRPCを用いてバックエンドのAPIを開発してる業務に参画することになり、必要にかられて急いで学んだので、その時の学びを共有します✎ gRPCって最近よく聞くけど、「なにそれ?」って方も多いと思うので(私もそのうちの1人でした)、自分の学びを纏めるためにもgRPCのエントリー記事を書こうと決意し、Go 5 Advent Calendar 2020に登録しました! gRPCとは gRPCって良いらしい 最近gRPC流行ってるらしい 等聞いたことは多いと思いますが、簡単に説明すると RPC (Remote Procedure Call) を実現するためにGoogleが開発したプロトコルの1つ Protocol Buffers を使ってデータをシリアライズし、高速な通信を実現できる IDL(インターフェース定義言語)を使ってあらかじめAPI仕様を .pro

                                                                      今流行りのgRPCについて簡単にまとめてみた(Goのサンプルコード付き) - Qiita
                                                                    • API Improvement Proposals

                                                                      Welcome AIPs are design documents that summarize Google's API design decisions. They also provide a framework and system for others to document their own API design rules and practices. AIPs are a combination of design guidance and a system we use to manage and track that guidance. Learn more about how the AIP program works in the first AIP!

                                                                      • Next.js で始める gRPC 通信 - 30歳からのプログラミング

                                                                        サーバ・クライアント間の通信を gRPC で行う場合、インターフェイスを定義した共通のファイルから、サーバとクライアント双方のコードを生成することができる。 この記事では、インターフェイスの定義ファイルを作成するところから始めて、gRPC を利用した単純なウェブアプリを作っていく。 gRPC についての概念的な説明などは扱わず、実際に手元で動くウェブアプリを作ることで、gRPC を使った開発についてイメージしやすくなることを意図している。 Next.js では API Routes を使って API サーバを作ることができるが、それを gRPC クライアントとして実装する。 そのため、リクエストの流れは以下のようになる。 Frontend == (REST) ==> API Routes == (gRPC) ==> gRPC Server 動作確認は Node.js のv16.13.2で行

                                                                          Next.js で始める gRPC 通信 - 30歳からのプログラミング
                                                                        • Cloud RunでOpenTelemetry Collectorをサイドカーとして動かす

                                                                          こんにちは!Google Cloudでオブザーバビリティを担当しているものです!Cloud Runでマルチコンテナーサポートがパブリックプレビューになりましたね!これはCloud Runでサイドカーを走らせられるということです!というわけで今日は1ユースケースとしてOpenTelemetry CollectorをCloud Runのサイドカーとして走らせてみようと思います。 TL;DR Cloud Runのマルチコンテナーサポートを使うと、アプリケーション側はOTLP送信の実装だけして、OpenTelemetry Collectorをサイドカーとして走らせて、テレメトリーをCloud Opsや外部のオブザーバビリティツールに送ることが可能になります。 構成 Kubernetesで使っているようなポッド内のサイドカーの構成をCloud Runでもできますよ、というだけなので、それをわかってる

                                                                            Cloud RunでOpenTelemetry Collectorをサイドカーとして動かす
                                                                          • サービスメッシュとしてLinkerdを導入するに至った経緯 - ANDPAD Tech Blog

                                                                            はじめに SREの須恵です。 弊社では、昨秋からサービスメッシュの導入を開始していたのですが、なかなかアウトプットできていなかったので書くことにしました。 マイクロサービス化とgRPC 弊社で進行中の技術テーマの1つに「マイクロサービス化」があります。 ビジネスの成長拡大に伴い開発組織も拡大し続けており、どんどん人数が増えています。この増加していく開発者の力を、可能な限り効果的に活かして開発するため、マイクロサービス化に舵を切ることになりました。 (マイクロサービスの動機と目指す結果の詳細はいずれ誰かが記事化することに期待) 今年の1月に弊社初のマイクロサービスとしてリリースされた2つのサービスがあり、それらはgRPCで通信することが決定されていました。また今後も、マイクロサービス間の同期通信にはgRPCの採用が広がる見込みです。 なぜgRPCか モノリスをマイクロサービス化する、あるいは

                                                                              サービスメッシュとしてLinkerdを導入するに至った経緯 - ANDPAD Tech Blog
                                                                            • LINE開発担当が語るプロダクションレディなgRPCサーバをArmeriaで簡単に作る方法

                                                                              LINE Developer MeetupはLINEが定期的に開催する技術者向けミートアップです。66回目の今回はLINEの新規サービス開発に携わる奥山氏が社内フレームワークArmeriaを使って簡単にgRPCサーバーを実装する方法を共有しました。 gRPCって何だったっけ? 奥山裕也氏(以下、奥山):LINEの開発4センター、 Official Account開発室の奥山が、「OA DevにおけるgRPC」についてお話しします。 まず簡単に自己紹介しますと、私は2019年の4月に新卒で入社しました。Official Account開発室というチームで、LINE公式アカウント関連の新規サービスを主に開発しています。コードは、サーバサイドで主にKotlinを書いています。また、line-bot-sdk-pythonというMessaging API SDKのメンテナーもしています。 今日は、最

                                                                                LINE開発担当が語るプロダクションレディなgRPCサーバをArmeriaで簡単に作る方法
                                                                              • trpcって知ってますか?

                                                                                はじめに みなさんはAPIの定義を何で行なってますか? Swagger? GraphQL? gRPC? 私もGraphQLでアプリとBFFのAPI定義をしたり、gRPCで定義してそれを無理やりRESTAPIの型定義として使っていたりします。 方法はどうであれAPIの型定義はやっぱり欲しいですよね。 いくらTypeScriptとかGoとか型のある言語を使っていても、それをつなぐAPIのインターフェースに型を決めておかないといくらでも事故れますよね… 特にフロントエンドとバックエンドで開発するエンジニアが違うと、こういった定義ファイルがないと思ってたのと違うパラメータが返ってきたり、リクエストボディに入れる型を間違ってしまったりという事故が起きたりすると思います。 なので何かしらの定義ファイルをフロントバック両者で定めておいてこういった事故を起きないようにしているわけです。 定義ファイルがある

                                                                                  trpcって知ってますか?
                                                                                • REST・Protocol Bufferは必要ない RPCフレームワークにそのまま使えるScalaの魅力

                                                                                  アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでTreasure DataのTaro L. Saito 氏がScalaに関するいろいろなテクノロジーを紹介しました。2つ目は、Scalaで直接通信する方法について。前回の記事はこちら。 Scalaは実はRPCを実装するのに適した言語 Taro L. Saito氏:もともと何をしたかったかというと、「Scalaでクライアントもサーバーも実装できるんだったら、Scalaでそのまま通信できないのか?」というところが出発点になって、今新しいフレームワークを整えているところです。 ScalaはFunctional(関数型)で、かつstatically typed(静的型付き)、というobject orientedな言語になっているのがいいところです。 これよく考えてみると、Scal

                                                                                    REST・Protocol Bufferは必要ない RPCフレームワークにそのまま使えるScalaの魅力

                                                                                  新着記事