タグ

アーキテクチャとwebに関するakishin999のブックマーク (20)

  • Webサーバーアーキテクチャ進化論2023

    はじめに 最近プログラマーとしてのキャリアに一区切りつけようと思っており、これまでのプログラミングの勉強の集大成となるブログを書きたくなったので書く。初めてプログラミングをして、フロントエンド開発をして、サーバーから値が返ってきたときは「どういう仕組みで値が返ってきたんだ?」と疑問に思っていた。ずっと理解したくて理解できていなかった。だからずっと勉強していた。そして最近になってようやく自分の言葉で説明できるようになった気がしたのでブログを書きたい。 2015 年版が自分の原点であり、この記事を書くモチベーションになった このような記事は実は過去に存在している。 FYI: https://blog.yuuk.io/entry/2015-webserver-architecture その記事はサーバーがどういう仕組みで動いていて、どのように進化し、2015 年に至るかを解説してくれた記事だ。自

    Webサーバーアーキテクチャ進化論2023
  • WEB アプリケーション設計入門 / Introduction to web application design

    PHP Conference Japan 2020 トーク前提の資料です。そのため、トークがないと理解が難しいかもしれません。 https://youtu.be/UTKJ-Lgn3aI?t=36 ※冒頭音声が小さいです。マイクを手に持ってから聞こえやすくなると思います。 資料中の ADOP については下記を参照ください。 https://nrslib.com/adop/ # Abstract https://fortee.jp/phpcon-2020/proposal/da5b9d99-e5a6-4f51-adea-1f1c10d99020 # Ref https://github.com/nrslib/scrum-app-sample-php https://github.com/nrslib/repository-support-php # URL Togetter: https://

    WEB アプリケーション設計入門 / Introduction to web application design
  • Good Bye Web APIs

    When building a single-page application or a mobile application, we usually need to implement a web API (REST, GraphQL, etc.) to connect the frontend and the backend. Technically, it's not very difficult, but it has some unfortunate consequences. Imagine two planets. The planet "frontend" speaks JavaScript and the planet "backend" also speaks JavaScript or any other advanced language. Now let's sa

    Good Bye Web APIs
  • 君はまだ平成のアーキテクチャを使ってるのか?僕はFirebaseと令和の時代に行くぞ。 - Qiita

    Help us understand the problem. What is going on with this article? メリークリスマス! この記事はFirebase Advent Calendar 2019の25日目の記事です。 これはなに? この1年、を書いたり勉強会で登壇したりいろいろやってみた結果を振り返ってみると、当に多くの人がFirebaseにふれるようになったなぁと思います。圧倒的な開発者体験の良さをもってバックエンドの関心事を一手に引き受け、アプリケーション開発を劇的に高速化してくれるソリューションとして、Webアプリでもモバイルアプリでもバックエンド第一の選択肢として確固たる地位を確立しつつあるのではないでしょうか。 それ自体はとてもいいことなのですが、Firebaseの強さを活かすためのアーキテクチャに関するアイデアはあまり表に出てきていないのではな

    君はまだ平成のアーキテクチャを使ってるのか?僕はFirebaseと令和の時代に行くぞ。 - Qiita
  • Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ

    先月投稿した2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介しました。 今回は、前回同様、主に新卒Webエンジニア向けに、Webアプリケーションサーバとデータベースサーバ間の接続管理モデルと運用事情について紹介します。 データベース接続の永続化やコネクションプーリングとは何なのか、なぜ必要なのかといったことが主な話題です。 背景 データベース接続の永続化とはなにか データベース接続のオーバヘッド データベース接続の永続化手法 コネクションプーリングとはなにか コネクションプーリング: ドライバ型 コネクションプーリング: プロキシ型 コネクションプーリング全体について PostgreSQLMySQL 参考資料 まとめ 背景 2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャの話とWebアプリケーショ

    Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ
  • Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita

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

    Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita
  • 2015年Webサーバアーキテクチャ序論 - ゆううきブログ

    2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We

    2015年Webサーバアーキテクチャ序論 - ゆううきブログ
  • 2014年のウェブシステムアーキテクチャ - stanaka's blog

    (Monitoring Casual Talk in Kyotoで発表してきたので、ブログエントリにまとめ直しました) 2013年はインフラ周りの技術的な進化が大きく、いくつかのエポックメイキングな概念と実装が産まれました。個人的には特に以下の2つが大きいと思っています。 AWS格普及期 DockerとImmutable Infrastructure これらを踏まえて、2014年のウェブシステムの進化の方向性を考えてみます。また、それによるモニタリングへの影響もあわせて考えます。だいぶ長くなってしまったので、急ぐ人は最後に結論をまとめましたので、そちらからどうぞ! 2013年という時代背景 AWS格普及期を迎えているのは、言わずもがなのことで、Re:Inventでの246件という膨大のセッション数などにその勢いが表われています。 また、DockerLXC (LinuX Conta

    2014年のウェブシステムアーキテクチャ - stanaka's blog
  • [その3] Netflix: APIの改善と継続的デリバリー - ワザノバ | wazanova

    http://techblog.netflix.com/2013/08/deploying-netflix-api.html その1はこちら。 その2はこちら。 このシリーズの3回目は、Netflixのサービスが急成長する中で、APIの改善と平行して継続的デリバリーを実現した経緯を紹介してます。同社の継続的デリバリーの仕組みのキーワードは、"Automation and Insight"(自動化と見える化)。 1) 開発から番アップまでのフロー 開発からAWSインフラへの番アップまでの概念図がこちら。段階的に、開発している機能の精度があがりシステムの安定性が増すのを確認していくプロセス。 具体的な作業フロー図はこちら。ほとんどプロセスは自動化され、各ステップでコードのステータスを確認できるような見える化の工夫がなされている。 2) ブランチ 現状では下記の3つのブランチがあるが、中期的

  • [その2] Netflix: APIの改善と継続的デリバリー - ワザノバ | wazanova

    http://techblog.netflix.com/2013/01/optimizing-netflix-api.html その1はこちら。 2回目は、改善をしたプライベートAPIのアーキテクチャーについて、もう少し詳細を掘り下げています。 1) サーバコールをまとめる 以前のNetflix APIでは、一つのユーザエクスペリエンスを実現するために、複数のリクエストをクライアント側からAPIにコールする仕様であった。[イメージ図] そこでリクエストを一つにまとめることで、WANの遅延の影響を一度だけ受けるかたちに抑えて効率化した。このまとめられたリクエストは、サーバ側では複数のものを並列処理できることを担保すべき。そうするとエンドポイントの開発をするクライアントエンジニアそれぞれが、ローレベルなスレッド/ 同期 / スレッドセイフティ / 並列データ構造 / ノンブロッキングIOなどの

  • [その1] Netflix: APIの改善と継続的デリバリー - ワザノバ | wazanova

    http://techblog.netflix.com/2012/07/embracing-differences-inside-netflix.html 北米のインターネットトラフィックの30%以上を占めるNetflixのシステム構成は、UIデスクトップ、スマホ、タブレット、ゲームコンソール、TV、ブルーレイ再生機)とサービス(Video meta data, search, user, A/B test, personalization)をAPIでつなぐアーキテクチャーになっていて、UIとサービスがそれぞれ独立して早いスピードで改善 & 新機能を投入できるかたちになっています。そのAPI改善から継続的デリバリーの仕組みをつくりあげるまでの昨年からの一連の動きを、4回にわけて紹介します。まず最初はAPIの改善の取組みから。 1) 背景 Web APIとしてはRESTが標準的になっている

  • YappoLogs: 馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える

    馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える 一般的な Web Application というのはロードバランサ、Webサーバ、アプリケーションサーバという HTTP を喋るサーバで構成されていると思います。 ロードバランサは高級なハードウェアからソフトウェア(lvs, httpd, etc..)で作るものまで色々ありますね。 アプリケーションサーバでは各種言語に合わせた実装でデーモンが常駐してるでしょう。これはいわゆる普通の Web サーバよりは単純なコンテンツを返す性能が低いです。 そんなわけで動的なアプリケーションサーバが有る構成では js や css や画像など静的なファイルは Apache や nginx などの専用の Web サーバでサービスして、動的なリクエストだけバックエンドのアプリケーションを

  • 「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...

    ふと今更、年初のCROSS 2013の「次世代 web セッション」の動画を見て、うんうん唸ってしまった。プロトコル編の方は知識不足であんまり分からなかったですが、アーキテクチャ編の方はグサグサくるものがあった。「自分の頭でこれからの web を考えてブログに書くまでがこのセッション」という宿題が出ていたので、せっかくなので最近考えてることをつらつらと書いておこうと思った次第。特にまとまりはないですし、戯言です。 これからの Web の話をしよう。 (次世代 Web セッション @ CROSS2013) – Block Rockin’ Codes 前提 僕はコード書いてない&サーバサイドしか見たことない&WEB サーバはあんまり見たこと無くて、それより後ろ側ばっかり見てた人なので、ユーザ側とかアプリ開発者がどうなっていくかについて特に尖った意見はありません orz SPDY とかもまだ手を

    「これからのWeb(バックエンド)」を自分の頭で考えてみた - As a Futurist...
  • 高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)

    IIJ-II技術研究所では、2009年の秋からMighttpd(mightyと読む)というWebサーバの開発を始め、オープンソースとして公開しています。この実装を通じて、マルチコアの性能を引き出しつつ、コードの簡潔性を保てるアーキテクチャにたどり着きました。ここでは、各アーキテクチャについて順を追って説明します。 ネイティブ・スレッド 伝統的なサーバは、スレッド・プログラミングという手法を用いています。このアーキテクチャでは、1つのコネクションを1つのプロセスかネイティブ・スレッドが処理します。 このアーキテクチャは、プロセスやネイティブ・スレッドを生成する方法で細分化できます。「プール」方式では、あらかじめ複数を起動しておきます。例としては、Apacheのpreforkというモードが挙げられます。「都度」方式では、コネクションを受け取るたびに生成します。このアーキテクチャの利点は、制御を

    高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)
  • アーキテクチャに支配されるコンテンツの未来 : けんすう日記

    インターネットのコンテンツ 最近インターネットを見ていて、当に素晴らしいと思った記事が一つあります。 技術はコンテンツに対し中立でいられるのか?〜CD1枚74分とサビ頭ポップソングにその真髄を見る〜 この記事を簡単に説明すると、「技術の制約によって、コンテンツも影響を受ける」というような話しです。 その中に、an・anの記事がもしもインターネットメディアで公開するとすると、タイトルは以下のようになる、というような例がありました。 例えば、かつてなら『an・an』のような女性誌において、「夏の恋」に破れ、打ちひしがれた女性向けに秋を迎えて、「さあ元気になろう!」というような特集が掲載されるとするならば、そのタイトル見出しは 「一夏の花火よ、サヨウナラ!深まる秋に心を磨く」 というようなものになるのかもしれません。しかし、Web上でPVを稼ぐように見出しを付けると 「夏の失恋から回復するため

    アーキテクチャに支配されるコンテンツの未来 : けんすう日記
  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

    Webアプリケーション内で処理を直列に実行せずにJob Queueに回して非同期に実行することが多くなって来て久しいと思いますが、そのおすすめ構成と気をつけることについてつらつらと。 1) 既存のデータベースをキューとして使う構成例 1つ目はMySQLなどのデータベースをキューとして用いる例。既にアプリケーションで利用しているデータベースにキュー用のテーブルを作成して利用します。データベースを利用したキュー管理の仕組みとしてJonk、Qudo、TheSchwartzなどがPerlでは有名どころです。 依存するミドルウェアが増えないので最もシンプルな構成になると思います。 上記の図ではWorkerはアプリケーション内で実行することで冗長性を確保しますが、キューを格納するデータベースはSPOFになります。しかし、、データベースに障害があった場合キューだけでなくすべてのサービスが停止すると思われ

  • Mojolicious::Lite で WebSocket を使ったチャットを作る - naoyaのはてなダイアリー

    node.jsの衝撃とWebSocketが拓く未来 (1/2):WebSocketで目指せ! リアルタイムWeb(1) - @IT という記事を読みました。node.js という V8 を用いたサーバーサイド JavaScript フレームワークを使うと簡単にイベント駆動のサーバが書ける、node-websocket-server.js を使うと node.js で WebSocket サーバが実装できる。Ajax による polling や Long Polling などと WebSocket のアーキテクチャ比較といった内容でした。 WebSocket を使うと手軽にサーバプッシュ的なアプリケーションが作れて嬉しいのですが、現時点では、HTTPサーバー側で WebSocket を処理する下地の実装をどう用意するかというところがひとつ課題でしょう。node.js はその回答のひとつとして

    Mojolicious::Lite で WebSocket を使ったチャットを作る - naoyaのはてなダイアリー
  • ネットビジネスに必要な要素をまとめた一枚の図が良い感じ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜

    ドットインストール代表のライフハックブログ

    ネットビジネスに必要な要素をまとめた一枚の図が良い感じ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜
  • Webアーキテクチャ設計術 --- ITpro

    Webシステムを設計するアーキテクトが検討すべきポイントを連載でお届けします。まず,「HTTPの仕組み」を説明した後,「可用性」「パフォーマンス」「セキュリティ」「運用性」の4点を取り上げます。この4点を,ソフトウエアの品質について定めた国際規格「ISO/IEC 9126-1」に基づいてマッピングすると,図1のようになります。網掛け部分が連載のターゲットです。

    Webアーキテクチャ設計術 --- ITpro
  • 1