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
How we migrated application servers from Unicorn to Puma It's been a long journey but with the release of GitLab 13.0 Puma is our default application server. Here's what we did and learned along the way. It’s been years in the making, but our journey to migrate our application servers from Unicorn to Puma is complete. With the Gitlab 12.9 release Puma was running on GitLab.com and now with 13.0 it
Rubyのアプリケーションサーバーのエコシステムは、Unicorn、Puma、Passenger 5 の3つを中心に出来上がっています。Rubyにおいて、アプリケーションサーバーが解決しなければならない具体的な問題はなんでしょうか。どのようにして最適なアプリケーションサーバーを選択すればよいでしょうか。2019年にはこれらのアプリケーションサーバーのニーズはあるでしょうか。 この記事ではこら全てを取り上げ、Rubyの主要なアプリケーションサーバーを比較していきます。 How important is an app server's raw speed? アプリケーションサーバーそのものの速度がアプリケーションの速度に対して多くの要因となることはほとんどありません。アプリケーションコード、データベースのクエリ、HTTPコールのRubyアプリケーションサーバーとの間の応答速度が、マイクロ秒ない
UPDATE: You can watch a video of me giving this talk at Gophercon 2019:
Rubyを書いていると、サーバを書きたくなることがあります。皆さんもそうだと思います。 ということで今日はRubyでスッとサーバを書くためのgem、serverengineの簡単な使い方メモ。 github.com Rubyでサーバを書きたくなった時 そもそも的に、Rubyでただサーバを書くのは非常に簡単である。具体的には Kernel#loop などを回してその中でリクエストを待ったり、何かしら処理を行えば終わり。特別なgemは必要ないし、TCPを扱うクラスなども組み込みで用意されている。 以下のような9行のスクリプトを起動すれば、サーバを書いたと言える。ところで TCPServer#accept_nonblockでないと、acceptでブロックしてしまって終了処理が遅れたりするのでノンブロッキングの方のAPIを好んで使うのがいいだろう。 require 'socket' server
Go 1.8 で net/http パッケージに Server.Shutdown メソッドが追加されます。 シグネチャはこちら: srv := &http.Server{Addr: ":8080"} // サーバはブロックするので別の goroutine で実行する go func() { if err := srv.ListenAndServe(); err != nil { log.Print(err) } }() // シグナルを待つ sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGTERM) <-sigCh // シグナルを受け取ったらShutdown ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) if err :
I've recently moved the site you're reading right now from a Sinatra/Ruby application to an (almost) static site served by Go. So while it's fresh in my head, here's an explanation of principles behind creating and serving static sites with Go. Let's begin with a simple but real-world example: serving vanilla HTML and CSS files from a particular location on disk. Start by creating a directory to h
What is Perfect? Perfect is a web server and toolkit for developers using the Swift programming language to build applications and other REST services. It lets developers build using only Swift to program both the client-facing and server-side of their projects. It’s the ideal backbone for cloud and mobile technologies. Developers can be more productive and efficient using Perfect to write less co
はじめに CentOS 6上でepelからyumでインストールできるApache Traffic Server v5.3.0を試してみました (*1)。Ansibleのプレーブックを https://github.com/hnakamur/trafficserver-ansible-playbook に置いています。記事執筆時点のバージョンは https://github.com/hnakamur/trafficserver-ansible-playbook/tree/8efa6790d29bd8e62e488ceb7486a435e327d795 です。 *1: 当初epelからyumでtrafficserverをインストールしていたのですが、Cache Inspectorが複数のURLを分割する処理にバグ(後述します)があったため、 修正版をCopr上のhnakamur/apache-
概要 自社サービスの開発中、必要にかられてGOで簡単なリバースプロキシツールを作った話を書いてみます。 前提 自社サービスの開発を、次のような構成で進めています。 フロントエンドとバックエンド(APIなど)をパスで振り分け /の下はフロントエンド /api/の下はAPI その他にも色々・・・ フロントエンドとバックエンドは、担当者もリポジトリも、動いているサーバも別 それぞれサーバが開発環境、本番環境とテスト環境、のように複数の環境をもっている やりたいこと 前提の環境をもって、いざ開発をしようとローカル環境を構築するとなれば、 ローカルにnginxでリバースプロキシを立てて管理するのは面倒くさい ちょっとした環境の変更があると共有がいちいち面倒くさい フロントエンド担当者がわざわざバックエンドをcloneだのpullだの面倒くさい 環境間でテストするためにわざわざnginxの設定書き換え
少し前にStarletにGraceful Restartが時たま上手く動かない問題を修正するpullreqを投げました。 原因は割り込みハンドラ内でexitを呼んでいたからでした。 「割り込みハンドラ内ではフラグを建てるだけ」 「メインのプログラム内でそのフラグを見て分岐する」という原則があるのですが、それを守るのは難しいということですね。 (しかし新たな問題を産んでしまいrevertされてしまいましたが・・・ まあ修正後のコードも考え方は一緒です。割り込みホント難しい・・・) このpullreqを取り込んでもらうときに再現実験をやってみたのですが、 Goでもちゃんと動くのかな?と気になったので Go言語でGraceful Restartをするで紹介した プログラムに同じテストをやってみました。 2017-01-22追記: Go1.8以降でGraceful Shutdownがbuild-i
Makefile �01��U � 0��U obj-m += tcp_svr_sample.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clea tcp_svr_sample.c �~찾U �l ��U #include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/slab.h> #include <linux/kthread.h> #include <linux/errno.h> #include <linux/types.h> #include <li
What is it? Faye is a publish-subscribe messaging system based on the Bayeux protocol. It provides message servers for Node.js and Ruby, and clients for use on the server and in all major web browsers. Who uses it? 1. Start a server var http = require('http'), faye = require('faye'); var server = http.createServer(), bayeux = new faye.NodeAdapter({mount: '/'}); bayeux.attach(server); server.listen
1. Copyright (C) 2015 DeNA Co.,Ltd. All Rights Reserved. H2O making HTTP better DeNA Co., Ltd. Kazuho Oku 1 2. Copyright (C) 2015 DeNA Co.,Ltd. All Rights Reserved. ⾃自⼰己紹介 n 奥 ⼀一穂(株式会社ディー・エヌ・エー CTO室) n これまでの仕事: ⁃ Palmscape / Xiino • 世界初のPalm OS⽤用本格的ウェブブラウザ ⁃ IPA未踏スーパークリエータ(Webアプリ開発環境) ⁃ Q4M, mycached 等 MySQL 拡張 ⁃ picohttpparser, Server::Starter, Starlet, … • Perl のWebアプ
先月末の話になりますが、SAPジャパンさんを会場に開催されたデータ転送ミドルウェア勉強会で、私が中心になって開発しているHTTPサーバ「H2O」について話す機会をいただき、登壇してきました。 以下は当日使用したスライドです。なぜ今H2Oを開発しているのか、その背景にある現状認識と将来の方針について、日本語で説明してあるので、興味ある方はご覧ください。 発表の機会をくださった@repeatedlyさんと@frsyukiさん、会場を提供してくださったSAPジャパンさん、ありがとうございました。 H2Oの開発は順調に進んでおり、HTTP/2サーバプッシュへの対応も完了し、まもなく次のバージョンがリリースできるかと思います。今後ともよろしくお願いいたします。
[Ann] Initial release of H2O, and why HTTPD performance will matter in 2015 Happy Holidays! Today I am delighted to announce the first release of H2O, version 0.9.0; this is a christmas gift from me. H2O is an optimized HTTP server with support for HTTP/1.x and the upcoming HTTP/2; it can be used either as a standalone server or a library. Built around PicoHTTPParser (a very efficient HTTP/1 parse
Live Upgrading Thousands of Servers from an Ancient Red Hat Distribution to 10 Year Newer Debian Based One Google maintains many servers and employs a file level sync method with applications running in a different partition than the base Linux distribution that boots the machine and interacts with hardware. This experience report first gives insights on how the distribution is setup, and then tac
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く