Rubyを書いていると、サーバを書きたくなることがあります。皆さんもそうだと思います。 ということで今日はRubyでスッとサーバを書くためのgem、serverengineの簡単な使い方メモ。 github.com Rubyでサーバを書きたくなった時 そもそも的に、Rubyでただサーバを書くのは非常に簡単である。具体的には Kernel#loop などを回してその中でリクエストを待ったり、何かしら処理を行えば終わり。特別なgemは必要ないし、TCPを扱うクラスなども組み込みで用意されている。 以下のような9行のスクリプトを起動すれば、サーバを書いたと言える。ところで TCPServer#accept_nonblockでないと、acceptでブロックしてしまって終了処理が遅れたりするのでノンブロッキングの方のAPIを好んで使うのがいいだろう。 require 'socket' server
All slide content and descriptions are owned by their creators.
中〜大規模サービスのインフラの様子を知りたいアプリケーションエンジニア向けに、もともとアプリケーションコードを書いていた視点から、個人的な体験をベースにはてなで大規模サービスのインフラを学んだ過程や学んだ内容の一部を紹介します。 Webアプリケーションのブラックボックス Webアプリケーションフレームワークの向こう側 なぜ複数のサーバが必要なのか 突然のWebサービス3層構成 リバースプロキシ アプリケーション データベース その他のコンポーネント キャッシュは麻薬 飛び道具としてのKVS/NoSQL 非同期処理 バッチ処理 Mackerelの場合 参考 まとめ 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
ここ一ヶ月ほど手掛けていたCommon LispのWebサーバ「Woo」が一応の完成に至りましたのでお知らせします。Clack-compatibleなAPIになっており、現状運用しているClackのWebアプリケーションでそのままお試しいただけます。 高速であることを最優先に設計しており、Hunchentootの4倍、Wookieの3.5倍高速に動きます。現状ではCommon Lispのサーバでは最速ではないでしょうか。*1 Woo by fukamachi | GitHub Benchmarks いくつかのCommon Lispのサーバと、Node.js、Go、Pythonのサーバを比較してみました。縦軸はreq/secで、高いほうが多くのリクエストを捌けることを意味します。 Wooは、PythonのTornadoより約9.5倍、Node.jsの約1.9倍のリクエストを捌けます。一方、G
“Hello World”なベンチマークでUnicornに比べ2倍高速に動作するRackサーバをリリースしました。 rubygems: http://rubygems.org/gems/rhebok github: https://github.com/kazeburo/rhebok PerlのGazelleをベースに作っています。Rackアプリケーションの運用経験がほぼないので、機能不足があると思います。issue等で教えて頂ければ幸いです。 なぜ高速に動作するアプリケーションサーバが必要なのか Unicornは高速に動作します。多くのアプリケーションにとっては十分でしょう。それでもRhebokでさらに上のパフォーマンスを出そうとしたのは、技術的なチャレンジの他に以下のようなアプリケーションで高速なアプリケーションサーバが必要とされると考えているからです。 ソーシャルゲーム、広告サーバ、
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
本記事は英語版ブログで公開された記事の翻訳版です。 2013年7月に、米国テキサス州オースティンで開催されたLonestar Ruby Conferenceで、Rubyによるアプリケーションサーバーについてお話させていただきました。その中でいくつかのRubyアプリケーションサーバーのパフォーマンスや、さまざまな状況における挙動の違いを比較しました。この記事では、講演準備として行ったリサーチの中で分かったことをかいつまんでご紹介します。 実際のカンファレンスの録画をご覧になりたい方は、Confreaksで公開されていますのでそちらをご参照ください。テストに使用した簡単な自作アプリケーションはGitHubに、講演スライドはSlideshareにそれぞれ公開しています。 このリサーチは、Passenger 4のパフォーマンス評価以外すべて2013年7月に行ったものなので、情報が多少古くなっている
The document describes H2O, an optimized HTTP server developed by Dena Co., Ltd., highlighting its key features such as support for HTTP/1.x and HTTP/2, modular design, and high performance based on efficient memory management and input parsing. It emphasizes the server's capabilities in handling various protocols, its testing methodologies, and design principles aimed at achieving speed and relia
実は、低コストと高品質なサーバは実現できる 初めまして、KDDIクラウドプラットフォームサービス(以下 KCPS) のインフラ担当 加藤真人です。 プラットフォームサービスを提供しているKCPS開発担当は、大きくインフラチームとクラウド管理チームで構成されます。私がリードするインフラチームは、物理サーバ、ネットワーク機器、ストレージ、ファシリティー(電源、ラック)、ハイパーバイザーまでを担当しています。KCPSをこれまで以上に品質の高いサービスとして提供していきますので、よろしくお願い致します。KCPSで利用しているサーバは、PublicKeyでも紹介されましたが台湾のODMベンダであるQuanta ComputerとWiwynnから直接調達しています。(ようやく皆さんへ公開する許可がおりました!)OEM(Original Equipment Manufacturing)ベンダという言葉は
Help us make monitoring beautiful, realtime, and a joy to use. We're hiring. 30 years ago, top was born. scout_realtime is top for the modern developer. Note: This project is no longer being maintained or supported. Installation Install scout_realtime on your server, then access locally from your dev box. On your server:
Stop using Nagios (so it can die peacefully)AI-enhanced description The document critiques Nagios as a monitoring tool, highlighting its simplicity and existing plugin support while pointing out its major shortcomings such as poor scalability, configuration complexity, and inadequate API integration. It suggests leveraging the strengths of Nagios alongside more modern and scalable tools like Sensu
※1: 2013/12/27追記 1台→Noneに書き換えております。これは、はてブで「制限が無いのでは」と指摘ありましたので再度調べました所、"None"と記述がありました。別項目で"Unlimited"の表記があり「無制限」とは違う意味で書かれていると認識しまして、上記の通りに変更しております。 なお、サービス内容は有償プランになると強化・増えている場合がほとんどです。 New Relic 監視・モニタリングがセットになったサービスです。 対象のサーバにエージェントをインストールすることで、監視・モニタリングを行う事ができます。監視項目毎に一つ一つ設定をしなくても良い点が、監視を始めたばかりの方にとっては便利かもしれません。 また、特徴的なのは、スマートフォンからデータの参照、及び障害通知をPush通知で受け取る事ができる点です。現代的ですね。 無償プランでは、サーバは1台、モニタリン
(Monitoring Casual Talk in Kyotoで発表してきたので、ブログエントリにまとめ直しました) 2013年はインフラ周りの技術的な進化が大きく、いくつかのエポックメイキングな概念と実装が産まれました。個人的には特に以下の2つが大きいと思っています。 AWSの本格普及期 DockerとImmutable Infrastructure これらを踏まえて、2014年のウェブシステムの進化の方向性を考えてみます。また、それによるモニタリングへの影響もあわせて考えます。だいぶ長くなってしまったので、急ぐ人は最後に結論をまとめましたので、そちらからどうぞ! 2013年という時代背景 AWSが本格普及期を迎えているのは、言わずもがなのことで、Re:Inventでの246件という膨大のセッション数などにその勢いが表われています。 また、DockerはLXC (LinuX Conta
斎藤です。こんにちは。 今日は、etckeeperを用いて、設定ファイルをバージョン管理する方法を説明します。設定ファイルの書き換えで辛い目に遭う前に、どうぞお試しください。 ※CentOS 6.4, Ubuntu 12.04 LTS, etckeepr 1.7を基準に説明します etckeeperとは etckeeperは主に/etc配下をVCS(Version Control Systems)を用いてバージョン管理します。実態は、gitやmercurialのwrapperとなっています。 設定ファイルの書き換えの際に、ファイル名に日付をつけてバックアップしたりする手間を省いたり、誤って書き換えてしまったときのための 保険 として利用する事ができます。 インストール方法 はじめに 先程も述べました通り、etckeeperはVCSのwrapperとして動きます。そのため、インストール時には
エンジニアならウェブサーバーのひとつでも自腹で立てて運用すべき理由と、サーバー環境の選び方 2013-08-26 なんかスイッチが入ったので書いてみる。 目次 1 技術的なレイヤーは掘り下げるべきなので、ソフトウェア・エンジニアだってサーバー運用は経験すべき2 ローカルの仮想環境にインストールとかは意味がない3 強制的に運用しなければいけない状況を作ること4 自腹なのはコストを意識するためと、自由になるため5 初めてならVPSだ6 自宅サーバーはより低レイヤーを経験できるが、高コストで面倒が多い7 初めてだとOSの再インストールは絶対にしたくなる8 専用レンタルサーバーは、無い9 仕事でAWSを使ってるならEC2もアリ10 EC2以外のクラウドのメリットはあまり無い11 OSは仕事で使っているOSにしておこう12 というわけで13 追記:はてブやtwitterで沢山のコメント頂いたので反応
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く