[フレーム]
1 - 40 件 / 252件
こんにちは。開発本部 オンボーディングチームの酒井(@sakay_y)です。社内のオンボーディングコンテンツを、どんどん社外へ公開することを夢見ています。 2021年もエンジニア新人研修を行いましたので、軽い紹介と、講義資料および一部講義動画(New!)を公開いたします。 2021年のエンジニア研修について 講義資料公開 Webアプリケーション基礎 HTTP/DNS ソフトウェアライセンス ソフトウェアテスト テスト自動化 アクセシビリティ Docker Chrome Developer Toolsの使い方 サイボウズのアジャイル・クオリティ デザインの役割と関わりかた データベース CI/CD セキュリティ モブに早く慣れたい人のためのガイド ITコミュニティ文化と情報発信に共通する成長と貢献の要素 正規表現 Kubernetesを使った開発入門 モニタリング入門 gRPC入門 日本語話
追記: Kubernetes側での公式のアナウンスが2本出ているのでこちらも合わせてご覧ください。 kubernetes.io kubernetes.io Kubernetesコミュニティを眺めていたら、やたらめったら色んな人達が1.20 RCのリリースノート引っ張り出して「Dockerが非推奨になるからちゃんと対策を検討してね!!!」とアナウンスをしていて、挙げ句SIG Contributexではその対策に追われてバタバタしている自体を観測しました。 CNCF Ambassador Slackでもだいぶ燃え上がっていて、見かねて dev.to に記事を投稿したのでそれをかんたんに日本語にまとめてみようと思います。英語のほうはこちらをご覧ください。 dev.to 追記2. 影響範囲を知りたい場合はまずこちらをお読みください blog.inductor.me 追記2. 影響範囲を知りたい場合
こんにちは。ソウゾウの Software Engineer (CTO) の @suguru です。連載:「メルカリShops」プレオープンまでの開発の裏側の1日目を担当させていただきます。 7月末にメルカリShopsという新しいサービスが公開されました。メルカリShops は、2021年1月にメルカリのグループ会社として設立したソウゾウが新たに立ち上げたサービスです。 この記事では、メルカリShops を作るにあたり、どういった技術、アーキテクチャを選定したのか、その背景と意思決定をまとめて共有したいと思います。 monorepo まず最初にプロジェクトをスタートしたときに、サービスのリポジトリを作るのですが、迷わず monorepo による構成を選択しました。monorepo は、システムを構成する複数のコンポーネントの独立性を保ちつつ、全ての構成を1つのリポジトリで管理する手法です。今
gRPCは主にバックエンド、特にマイクロサービス同士の通信に多く使われる通信方式です。 しかしそれゆえに知名度が低く、「gRPCってどんな通信なんだろう?」「HTTPとは別の仕組みなの?」と思っている方もたくさんいるのではないでしょうか。 この本では、gRPCはそもそもどんなコンセプトで作られた通信方式なのかから、Goでの具体的な実装ノウハウ、AWSにデプロイするための設定までを通貫して解説することで、 「gRPC全くわからない」という人が「自分で実装して動かせそうな気がする......!」と思える段階までたどり着けるようにしました。
Netflix Tech BlogのgRPC APIに関する以下の2つの記事に感銘を受けたので、ここにその概要を日本語で記します。 (めんどくさかったので)翻訳の許可は取ってませんが、再構成してますし元のJavaではなくPythonで書き直していますので、容赦して下さい... Practical API Design at Netflix, Part 1: Using Protobuf FieldMaskPractical API Design at Netflix, Part 2: Protobuf FieldMask for Mutation OperationsまとめgRPCでは、FieldMaskをうまく使うことで、必要な情報だけ取得したりあるいは与えたりしたりできまっせ第一部まずField Maskをどのように使うかを述べています。 背景Remote Callというものは、そもそもコ
Author: @urahiroshi, Engineering manager of Web Platform team 2022年8月4日、メルカリで "web-2" と呼ばれるサーバがシャットダウンされました。これはメルカリWeb版の開発に携わっているチームにとって、一つの区切りとなる出来事でした。 web-2はPHPで記述されたwebサーバで、2015年から https://www.mercari.com/jp/ 配下のコンテンツを配信していましたが、現在では複数のWebマイクロサービスがその機能を担っており、 https://www.mercari.com/jp/ 配下のページは後継となるWebマイクロサービスが配信するページへリダイレクトされています。 メルカリWebのマイクロサービス化に向けた開発が始まり、最終的にweb-2がシャットダウンされるまで、実に4年以上の期間がかか
こんにちは、よしこです。 株式会社ナレッジワーク というスタートアップで、2020年4月の創業時から一人目のフロントエンドエンジニアをしています。 初期に考えて組み上げたスタックで1年半ほど開発・運用してみて、なかなか快適に日々開発ができているので 新規開発のプロダクト立ち上げ時にどのようにフロントエンドを構築したのか? 立ち上げから1年以上開発・運用を続けてきた今、それらの選択はどうだったのか? を記事にして振り返り、公開したいなと思いました。 (プロダクトの内容はステルスで進めていてあまり対外的な発信ができないので、かわりに技術的なところはどんどんオープンにしていきたいなという気持ちがあります) いろいろな項目ごとに振り返りたいので、この記事は各項目を横断するindexとして項目ごとの概要を簡単に説明し、深堀りは項目ごとに追って詳細な記事を書いていく予定です! 前提 プロダクトとしての
Go 1.19が8/2に早々にリリースされました。個人的にはGo 1.19よりも楽しみだったのが、サービス間通信とIDL(インタフェース記述言語)連載の中でご紹介したgRPCのGo実装の新星、Connectのアップデートでした。そしてそれはやってきました。 詳しい内容は↑の記事を見ていただくとして、Connectがその開発元ブログの紹介記事で宣言していたのが次の2つのことでした。 Go 1.19が出たらconnect-goは1.0にして以後後方互換性を守るよ connect-webを出すよ 前者はまだ0.3だったのですが、connect-webはリリースされました。歴史のあるフロントエンドのコードジェネレータはTypeScript対応が後付けだったりするのですが、TypeScriptがファーストシチズンかつ、ネイティブというコードジェネレータなので、開発はかなりやりやすくなることが期待され
こんにちは。shirou(@r_rudi) と申します。アーキテクトという名の雑用係をしています。 Alpaca Japanでは、2021年8月に「アルパカ証券」という証券サービスをはじめました。 この一連の文章は、アルパカ証券の裏側のシステムやその開発体制などについて述べたものです。なるべく証券分野に限らず説明していく予定ですので、証券サービスを立ち上げようとしている人たちにはもちろん、それ以外の方にも参考にしていただけるような文章を目指したいと思っています。 アルパカ証券とはアルパカ証券の詳細はホームページをご覧ください。また、第一種金融商品取引業者登録完了時のプレスリリースにも、「アルパカ証券」サービスの特徴が記載されています。 全体設計方針まず最初に、アルパカ証券を構成するシステムの全体設計方針について説明します。 マイクロサービス vs モノリシック設計は2018年中頃ぐらいから
Ubie では、創業当初から Server-Side Kotlin を推進してきましたが、全社的な技術選定を再度行い、これからは Go と Node.js を中心とすることにしました。 本記事では、Go と Node.js を選定した理由や、それを普及させる取り組み、そして選定の流れを紹介します。 経緯 これまで Ubie では技術スタックを発散させてきていて、現在は Kotlin、Go、Node.js、Ruby、Python のバックエンドサービスが動いています。以前は新規開発が多く、それぞれに携わるメンバーが技術選定をすることにより、最大瞬間風速を出せるなどのメリットがありました。しかし、現在では弊害が目立ってきています。 まず、事業成長に伴って運用の重要性が増しています。人材が潤沢とは言えないスタートアップにおいて、様々な技術スタックを安定運用することはコストが高すぎると感じています
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
最近以下のような記事で個人開発のコストの話をよく見かけて、ちょうど自分も個人サービスをコストカットのためにVPSからほぼ無料なスタックに移行していたので構成とかを書いてみる。 前提としてはこんな感じ。 仲間内で使ってるだけのWebアプリケーション。月イチくらいしか使わない 技術スタックは技術的な実験とか学習を兼ねているので多少オーバースペックになるのはいい お金はなるべくかけたくない 移行前のスタック フロントエンドはNuxt.js、Netlify バックエンドはRailsでgRPC、envoyを噛ませてフロントエンドからはgRPC-Webで呼んでる VPS上にバックエンドのアプリケーションとDB(postgres)を動かしてる バックエンドは普通のRailsアプリにしてHerokuにするのが一番楽でお金もかからないんだけど、gRPC-Webを試してみたくて、そうするとproxyが必要にな
ハイクラス求人TOPIT記事一覧RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! 安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。 こんにちは。キャディ株式会社バックエンドエンジニアの松田と申します。 キャディ株式会社では、「モノづくり産業のポテンシャルを解放する」をミッションとして、製造業分野に関連するさまざまなソフトウェアの開発を行っています。また、そのための主要な開発言語としてRustを採用
こんにちは。バクラク事業部 Enabling チームの @izumin5210 ×ばつHUNTER」の既刊を全部読みました。 この記事はLayerXテックアドカレ2023の9日目の記事です。 前回「1人目データアナリストとしてデータチームに異動しました 」 次回「Slack ×ばつ Zapier ×ばつ MiroでKPTでの振り返りをラクにする」 RDB や KVS などのデータ保存先において、データを正規化せずにそのまま保存したいと思うことはありませんか? 8月にリリースされた「バクラク請求書発行」というプロダクトには「柔軟なレイアウトカスタマイズ」機能が搭載されています。リンク先の画面操作イメージを見ていただくと、この機能の雰囲気を理解していただけると思います。この機能が扱うレイアウトデータはまさに「関係の正規化をせずに保存したいデータ」でした。 bakuraku.jp こ
概要 本書は、著者が1993年から約30年間経験してきたAPI仕様の作成、2003年から20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり、一般的なソフトウェア開発者が習得することが容易ではない事柄を、本書を通して学び、実践してもらうことを目的としています。 本書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の実現に必要なものであり、また、API仕様ファースト開発を実現するにはテスト駆動開発が必要です。API仕様ファースト開発とテスト駆動開発は、いわば車の両輪のような関係にあります。 本書では、ソフトウェアテストの変遷とWebサービスにおけるAPI仕様の関連を説明したうえで、API仕様とはどうあるべきか、API仕様に何を書くべきかについて説明します。具体例としてはgRPCを取り上げます。第4章で紹介するAPI仕様ファース
はじめに この記事は、海外サイトhttps://tutorialedge.net/golang/go-grpc-beginners-tutorial/ の内容をベースに一部修正を加えたものです。この記事を読み進めることでGoでシンプルなgRPCクライアントとサーバーを構築することができるようになります。 ※(注記)gRPC公式より抜粋(また、以下の説明でも一部参考にしています。) gRPCとは? gRPCはGoogleによって開発されたRPCフレームワークです。 RPCはRemote Procedure Callの略で、逐語的に訳すと「遠隔手続呼び出し」となります。これはすなわち、「あるプログラムがネットワーク上の異なる場所に配置されたプログラムを呼び出して実行すること」と読み取れます。 公式による定義 サービス定義 多くのRPCシステムと同様に、gRPCはサービスを定義するという考えに基づいてお
3-shake にはSreake共有会 という毎週、火曜日と木曜日に担当者が現場で得た知見などを発表する社内勉強会が開催されています。こちらのブログはそれらを変更修正しております。 syu-m-5151.hatenablog.com 元々しようとしていたの話 Go 1.18 の最新情報←Generics の深い話とかはもう既出すぎて気になる人は読んでる Go でのTDD(が実は20周年なので)←書いてる途中で自分が言うべきことなんてないことに気付く 今後、案件で増えるであろう gRPC についてインフラエンジニアが知っておいても良いと思ったという話 ← 今ここ TL;DR protobuf (Protocol Buffers) はデータフォーマットで、JSONの役割を置き換えるものです。一方 gRPC は通信プロトコルで、HTTPの役割を置き換えるものです。 gRPC をライブラリやツール
こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカ食いマイクロサービス第一位である api
Go を使ってプロダクトを作る時、Makefile を使ってビルドを指定することが多いです。 理由としては、 バージョン情報などを埋め込むのに都合がいい 複数のバイナリを吐き出す時に都合がいい Go のビルドオプションを指定するのにいろいろあって整理しておきたい 事前にコードジェネレータで書き出す部分があり、それを考えると Makefile などで整理したい などなどです。なので今回はプロジェクトが大きくなっていく中でどういう Makefile の書き方をしているか、というのをご紹介しようと思います。 サンプルとして、今回のプロジェクトでは gRPC を使ったチャットサービスのサーバーとクライアントを作ることにします。リポジトリは https://github.com/rosylilly/gochat に置いておきました。 Step 1. バージョン情報を埋める 今回はサーバーとクライアン
昨年はmikutterをほとんど触っていなかったのだが、この頃また大きめの機能開発を行っているので、生存報告を兼ねて現状何をどこまで作っているかを書いておく。 今はプロトタイピングの段階で、まだそれをまとめて動かせるような状態にはなっていない。できてもいない話を書き残すのは嫌なのだが、一応コードはあるから......という言い訳をしつつ、往生際の悪いことにまだmikutterに機能追加する意欲があるということを伝えるとともに、自分の頭の整理も兼ねてこの記事を書いている。 (書いてる最中に2013年から存在していたバグを見つけてしまってリリースを打つ羽目になったので、この記事から生存報告の意味はほとんど失われてしまったのじゃ......。) mRPCとは Pluggaloidは、システムをプラグインという単位に切り分けて個別に開発できるようにしつつ、イベントなどの仕組みを使って柔軟にそれらを連携させることが
Today we're releasing Connect, a slim framework for building browser and gRPC-compatible HTTP APIs. Connect is production-ready — focused, simple, and debuggable — and it's fully compatible with gRPC clients and servers. If you're frustrated by the complexity and instability of today's gRPC libraries, we think you'll find Connect a breath of fresh air. connect-go is available now under an Apache 2
こんにちは。SRE/データストアチーム の飯塚です。 私たちのチームではデータベースを代理で操作したり情報を取得したりするサービスをいくつか作り、それをプロダクトチームが利用できるように gRPC 経由で提供しています。ところで、ある日突然「分散トレーシングを活用していくことになったので、あなたのチームのサービスも対応させてください」とお願いされたらどうすればよいでしょうか?私はこれまでにいろいろなカンファレンスで分散トレーシングや OpenTelemetry についての講演を聞いていたので、理念は理解した、便利そうだ、導入してみたい、と思ったことは何度かありました。しかし実際に導入しようとして SDK のドキュメントを開いてみると、理解しなければいけない(ように見える)概念や、使い方をマスターしないといけない(ように見える)API の数に圧倒されてしまい、後回しにしてしまっていました。
AWS News Blog New – Application Load Balancer Support for End-to-End HTTP/2 and gRPC Thanks to its efficiency and support for numerous programming languages, gRPC is a popular choice for microservice integrations and client-server communications. gRPC is a high performance remote procedure call (RPC) framework using HTTP/2 for transport and Protocol Buffers to describe the interface. To make it ea
技術部 SRE グループの鈴木 (id:eagletmt) です。 クックパッドでは Amazon ECS をオーケストレータとして Docker を利用しています。Docker 自体は2014年末から本番環境にも導入を始めていましたが当時はまだ ECS が GA になっておらず、別のしくみを作って運用していました。2015年4月に GA となった ECS の検討と準備を始め、2016年より本格導入へと至りました。クックパッドでは当初から Hako というツールを用いて ECS を利用しており、Hako の最初のコミットは2015年9月でした。 https://github.com/eagletmt/hako/commit/7f95497505ef78491f3f68e9d648204c7c9bb5e2 当時は ECS に機能が足りずに自前で工夫していた部分も多かったのですが、ECS やそ
ども、もこ(札幌オフィス)です。 本日開催のClassmethod Odyssey (DevelopersIO 2024) で登壇いたしましたので、資料とソースコードを公開します。 資料 ソースコード DEMOでお見せしたコードは下記にて公開しております。 https://github.com/mokocm/go-task-backend 所感 gRPC、なんとなく難易度が高そうなイメージがありますが、Protocol Bufferとの親和性も高く、非常に洗礼されたエコシステムとなっているため、是非これきっかけで興味を持っていただけると幸いです!
ソウゾウの Software Engineer をやっています、@mookjp です。 8/10 の記事「メルカリShopsの技術スタックと、その選定理由」では、メルカリ Shops のアーキテクチャについて、その全体像を紹介しました。 この記事では、そのうちの BFF(Backend for Frontend) レイヤとして用意した GraphQL サーバについて、NestJS を使った実装例を交えて紹介します。 GraphQL とは GraphQL サーバ周辺の構成 NestJS とは GraphQL Module NestJS で Code First なスキーマ定義をする Object types の定義 Query と Mutation の定義 GraphQL スキーマの生成 スキーマの Breaking Change (破壊的変更)を防ぐ DataLoader を使って Bat
こんにちは、Wantedly People アプリの開発をしている竹野(Altech)です。今回は、Protocol Buffers についての記事になります。 Wantedly People では、2018年に Protocol Buffers (以下、Protobuf と呼ぶ)がとあるマイクロサービスに入って以降、何度か大規模に Protobuf を使った開発をしてきました。またその経験を通じて、Protobuf には単に「型がついて嬉しい」というだけではないパラダイム的な変化があることが分かってきました。 その知見を全社に展開するため、去年「Protobuf によるプロダクト開発速習会」という会を行いました。この記事の内容は、そこで話したことの前半「Protobuf を使うと開発がどう変わるのか?」になります。 なお、Protobuf にはバイナリフォーマットとしての役割とインターフ
サービス間通信とIDL(インタフェース記述言語)連載の2日目のエントリーです。 本当はGraphQLネイティブなデータベースの紹介をしようとしたのですが、紹介しようとしていたものがまだベータでクライアントライブラリが公開されていない(空っぽのリポジトリしかない)みたいな感じで試せなかったので、急遽2022年6月1日に公開されたばかりのgRPC関連のライブラリのConnectを紹介することにしました。 Connectの開発元が公開したブログは次のサイトにあります。 Buf | Connect: A better gRPC 公式ドキュメントはこちらです。 Introduction | Connect なお、gRPCについての詳細はこのエントリーでは紹介しません。ちょうど、H.SakiさんがgRPCの詳しい紹介の記事を書いてくれているので、ぜひ、みなさんこちらを参照ください。 作ってわかる! はじ
はじめに 転職後の二つの喪失感への対応 所属チームの現状とMonotaROのアプリケーション/サービス共通基盤(所謂プラットフォーム) 所属チームの状況 社内プラットフォームの状況 マイクロサービス開発のためのテンプレートの導入 開発のロケットスタート:テンプレートの早期提供 テンプレート作成の5つの要点 1. ベンダー非依存なObservabilityの実装 2. CI/CDを早期に提供(特にLinterを最初期に) 3. APIプロトコルとして、JSON over HTTPとgRPCの双方をサポート 4. 最低限の薄いフレームワーク 5. セントラルProtobufリポジトリの提供 現在の取り組み (2023年10月以降)と今後の展開 さいごに はじめに はじめまして、MonotaROのCTO-Officeに所属する伊藤と申します。 github.com recruit.monotar
複雑なフォームの jotai 設計 / Designing jotai(state) for Complex Forms #layerx_frontend
はじめに こんにちは!エンジニアの柿森です。新規プロジェクトを担当しております。 ANDPADではマイクロサービス開発を推進しており、新規プロジェクトは個別に技術選定を行い、既存システムとAPI経由で連携します。 また、マイクロサービス基盤はk8sで構築されており、死活監視やログ収集もよしなにやってくれる環境が整っております。 新規プロジェクトを立ち上げで、k8s上に乗せることを前提に技術選定を行いました。 技術選定を行うにあたって検討したポイントと、採用した技術について話していきたいと思います。(あくまで筆者個人の考えです。) 採用した技術スタックの概要 フロントエンドはBlitz-jsを参考にNext.jsを採用。 バックエンドはGo + gRPCを採用。 技術選定の方針 大きな方針としては一般的な考えを踏襲しています。 ドキュメントがしっかりしており、GitHubのStarがそれなり
gRPCの概要 gRPCはオープンソースのRPCフレームワーク(後述)です。Googleによって開発され、2015年にオープンソースとして公開されました。gRPCは一般的にマイクロサービス間での通信や、モバイルアプリとバックエンドサーバー間の通信で用いられます。 マイクロサービスとは、機能ごとにサービスとして独立させることを指します。マイクロサービスを組み合わせることで、一つの大きなサービスを提供します。マイクロサービスの例としては、決済機能、検索機能などがあります。 (公式サイトより) 図のようにgRPCでは、異なる言語間であっても通信を行うことで、サービス連携を可能とします。例えば、gRPC サーバに実装された関数をクライアント側(図だとRubyやAndroid-Java)で実行するといったことが実現できます。 gRPC誕生の背景 gRPCはHTTP/2(後述)などの技術の標準化が進ん
まとめ 相性バツグンといわれる、モバイル x gRPCは思ったよりずっと簡単に実装可能 複数言語間でもProtocol Buffersの恩恵により型変換を意識することなくスムーズに開発が進められる。 メソッド、引数の型、引数の返り値の型が自動生成されるのでとても良い RESTful APIにおけるheaderを、表現力の高いMetaDataとして利用し、認証認可等にも使えそう Streamをうまく使いこなせば、ユーザー体験をめっちゃ高くできそう。チャットやゲームなどの双方向通信が比較的楽に実装できるかも どんな人向きでない記事? NestJSの詳しい実装を知りたい方 Bidirectional streaming, Client streamの詳細実装を知りたい方 モバイル向け通信技術の本格的な選択肢、gRPCを実際に試してみたい 現在、私の働いているMinediaで開発しているサービス群
gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日本語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕
はじめに Protocol BuffersとRustの実践的な学習を目的として図書管理システムを開発しました。 システムの構築にあたってはBufによるスキーマ管理とコード生成を採用することで開発環境を実現しています。今回の実装を通じてRustにおけるgRPCサービスの構築手法について理解を深めることができました。 buf.build フロントエンド開発については今後の課題として検討しています。 Remixが気になっているので実装したいと思ってます。本記事ではバックエンド実装に焦点を当てて解説します。 特にRustのエコシステムにおけるtonicやSQLxといったライブラリの活用方法に着目します。これらの実装を通じて得られた知見は他のRustプロジェクトにも応用可能な内容となっています。 学習目的で実装したコードなので何かに活用していただければ幸いです。 github.com プロジェクトの
こんにちは。ニコニコ動画開発の多胡です。 今回は PHPerKaigi2023 向けの記事として、2021年に実施したニコニコ動画のコメントサーバーをお引越しした時のことを書いてみたいと思います。 文中の 5 つのフレーズをチャレンジトークンとしてみました。ぜひ探してみてください! (※(注記) 記事の見出しにの横についている「#」はチャレンジトークンではありません。チャレンジトークンは文中に配置されています。紛らわしくてすみません!) 背景 実はニコニコ動画の #コメントサーバーを引っ越した のはこの時が二度目でした。 一度目は2014年から2016年にかけてのプロジェクトでファイルベースのシステムからの引っ越しでした。このファイルベースのシステムは、ニコニコ動画生誕当時から利用されており、当時のコメント参照や投稿にはすでに耐えられない状態になっていました。 そこで、このファイルベースのシステム
こんにちは、プラットフォームチーム所属のまこたすです。 昨今、様々な場で「モジュラーモノリスを導入した」という話を目にするようになってきました。弊社でも昨年からモジュラーモノリスの試験導入を進めており、社内でノウハウが徐々に溜まってきたため、今回 技術ブログ で なぜ導入したのかと知見の共有 をさせていただけたらと思います。 想定読者 モノリスなアプリケーションの分割を検討している Railsへのモジュラーモノリスの導入を検討している 話さないこと チーム体制がどうあるべきかという観点の話 以下アーキテクチャについての詳細 モノリスアーキテクチャ モジュラーアーキテクチャ 背景 今回「モジュラーモノリスを導入した」というタイトルですが、最初に検討・導入に至るまでの背景について触れたいと思います。 hacomonoという組織・サービスの成長 hacomonoというサービスはリリースから現在に
この記事は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以外でも徐々に利用さ
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINE株式会社OA SREチームのhasebeです。 先日、私の担当するプロダクトにてPyroscopeというツールを導入しました。このブログではなぜPyroscopeを導入したのか、導入した結果どういった利点があったのかなどについてご紹介したいと思います。 Pyroscopeとは Pyroscopeとは、Continuous Profilingを実施することができるOSSのツールです。 Profilingについては特に説明は不要でしょう。ざっくりいうと、CPUやメモリ等のリソースをプログラム中のどこが多く消費しているのか(= ボトルネック)を突き止める手法のことを意味します。 一般的には、なにか問題が起きたときに手動でPr
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く