人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

ファイルパスの/で結構ハマってしまったメモ

Linuxでとあるコードを書いていたのですが、例えば、 mkdir hoge ln -s hoge hoge_link

「たったひとつの教訓」という話をしました

社内での新卒研修を中心になってやってくれている okkunの提案で、キャリア・キーノートという取り組みを行っており、その中でWebオペレーション研修の記念講演ということで、恐縮にも自身のキャリアキーノートについて発表する機会を頂けたのでお話してきま…

H2Oのmruby拡張が実用的になってきた件

H2Oにmruby拡張の提案を行いmergeされてから幾つかのPRを経て、少しずつ実用的になってきました。 h2o/h2ogithub.com 今日は簡単にその使い方を紹介しようと思います。

Mac上でCentOS6用のkernel{3,4}系イメージのrpmを一発でビルドするビルドシステム作った

Kernelの新しい機能をフルに使おうとすると、新しいkernelを使う必要があるのですが、例えばCentOS6系でシステムを運用していた場合に、新しいKernelを使うべくCentOS7とかにあげるとsystemd含め運用が大きく変わってしまうため中々踏み出せないという状況が…

Apacheやnginxの同時接続状況における各リクエストの任意の属性をカウントする拡張を作った

先日、ApacheやnginxといったWebサーバにおいてDoS的アクセスを検知して任意の制御を行うhttp-dos-detectorを公開しました。 nginxでもapacheでも使用可能なDoS的アクセスを検知して任意の制御をするWebサーバ拡張をmrubyで作った - 人間とウェブの未来hb.ma…

「ペパボのインターネット基盤技術研究・開発の活動」についてペパボテックカンファレンス福岡で発表しました #pbtech

ブログ書くまでがペパボテックカンファレンス!ということで、昨日無事福岡支社で第二回ペパボテックカンファレンスが開催されました。参加して下さった皆さん、弊社までお越し頂きありがとうございました。 第2回ペパボテックカンファレンス【福岡】 (2015/…

h2o_mrubyがh2o本家にマージされました

h2o_mruby v0.0.1をリリースしてみた - 人間とウェブの未来hb.matsumoto-r.jp 先日、h2oの勉強がてら独自モジュールとして、h2o_mrubyというモジュールの開発をはじめてみました。所謂mod_mrubyやngx_mrubyのように、Webサーバの内部処理をmrubyでコントロー…

h2o_mruby v0.0.1をリリースしてみた

そういえば今から3年前に、 人間とウェブの未来 - mod_mruby 0.0.1をリリースしてみたblog.matsumoto-r.jp 人間とウェブの未来 - nginxをmrubyで制御するモジュールngx_mruby 0.0.1をリリースしましたblog.matsumoto-r.jp などなどの実装を開始しました。色…

Dockerエキスパート養成読本の献本を頂きました

Dockerエキスパート養成読本という素晴らしい本を縁があって @takipone さんから献本を頂きました。何が素晴らしいかというのを以下に述べていきます。 Amazon.co.jp: Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus…

nginxでもapacheでも使用可能なDoS的アクセスを検知して任意の制御をするWebサーバ拡張をmrubyで作った

matsumoto-r/http-dos-detectorgithub.com 会社の運用メンバーと色々議論していた中で、「カジュアルにWebサーバへのDoSみたいなアクセスが来た時に検知して制御したいよねー」という話が上がったので、http-dos-detectorというnginxでもapacheでも使えるWeb…

virtualingを使ってプロセスのメモリ使用量上限値をOoM-Killerのタイミングで自動拡張してみた

virtualingとは、わりとセキュアでCPUやメモリ・IOといったリソースの制御が可能なプロセス実行環境上で、設定や構成を変える事なくミドルウェアのようなプロセスを動作させることができるツールです。実装はmrubyです。 matsumoto-r/mruby-virtualinggithub…

virtualingでchroot配下のプロセスを簡単にリソース制御してみよう

virtualingとはkazuhoさんの低コストでchrootするためのjailingと、mruby-virtualingによるリソース制御や必要であればIPアドレスの付与する機能を組み合わせたツールです。virtualingを使うと、Rubyコードによって、リソース制御可能なchroot環境でミドルウ…

mrubyでファイルシステムを隔離してリソースを分離しIPも割り当てられるmruby-virtualingを書いた

Kazuho's Weblog: jailing - chroot jailを構築・運用するためのスクリプトを書いた virtuald + ipalias + cgroup + これで快適に「そこそこ隔離したサービス環境」作っていきましょー / “Kazuho's Weblog: jailing - chroot jailを構築・運用するためのス…”…

ngx_mrubyを使った簡単な画像変換サーバを数分で実装してみた

2日前にmrubyの画像変換mrbgem下さいとつぶやいて、その後2日以内にgdとMagick++のmrbgemが開発されるこのスピード感がmruby。 https://t.co/RzTZJsX9vP https://t.co/4YkJ2PwISQ— MATSUMOTO, Ryosuke (@matsumotory) 2015, 4月 25 というように、mrubyで画…

mod_process_securityを任意のhandlerで権限分離できるようにした

Apacheのコンテンツ処理をスレッド単位で権限分離するセキュリティモジュールのmod_process_securityですが、これまでは基本的に拡張子で権限分離を行うかどうかを判定していました。

ペパボの新卒研修の技術に関する座学で「座学とは」「インターネットとは」という話をした

ペパボでは現在2015年4月入社の新卒研修に取り組んでいます。 その中で、研修の一つとして全職種向けに技術的な内容で座学を行っているのですが、それの初日を僕も担当することになり、一連の座学を経て何を得て欲しいか、座学をする目的は何かという話と合…

MacOSX上でLinuxとWindowsとOSXで動くmrubyバイナリを簡単にクロスコンパイルできるmrbgem作った

ペパボ社内では、mrubyを使う機運が高まってきています。 誰よりも早い学習速度であっというまにmrubyを理解してしまったあんちぽさんや、CRubyだけでなくmrubyもマスターしてまさに真のRubyistになられたしばたさんと共に色々とmrubyの今後について議論して…

Rubyでabコマンドをプログラマブルに操作できるab-mrubyを業務で使ってみたけどまぁまぁ良かった

1年前ぐらいにab-mrubyという、Rubyでabコマンドをプログラマブルに操作・拡張できるツールを作っていたのですが、それを業務のとある環境で使ってみたところまぁまぁ良かったのでその使い方を紹介しようと思います。

Webオペレーションエンジニアのアウトプットと開発力

という話を、社内のインフラチーム向けにしました。

ファイルをrmしたがプロセスがファイルを掴んでいる場合にそのファイル内容を再度得るには

ど忘れしていたのでメモです。 LinuxでApacheのログローテート時に、プロセスをgracefulしたつもりが何らかの原因によりできていなくて、その後古いログファイルを圧縮して、いらなくなったその生ログファイルをrmしたつもりが、プロセスはそのログファイル…

特定条件下におけるngx_mrubyのメモリリークを改善してメモリ増加量を半分にした

4月からペパボで働いているわけですが、前々から噂できいていたメモリリークの問題について、ペパボではわりと大規模かつ高負荷な環境でngx_mrubyを使ってくれているのでその環境を見ながらメモリリークを改善してみました。

学生として、フリーランスエンジニアとして、1年間子育てをして思った事

3月26日で子供が生まれてちょうど1年になるわけですが、この1年間学生とフリーランスエンジニアをやりながら子育てをしてきました。保育園に預ける事はせず、本当に朝から晩までつきっきりの生活です。超寝不足でした。 で、4月からは福岡にあるGMOペパボと…

Trusterd HTTP/2 Webサーバにリバースプロキシ機能を実装しました

タイトルの通り、trusterdにリバースプロキシ機能を実装しました。 trusterd/trusterd trusterd/trusterd · GitHub これで、フロントをHTTP/2で受けつつ、バックエンドに既存のHTTP/1.xサーバを置いてリバースプロキシすることで、HTTP/1.xのコンテンツを活…

楽しもうOSS開発 - mrubyで学んだ貢献の流儀と情熱

というタイトルでWEB+DB PRESS Vol.85に寄稿しました。発売日は2月24日です。Amazonでは予約もできます。 タイトル的には非常に恐縮で、僕がこんな記事を書いてしまって良いのか不安でしたが、編集者と査読者の方々の支えもあって無事書きあげる事ができまし…

Trusterd HTTP/2 Webサーバのmrubyによる設定と機能拡張について

trusterd HTTP/2 Web Serverは、設定や機能の拡張をRuby(mruby)で容易に実装できるという特徴を持つミドルウェアです。 また、別のアプリケーションにtrusterdのサーバ機能やクライアント機能を組み込めるという特徴も持っていますが、これについては以前…

mrubyのモジュールmrbgemを開発した際に簡単にTravis CIを設定する方法

mrubyのモジュールであるmrbgemを開発した際に、どうせならtravisの設定をして、自動でビルドやテストのCIを実施したいと思います。ですが、なんとなく後まわしにして、結果設定をしないまま放置しているmrbgemがあります。 そこで今回は、大抵のmrbgem上で…

独自でngx_mrubyのDockerイメージを作る方法

随分前にngx_mrubyをDocker対応していたのですが、最近になってより使いやすくなったので、ngx_mrubyをDockerで使う方法を簡単に紹介します。

trusterdのHTTP/2クライアント機能をCアプリに組み込んでみよう

前回の記事では、trusterdのHTTP/2サーバ機能をCアプリに組み込む方法を紹介しました。 C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み込む方法 - 人間とウェブの未来 C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み…

ngx_mrubyのDockerイメージがONBUILDをサポートしました

nagachikaさんの提案で、ngx_mrubyの本家Dockerイメージ(matsumotory/ngx-mruby)において、設定ファイルやコンテンツの読み込みをONBUILD化しました。

C言語のアプリにmruby経由でtrusterdのHTTP/2サーバ機能を5分で組み込む方法

今日は僕が開発しているTrusterd HTTP/2 Webサーバの一つの特徴である、「HTTP/2機能のアプリ組込み」の方法を紹介したいと思います。 Cをちょっと書けるレベルの人でも5分でCアプリにHTTP/2機能を組み込んで、自分のHTTP/2サーバを実装できます。