並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 297件

新着順 人気順

gRPCの検索結果161 - 200 件 / 297件

  • プロダクトにNext.jsとGoを採用した理由と背景 - ANDPAD Tech Blog

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

      プロダクトにNext.jsとGoを採用した理由と背景 - ANDPAD Tech Blog
    • Go 製 CLI にプラグイン機構を作る方法n選

      package main import "plugin" func main() { p, err := plugin.Open("plugin.so") // error handling f, err := p.Lookup("F") // error handling f.(func())() // prints "Hello, world" } この標準の plugin パッケージについて、先程あげた評価項目がどうかを考えてみます。 User Experience : いまいち プラグインをインストールの仕組みを考えないと難しそう 利用者は、ツール側が規定したルールに従って.soを配置する必要があるというのがポイント ありそうな仕組み ツールにプラグインの URL を渡すとダウンロードして適切な場所に配置してくれる プラグインのレジストリを提供する プラグインがいい感じにインストー

        Go 製 CLI にプラグイン機構を作る方法n選
      • gRPC Streaming によるスケーラブルな常時接続型 API の構築

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

          gRPC Streaming によるスケーラブルな常時接続型 API の構築
        • webサービス開発における良い開発環境 - Qiita

          最近、「webサービス開発における良い開発環境とは何か?」を自問する機会があったため、その内容を記事としてまとめました。 筆者が考える良い開発環境の条件と、それを実現するための具体的な方法を交えて記載していきます。 (もちろん、記載している条件に合致していることが全てのケース/シーンで「良い」ものであるとは限りませんが) 誰かが新規に開発環境を作る際、また、既存の開発環境を改善する際の参考になれば幸いです。 前提 下記のようなサービス開発を前提とします。 webサービスの開発 OSSではない1 VCS2によって管理されている 開発環境とは以下の2つを内包する ローカルマシンまたは仮想環境上でソースコードを編集し、テスト/静的解析を実行する ローカルマシンまたは仮想環境上でサービスを起動する また、技術的な開発環境についてのみ言及します。 開発フロー、コーディング規約、はてはオフィス環境まで

            webサービス開発における良い開発環境 - Qiita
          • GoでオススメのWebフレームワークを聞かれたら

            なぜWebフレームワークが必要とするのか Webフレームワークを使った開発が当たり前であるプログラミング言語はたくさんあります。GoはどちらかというとWebフレームワークはいらないんじゃない?と言われることが多く、そう言われると初学者はいきなり難しいことをさせるなと思うかもしれません。 確かにフレームワークがあることでWebアプリが作りやすくなることがあるかもしれません。テンプレート通りに作れば作りたいものができるという体験はプログラミング言語を学び始めたばかりであれば重要です。フレームワークの枠に収まる開発であれば効果を発揮します。 しかし、「GoでオススメのWebフレームワークはありますか?」って聞かれる場合の多くは、Webアプリはフレームワークがないと開発できない、またはそうするのが当然だと思って質問している場合も多く見かけます。○○env系のツールと同様に、特に理由は無いけどそうい

              GoでオススメのWebフレームワークを聞かれたら
            • GraphQL Gatewayはフロントエンド開発を幸せにする

              はじめに マイクロサービスの開発では、サービスが増え続けるバックエンドに対して、フロントエンドは接続先が増えるため、開発効率を下げてしまいます。その対策として、さまざまな設計パターンが存在します。 弊社の開発ではGraphQL Gatewayを用いていますが、そこに至るまでや周辺の技術/アーキテクチャを解説します。 マイクロサービスとフロントエンド マイクロサービスを採用する場合、フロントエンド(ウェブアプリケーション、モバイルアプリケーションなど)は複数のサービスとの連携が必要になることが多いです。各マイクロサービスは通常、API(REST、gRPCなど)を提供し、フロントエンドはこれらのAPIを通じてデータの取得や操作を行います。 API Gateway API Gatewayは、フロントエンドとマイクロサービス間の中間に位置するコンポーネントとして機能し、マイクロサービスアーキテクチ

                GraphQL Gatewayはフロントエンド開発を幸せにする
              • 七声ニーナを支えるバックエンド技術 | BLOG - DeNA Engineering

                データ統括部AI基盤部の竹村( @stakemura )です。本記事では、このたびリリースされた、自分の声をキャラクターの声に変換できるWebサービス VOICE AVATAR 七声ニーナ を支えるバックエンド技術についてお話しします。 本サービスはDelight Boardという部署横断型のプロジェクトにて、1000人を超える社員投票により自分の案がまさかの採択となったことがきっかけとなります。幸運にも、百戦錬磨のプロジェクトメンバーに助けられ今日のリリースを迎えましたが、採択当時は人脈も信用貯金も何もない入社一年目の思いつきにすぎず、言い出しっぺである自分の力不足によりタイトなスケジュールでの開発となってしまいました。本記事では、その限られた開発期間の中で、自分が何を考えて実装したかを中心にお伝えします。 サービングに求められる要件 七声ニーナの音声変換はブラウザから受け取った入力音声

                  七声ニーナを支えるバックエンド技術 | BLOG - DeNA Engineering
                • 新卒エンジニアのメンターとして1年間取り組んだこと - ドワンゴ教育サービス開発者ブログ

                  はじめに こんにちは。私はN予備校のバックエンド開発に携わっています。 N予備校バックエンドでは2021年度に1名の新卒エンジニアが配属となりました。 ドワンゴの新卒エンジニアはエンジニア研修を受けたあと、配属された部署で個別研修や実際の業務を通じてOJTを受けます。 本記事では、メンターとして2021年度新卒エンジニアが入社してから1年のあいだに行ったフォローアップについてまとめます。 メンティーの len さんが執筆した記事は こちら になります。 新卒エンジニア研修の内容については、別の方がまとめた記事を公開しています。 2021年度 エンジニア新入社員研修のご紹介 ドワンゴ21新卒がフルリモートでの入社から機能をリリースするまで メンティー入社前 メンティーが入社するまでは、パーソナリティの把握に務めました。 パーソナリティを把握しておくことで、苦手な部分をメンターが迅速にサポート

                    新卒エンジニアのメンターとして1年間取り組んだこと - ドワンゴ教育サービス開発者ブログ
                  • モバイルとの相性最強と言われる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通信や認証、複数言語実装に使えるか試す
                    • Railsを読み、Goを書く。大規模SaaSのマイクロサービス化の(生々しい)実際をマネーフォワードに聞いてきた!

                      テックカンパニーをテックカンパニーたらしめているものはなにか?技術か、人か、それともチームなのか。 連載「Technology Company Internals」では、テックカンパニーの内側で働くエンジニアに、技術に精通したエキスパートが対面で話を聞き、テックカンパニーとは何か?を探るだけでなく、テックカンパニーを目指す企業の指針となることを目指します。 マネーフォワードのCTOとVPoEに話を聞く 白石: 本日はよろしくお願いします。自己紹介からお願いできますでしょうか? 中出: 中出 匠哉と申します。マネーフォワードのCTOとして企業経営に関わり、経営にテクノロジー視点を導入していくのが主な役割です。他には技術面での方向性の決定や、エンジニアの人事制度の立案などもやっていますね。あとはサービスがどんどん大規模化していく中でも、技術的負債に優先順位を付けて、体制を作って解消していくのも

                        Railsを読み、Goを書く。大規模SaaSのマイクロサービス化の(生々しい)実際をマネーフォワードに聞いてきた!
                      • いまさら聞けない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でカーネル内で動かす!
                          • GitHub - DeNA/PacketProxy: A local proxy written in Java

                            Full-featured local proxy tool Save all captured packets (i.e., requests and responses) and show them in the history tab Filter/Search packets in the history tab (e.g. requests==/api/v1/users to show only requests whose path contains /api/v1/users ) Modify the contents of intercepted packets before forwarding them to the destination Resend (or replay) captured packets with or without manually modi

                              GitHub - DeNA/PacketProxy: A local proxy written in Java
                            • Rustで扱える機械学習関連のクレート2021 - Stimulator

                              - はじめに - 本記事では、Rustで扱える機械学習関連クレートをまとめる。 普段Pythonで機械学習プロジェクトを遂行する人がRustに移行する事を想定して書くメモ書きになるが、もしかすると長らくRustでMLをやっていた人と視点の違いがあるかもしれない。 追記:2021/02/24 repositoryにしました。こちらを随時更新します github.com 追記;2021/07/26 GitHub Pagesでウェブサイトにしました vaaaaanquish.github.io - はじめに - - 全体感 - - 機械学習足回り関連のクレート - Jupyter Notebook Numpy/Scipy Pandas 画像処理 形態素解析/tokenize - scikit-learn的なやつ - 各ライブラリと特徴比較 - Gradient Boosting - XGBoos

                                Rustで扱える機械学習関連のクレート2021 - Stimulator
                              • マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing - Gunosy Tech Blog

                                広告技術部のUT@mocyutoです。 大幅コスト削減シリーズ第二弾です。 前回はこちら tech.gunosy.io 今回はアベイラビリティゾーン(AZ)間通信のコストをIstioのlocality load balancingを使って削減した話になります。 概要 Istioとは どのようにコスト削減したか まとめ 概要 みなさんはマイクロサービスを導入しているでしょうか? 最近はモジュラモノリスが流行り始めている雰囲気を感じてきていますが、弊社の広告配信サーバは以下のようなマイクロサービス化された設計(と言っても2つのサービスしかないのですが)になっています。 構成図 一般的にクラウドプロバイダ上で構築している場合、耐障害性を高めるために複数AZ、複数リージョンに分散させることが基本になるかと思います。 弊社では、単一リージョン複数AZに分散させて稼働しています。 リージョン間の通信に

                                  マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing - Gunosy Tech Blog
                                • 20 Things I've Learned in my 20 Years as a Software Engineer

                                  Hard disagree with most of the 20 items. 1. Writing software is difficult, tedious and needs real work. No silver bullet libraries, no methodology, no framework, no IOT, no amount of unit tests will get the work done faster. 2. Developers collect tools, libraries and pet technologies and make projects go over their time and budget by doing it. 3. Code should encapsulate algorithms and not be struc

                                    20 Things I've Learned in my 20 Years as a Software Engineer
                                  • Pythonのlinter/formatterを誰でも手軽に設定できるようにするためのPFN社内ツール “pysen” の紹介 - Preferred Networks Research & Development

                                    Home Blog Pythonのlinter/formatterを誰でも手軽に設定できるようにするためのPFN社内ツール “pysen” の紹介 Python向けのlinter/formatter設定ツール「pysen」を pypi.org および github.com で一般公開しました。 このツールは主にPython向けのlinter/formatterの設定を一元管理し、Preferred Networks社内でよく使われているツール環境を誰でも簡単に設定できるように支援するツールです。チームごとに分散しうるようなツールに関するノウハウをコードとして集約し、PFN社内での共有を促進させることを目的として開発しています。pysenは実際にPFN社内で使われており、2020年4月に開発がスタートしてから、2021年3月現在でおよそ100を超える社内リポジトリに導入されています。 上図:

                                      Pythonのlinter/formatterを誰でも手軽に設定できるようにするためのPFN社内ツール “pysen” の紹介 - Preferred Networks Research & Development
                                    • Plainのフロントエンドにおける技術選定(2023年8月版) - ROUTE06 Tech Blog

                                      ROUTE06 でソフトウェアエンジニアをしている @MH4GF です。 ROUTE06 ではエンタープライズ向けビジネスプラットフォーム「Plain」を開発しています。この記事では 2023 年 8 月に Plain クラウド EDI の Web フロントエンドで採用している技術について、その選定理由をまとめました。 現代の Web フロントエンド技術は領域ごとに選択肢が多く、プロダクトに最適な技術選定をする上で検討事項が多いと感じます。この記事がフロントエンド技術選定において参考になれば幸いです。 前提 プロダクトの特徴 技術選定に影響するプロダクトの特徴を箇条書きでまとめます。 エンタープライズ向け SaaS 現在開発中のプロダクトは商取引におけるクラウド EDI のドメインにフォーカス Plain が解決する課題は、元々フルスクラッチで開発すると 1 年かかるプロダクトの開発期間を

                                        Plainのフロントエンドにおける技術選定(2023年8月版) - ROUTE06 Tech Blog
                                      • スマホゲーム業界におけるPHPの歴史とLaravel Octaneで広がるこれからのPHP | CyberAgent Developers Blog

                                        3月24日、サイバーエージェントのエンジニア・クリエイターによる技術カンファレンス「CyberAgent Developer Conference2022」を開催しました。本記事では、「スマホゲーム業界におけるPHPの歴史とLaravel Octaneで広がるこれからのPHP」の様子をお届けします。 目次 ■サイバーエージェントグループのゲーム事業の歴史とPHP ■PHPで培ったもの ■多様化するゲームの要件とサイバーエージェントグループでの事例 ■PHPの変革「Swoole」「Laravel Octane」の登場 ■Laravel Octane Deep Dive ■まとめ ■サイバーエージェントグループのゲーム事業の歴史とPHP まずはサイバーエージェントグループのゲーム事業の歴史とPHPについて振り返ります。サイバーエージェントグループでは2009年からゲーム事業に参入しており、20

                                          スマホゲーム業界におけるPHPの歴史とLaravel Octaneで広がるこれからのPHP | CyberAgent Developers Blog
                                        • バンディットアルゴリズムを用いた推薦システムの構成について - ZOZO TECH BLOG

                                          はじめに ZOZO研究所ディレクターの松谷です。 ZOZO研究所では、イェール大学の成田悠輔氏、東京工業大学の齋藤優太氏らとの共同プロジェクトとして機械学習に基づいて作られた意思決定の性能をオフライン評価するためのOff-Policy Evaluation(OPE)に関する共同研究とバンディットアルゴリズムの社会実装に取り組んでいます(共同研究に関するプレスリリース)。また取り組みの一環としてOPEの研究に適した大規模データセット(Open Bandit Dataset)とOSS(Open Bandit Pipeline)を公開しています。これらのオープンリソースの詳細は、こちらのブログ記事にまとめています。 techblog.zozo.com 本記事では、ZOZO研究所で社会実装を行ったバンディットアルゴリズムを活用した推薦システムの構成について解説します。バンディットアルゴリズムを用い

                                            バンディットアルゴリズムを用いた推薦システムの構成について - ZOZO TECH BLOG
                                          • 「Docker Desktop 2.2」がリリース、WSL 2が利用可能なプレビュー版も

                                            「Docker Desktop 2.2」では、これまでSambaに依存していたDocker上で動作するLinuxファイルシステムとWindowsファイルシステムの相互管理をgRPC FUSEに置き換えている。 gRPC FUSEへの置き換えによって、キャッシュを利用してページ読み込み時間を短縮するとともに、Linux inotifyイベントをサポートし、ソースコードが変更されたときに自動再コンパイル/リロードのトリガーが可能になったほか、Windows認証とは切り離して利用できるようになった。また、VPNの接続/切断にかかわらず利用可能で、管理者として実行されるコード量を削減している。 さらに、ローカルで実行中のコンテナと、Composeアプリケーションを管理できるインタラクティブなダッシュボードUIが採用された。WindowsとmacOSで共通のインターフェースを実現する、新たなデスクト

                                              「Docker Desktop 2.2」がリリース、WSL 2が利用可能なプレビュー版も
                                            • 【暫定版】 Kubernetesの性能監視で必要なメトリクス一覧とPrometheusでのHowTo - kashinoki38 blog

                                              2021/03/01 追記 記載していたリポジトリにあるマニフェスト系があまりに不親切だったので、ちゃんとまとめてみました。 後日、もうちょっとちゃんと記事書こうとは思いますが、大体はREADMEにあるので読んでみてください。 sock-shopをベースにObservability(Prometheus, Loki, Istio(Jaeger, Kiali))とProgressive Delivery&自動負荷試験スタック(Flagger, Jmeter, influxdb)をHelmとKustomizeで詰め込みました。 今回はちゃんと誰もが入れれるようにがんばってみたので、どうぞ。 github.com この内容でCloudNativeDaysOnline2021に登壇することにしています。 event.cloudnativedays.jp 後、随分前ではありますが、本投稿に関連してK

                                                【暫定版】 Kubernetesの性能監視で必要なメトリクス一覧とPrometheusでのHowTo - kashinoki38 blog
                                              • Chrome の User-Agent 文字列削減に関する最新情報

                                                .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

                                                  Chrome の User-Agent 文字列削減に関する最新情報
                                                • 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
                                                  • 2021年 HTTPやQUICの最新動向振り返り - ASnoKaze blog

                                                    2021年について、プロトコル周りの動向を振り返っていきたいと思います。 今年は、個人的には次の2点がホットトピックと挙げられると思います。 QUICやHTTP/3を活用した応用系プロトコルの作業が進む プライバシー系の取り組みが活発化 それでは、個別に補足していきます。(IETFの動向がメインです。なお、個人的にキャッチアップできてないトピックもあります...) HTTP関連 まずは、HTTPです。HTTP/3の標準化が注目を浴びていますが、HTTP/1.1やHTTP/2なども改定作業が行われております。あわせて、HTTPセマンティクスは各バージョンから独立し、各バージョンから参照される形となりました。それぞれRFC出版の最終段階となっています。 書いた記事はここらへん HTTPのバージョンについて、現在のまとめ HTTPセマンティクス仕様の改訂版 まとめ HTTP/2の改定版仕様の変更

                                                      2021年 HTTPやQUICの最新動向振り返り - ASnoKaze blog
                                                    • 達人出版会

                                                      探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 デザインディレクション・ブック 橋本 陽夫 現場のプロがやさしく書いたWebサイトの分析・改善の教科書【改訂3版 GA4対応】 小川 卓 解釈可能なAI Ajay Thampi(著), 松田晃一(翻訳) PowerPoint 目指せ達人 基本&活用術 Office 2021 & Microsoft 365対応 PowerPoint基本&活用術編集部 ランサムウェア対策 実践ガイド 田中啓介, 山重徹 TODによるサステナ

                                                        達人出版会
                                                      • .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(イーシービーイング・ラボ)
                                                        • モノリスなRailsにモジュラーモノリスを導入した話 - hacomono TECH BLOG

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

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

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

                                                              ニコニコ動画のコメントサーバーを引っ越した時の話 - dwango on GitHub
                                                            • 少人数での爆速開発を目指してgolang×GCPの技術選定をした話

                                                              この1年くらいでgolangとGCPを使ったWebアプリケーションをフルスクラッチで開発したので、その際の技術選定の理由だったりを言語化して残しておきたいと思い、HHKBを手に取りました。 少し長くなってしまいましたが、どなたかの参考になればと思います。 どんな人が書いてるの? 立ち上げ期のスタートアップCTOをしています。雑に言うとフルスタックエンジニアです。 開発歴はざっくり、Androidアプリの開発歴が一番長くて3年、バックエンド開発(Elixir × GCP)に転身して1年ほど担当、その後、これから言語化するプロジェクトを1年くらいかけてgolangで構築したところです。 今回の範囲からは外れますが、並行してNuxt.js×TypeScriptで書かれたフロントエンド開発も行っていたので、今はその辺りも一通り習得しています。 1. 方針 表題にもある通り、少人数での爆速開発を目指

                                                                少人数での爆速開発を目指してgolang×GCPの技術選定をした話
                                                              • リアルタイム通信用のコネクションをタブ間で共有してまとめる

                                                                これはなんらかのアドベントカレンダーの何日目かの記事だったりしません。 KOBA789 です。仕事では人工衛星の搭載ソフトウェアを書いたり、人工衛星の管制システムのソフトウェアを書いたりしています。 先日、こういうツイ……ポストをしたらちょっとバズりました。意外と興味持ってくれる人が多かったので、それに関連するオタク早口記事でも書くかぁと思って筆を執っています。 うちの人工衛星の開発ツールはウェブ技術でできている 前述のポストは管制システムについてですが、開発用ツール(C2A DevTools)もまた React + TypeScript でできています。 まぁ画面見てもなにがなんだかという感じだと思いますが、UNIX サーバーで top コマンド叩いたときの内容と、サーバーのログが合体したみたいなものが表示されていると思ってください。 これらの数値は gRPC-web の Server-

                                                                  リアルタイム通信用のコネクションをタブ間で共有してまとめる
                                                                • 2022年版 OpenTelemetryを知れば世界が平和に - じゃあ、おうちで学べる

                                                                  はじめに OpenTelemetryとは Opentelemetry のコンポーネント Opentelemetry のプロジェクトの仕様とStatus Tracing Metrics Logging(Specification にドキュメントがない) Baggage OpenTelemetry のSpanとTrace OpenTelemetry Collectorとは Collector のメリット OpenTelemetry Collector Architecture とは OpenTelemetry とSDKとパッケージ OpenTelemetry と自動計装 今後のOpentelemetry について 次回予告:OpenTelemetry とOpenTelemetry Collectorを使ったTracingとMetricsをアプリケーションで利用する方法 参照リンク はじめに 最

                                                                    2022年版 OpenTelemetryを知れば世界が平和に - じゃあ、おうちで学べる
                                                                  • WebエンジニアとWeb技術とシステムの話 (sadnessOjisanのWebサーバーアーキテクチャ進化論2023を読んだ感想) - inductor's blog

                                                                    sad記事の勉強と実践のボリュームがすごい https://blog.ojisan.io/server-architecture-2023/ を読んで、その前身とも言える https://blog.yuuk.io/entry/2015-webserver-architecture を含めてこれらのような記事を書く知識や経験が僕には無いから素直にすごいと思った。ただ、その一方でこの内容を普通に理解できる「Webエンジニア」はどのくらいいるんだろう?というのも同時に気になった。 ゆううきさんの記事は「序論」とあるがWebエンジニアとしてキャリアを積む人間が「序論」として読むには文量や背景知識が重すぎると正直思うし、システム・計算機工学を勉強した人間が背景に感じ取れる。事実、sadさん(おじさん)も昔は内容が分からなかったと本人記事内で言及しているため、僕の気のせいではないと思う。じゃあsad版

                                                                      WebエンジニアとWeb技術とシステムの話 (sadnessOjisanのWebサーバーアーキテクチャ進化論2023を読んだ感想) - inductor's 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冬
                                                                      • Web API に秩序を与える Protocol Buffers / Protocol Buffers for Web API #builderscon

                                                                        builderscon tokyo 2019 で「Web API に秩序を与える Protocol Buffers」というタイトルで発表した資料です。 Protocol Buffers を利用して Web API の Schema 管理をするという観点で、豊富な実例とともにその手法やメリット・デメリットについて話しました。 cf. https://builderscon.io 追記: 61ページ目で Protocol Buffers を利用する際の注意点として後方互換性が壊れるケースの話をしましたが、自分たちが経験したのは gRPC + grpc-gateway 構成特有のケースだったので記述を修正しました。

                                                                          Web API に秩序を与える Protocol Buffers / Protocol Buffers for Web API #builderscon
                                                                        • 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 - 気まぐれ開発日記
                                                                          • Istioに入門する - TECHSTEP

                                                                            今回はService Meshについて概要を調べ、Service Meshを提供するプロダクトの一つであるIstioに触れてみました。 Service Meshとは マイクロサービスの課題 Service Meshを考えるうえでまず必要になるのが、マイクロサービスアーキテクチャの抱えるいくつかの課題です。 マイクロサービスを導入・構築するうえでの課題として、ネットワークに関連する事項が挙げられます。マイクロサービスはお互いネットワークを通じて連携するため、ネットワークに関する機能(Load Balancing、Traffic Routingなど)を実装する必要があります。また、アプリケーションを構成するマイクロサービスの数が多くなるほど、マイクロサービス間の接続数は増加し、通信断の発生する確率やパフォーマンス低下など、ネットワーク関連の問題が発生する可能性も増加します。 これまで複数のグロ

                                                                              Istioに入門する - TECHSTEP
                                                                            • 負荷試験とOSSツール選定の話 - KAYAC engineers' blog

                                                                              この記事は 面白法人グループ Advent Calendar 2022 の15日目の記事です。 こんにちは、カヤックボンドの松本です。 今回は弊社の技術顧問をご担当いただいている、ドレッドノート株式会社の佐々木様よりご寄稿いただいた記事となります! みなさん、はじめまして! 主にパフォーマンスチューニングや検証用のボット開発等を行っているドレッドノート株式会社の佐々木と申します。 この度、カヤックグループの皆様より Advent Calendar 2022 に寄稿する機会を頂戴しましたので、2022年12月時点の方法を元に負荷試験とモダンなOSSツールについて書いてみたいと思います。 負荷試験の重要性 突然ですが、みなさんが関わっている案件で負荷試験を行っていますか? サービス開始前・提供中、どちらであっても負荷のかけ方によって様々な情報を得ることができます。 現状の性能・台数・実装で、ど

                                                                                負荷試験とOSSツール選定の話 - KAYAC engineers' blog
                                                                              • Next.js Cacheのアツさをシェアしたい(App Router)

                                                                                sumirenです。 2023年5月5日、ついにNext.js App Routerがstableになりましたね! おめでとうございます!!ありがとうございます!!! 今から本番で使うのが楽しみで待ちきれません。 13.4のリリースではstableの宣言とともに、目玉機能としてServer Actionsが来ています。Data Fetch(というか、もはやData Handling的なもの)の機能の一部として、とても興味深いです。 さて、Server Actions自体の解説は他の方に任せるとして、リリースノートには以下のような一文があります。 Server Actions in Next.js have been designed for deep integration with the rest of the data lifecycle, including the Next.js

                                                                                  Next.js Cacheのアツさをシェアしたい(App Router)
                                                                                • 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へ移行中