タグ

architectureに関するt-wadaのブックマーク (361)

  • アーキテクチャのレビューについて - JaSST Review '18

    2018年12月14日に行われたJaSST Review'18(ソフトウェアレビューシンポジウム 2018)での講演「アーキテクチャのレビューについて」の資料です

    アーキテクチャのレビューについて - JaSST Review '18
    t-wada
    t-wada 2019/10/11
    仕事でアーキテクチャのレビューを行う際に読み直した。さすがのわかりやすさ。後半の「システムの成長リスク」のところも良い。
  • Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明

    はじめに Amazon Auroraは、AWSを触る人ならほとんどの人が利用を検討したことがあるでしょう。 Amazon社内ではOracleを止めたというtweetもありました SHUTDOWN ABORT the last Oracle database running Amazon Fulfillment! pic.twitter.com/DorqTua2Lt— John Darrow (@jdarrow) 2019年3月29日 そんなAuroraは、従来のRDBとは違いクラウド上で動くことを念頭に設計されています。 また、ログが中心的な役割を持つことから「The log is the database」と表現されることもあります。 そんなAuroraの仕組みについての論文を読んだので紹介します。 読んだ論文は以下の2つです。 Amazon Aurora: Design Conside

    Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明
    t-wada
    t-wada 2019/05/14
    MySQL の皮を被った怪物 Amazon Aurora のアーキテクチャ設計思想 "The log is the database" がよくわかるエントリ。 #fukabori の kumagi さん回をあわせて聴きたい
  • ゼロからサーバレスの先頭に追いつこう

    TECH x GAME COLLEGE #2 の登壇資料です https://techxgamecollege.connpass.com/event/95716/ Game Server Services をよろしくお願いします。 https://gs2.io/

    ゼロからサーバレスの先頭に追いつこう
    t-wada
    t-wada 2018/08/31
    Serverless 関係サービスのリリースを時系列で追いながら歴史をふりかえる資料
  • 分かれたシステムをていねいにモノリスに集約する/Integrate decentralized systems to a monolith carefully

    https://starttoday-tech.connpass.com/event/96477/ オウチーノではもともとサービスごとに異なる言語やFWを用いてシステムが分かれており、担当者もそれぞれ別々でした。そのため各サービスに精通した担当者が少なく、担当者は日々の運用で手一杯という状況下で、リプレイスもうまく進んではいませんでした。 そこでリプレイスよりも、分かれているシステムをひとつのモノリシックアプリケーションに集約することで、チームとしてよりワークすることをまずは目指しました。 一方で数多くのサービス機能を集約することは、そのモノリシックアプリケーションが急激に肥大化することも意味します。そこでモノリスにすることでの弊害をなるべく抑えつつ集約していく事例についてご紹介します。

    分かれたシステムをていねいにモノリスに集約する/Integrate decentralized systems to a monolith carefully
    t-wada
    t-wada 2018/08/31
    問題解決のためにあえてモノリスにしつつ、モノリスの弱点を軽減する工夫を凝らす。レベルの高い判断をしていると思ったら元クックパッドの吉川さんだった
  • 分散ロックという名の過ち - Software Transactional Memo

     TL;DR; 「分散ロック」が分散システムの設計図に登場した時 だいたいその設計は間違っていて当に必要なものはトランザクションだ 並行システムを実装する際にロックを用いるのはとても自然なことだ。 僕も普段はロックフリー系のアルゴリズムに詳しいと言われがちだが知識量でいったら実はロック系の方が多く蓄えているかも知れない。 分散システムは並行システムであることが多いので、その中にロックが登場するのはとても自然な発想である。 よく「分散」「並行」「並列」の言葉の定義がごっちゃになっているケースがあり、この記事の主題にしたいわけではないので深くは言及しないが、分散システムは環境などの要因で突如として参加者が音信不通になったり復活したりする点で並行システムと大きく異なる。 並行システムと同じノリで分散システムを設計しようとした際に陥る頻出の過ちが「分散ロック」である。そのアイデアはとても簡単で

    分散ロックという名の過ち - Software Transactional Memo
    t-wada
    t-wada 2018/03/26
    "だいたいその設計は間違っていて本当に必要なものはトランザクション" "冪等リトライのパターンに落としこんでしまうのが一番合理的で単純なのでその方向に知恵を絞って上手く行くことが多い"
  • Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita

    記事では、 チームによる持続的に変更可能なWebアプリケーションの開発を目標に、フレームワーク導入時に考慮すべき22の観点を紹介する。 フレームワークによって特徴は異なるが、番導入にあたって、考慮すべきポイントはあまり変わらないので、極力フレームワーク1に依存しすぎないよう配慮する。また、話をシンプルにするため、REST APIを提供するアプリケーションを題材とする。 前提 ソフトウェアのエントロピー ソフトウェアがエントロピー増大の法則を避けられないことを、体感している開発者は多いだろう2。普通にアプリケーション開発を続けると、開発スピードは鈍化し、品質は低下してバグが増え、開発者からは技術的負債への怨嗟の声が聞かれるようになる。エントロピー増大というフォースは極めて強力で、意思を持って立ち向かわなければ、容易にダークサイドに堕ちてしまう。 関心事の分離 大規模Webアプリケーション

    Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita
    t-wada
    t-wada 2017/12/18
    大変力の入ったエントリ "変化に強いWebアプリケーションの開発には、DIは事実上必須" わかる
  • ChatWorkとPHPと私

    PHPConference 2017 ChatWork株式会社 田中佑樹

    ChatWorkとPHPと私
    t-wada
    t-wada 2017/10/10
    リプレイスするか、それともリファクタリングするか。 ChatWork の中の人が語るだけに、とても説得力がある。
  • You Need to know SSR - Speaker Deck

    ng-japan で発表した Server Side Rendering の資料です。

    You Need to know SSR - Speaker Deck
    t-wada
    t-wada 2017/07/24
    サーバサイドレンダリングは SEO のためだけじゃなく、初期表示(First Meaningful Paint)のために行う
  • YAPC::Fukuoka で分散 ID 採番機 katsubushi の話をしてきた - 酒日記 はてな支店

    初福岡ですが前日は熊に泊まって馬刺しをべました。今までべてきた馬刺しとはなんだったのか。 合法レバ刺しです 🐴なので pic.twitter.com/v2t7y6pI01— fujiwara (@fujiwara) 2017年6月30日 発表資料はこちらです。 speakerdeck.com github.com 開発してから2年、番で使いまくっていますが大変安定してますし、いろいろ面白い使い方ができる特性を持っているので、是非お試しください。(rausサポートした版はまだ番に入れてないですが、今後数ヶ月のうちに入れる予定です)

    YAPC::Fukuoka で分散 ID 採番機 katsubushi の話をしてきた - 酒日記 はてな支店
    t-wada
    t-wada 2017/07/03
    分散環境でユニークなIDを採番するkatsubushiについて。単なる採番サーバとしてだけでなく、nginx で 採番して追跡用IDに使ったり、バーティショニングのキーにも活用できる
  • GraphQLは90%のウェブサービス開発者にはまだ時期尚早ではないか - Qiita

    PySpa統合思念体です。チャットで話をしたことのまとめです。何人かで雑に話をしたことのまとめで、特定の誰かの発言というわけではなく、一種の怪文書です。 さて、GraphQLが世間を賑わせ始めています。Facebookが開発し、GitHubも機能提供をし始めました。GraphQLはRESTの未来か?みたいな論調もありますが、新しいものが出てくると既存のものをサンドバックにして「まだそんな古いの使ってやがるのかよwwwww」みたいな煽りをするのはもはやウェブ界隈の風物詩になっていますが、そういう信者発言をして「ああ、あいつまた踊らされてるな」「あいつ技術を見る目がないな」みたいに思われないように、少し冷静にGraphQLの立ち位置や、今後予想される流れについて考えてみます。 LSUDsとSSKDs WebAPI The Good Partsでも紹介されていた概念として、Netflix社のAP

    GraphQLは90%のウェブサービス開発者にはまだ時期尚早ではないか - Qiita
    t-wada
    t-wada 2017/06/30
    WebAPIは二つに分かれる(LSUDs: 大多数の未知の開発者が利用 SSKDs: 小数の知っている開発者が利用)。前者向けのGraphQLはほとんどのシステムには不要で、クラサバ時代に戻るデメリットの方が大きい.
  • 続・目指すのはぶっちぎりの速さ! HTML5版 Cacoo で刷新されたデータアーキテクチャを紐解く | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。Cacooの平山です。現在、僕たち Cacoo チームは脱Flash・ HTML5 化に向けて最終の追い込みの真っ最中です。そんな中ではありますが、前回の「ぶっちぎり」記事では、HTML5化に向けた描画技術としてSVGを選択したことをお伝えしました。今回は、HTML5版のもうひとつの改善ポイント「データ面での刷新」を紹介したいと思います。 Cacoo のデータ形式や構造の刷新・JSONフォーマットへの移行 HTML5版では、描画にSVGを採用するという変更だけではなく、抜的なデータ形式や構造の刷新も行いました。これには以下3点の理由があります。 Flash版ではAMFというFlashに特化したデータフォーマットを採用している 図に含まれるデータ量に応じて、パフォーマンスが低下しやすい構造である サーバー内でデータを処理しにくい 1点目はFlashから脱却するにあたり対応必須な

    続・目指すのはぶっちぎりの速さ! HTML5版 Cacoo で刷新されたデータアーキテクチャを紐解く | 株式会社ヌーラボ(Nulab inc.)
    t-wada
    t-wada 2017/06/26
    Cacoo 新旧システムのアーキテクチャやデータ構造を比較し、その詳細や変更理由もかなり踏み込んだところまで説明している。力の入った記事。
  • 2000万アカウントの無停止データ移行の裏側

    #DataMigrationNight にて発表したスライドです

    2000万アカウントの無停止データ移行の裏側
    t-wada
    t-wada 2017/06/20
    データ構造の異なる新旧 DB を双方向にリアルタイム同期して、無停止でサービス切り替えを行う事例。すごい。知見の塊だ。
  • GitHub - pmjones/adr: Action-Domain-Responder: a web-specific alternative to Model-View-Controller.

    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

    GitHub - pmjones/adr: Action-Domain-Responder: a web-specific alternative to Model-View-Controller.
    t-wada
    t-wada 2017/06/10
    Action-Domain-Responder パターンについて。 MVC2 とほぼ同じ対応関係にあるけど、数がもっと多く、各要素が単機能で単一責務を担うパターン。
  • 技術的負債と向き合う

    オープンセミナー2017@岡山での発表スライドです

    技術的負債と向き合う
    t-wada
    t-wada 2017/05/15
    赤裸々で素晴らしい講演だった。 "「多くの問題は社会的であるのはほんまやな〜」という成功体験が邪魔をした" ところで心で泣いた
  • ‌‌ ‌‌‌‌‌‌

    ‌
    t-wada
    t-wada 2017/03/30
    MS Office の開発リーダー Terry Crowley が語る、高機能・多機能化するに従って発生する「本質的な複雑さ」の重圧と、それとどう向き合うかについて。読み応えがあって非常に面白い。
  • system-design-primer#system-design-interview-questions-with-solutions

    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

    system-design-primer#system-design-interview-questions-with-solutions
    t-wada
    t-wada 2017/03/13
    スケーラブルなアーキテクチャ設計に関するリンク集。細部が結構怪しいものもあるけど、良質な議論へのリンク集としては機能すると思う。
  • 2年半を費やしたチャットワークのScala移行、もしやり直すならどうしますか?(後編) | HRナビ by リクルート

    トレタCTOの増井雄一郎さんがチャットワークのScalaプロジェクトのお話を掘り起こすインタビューの後編です(前編はこちら:チャットワークのScala移行と大規模メッセージDB再構築、当にできたんですね!)。ChatWork CTOの山さんは2年半を費やしたプロジェクトを振り返り、「やっぱりScala化は必要だった」と語ります。 山 2014年4月ぐらいにScala化を決断して、社内で勉強会が立ち上がりつつ、採用をかけていった感じです。2014年7月に加藤潤一(「日Scalaユーザーズグループ」発起人のひとり)というScalaの優秀なエンジニアが入ってくれて。そこから設計をどうしよう、と始まって。しばらくは加藤と、もう1人ぐらいで設計をしていた。それが半年ぐらいあったのかな。 2015年ぐらいから実装を始めて。1年でチームメンバーも増えて、そのときは全部まるっと移そうと計画をたて

    2年半を費やしたチャットワークのScala移行、もしやり直すならどうしますか?(後編) | HRナビ by リクルート
    t-wada
    t-wada 2017/02/24
    インタビュー後半。こちらも興味深い。 " 増井 2年半は辛いですよね" "山本 結構、いや、だいぶ辛かったですね"
  • Reduxの正しい解釈の話

    2016年の課題は状態遷移の管理だったと思う。 そのアンサーとして、 Fluxのような実装におけるStore相当にアプリケーションの状態をほぼすべて管理させるReactのようなVirtual DOMを搭載したビューの実装を透過的なユーザーインターフェースとして扱うこの2つの組み合わせにより、アプリケーションの状態と描画される画面が (ほぼ) 参照透過的になる。というのがFluxReact以降のパラダイムだと思う (理論として) 。 このパラダイムなら、エラーの発生時にアプリケーションの状態を表現するJSONをエラー収集サービスに送るようにして、簡単にバグを再現したりできるし、状態の遷移をテストしていくことで、クラッシュするようなバグのうち大半を検出できる。 Fluxの問題そこで問題が出るのが、Action(Creator) とReducer (Store#reduce())の2要素間のル

    t-wada
    t-wada 2017/01/26
    "React/Fluxの組み合わせにより、アプリケーションの状態と描画される画面が (ほぼ) 参照透過的になる" "Reactは透過的ユーザーインターフェースで、Fluxは有限オートマトンのように考えると、一種のパラダイムシフト"
  • 第1回 ニコ動/ニコ生 HTML5化への奮闘~ドワンゴ流動画配信サービスのつくりかた~ | gihyo.jp

    不動の人気を誇る動画配信サービス「ニコニコ動画」(⁠ニコ動)と「ニコニコ生放送」(⁠ニコ生)において、動画プレーヤのHTML5化、そしてバックエンドシステムの刷新が図られました。このプロジェクトの背景や使われた技術、苦労したポイントなどについて、ドワンゴのエンジニアである七田弘志氏(写真1⁠)⁠、後藤哲志氏(写真2⁠)⁠、三須健太郎氏(写真3)にお話を伺いました。 フロントエンドのみならず、バックエンドシステムも刷新 ─⁠─どのようなきっかけから、HTML5化プロジェクトが始まったのでしょうか。 七田:大きな要因となったのは、主要WebブラウザでFlashのサポートを打ち切るという方針が示されたことですね。今までもスマートフォンやテレビデバイスなどではHTML5プレーヤを実現できていたのですが、PC版のページは既存機能が大きく、プレーヤの作り変えが後手に回っていた部分が大きかったんです。そ

    第1回 ニコ動/ニコ生 HTML5化への奮闘~ドワンゴ流動画配信サービスのつくりかた~ | gihyo.jp
    t-wada
    t-wada 2016/12/26
    おお、新しいニコ動のバックエンドは Erlang なのか。納得感がある。
  • pixiv Sketchのフロントアーキテクチャ - pixiv inside [archive]

    (ピクシブ株式会社 Advent Calendar 2016 12日目の記事です) qiita.com こんにちは、エンジニアの id:geta6 です。普段は主にpixiv Sketchの開発などに携わっています。 さて、先日ISUCON6の選が開催され、ISUketchというReactを使ったお絵かきサービスが話題になったかと思います。 この問題で採用されたアーキテクチャは『pixiv Sketch』のアーキテクチャを参考にしたものとなっています。 パフォーマンス等に関しましては選の感想として良質な記事がいくつも執筆されていますのでそちらに譲るとして、今回はこのアーキテクチャの設計意図や利点について話します(2年前のリリース当初からずっとこの構成なので今さら感はありますが)。 どういうアーキテクチャか pixiv SketchのWeb版は、2つのサーバーから構成されています。 1つ

    pixiv Sketchのフロントアーキテクチャ - pixiv inside [archive]
    t-wada
    t-wada 2016/12/15
    pixiv Sketch は Rails 製の API サーバ(View を持たない)と Node.js 製のレンダリングサーバ (SSR 込み) という構成になっている。最近 SSR 事例増えてきたな。