並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 124件

新着順 人気順

モジュラモノリスの検索結果1 - 40 件 / 124件

  • 認証と認可と課金とコアドメインを分離したシステムは勝てるという話 - まっちゅーのチラ裏

    自分が複数のシステムの開発を経験して得た確信として、「認証と認可と課金とコアドメインの分離がめちゃくちゃ重要である」というものがあるので、コレを整理してアウトプットしていく 分離するモチベーションとは Microservice文脈でいうと、デプロイ独立性だったり、リソースの最適配分だったり、障害の局所化だったり、開発組織とのマッピングだったりがメリットとして語られることが多い。 だが、ここで取り上げたいのは戦術的DDD的観点でのコンテキスト分離の有用性である。 ※ちなみにコンテキスト分離のみであればモジュラモノリスだけで実現可能。 戦術的DDD的観点での関心事の分離によるメリットとは コンテキストが分離されていることによって、境界をまたぐ際に「このI/Fは正しいのか?」を都度考えることを強制することができる。 境界がなければ意図しない密結合を生みやすくなってしまう。 もちろん、境界を超える

      認証と認可と課金とコアドメインを分離したシステムは勝てるという話 - まっちゅーのチラ裏
    • バックエンド Web API に管理画面/管理機能を追加するアーキテクチャパターン - valid,invalid

      プレゼンテーションレイヤ、いわゆるフロントエンドがクライアントサイドで実装・実行されるアーキテクチャ (注 1) において、管理画面/管理機能をあとから追加する際にどのような実装パターンがあるのかを整理してみます。 注 1: Presentation Domain Separation の実践の中でも、物理的にプレゼンテーションロジックとドメインロジックを分離しているアーキテクチャです。 用語の整理 プレゼンテーションレイヤ 三層アーキテクチャにおける、システムの利用者へユーザインターフェイスを提供する層です。本記事では"フロントエンド"とほぼ同義で使います。 OSI 参照モデルの第六層ではないです。 バックエンド Web API とは プレゼンテーションを持たない Web API (HTTP プロトコルを用いてネットワーク越しに呼び出すアプリケーション) とします。 プレゼンテーションレ

        バックエンド Web API に管理画面/管理機能を追加するアーキテクチャパターン - valid,invalid
      • 注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools

        公開日 2024/05/27更新日 2024/05/27注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 現代のITサービスは、ユーザーに高品質で安定した体験を提供するために、より効率的で柔軟な技術選定が不可欠です。 本特集では、注目企業のシステムアーキテクチャ設計に携わるエンジニアの方々より、それぞれの技術選定における工夫と、未来を見据えた展望についてご寄稿いただいています。 各企業がどのように課題を乗り越え、開発生産性や品質を向上させるためにどのようなアプローチを採用しているのか ー この記事を通じて、実際の現場で活用される最先端の技術や戦略を学び、皆さんのプロジェクトに役立つ洞察を得ていただければ幸いです。 ※ご紹介はサービス名のアルファベット順となっております airCloset - 株式会社エアークローゼット エアークローゼットは日本初・国内最大級、女

          注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 - Findy Tools
        • Shopifyはいかにしてモジュラモノリスへ移行したか

          Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

            Shopifyはいかにしてモジュラモノリスへ移行したか
          • モノリスとマイクロサービスを経てモジュラモノリスを導入した実践事例

            全てのAPIをProtocol Buffersで管理する / Manage all APIs with Protocol Buffers

              モノリスとマイクロサービスを経てモジュラモノリスを導入した実践事例
            • [翻訳] Shopifyにおけるモジュラモノリスへの移行 - Qiita

              こんにちは、食べログシステム本部長の京和です。 本エントリでは Shopify の Engineering Blog から、Kirsten Westeinde による「Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity」を翻訳して掲載します。 食べログではユーザーや飲食店に価値を届けるスピードを最大化するべく、マイクロサービス化などをはじめとしたこれまでの組織やアーキテクチャを刷新するための取り組みを始めています。しかし、マイクロサービスはアプリケーションアーキテクチャとインフラアーキテクチャが複雑に絡み合ったシステムで技術的難易度が非常に高く、適切に構築できなければ「分散されたモノリス」と呼ばれるアンチパターンに陥ります。1 Shopifyではマイクロサービスではなく、

                [翻訳] Shopifyにおけるモジュラモノリスへの移行 - Qiita
              • BASE大規模リアーキテクチャリング / base_rearchitecturing

                モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith

                  BASE大規模リアーキテクチャリング / base_rearchitecturing
                • モジュラモノリスに移行する理由 ─ マイクロサービスの自律性とモノリスの一貫性を両立させるアソビューの取り組み|ハイクラス転職・求人情報サイト AMBI(アンビ)

                  モジュラモノリスに移行する理由 ─ マイクロサービスの自律性とモノリスの一貫性を両立させるアソビューの取り組み 大規模なソフトウェア開発においてモノリシックかマイクロサービスかというアーキテクチャの議論がありますが、近年は第3の選択肢としてモジュラモノリスが話題になっています。いったんマイクロサービス化に舵を切りながら現在はモジュラモノリスに取り組むアソビューの考え方や進め方について、VPoEの兼平大資(disc99)さんによる寄稿です。 アソビューでは、現在の事業状況にマッチしていることや過去の経緯から、モジュラモノリスを中心としたアーキテクチャを採用しています。 今回は、なぜその選択をし、どのように実現しているかを紹介します。 記事の前半では、アソビューが提供する事業や、アーキテクチャに対する考え方、開発組織の歩みなどを説明します。 中盤以降は、アソビューにおけるモジュラモノリスへの取

                    モジュラモノリスに移行する理由 ─ マイクロサービスの自律性とモノリスの一貫性を両立させるアソビューの取り組み|ハイクラス転職・求人情報サイト AMBI(アンビ)
                  • リアクティブは難しいが役に立つ - Chatwork Creator's Note

                    お久しぶりです、かとじゅん(@j5ik2o)です。テックブログを書くのは何年ぶりか…。 サービスが停止したり応答性が低下すると、お叱りや逆に励ましをいただきますが、エンジニアとして設計レベルからそういった問題に対処するにはどうするか、日々精進しているところですmm。この記事はそういう論点で注目されている「リアクティブ原則」についてまとめてみたいと思います。 それなりのボリュームになってしまったので、時間があるときに読んでいただければと思います。 さて、Linux Foundation内の新たなトップレベルプロジェクトであるReactive Foundationが主催する、Reactive Summit 2020が11月10日にオンラインで開催されたので参加しました。 www.reactivesummit.org 参加されていたスピーカーはLightbendをはじめ、Netflix, Fac

                      リアクティブは難しいが役に立つ - Chatwork Creator's Note
                    • React Server Componentsに感じたフロントエンドの消失

                      はじめに 新年早々に面白そうな記事を見つけました。ReactでのAPI呼出しを最適化するために「部分的にサーバサイドで実行するコンポーネントを作る」というもののようです。 あるいは去年の記事ですが気になってたものとしてBlitz.jsでReactベースのFWであるnext.jsに永続化層を持たせてRailsのようなFWにしようというアプローチもあります。 どちらの記事も書かれてる内容自体は分かる気がするものの 「それをフロントエンドでやる意味あるの?」 というのが拭えずイマイチ腑に落ちなかったんですが、単純に 「私と最前線でやられてる方々で期待してるものがたぶん違う」 という気がしてきたので、その辺を整理のために書いてみます。 注意書き Vue.js/Nuxt.jsは少し触ったことがありますが、React Server ComponentsやBlitz.jsを触ったことは無いです 「なんで

                        React Server Componentsに感じたフロントエンドの消失
                      • モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith

                        モジュラモノリスにおいてトランザクションはどうあるべきなのかについて整理している資料が少ない気付きがあったので「簡易的に」整理しました

                          モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith
                        • マイクロサービスでチームを分離したくないマン - まっちゅーのチラ裏

                          コンウェイの法則とかで、マイクロサービス=組織 という話になることが多いなと感じる。 正解の場合もあるし、不正解の場合もあると思っていて、個人的には小さいチームでもマイクロサービスをやるメリットは技術的にも組織的にもあると思う。 そのメリットを無視してすぐ組織の話に持っていきたくないので、基本分離したくないマンとしての主張を書いておく 技術観点でのメリット いまさら語るまでもないけど、 ドメイン境界の分離 デプロイ独立性 リソースの最適配分 障害の局所化(サーキットブレーカー等) このうち、ドメイン境界の分離だけはモジュラモノリスで対応可能だが、あとの3つにはマイクロサービスが必須。(もっとあるかも) この3つが必要なのにモノリス or モジュラモノリス で進める判断をするということはシステムの表現力を落とすことに直結する。 もちろん、複雑度は増すし難易度も増す。熟練のサーバーサイドエンジ

                            マイクロサービスでチームを分離したくないマン - まっちゅーのチラ裏
                          • タイミーのRailsアプリをシニアなエンジニアが採点したらだいぶ辛口だった - Timee Product Team Blog

                            この記事はTimee Advent Calendar 2023シリーズ 1の1日目の記事です。 はじめに こんにちは、タイミーでバックエンドエンジニアをしている須貝(@sugaishun)です。昨年は弊社でアドベントカレンダーに取り組んだか覚えていないのですが、今年はなぜかいきなり3トラックで臨むということで、非常に勢いがあるなと思いました。量と勢いで攻めていくところが弊社らしいなと感じています。全て完走できると良いですね。 さて私はその中のひとつのトップバッターということで、タイミーのRailsアプリケーションについて弊社のシニアなエンジニアたちと雑談した内容を座談会風にお伝えできればと思います。事の発端は弊社Slackのバックエンドエンジニアが集まるチャンネルで「タイミーのRailsアプリケーションの健康度はどのくらいなのか?」という会話をしたことでした。その時の私の感想は「人によって

                              タイミーのRailsアプリをシニアなエンジニアが採点したらだいぶ辛口だった - Timee Product Team Blog
                            • [翻訳] Shopifyにおけるモジュラモノリスへの移行 - Qiita

                              こんにちは、食べログシステム本部長の京和です。 本エントリでは Shopify の Engineering Blog から、Kirsten Westeinde による「Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity」を翻訳して掲載します。 食べログではユーザーや飲食店に価値を届けるスピードを最大化するべく、マイクロサービス化などをはじめとしたこれまでの組織やアーキテクチャを刷新するための取り組みを始めています。しかし、マイクロサービスはアプリケーションアーキテクチャとインフラアーキテクチャが複雑に絡み合ったシステムで技術的難易度が非常に高く、適切に構築できなければ「分散されたモノリス」と呼ばれるアンチパターンに陥ります。1 Shopifyではマイクロサービスではなく、

                                [翻訳] Shopifyにおけるモジュラモノリスへの移行 - Qiita
                              • RustでAPIを開発してみたら結構辛かった話

                                はじめに 皆様こんにちは、株式会社プラハのAwataです。 今日は、以前書いたリーダーの振り返り記事で軽く触れていた、RustでのAPI開発についての記事を書いていこうと思います。 結論RustでWebは辛い!という話なんですが、約5か月くらいRustでWeb開発をしたので、今後の参考になるようなことを書いていこうと思います。 ぜひ最後までお付き合いください。 TL;DR RustでWeb開発はまだ早いかもしれない。 RustでDDDはやりやすい。ただしDIがやりにくい場合があるので、そこは要注意。 Rustはモジュールの仕組みが協力なので、モジュラモノリスはやりやすい。 サンプルリポジトリはこちら Rustはやっぱり難しいけど人気の理由も少し分かった気がする そもそもなぜRustでやってみようとなったのか 前例が少ない中、どうしてRustで開発しようと思ったのか気になる方も多いと思います

                                  RustでAPIを開発してみたら結構辛かった話
                                • GoとKinesis Data Firehoseで非同期の検索基盤を構築─モノリス化した「カオナビ」はアーキテクチャ改善にどう取り組み始めたか - はてなニュース

                                  社員の個性・才能を発掘し、戦略人事を加速させるタレントマネジメントシステム「カオナビ」を提供する株式会社カオナビでは、SaaS移行にあわせてクラウドを全面的に採用し、インフラの自動化などにAWSのマネージドサービスを積極活用しています。とはいえ10年近い運用で、サービス開発におけるシステムのモノリス化が課題となってきました。 こういった全社的な課題は、2020年からCTOを務める松下雅和(@matsukaz)さんを中心にCTO室で対応しています。モノリスなシステムは、全体のモジュラモノリス化を前提に、とくにボトルネックとなる検索処理を非同期の基盤サービスとして切り出しています。 この検索基盤の設計と実装を通して、カオナビはシステムのアーキテクチャ改善をどのように進めようとしているのか。非同期である必要性や、デプロイの工夫、開発組織の文化まで含めて、CTO室の千葉峻秀さんとインフラグループの

                                    GoとKinesis Data Firehoseで非同期の検索基盤を構築─モノリス化した「カオナビ」はアーキテクチャ改善にどう取り組み始めたか - はてなニュース
                                  • ソースコードのハッシュ値を利用したCIの高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ

                                    こんにちは、kintoneチームの川向です。 ソースコードハッシュ値計算ツールであるsverを導入してCIの高速化を行ったので、その紹介をさせてください。 この仕組みにより、通常は1時間かかるCIの実行時間が最善のケースでは20分程度に短縮可能になりました。 導入前の課題 解決方法の検討 sverを使ったテストのスキップによるCI高速化 kintoneでのsverの利用方法 sver設定ファイルの書き方 キャシュの保存先(GitHub Actions Cache、Amazon S3) sverを使ったジョブの書き方 sver情報生成ジョブ: ハッシュ生成とキャッシュの存在確認 ビルドジョブ: 依存ファイル以外に依存しないことの確認 テストジョブ: ジョブ成功後にキャッシュ保存 下流ジョブのifの書き方 結果 課題と今後の展開 まとめ 導入前の課題 kintoneのCIの大まかな構成は以下の

                                      ソースコードのハッシュ値を利用したCIの高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ
                                    • GraphQL Gatewayはフロントエンド開発を幸せにする

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

                                        GraphQL Gatewayはフロントエンド開発を幸せにする
                                      • マイクロサービスにおける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
                                        • フロントエンドの消失 - または戦争が激しくなる話

                                          React Server Components に感じたフロントエンドの消失という記事に端を発する一連の議論だが、実際この記事で書かれていることはそうだろうなと思う。話の流れとして誤ってる部分はないと思うし同意する。 この記事ではフロントエンドエンジニアとして、この件についての僕の見解を書く。もちろんフロントエンド(とは?)の総意ではない。 元記事と重複する部分多いが、そこは同じ問題を取り扱う以上避けて通れないため、ご容赦いただきたい。 同じ領域を取り扱ってる以上、開発戦争は激しくなる 様々な理由によりユニバーサルが求められている ※この記事でいう「戦争」とは、お互いの領域を食い合う開発が、活発化することを「戦争」と称しているだけです。それ以上の意図は全くございません 領域がかぶっている 最近のフロントエンド系ユニバーサルエコシステムは、たしかに PHP や Rails の領分を侵そうとし

                                            フロントエンドの消失 - または戦争が激しくなる話
                                          • 深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / Modular Monolith That Support Deep Domains And Integrated Management Platform

                                            freeeにおけるモジュラモノリスの事例を大規模プロダクトから新規プロダクトまで紹介します。

                                              深いドメインと統合型経営プラットフォームを支えるモジュラモノリスの事例 / Modular Monolith That Support Deep Domains And Integrated Management Platform
                                            • Spring Modulith でモジュラモノリスなアプリの構造を検証してみた - Taste of Tech Topics

                                              アクロクエスト アドベントカレンダー 12月9日 の記事です。 普段は Java, Python でバックエンドの開発をしている大塚優斗です😃 最近は Spring フレームワークのメジャーアップデートなどで盛り上がっていますね! 10月にこんな記事を見かけて、Spring Modulith がとても気になっていたので、手元で試したことを書いていきます✍️ Spring Modulith とは Spring Modulith でできること 0. Spring Modulith でのパッケージの扱いについて 1. モジュール構造の検証 循環参照の検知 別モジュールへのアクセス違反の検知 2. モジュールに閉じた結合テスト 単一のアプリケーションモジュールで結合テストができること Bootstrap モードによって、結合テスト時に他モジュールの Bean 生成ができること 3. イベントによ

                                                Spring Modulith でモジュラモノリスなアプリの構造を検証してみた - Taste of Tech Topics
                                              • マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入

                                                LINE株式会社 古田 大志 京都開発室 / 出前館マーチャント部 クーポンサービス チームリード 2023.9.12「モジュラモノリス徹底解剖vol.2〜実践者から学ぶLunch LT〜」の登壇資料です https://findy.connpass.com/event/293748/

                                                  マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
                                                • エンジニア組織のロール再定義、横断で動くためのCTO室設立… 組織改善にはボトムアップとトップダウンのどちらも大切

                                                  ソフトウェア開発に関わる人々の新たなきっかけを生み出す場となることを目指す「Qiita Conference」。ここで「働きやすく、成長し続けられるエンジニア組織を目指して 」をテーマに株式会社カオナビの松下氏が登壇。ここからは、CTOに就任して行った取り組みと、CTO室の設立について話します。前回はこちらから。 CTOに就任して行った3つの組織的な取り組み 松下雅和氏:ここからはCTOとして組織全体の話をしようと思います。当時「ニューノーマル時代のカオナビへ」ということで、オフィスの移転を行っています。カオナビでは、働き方を選択するのは企業ではなく、社員がするべきだと考えています。 出社は義務ではなく、自由に出社しても自宅でもいい。出社するなら居心地のいい環境を提供するのが企業の義務だと考えているので、すごくいい環境のオフィスを提供してもらった記憶があります。 働き方では、ハイブリッド勤

                                                    エンジニア組織のロール再定義、横断で動くためのCTO室設立… 組織改善にはボトムアップとトップダウンのどちらも大切
                                                  • モノリシックRailsアプリケーションを モジュラモノリスへ移行している noteの事例

                                                    自動テスト実行結果の目的を整理する / Organizing objectives of automated test results

                                                      モノリシックRailsアプリケーションを モジュラモノリスへ移行している noteの事例
                                                    • Sansanの「Bill One」がマイクロサービス化に挑戦した理由 ある程度方向性が見えてきてからサービスは分割すべき

                                                      Sansan Technical Viewは「挑戦」をテーマにSansanエンジニア達の開発における取り組みや知見を発表するイベント。Bill One事業部のソフトウェアエンジニアである加藤氏がマイクロサービスへの取り組みを紹介しました。発表資料はこちら。 Bill Oneでのマイクロサービスの取り組み 加藤耕太氏:こんにちは。加藤です。今日は『新規事業でもマイクロサービスに挑戦する』というタイトルでお話しします。マイクロサービスアーキテクチャについてご存知の方は、新規サービスをマイクロサービスで作るのはアンチパターンである、という話を聞いたことがあるかもしれません。 チームが小さいにもかかわらず流行りに乗ってマイクロサービスに分割して作ってみたものの、開発の効率が落ちるだけでしたとか、独立してデプロイできない分散モノリスができあがってしまいました、のような失敗談を聞くことがあります。 新

                                                        Sansanの「Bill One」がマイクロサービス化に挑戦した理由 ある程度方向性が見えてきてからサービスは分割すべき
                                                      • ユビーにおけるシステムアーキテクチャを改善するための取り組み

                                                        @hokaccha です。こんにちは。最近は主にプロダクト基盤チームで組織的な開発生産性の改善に取り組んでいます。この記事では開発生産性を改善の一環として、現在取り組んでいるシステムアーキテクチャの改善や技術的負債の返却の取り組みについて紹介します。 なぜアーキテクチャを改善するのか 最初に、なぜ我々がアーキテクチャ改善に取り組んでいるかの背景について説明します。 最終的にやりたいことは開発生産性を改善することにより、事業の成長速度を最大化することです。アーキテクチャの改善はそのための手段の一つであり、他にも開発プロセスの改善や開発組織の最適化など、開発生産性の改善のために並行しておこなっている施策は多岐にわたります。 ではアーキテクチャの改善がどう開発生産性に影響を与えるかという話ですが、これについては Martin Fowler の Design Payoff Line の図を引用しま

                                                          ユビーにおけるシステムアーキテクチャを改善するための取り組み
                                                        • 『設計ナイト2024』に行ってきたよメモ - コード日進月歩

                                                          『設計ナイト2024【オフライン】 - connpass』に参加してきたのでそのメモです。 各発表の感想 ※資料スライドは見つけたら貼ります。 ロジックから状態を分離する技術 今日の登壇資料です。 ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyhttps://t.co/XxBNAYiKXS #sekkeinight— わいとん (@ytnobody) 2024年6月14日 感想 純粋関数の話を基軸にいかに容易にしていくのか、という話 入力から必然的に出力が決まるロジック類をDomainとしておこうという発想はよかった 純粋関数の構成デザインパターンの分け方すごくいいなぁと思ったのと、このあたりの話を提唱している人いないのがびっくり 関連リンク 純粋関数とは - 意味をわかりやすく - IT用語辞典 e-Words Flux パターンが解決した課題 -

                                                            『設計ナイト2024』に行ってきたよメモ - コード日進月歩
                                                          • Railsプロジェクトをモジュール分割して見通しをよくする|こんぴゅ

                                                            今年もRubyKaigiが始まりましたね!noteはrubyスポンサーとして協賛しています。三重の会場にきている方は、ぜひnoteのブースにも足を運びください。 さて、noteはRuby on Railsを用いたwebサービスとして2014年にリリースされました。現在でも継続してRailsのコードベースを利用しています。 しかし、多くの機能がリリースされ、開発者も増えたため、モノリスの巨大化が進んでおり、開発効率に影響が出始めていました。 今回はそれらの問題を解消するために、noteが継続的に取り組んでいる・取り組んできたバックエンドの改善プロセスについて説明していきます。 モジュールでサービスを構成するモノリスは大きくなるとメンテナンスが難しくなります。Railsは、MVCの各層に全てのドメインがフラットに並び、レイヤごと・レイヤ間の結合度が高くなる設計思想で、巨大モノリス化への対処が難

                                                              Railsプロジェクトをモジュール分割して見通しをよくする|こんぴゅ
                                                            • Clean ArchitectureとEffで変更に強いAPIを設計する

                                                              モジュラモノリスで表現する複雑なドメイン領域と境界 https://speakerdeck.com/showmant/expressing-complex-domain-regions-and-boundaries-with-modular-monoliths PofEAAで考えるSaaSバックエンドの作り方 https://speakerdeck.com/dnskimo/pofeaadekao-erusaasbatukuendofalsezuo-rifang The Clean Architecture https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html Freer Monads, More Extensible Effects http://okmij.org/ftp/Haskell/

                                                                Clean ArchitectureとEffで変更に強いAPIを設計する
                                                              • コードベースがでかい・テーブルの規模がでかい・エンジニア人数がでかい SmartHRにおける“でかい三銃士”解決のための取り組み

                                                                SmartHR、LayerX のアーキテクチャをそれぞれ話す「マイクロサービス?モノリス?2 社のアーキテクチャから見るPros/Cons」。ここで株式会社SmartHRのすがわら氏が登壇。「SmartHR」における3つの「大きくてつらい」問題と、その解決に向けた社内の取り組みを紹介します。 自己紹介 すがわらまさのり氏:本日はSaaSのアーキテクチャについて、私の所属企業であるSmartHRの事例を紹介していければと思います。「SmartHR」は人事労務に関する処理をペーパーレス化できたり、人事データの一括・一元管理を行えるサービスを提供するSaaSです。 はじめに、簡単な自己紹介をさせてください。私はすがわらと言います。SmartHRに2年くらい在籍しています。職種はプロダクトエンジニアで、いわゆる開発をするエンジニアです。2021年の7月からチーフという役割をもらっていて、チームのマ

                                                                  コードベースがでかい・テーブルの規模がでかい・エンジニア人数がでかい SmartHRにおける“でかい三銃士”解決のための取り組み
                                                                • N予備校バックエンドでサーバーサイドKotlin移行を始めました - ドワンゴ教育サービス開発者ブログ

                                                                  はじめに 現在、N予備校バックエンドチームでは、現行のRails製アプリケーションからKotlin製の新アプリケーションへ一部移行する計画を始めました。 N予備校サービス構成図 移行の主な対象は、上記の図の紫の部分の 教材管理サービス まわりになります。 移行の目的 今回の移行は、主に次の2つの問題の解決を目指しています。 DBスキーマを含めたモデルの再設計 N予備校はサービスの仕様が十分に固まらないうちから基本設計が開始されたため、必要以上の柔軟性を持つ形で設計されている部分も多く、現在の事業ドメインの知識がモデルで十分に表現されているとは言い難い面があります。 特にコンテンツデータ同士の参照関係については、階層構造の大きな変化1にも対応できるように、多くがActiveRecordのポリモーフィック関連を使って実装され、コードやDBスキーマからデータ構造を読み取るのが非常に難しくなってい

                                                                    N予備校バックエンドでサーバーサイドKotlin移行を始めました - ドワンゴ教育サービス開発者ブログ
                                                                  • チームの機能と配備を考えるための7つのチーム責務定義ガイドライン - mtx2s’s blog

                                                                    前回の記事ではチーム中心の組織づくりの設計原則について書いた。今回は、それらの原則に基づくチームをソフトウェアプロダクト組織内にどう配備し、どのような機能を持たせるかについて考える。これは言わば、チームの責務を定義することに他ならない。本記事ではこれを、7つのガイドラインとして書き出してみることにした。 前回の記事:『チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog』 mtx2s.hatenablog.com 1. ストリームアラインド 2. オーナーシップ制 3. バリエーション分割 4. 技術横断型 5. DevOps 6. 機能横断型 7. マルチスキル 組織設計とはアーキテクティングである 1. ストリームアラインド ソフトウェアプロダクト組織の開発フローは、ユーザーや市場の観察をもとにアイデアを生み出すことから始まる。そのアイデアを仮説として、それを

                                                                      チームの機能と配備を考えるための7つのチーム責務定義ガイドライン - mtx2s’s blog
                                                                    • モジュラモノリスで表現する複雑なドメイン領域と境界 / Expressing complex domain regions and boundaries with 'modular monoliths

                                                                      モジュラモノリスで表現する複雑なドメイン領域と境界 / Expressing complex domain regions and boundaries with 'modular monoliths

                                                                        モジュラモノリスで表現する複雑なドメイン領域と境界 / Expressing complex domain regions and boundaries with 'modular monoliths
                                                                      • Node.jsで作るモジュラモノリスの設計と技術選定

                                                                        この記事はUbie Engineering Advent Calendar 2023の一日目です。よろしくお願いします。 背景 ユビーのシステムは言語が多様化してきたことにより、認知負荷の増加や運用負荷の増加、開発支援に仕組みづくりかけるコストの増加などの問題が発生していました。この課題を解決するためにNode.jsとGoに言語を絞っていくという意思決定をしたのが昨年です。これについては以下の記事で詳しく解説しています。 ちょうど去年のアドベントカレンダーの記事なのでこれから一年経ちました。ここでは以下のように述べられています。 Server-Side Kotlin などで書かれている既存サービスを、この技術選定の文脈でリプレイスすることは今のところ考えていません。 ただし、多くの既存サービスはドメインたくさん抱えすぎ問題があったり、色々とレガシーだったりして、徐々に別サービスに切り出して

                                                                          Node.jsで作るモジュラモノリスの設計と技術選定
                                                                        • Modular Monolith(モジュラーモノリス)の記事とか色々読んでみた

                                                                          最近Modular Monolith(モジュラーモノリス)というアーキテクチャについての記事を色々と読んでいます。 個人的に面白いアーキテクチャかなと思っているのでメモがてらまとめてみたいと思います。 目次 Modular Monolithとは 記事 Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity The Modular Monolith: Rails Architecture Shopifyはいかにしてモジュラモノリスへ移行したか Modular Monoliths — A Gateway to Microservices モジュラモノリスで表現する複雑なドメイン領域と境界 【2020/10/25追記】 終わりに Modular Monolithとは そもそもMod

                                                                            Modular Monolith(モジュラーモノリス)の記事とか色々読んでみた
                                                                          • Ruby の中にある解決できると嬉しい人が多分多いタフな問題 - HsbtDiary(2022-12-14)

                                                                            ■ Ruby の中にある解決できると嬉しい人が多分多いタフな問題 Ruby 開発チーム(コアチーム)には壺と呼ばれる、「これができるととても嬉しい」というネタを放り込む hackmd のページがあります。issue などにして作ったところで誰かが進めるわけでもないし、project にしても epic すぎるが、いつかは何かやりたいという大きさのものを思いついたらすぐに入れています。 今回は Ruby Advent Calendar 2022 の14日目の記事として、この壺の中から熟成された夢をいくつか取り出してご紹介します。 ライブラリのRactor 対応 Ruby 3.0 の目玉として入った Ractor ですが、Ruby のライブラリが Ractor で動くかというとまだわからない、むしろ動かないだろう、というステータスです。RubyGems や Bundler でネットワークアクセ

                                                                            • 「機能開発優先で技術負債解消が進まない」を変えるために 横断的に動き、採用広報活動も進めるカオナビのCTO室

                                                                              2022年4月新設されたカオナビのCTO室について座談会形式で話す「kaonavi Tech Talk #8 ~部門横断で技術的課題に向き合う!CTO室メンバー座談会~」。ここでCTOの松下氏が登壇。座談会前の発表として、カオナビのCTO室について紹介します。 松下氏の自己紹介 松下雅和氏:カオナビでCTOをしている松下と申します。よろしくお願いします。本日は「部門横断で技術的課題に向き合う!CTO室メンバー座談会」という内容でお送りしたいと思います。 (スライドを示して)まず簡単に自己紹介させてください。私、松下雅和は、@matsukazという(IDで)Twitterなどのアカウントをやっているので、よければフォローなどお願いします。AWS、Node.jsといった技術がけっこう好きです。あと、娘が2人いる2児の父ということで、日々子育てでけっこう苦労して、バタバタしながら仕事をしています

                                                                                「機能開発優先で技術負債解消が進まない」を変えるために 横断的に動き、採用広報活動も進めるカオナビのCTO室
                                                                              • BASE全体のインフラ知識底上げのため AWS JumpStart に参加してもらいました - BASEプロダクトチームブログ

                                                                                この記事は BASE Advent Calendar 2022 の21日目の記事です。 Platformグループでグループマネージャー をしている 松田( @tadamatu ) です。 先日、エンジニア15名に AWS JumpStart(AWS研修プログラム) に参加してもらいました。 この記事では、参加の目的や感想、実際参加してどうだったのか、などを伝えさせていただこうと思います。 「AWS JumpStart(AWS研修プログラム)」とは? AWSが 無償 で提供してくれている研修プログラムで、AWS初学者のエンジニアを対象とした、実践的な2日間の研修プログラム です。 https://awsjumpstart221020.splashthat.com 将来的にAWS活用をリードする人材になるための第一歩をスムーズに踏み出せるようなプログラムをご提供します 単なるAWSサービスの学

                                                                                  BASE全体のインフラ知識底上げのため AWS JumpStart に参加してもらいました - BASEプロダクトチームブログ
                                                                                • Cookpad Lounge #7 世界最大級のモノリスcookpad_allどうする会議 (2021/07/28 20:30〜)

                                                                                  クックパッドのレシピサービスを支えるシステム(レポジトリ名cookpad_all)は、 かつて稼働コードだけで40万行を越える世界最大級のモノリシックRailsアプリケーションでした。 2017年からの様々な改善により、コンテナ化やアプリケーション構成の整理が行われ、 さらにいくつかの機能はマイクロサービスとして分離されてもいます。 next-cookpadにより一部のページのReact化にも成功しました。 ですが多くの改善を経てもcookpad_allはいまなお30万行以上の超重量級アプリケーションであり、 様々な問題を抱えています。マイクロサービスの問題も見えてきましたが、しかし元に戻すのも得策でない。 Shopifyのようなモジュラモノリスも我々には適切でない。 ならば我々はcookpad_allの問題に対してどのように立ち向かっていくべきなのか、 10年後のcookpad_allが

                                                                                    Cookpad Lounge #7 世界最大級のモノリスcookpad_allどうする会議 (2021/07/28 20:30〜)