タグ

WebServiceとarchitectureに関するclavierのブックマーク (6)

  • 新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた

    こんにちは、AIShift バックエンドエンジニアの石井(@sugar235711)です。 AIShiftでは去年の11月からAI Worker[1]という新しいサービスの開発が始まりました。(以下AI Worker) 格的に開発が始まり3ヶ月弱経ったので、その間に試してきた技術やチームの取り組みについてまとめてみたいと思います。 はじめに この記事では、AI Workerのおおまかな概要・設計を説明し、それらのバックエンドを実現する上でどのような技術を試してきたのか、技術以外でのチームの取り組みについてまとめます。 少し分量が多いので、ライブラリについての情報を求めている方は、目次から気になる部分を読んでいただければと思います。 何を作っているのか ざっくりまとめると、Microsoft Teams/Web上で動くAIを活用した業務改善プラットフォームを作成しています。 GPTとRAG

    新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた
  • 複数サービス間でのデータの整合性維持に向けたSagaの実装 - NTT docomo Business Engineers' Blog

    マイクロサービスアーキテクチャにおいては、個々が独立に選定したデータベースを持つ複数のサービスにまたがって、データの整合性を維持する必要があります。 そのための方法として、Sagaパターンと呼ばれる設計方法がありますが、Sagaでは分離性が欠如しておりLost Update等の異常が発生しかねません。 そこで記事では、Sagaの分離性を高めるための実装におけるTipsを解説します。 目次 目次 はじめに 複数サービス間での整合性維持における課題 Sagaパターン Sagaを構成するトランザクション Sagaによって実現される安全性 原子性(Atomicity) 整合性(Consistency) 分離性(Isolation) 永続性(Durability) 異常を防止/軽減する実装 分離性の欠如が引き起こす異常 分離性の欠如への対策 Semantic Lock Commutative Up

    複数サービス間でのデータの整合性維持に向けたSagaの実装 - NTT docomo Business Engineers' Blog
  • サービスメッシュ必読ガイド - 第2版: 次世代のマイクロサービス開発

    2016年頃「サービスメッシュ」という用語は、マイクロサービス、クラウドコンピューティング、DevOpsの分野に登場しました。楽天的なあるチームは、2016年にこの用語を使用して彼らの製品である Linkerd を説明しました。コンピューティングの多くの概念と同様に、実際には、関連するパターンとテクノロジーの長い歴史があります。 サービスメッシュの登場は、主に IT ランドスケープの最悪の状況によるものでした。開発者は、複数言語 (ポリグロット) アプローチを使用して分散システムの構築を開始し、動的なサービスディスカバリーを必要としていました。運用は一時的なインフラストラクチャの使用を開始し、避けられない通信障害を適切に処理し、ネットワークポリシーを適用したいと考えていました。プラットフォームチームは、Kubernetes などのコンテナオーケストレーションシステムの採用を開始し、Envo

    サービスメッシュ必読ガイド - 第2版: 次世代のマイクロサービス開発
  • Steve Yegge の Google Platform Rant をもう一度読む

    2011 年の文章だけど、今でもかなり示唆深い。 Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(前編) Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(中編) Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(後編) 以下は気になったポイントを引用しつつ、行間を読みつつまとめたもの。個人的な解釈も入っているので注意してください。 プロダクトとプラットフォーム まずシステムを “プロダクト” と “プラットフォーム” に分け、それらが根的に違うと言っている。 特定のセグメントに価値を届けるシステム (垂直統合的)特定のセグメントに機能を素早く提供できる完璧な要件定義をし、それをリリースするのが理想 プロダクト プラットフォーム プロダクトは特定のセグメントに対して価

    Steve Yegge の Google Platform Rant をもう一度読む
  • 拡張可能なWeb APIの設計原則と、バージョン番号を使う理由について

    APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sightにはブコメしたのですが、Rebuild: 35: You Don't Need API Version 2 (Kenn Ejima)でも件に言及があったようなので、少し一般論を書いておきたいと思います。 ■Web APIの設計原則について そもそも、良いAPIとはどのような特性をもつものでしょうか? 一般的に、以下の2点が挙げられると思います。 拡張が容易である 拡張時に後方互換性を破壊しない ウェブの場合は、これに加え、 スケーラブルである HTTPに起因する問題に上手に対処できる ことが求められます。 前2者はウェブに限らない要件です。これを満たす設計手法としては、 リクエストおよびレスポンスのパラメータを拡張可能に 互換性を壊す拡張が必要な場合は、関数名を変える 古い関数は従来と同じ機能を

  • Quoraを支える技術 - nokunoの日記

    勉強になる記事を見つけたので気になったところを翻訳してみました。Quora’s Technology Examined | Phil Whelan's Blog はじめにQuoraはハイテク起業家の世界を体現しており、問題を見つけるのが難しいほどなめらかなシステムを提供している。この巧妙なシステムは回答者と質問者だけに支えられているわけではなく、よく練られたバックエンドシステムによっても支えられている。それは共同創業者がFacebookで磨きをかけた技術でもある。さほど驚くべきことでもなく、賢い人々は良く考えられたたくさんの賢い道具を使う。NoSQL信者たちはこう言って頭をかかえる:「なぜQuoraはCassandraやMongoDBやCouchDBのようなNoSQLではなく、MySQLをデータストアとして使うのか?」このエントリではQuoraについての技術的な情報をまとめ、考察を行う。彼

  • 1