タグ

ブックマーク / blog.matsumoto-r.jp (48)

  • Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)

    数年前になんとなく面白がって書いてた「Linuxインフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)」というのが、昔の資料をあさってると出てきて、意外と面白かったので少しだけ手を加えて(古い情報とかあったので)公開しようと思います。 意外とリアルなものがあって懐かしい気分になりました。過去に書いた以下の記事もどうぞ参考にして下さい。 「Linuxエンジニアを目指して入社一年目にやって役にたったと思う事」 「Linuxエンジニアを辞めて大学院に入学しました」 追記: 設問1があまりによくないので、@tagomorisさんのアドバイスを頂きつつ変更しました。1を消して3を追加しています。ありがとうございます! 2000台以上のサーバー運用経験はありますか? サーバやネットワーク機器のキッティング経験はありますか? サーバやネットワーク機器の交換を現地のデータセンター職員に

    Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)
    yuiseki
    yuiseki 2014/06/20
  • 人間とウェブの未来 - OSvのような環境でもサクっと動くmrubyのWebサーバ作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 OSvがとても面白いので色々いじっていると、結果的にmruby-simplehttpserverというWebサーバをmrubyで動かすためのmrubyモジュールができてしまいました。 これは、OSvのようにライブラリをがんがん入れられないような環境でも、とりあえずSocketとIOがあれば動くシンプルなWebサーバを動かすためのmrubyモジュールです。 そもそもOSvって何?という方はこの辺りを見るか、syuu1228さんに聞くのが良いと思います。簡単に言うと、これからの時代、ハイパーバイザにがんがん仮想マシンをデプロイする際に、その仮想マシンにリッチなOSがあまり必要ないケースって結構あって(例えばmemcachedだけが動いているVMと

    人間とウェブの未来 - OSvのような環境でもサクっと動くmrubyのWebサーバ作った
    yuiseki
    yuiseki 2014/05/19
  • 人間とウェブの未来 - mod_mrubyとngx_mrubyのv1.0.0をリリースしました+振り返りまとめ

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 先ほど、mod_mrubyとngx_mrubyのそれぞれv1.0.0をリリースしました。 2012年の4月のmrubyのソースコード公開を機に開発をはじめ、今振り返ると色々な事がありながらも2年間続けて研究・開発を行い、ようやくここまで辿り着く事ができました。 mod_mrubyとngx_mrubyを実装していく中で、Matzさんをはじめmrubyに関わるすごいプログラマの皆さんと出会い、多くの事を教えていただきながらここまでやってくることができました。もし、彼らと出会うことがなければここまで続ける事はできなかっただろうと思います。 mrubyに関わりながら研究・開発し、その成果物をOSSとして公開しながらやってきたことで、恐縮ながらも産学両

    人間とウェブの未来 - mod_mrubyとngx_mrubyのv1.0.0をリリースしました+振り返りまとめ
    yuiseki
    yuiseki 2014/05/16
  • 人間とウェブの未来 - mrubyのHashとmruby-{Redis,Vedis,Memcached}でSET/GETの簡易ベンチマークしてみた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mrubyでKey-Value Storeにアクセスできるクライアントをこれまでいくつか作ってきたので、VedisやHashの性能が見たいというのと、その他ちょっとした興味でそれぞれのKVSのSET/GETを投げてみて速度の比較をしてみました。 といっても、それぞれの良さを考慮したベンチマークではなくソフトの良し悪しを測るものではないので、この条件だとこういう結果になるという参考程度に見て頂ければと思います。 比較対象は、mrubyのHash、Redis、Vedis(In-Memory)、Vedis(On-Disk)、Memcachedです。それぞれ、Fedora19のyumでインストールした後にserviceコマンドで起動させただけの状態で

    人間とウェブの未来 - mrubyのHashとmruby-{Redis,Vedis,Memcached}でSET/GETの簡易ベンチマークしてみた
  • mrubyでSPDYやHTTP2通信

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 年末にSPDYやHTTP2の勉強がてら、mrubyでSPDYやHTTP2通信可能なmrbgemを作りました。 mruby-spdy mruby-http2 これで、mrubyを組み込んだアプリケーションやデバイスからSPDY・HTTP2通信ができるようになって未来が広がりますね。 現状はクライアントのGETのみができます。これで、例えばmod_mrubyやngx_mrubyに組み込んで、あるURLにアクセスした場合はバックエンドでSPDYやHTTP2な通信をすることもできますね。 サンプル SPDYやHTTP2通信をするためにはRubyで以下のように書きます。 SPDY通信 [program lang=’ruby’ escaped=’true

    mrubyでSPDYやHTTP2通信
  • mrubyでRedis使うのはオーバースペックな人のためにmruby-vedis作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 以前mruby-redisを作ったのですが、mrubyでRedis使う場合に、inetとかunix domain socketで使えなくても良いし、サーバー機能無しでIn-Memoryにアプリケーションと同一プロセス上で動いたり、必要だったらOn-Diskぐらいで共有できる程度の軽量なKVSを使いたいなぁ、でもなんだかんだちょっとした事にRedis使いやすいしまぁRedis使うか、なんて思っている人はいると思います。 そんな人のために、「サーバー機能無しでIn-Memoryにアプリケーションと同一プロセス上で動いたり、必要だったらOn-Diskぐらいで共有できる程度の軽量なKVS」であるVedisをmrubyから簡単に使えるmruby-ved

    mrubyでRedis使うのはオーバースペックな人のためにmruby-vedis作った
    yuiseki
    yuiseki 2013/11/10
  • 「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という話を発表してきた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 昨日、「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という新しい研究内容を情報処理学会のインターネットと運用技術(IOT)研究会で発表してきました。 (4)リクエスト単位で仮想的にコンピュータリソースを分離するWebサーバのリソース制御アーキテクチャ◎松亮介,岡部寿男(京都大学) #ipsjiot pic.twitter.com/NhfLL1mgtZ — Naoto MATSUMOTO (@naoto_matsumoto) September 27, 2013 この研究会は、研究者だけでなくエンジニアの皆さんにとっても面白い内容が沢山聞くことのできる研究会なので、学術系問わず参加されることをおす

    「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という話を発表してきた
    yuiseki
    yuiseki 2013/09/28
  • 大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善について書いた論文公開

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 @jj1bdxさんに「このような運用論文を誰でも読める形で」「情報処理学会や信学会の論文誌掲載論文は、論文誌に掲載された後であれば、著者がWeb上で公開するのに制限はない」という情報を頂き、別に公開しない理由もないので、大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善という内容で書いた論文を公開したいと思います。 僕が会社にいた時、ApacheのVirtualHost環境でレンサバを構築するというのは既にセキュリティ・運用性・パフォーマンスにおいて色々と問題がある事は10年以上前から分かっており、別の方法で共有環境を構築していました。 ある時、VirtualHostで共有環境を真面目に組むとどうなるか、という議論を元

    大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善について書いた論文公開
  • ngx_mrubyでnginxの内部変数を操作する

    最近はコード書きに時間をとれていませんが、昨日は久々にngx_mrubyを少し触る事ができたので、その際にできるようになったタイトルのような処理を紹介したいと思います。 今のngx_mrubyは、nginx.conf上で設定した変数やnginxのコア変数をmruby上でgetしたり、mruby上で変数に値をsetしたりすることができるようになりました。 また、mruby_setというディレクトリを使うと、nginx.conf上での変数設定時に、mrubyのコードの結果を渡す事ができます。さらにはそのコード内で、それより以前にsetディレクティブで設定した変数を呼び出す事ができます。 confに直接Rubyを書く場合 日語で書くと結構分かりにくいのでサンプルを示します。例えば、以下のようにconfを書きます。 [program lang=’ruby’ escaped=’true’] loc

    ngx_mrubyでnginxの内部変数を操作する
  • マルチプラットフォームでmrubyを使ってHTTP通信する方法

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mrubyも少しずつ知られてきていて、WindowsLinuxMacOSX等マルチプラットフォームで色々遊んでいる人が多いことでしょう。そうなってくると、しばらく弄ってみた後はやっぱりマルチプラットフォームで同じようにHTTPで通信してみたいと思いませんか? 例えば、 mrubyでHTTPのGETとかPOSTとかしてみたり mrubyを組み込んだデバイスからTwitterに呟いてみたり 各種デバイスからZabbixをつついてみたり エアコンを監視してるRaspberry PiからGrowthForecastにデータを送ってグラフ化してみたり 組み込みデバイスや低レイヤーなソフトウェアからfluentdにデータを送って解析してみたり という

    マルチプラットフォームでmrubyを使ってHTTP通信する方法
  • P2Pファイル共有ネットワークを利用したフラッシュクラウド耐性のある協調型負荷分散手法

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 「P2Pファイル共有ネットワークを利用したフラッシュクラウド耐性のある協調型負荷分散手法」という内容で、COMPSACという国際会議で代理で発表してきました。(去年の国際会議では僕が色々あって、代理で先生に発表してもらったような形ですね) 今回は、著者の方が色々あって発表できないので、共著者の僕が代理で発表してきました。著者や先生と相談した結果、面白い内容なので公開しようということになり、僕のブログが一番手っ取り早いので、ここで紹介します。 研究の概要 研究の概要としては以下になります。 世界のインターネット人口は年々増加を続けており,現在約22億人に達して いる.また新興国の発展に伴い,今後その数はさらに増加することが見込まれ る.このよう

    P2Pファイル共有ネットワークを利用したフラッシュクラウド耐性のある協調型負荷分散手法
    yuiseki
    yuiseki 2013/07/24
  • mrubyによるWebサーバの機能拡張支援機構を一緒に開発しませんか?

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ある人「あなたのやりたいことはなんですか?」 僕「複数あるWebサーバソフトウェアの拡張記述を統一したいです」 ある人「(それはさすがに無理だろ…)」 という感じで始まったmod_mrubyやngx_mrubyの開発ですが、今ではそれも夢では無い所まできています。当時は「mod_mrubyを作ってみようか」という記事からmod_mrubyの開発ははじまりました。 朧げにあったアイデアでは、「どうやって統一するのか?どんな言語にするのか?どうやって組み込むのか?え?そもそもそんな事無理では?」という感じでしたが、1年前に運良くmrubyGitHubで公開されて以来、色々なアイデアのピースがはまっていき、いつの間にかそのアイデアが形になろうとし

    mrubyによるWebサーバの機能拡張支援機構を一緒に開発しませんか?
  • mod_mrubyをevent及びworker MPM(マルチスレッドモデル)に対応させた

    やはり、event MPMは早いですねー。mod_mrubyでの相性も抜群そうです。 一応、参考までにApacheのconfを貼っておきます。 httpd.conf [program lang=’apache’ escaped=’true’] # mod_mrubyの設定 LoadModule mruby_module modules/mod_mruby.so Addhandler mruby-script .mrb <Location /mruby> sethandler mruby-native-script mrubyHandlerCode "Apache.rputs 'hello mod_mruby world'" </Location> # MPMの設定、ほとんどデフォルト #LoadModule mpm_prefork_module modules/mod_mpm_prefor

    mod_mrubyをevent及びworker MPM(マルチスレッドモデル)に対応させた
  • HTTPのベンチマークパターンとテストを動的に書けるab-mrubyを作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 abコマンドのベンチマークパターンを書けるab-mrubyを作ったを昨日書いたわけですが、今日はab-mrubyに対して、ベンチマーク後の結果からテストをRubyで書ける機能を追加しました。 ab-mrubygithubのREADMEに大体書き方は書いていますが、ここでも簡単に紹介したいと思います。 ベンチマークの実行とテスト 基的にはabコマンドにmrubyを組み込む事で、引数のURL毎に動的にベンチマークパターンを決定したり、その後のベンチマーク結果からテストを書けるようにしています。以下のように実行します。 [program lang=’bash’ escaped=’true’] ./ab-mruby -m ab-mruby.con

    HTTPのベンチマークパターンとテストを動的に書けるab-mrubyを作った
  • abコマンドのベンチマークパターンを書けるab-mrubyを作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Web屋さんはみんな大好きabコマンドは便利ですが、オプションは複雑で数も多く、複数のホストにそれぞれに対応するオプションを指定してテストしたりすると結構カオスになりがちです。 最近では、httperfやweighttp等のabに変わる次のHTTPベンチマークツールが出てきていますが、やっぱりまだまだ現役で良く使うのはabコマンドだと思います。 そこで、今回はabコマンドの複数のベンチマークオプションのパターンを1つのRubyスクリプトに定義しておいて、それをabコマンドで読み込む事で動的に任意のパターンでベンチマークを行うab-mrubyを作りました。外出しで書いたRubyスクリプトとabコマンドの連携は、ab-mrubyと見てわかるように

    abコマンドのベンチマークパターンを書けるab-mrubyを作った
    yuiseki
    yuiseki 2013/06/06
  • Register UnderflowというWebサービスを作ってみました

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 GW明けにリリースしようと思っていたのですが、ぼちぼちtwitterで情報が流れだしているので、隠していても意味ないということでリリースしました。SNSやコミュニティとはなんぞや、という事について勉強がてら作ってみました。 Register Underflow どういうコンセプトのサイトかというと、大体ここに書いた通りなのですが、再度エントリでも書いておきます。 Register Underflowについて このサイトは、SNSの普及で日でのコンピュータやインターネット技術情報が分散してしまっている事を危惧し、かつての掲示板のように簡単かつ気軽に一つの場所で技術情報をある程度まとめた方が効率良いと思って気まぐれにたてた技術情報共有サイトで

    Register UnderflowというWebサービスを作ってみました
    yuiseki
    yuiseki 2013/05/11
  • Register Underflowの簡単な使い方

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 先日、Register Underflowというコンピュータ技術共有のためのWebサービスを作ってみたのですが、予想以上にたくさんの方に登録して頂いて、とてもうれしく思っています。 Register Underflowを簡単に説明すると、 Twitterやその他のSNSでやりあっている議論の内容ってすごい良い内容が多いと思うのですが、togetterやその他のサービスにまとめないと見つけにくくなっていきますし、でもそれも意外と面倒で、かといってブログに誰かがまとめるのも大変で、どうにかその中間ぐらいの手間でそういった複数のユーザの技術的な議論をうまくまとめられないかなぁ というのが趣旨です。 そこで、今日は使い方や言葉の定義など、そういった説

    Register Underflowの簡単な使い方
    yuiseki
    yuiseki 2013/05/11
  • mod_mrubyとnode.jsを使ってblogをWebSocketでリアルタイムモニターしてみた

    これを作ったのは、ApacheCon2013に参加したときのハッカソンなのですが、ブログをVPSに移行したので、運用を試しがてら当ブログに実装してみました。 ソースはすでにmod_mrubyのwebif以下に上げているので、簡単に試す事ができます。 やっていることは大体こんな感じです。 これは、東京Rubyプレゼンテーションでも紹介したデモなんですが、 Apacheの内部情報をmod_mrubyで外だししてAPI化 node.jsからAPI経由で情報を取得しグラフ化してWebSocketで表示 ということをやっています。 実際にこのブログをモニターしているページは以下になります。参考までに公開しておきます。ログはかなり色々とっているのでいたずらはやめてくださいね。 https://blog.matsumoto-r.jp:9999/ 一応、上記ページをアクセスできないようにしたときのために、

    mod_mrubyとnode.jsを使ってblogをWebSocketでリアルタイムモニターしてみた
  • mrubyでも使っている擬似乱数Mersenne TwisterがMITライセンスでも提供可能になった

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 擬似乱数Mersenne TwiterがMITライセンスでも提供可能になりました。 というのも、mrubyでランダムクラスをコアにマージする際に、Mersenne Twisterは3項BSDライセンスで提供されており、mrubyはMITライセンスで提供しているため、ライセンスの取り扱いで誤解を招きそうだという話題が上がりました。 一部BSDライセンスだと明記していたとしても、mrubyをMITライセンスとして使っているプロダクトなどにとっては、ライセンスの一部変更はそれなりに手間のかかる問題で、できればライセンスは統一したいという話になりました。もしくは、コアに入れるのはやめようかという話題もでました。 しかし、個人的にはこのような素晴らしい

    mrubyでも使っている擬似乱数Mersenne TwisterがMITライセンスでも提供可能になった
    yuiseki
    yuiseki 2013/04/10
  • 人間とウェブの未来 - 自分で作ったApacheモジュールで使えそうなモジュールまとめ

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 「Apacheおもしれー!!」とか言いながら、一時期毎日のようにApacheモジュールを書いたりしていましたが、その度に他のモジュールが淘汰されていきました。 今日はそのような流れの中で生き残った、割と使えそうな自分の作ったモジュールを紹介したいと思います。どこにこだわったかを簡単に説明できれば良いなと思います。今回紹介するモジュールは、新しいApache Module RegistryでGruno氏(Apache httpd コミッタ兼mod_luaの中の人)のチェックを通っています。 mod_mruby コード: https://github.com/matsumoto-r/mod_mruby 最近作っているApacheモジュールです。こ

    人間とウェブの未来 - 自分で作ったApacheモジュールで使えそうなモジュールまとめ