タグ

ブックマーク / mizzy.org (29)

  • 株式会社リクルートテクノロジーズ Advanced Technology Lab 技術顧問になりました - Gosuke Miyashita

    タイトルの通り、10月から 株式会社リクルートテクノロジーズ Advanced Technology Lab の技術顧問になりました。 技術顧問といっても、あまり顧問的な仕事ではないのですが、中の人として活動するにあたって肩書きが必要で、他にわかりやすい名称が思いつかなかったので、技術顧問という肩書きになりました(技術フェローの方が近いかな、という感じだけど、事情によりフェローは使えないので)。 ATL の中の人としての活動ですが、世の中に新しい価値観をもたらすような OSS の研究・開発、言い換えると、Serverspec のような OSS を新たに生み出すのがメインのミッションとなります。 クックパッドの方も業務委託は継続させてもらうので、ATL での研究開発と、クックパッドでの現場運用、双方で良いフィードバックサイクルを回し、お互いにメリットがあるような成果を出していければいいな、と

    dann
    dann 2015/10/01
  • Walter + Wercker + DigitalOcean による Serverspec CI - Gosuke Miyashita

    フリーランスになって1年が経った というエントリで少しだけ触れた、仕事でも絡んでいる Walter を自分はどう使っているのか、という話を書きます。 TL;DR Serverspec/Specinfra 体のインテグレーションテストに Walter を Wercker と組み合わせて利用している Wercker は並列実行サポートしてないけど、Walter と組み合わせることで並列実行できて便利 Docker on CoreOS, CentOS 6.5, CentOS 7.0, Ubuntu 14.04, FreeBSD 10.1 の各 VM を使ったテストを並列で実行してる ローカルでも実行できて便利 (Wercker v2 でもできるようになってるけど、Walter の場合は Docker 環境なくてもできる) Dogfooding のため、Walter を Wercker と組み合

    dann
    dann 2015/07/06
  • serverspec が Open Source Rookies of the Year 2013 に選ばれた - Gosuke Miyashita

    拙作の serverspec が Open Source Rookies of the Year 2013 の 10 プロダクトのうちのひとつに選ばれました。 昨年末に、候補が20まで絞り込まれた段階で一度連絡があって、その後、今月中旬ぐらいに、選ばれたよ、おめでとう、という連絡が来ました。最初の連絡が来るまで、そもそもこの賞の存在を知らなかったので、どの程度影響力がある賞なのかはよくわかりませんが、Docker とか超有名どころと一緒に並んでるのは、嬉しいというよりもむしろ恐れ多いですね。 SourceForge.JP Magazine の日語記事では、タイトルにも serverspec を含めて くれていてありがたいです。 それから、Thought Works Technology Radar January 2014 にも serverspec の文字が見えていて、すごいなー、これ

    dann
    dann 2014/02/01
    cool
  • specinfra をベースとしたオレオレ Configuration Management Tool/オレオレ serverspec 構想 - Gosuke Miyashita

    specinfra v0.0.6 では、serverspec/configspec/Syllabus で実行する具体的なコマンドを SpecInfra::Command::* に統合しました。 以前のバージョンまでは「OS を自動判別し、OS に適したコマンドクラスを返す commands と呼んでいるレイヤー」を specinfra で提供していましたが、コマンドクラスは各プロダクト側で実装していました。 specinfra v0.0.6 では、コマンドクラスも specinfra 側で持つようになりました。 これで何がうれしいのかというと、オレオレ Configuration Management Tool が簡単に実装できるようになる、ということです。 Exec/SSH といったバックエンド実行形式の切り替えや、OSを自動判別して適切なコマンドを実行する部分はすべて specinfr

  • インフラ系技術の流れ - Gosuke Miyashita

    ここ最近のインフラ系技術の流れがおもしろいなー、と思ったので、Puppet が出た辺りぐらいから、振り返って整理してみる。殴り書きなので、後から修正したり書き加えたりするかも。特に後半の方は、あまり考えが整理できてない。 最近のウェブ界隈での「インフラ」という用語の使われ方には、色々異論もあるようだけど、ここではごく最近使われるようになってきた、OS からミドルウェアといったソフトウェアレイヤーを指す言葉としてのインフラについて触れる。(英語圏でも同様の意味で使われているようなので、ある程度市民権を得たと言っても良さそうだし。) プロビジョニングレイヤー まず、前提知識としてプロビジョニングレイヤーと自分が勝手に呼んでるものについて整理。 Chef や Puppet は「プロビジョニングフレームワーク」とも呼ばれているが、以下の議論をより厳密にするために、Lee Thompson 氏による

    dann
    dann 2013/10/29
  • serverspec のテストをホスト間で共有する方法 - Gosuke Miyashita

    今回は serverspec のテストをホスト間で共有する方法について説明します。 serverspec-init を実行して生成されるひな形ファイルは以下のようになっています。 |-- Rakefile `-- spec |-- spec_helper.rb `-- www.example.jp `-- httpd_spec.rb これを見てわかる通り、テスト対象となるホスト名でディレクトリが掘られ、その下に対象ホストに対する spec が置かれる、という形になっています。 したがって、複数の役割が同じホストに対してテストを実行しようとすると、こんな感じで同じ内容の spec ファイルが重複して置かれることになります。 |-- Rakefile `-- spec |-- app001.example.jp | `-- ruby_spec.rb |-- app002.example.jp

  • Ukigumo と serverspec で Puppet の継続的インテグレーション - Gosuke Miyashita

    tokuhirom さんにより開発されている Ukigumo を利用して、Puppet の CI 環境を構築してみた。やってることは以下の通り。 Puppet マニフェストを Git リポジトリで管理 Ukigumo Server を立てる puppet-lxc-test-box で Puppet マニフェストを流し込むシステムコンテナを必要なロールの分だけ用意 自前の Ukigumo クライアントスクリプト を cron で定期的に走らせ以下を実行 Puppet マニフェストリポジトリの master ブランチが更新されていたら、git pull して Puppet マニフェストをシステムコンテナに適用し、適用結果を Ukigumo サーバに投げる serverspec によるテストをシステムコンテナに対して実行し、結果を Ukigumo サーバに投げる Ukigumo のトップ画面はこ

    dann
    dann 2013/03/27
  • Puppet や Chef で構築したサーバを RSpec でテストする - Gosuke Miyashita

    追記 ここに書いてあることを実現する serverspec という gem をつくりました。詳しくはこちらのエントリで。 Puppet マニフェストをリファクタリングするからテスト書くぞ、ってことで、 puppet-lxc-test-box に書いたように、テストするためのシステムコンテナを簡単に作る仕組みをつくったので、今度は実際にテストコードを書くためのベースをつくってみた。 rspec-lxc-test-box こんな感じでテストが書ける。 require 'container_spec_helper' describe 'nrpe' do it { should be_installed } it { should be_enabled } it { should be_running } end describe 'nagios-plugins-all' do it { shou

    dann
    dann 2013/03/23
    cool!
  • 最小手順のVMイメージの作り方 - Gosuke Miyashita

    先日カヤックさんの社内勉強会にお邪魔して話してきた Maglica は、既に作成済みの VM イメージを元にクローンをつくって必要な設定(root パスワードの設定やネットワーク設定など)を行う、といったことが簡単にできるが、元の VM イメージつくるのがめんどくさいことには変わりなくて、ここをなんとかしたいなー、と常々思ってた。 VM イメージをつくる手段としては、RedHat 系の場合は virt-manager, virt-install, Cobbler/Koan などがあるが、どれもインストーラを実行する形式であり、kickstart を利用すれば自動化できるとは言え、kickstart は問題が起きた場合の調査がやりにくい。(自分が効果的なやり方知らないだけかもしれないけど。) また、virt-install はオプション覚えられないし、Cobbler は初期のセットアップとか

    dann
    dann 2013/02/26
  • RPM パッケージを Git で管理する方法(案) - Gosuke Miyashita

    @trombik さんの 弊社ではtinderbox+gitですべて統一させてる — trombik (@trombik) December 27, 2012 という tweet を見て気になったので調べてみたところ、 Tinderbox はどうやら FreeBSD の ports を自動ビルドするためのシステムのようで、RPM でもこんなのないのかなー、と探してみたものの見つけられなかったし、Tinderbox が自分が求めてるものなのかどうかもいまいちピンと来なかったので、プロトタイプ的なものをつくってみることに。 現在 RPM パッケージの管理は、こんな感じで ソース/バイナリパッケージを直接リポジトリに突っ込んじゃってるんだけど、これだと以下のような問題がある。 バイナリパッケージのファイルサイズが大きすぎて、git clone や push や pull に時間がかかる パッケー

    dann
    dann 2013/01/17
  • サーバエンジニアが「開発力」を持つ意味 - Gosuke Miyashita

    初出: Software Design 2009年4月号(2009年3月18日発売) 宮下 剛輔 サーバエンジニアの定義 特集では、サーバエンジニアが開発力を持つことにより、どのような力を得ることができるのか、日々の業務にどのように役立てることができるのか、具体例とともに紹介します。 題に入る前にまずはここでのサーバエンジニアの定義を明確にし、特集全体のコンセプトについて説明します。 クライアント/サーバ型のシステムを考える場合、サーバ側は大まかに以下のようなレイヤーに区分できます。 アプリケーションレイヤー ミドルウェアレイヤー OSレイヤー ネットワークレイヤー これらのレイヤーのうち、ミドルウェアレイヤーとOSレイヤーを主担当とするエンジニアを、特集記事でのサーバエンジニアと定義し、対象読者と想定します。その中でも特に、オープンソースソフトウェア(OSS)をメインで扱うエンジニ

    dann
    dann 2013/01/12
  • Git リポジトリ同期ツールつくった - Gosuke Miyashita

    欠勤してるのにブログを書いていて解雇された、という話があったなー、ということを思い出しながら、このエントリを書いてます。(体調悪くて会社休んだ上に、まだ回復してない。) 最近仕事GitHub を利用してるのですが、デプロイも GitHub 経由なため、GitHub がダウンしてしまうと、緊急で直さないといけないバグが発生したりすると困るなー、とか、それ以外にも、バックアップリポジトリがあればいろいろ安心かな、ということで、Git リポジトリを同期するツールをつくってみました。 https://github.com/mizzy/gitpusher GitHub の自分のアカウント(または指定された Organization)以下のリポジトリを、すべて Bitbucket に同期する、という動作をします。 今のところ、GitHub から Bitbucket への同期しか対応してませんが、逆

    dann
    dann 2012/05/04
  • 37歳で大学生になりました - Gosuke Miyashita

    この4月に、帝京大学理工学部情報科学科 通信教育課程の第2学年に編入学しました。通信教育課程なんで、仕事は続けたままです。 今日は、なぜこの歳(37歳)で大学に入ろうと思ったのかについて書いてみようと思います。 自分の現在の立ち位置は、ソフトウェアエンジニアだと思っているんですが、出身は経済学部経営学科です。それが悪いとは思ってないですし、そういう人は身近にたくさんいるんですが、情報工学や計算機科学なんかの学位を持ってない、といったことに、ほんの微か、あるかないかぐらいの、引け目なんだかコンプレックスだかなんだかわからないけど、そんなようなものをずっと持ち続けています。 それはあまり意味のないことで、別にそんな感情持つ必要ないじゃん、と思いつつも、ずっとひっかかりはあって、この感情ってこの先ずっと残るのかな、とか思ってたわけですが、だったら学位取っちゃえば、そんなつまらないこと考えずに済む

    dann
    dann 2012/04/14
  • Paperboy's engineer evaluation system - Gosuke Miyashita

    今年から新たにペパボで導入された、技術者向けの評価制度については、こちらのエントリ で書いたのですが、日、その一次評価が完了しました。 評価のプロセスは、一次はテクニカル・マネージャーによる評価、二次は経営会議メンバーによる評価、と二段階の評価となっています。 自分が担当した一次評価の詳細は、以下のようになっています。 シニア、またはアドバンスドシニアに上がりたい人には、自ら立候補してもらう。 立候補する人は、定められたフォーマットにしたがって、自分がそのポジションにふさわしいと思う理由や実績について Markdown で書き、指定した Git リポジトリに push する。(「定められたフォーマット」と言っても、最初に名前、次に希望のポジションを書いてもらうだけで、それ以外は自由。) 文書に提出後、一人一人と面談を行う。 文書の内容と面談の結果にもとづいて、各人が提出した文書の末尾に、

    dann
    dann 2012/03/02
  • SupervisorAProcessControlSystem - mizzy.org

    node.js なサーバデーモン&ログの管理をしようと思い、何を使おうか検討していたのですが、この手のデファクトスタンダードである daemontools は、特定のディレクトリ構造に従わないといけなかったり、run スクリプトや log/run スクリプトを置いたりしきゃいけなかったりで、余計な作業が多くてお手軽じゃない、ってことで runit を見てみたんですが、ぱっと見 daemontools との違いがよくわからなくて、daemontools とそれほど煩雑さは変わらないように見えたので、もっとお手軽なものがないかと探していたところ見つけたのが Supervisor 。(といっても自分が知らなかっただけで以前からあるみたいですが。) Python 製で easy_install 一発でインストールできる。 $ sudo easy_install supervisor デフォルトの設

  • Webiblo - web to ebook project - Gosuke Miyashita

    久々に日語で書きます。(後で英語でも書く。) Web-to-mobi を焼き直して、Webiblo というプロジェクトを立ち上げてみました。 基的には GitHub の README に書いてある通りなんですが、ウェブサイトについて記述された JSON を喰わせることによって、Kindle で読める mobipocket フォーマットの電子書籍データを作ろう、また、様々なサイト対応の JSON データを集めたい、というのがこのプロジェクトの趣旨です。 現在は、 $ webiblo.pl http://mizzy.org/webiblo/data/Getting_Real.json といった感じで、JSON が記述された URL を指定するか、` $ cat data.json | webiblo.pl といった形で JSON を標準入力から渡してやれば、与えられたデータにしたがって、m

    dann
    dann 2012/01/11
    cool!
  • mizzy.org : puppet の言語構造

    puppet の言語構造 Posted by Gosuke Miyashita Mon, 19 Mar 2007 04:34:13 GMT Installation Guide を読めば、とりあえず puppet を動かすことはできるけど、やりたいことをやろうと思ってもすぐにできるわけでもない。というわけで、ドキュメントをちゃんと読んでみることにした。 まずは puppet の設定ファイルで使われている内部言語の理解から、ということで、Language Structures を超意訳してみる。 Types puppet 設定の基構成単位。管理されるコンピュータ上のオブジェクト(ファイルとかパッケージとか)を表すもので、あらかじめ用意されたビルトインタイプ以外にも、自ら定義することも可能。 file { "/etc/passwd": owner => root, mode => 644 }

  • Assurer サーバテスティング/モニタリングフレームワーク

    AssurerAssurer サーバテスティングサーバテスティング//モニタリングフレームワークモニタリングフレームワーク (株)(株)paperboy&co.paperboy&co. 宮下 剛輔(宮下 剛輔(mizzymizzy)) http://mizzy.org/http://mizzy.org/ AssurerAssurerとは?とは? ►「アシュラ」と読みます「アシュラ」と読みます ►サーバのテストや監視を行うツール兼フレームサーバのテストや監視を行うツール兼フレーム ワークワーク ►名前の由来名前の由来  テストのことをテストのことをQuality AssuranceQuality Assuranceと言ったりすると言ったりする  PlaggerPlaggerライクなツールはみんな「ライクなツールはみんな「erer」で終わる」で終わる ((Archer, Observer

  • mizzy.org : デプロイツール Archer #0

    デプロイツール Archer #0 Posted by Gosuke Miyashita Sun, 11 Feb 2007 18:35:29 GMT id:tokuhirom さん作のデプロイツール Archer を最近使い始めたのですが、これがすげーいいっす。 で、この週末は更に便利に使えるように、Archer 用のプラグイン書いたりしてました。 Archer::Plugin::SVN::Log Archer::Plugin::SVN::Diff Archer::Plugin::SVN::Update Archer::Plugin::Rsync Archer::Plugin::Shell global: work_dir: /home/miya/work dest_dir: /home/miya/assurer tasks: init: - module: SVN::Diff - mod

  • mizzy.org : cfengine メモ #0 - cfengine の構成パターン

    cfengine メモ #0 - cfengine の構成パターン Posted by Gosuke Miyashita Tue, 26 Dec 2006 13:55:53 GMT I, newbie » cfengineによるシステム管理の自動化: その1 を読んで、cfengine よさげだなぁ、ってことで導入を検討することに。 このブログでは、上記エントリで「ややこしいけど魅力的」と書かれている cfengine について、自分なりに試したことや整理したことについてメモしていこうと思います。日語のドキュメントが少ないですし、実際に手を動かしてみないと理解しにくいものなので、これを使ってみようかな、という方に少しでもお役に立てれば幸いです。 まず、cfengine ってそもそも何?というところですが、上記の I, newbie さんのエントリがわかりやすいので省略。今回は cfeng