2011/09/30

DOZENS(ダズンズ)にネームサーバを移行しました

先日引越したのですが、その際にちょっと手違いで1週間弱固定回線が使えない期間ができてしまった。
普段はemobileで大丈夫だけど、自宅サーバで管理していたネームサーバが利用できないのは不便です。

Amazon Route 53を使おうか悩んでいたところ、DOZENSのtwitterアカウント @dozens_jp に営業をかけられたので使ってみることにしました。


DOZENSとは

DNSのホスティングサービスです。コントロールパネルからぽちぽち設定するだけでレコードの設定ができます。

Google Apps用の簡単設定機能もある(らしい)


料金

  • 12レコード 無料
  • 24レコード 100円/月
  • 36レコード + TTL変更 1000円/月
  • 192レコード + TTL変更 5000円/月
  • 612レコード + TTL変更 10000円/月

* 2011/09/30時点での料金です


ドメイン数やクエリ数での課金ではなく、レコード数によるのがちょっと面白い。

100円/月までのプランに収まるなら、VPS等で自分でネームサーバを運用するより安くつくかも

NSレコードは自動で設定されるため、レコード数のカウントには入らない模様。


レコードの設定方法

シンプルで使いやすい管理画面があるので、Web上からさくさく設定して終わりです。


  1. レジストラの管理画面でDOZENSで管理したいドメインのネームサーバを以下に設定する
    • ns1.dzndsn.com
    • ns2.dzndsn.com
    • ns3.dzndsn.com
    • ns4.dzndsn.com
  2. DOZENSの管理画面から[Add a domain]をクリックして管理したいドメインを設定
  3. 追加されたドメインの[EDIT]を押す
  4. [Add a record]を押してポップアップに下記の項目を入力して、[create]をクリック
    • レコード名
    • レコードタイプ
      • A, AAAA, CNAME, MX, TXTの選択式
    • TTL
      • 安いプランでは2時間固定
    • Priority
      • MX以外は大体いらないはず
    • Content
      • IPアドレス等を記載

まとめ

Route 53だとドメイン毎とクエリ数で課金されるので最低でも1ドル/月かかるので、レコード数が少ないならDOZENSが良い感じです。

後、使用者がいるのかわかりませんが、 REST API が用意されています


最後に

下記のリンクから登録していただくと、私とあなたの両方に3レコード追加されます。使ってみたいと思った方はよろしくお願いします。

http://dozens.jp/i/ulWIxq

2011/09/23

Jenkins勉強会 札幌のメモ

Jenkins勉強会 札幌


CI概論 @cactusman


CI


  • 頻繁にビルドしろ
  • ナイトリビルド、デイリビルドの延長線上
  • 自動ビルド、自動テストを推奨

広まらない理由


  • SCM必須
  • テスト必須
  • CIサーバ
  • チームメイトの理解

あるといいもの


  • BTS
  • インスペクション
  • XFD (eXtreme Feedback Device)

CIは最近流行ってきている


  • EC2, VPS
  • XPの浸透
  • Jenkinsなどのツール類の発展
  • ノウハウ

問題やパターン


スローテスト問題


  • テスト実行に時間がかかりすぎる
    • テスト実行数の増加
    • 非効率なテスト
    • 依存関係
    • システムテスト的なもの
  • ビルド自体も同様

解消方法


  • テスト自体のパフォーマンスチューニング
    • TDD的なテストは捨てる
    • DBなどはモック化、インメモリ化
  • 実行単位のスケジュール
  • 実行単位の細分化して、並列性をあげる
  • スケールアップ
  • スケールアウト

狼少年問題


  • テストが通らない、インスペクションでの警告が常用化
  • OSSでも割とある

解消方法


  • 状態を把握する
    • テストの失敗や警告の増減に注目
  • テストの最小化
    • やる必要があるかどうか常に考える
  • 問題のあったところ、デグレードしたところを重点的に
  • インスペクションで問題のない箇所はレビュー後にignoreにする

Pre-Tested Commit


  • コミットする前にテストを実行するパターン
  • CIサーバに差分を送って、テスト等を行う
  • オールグリーンならコミット、レッドならコミットできない
  • TeamCity(IntelliJ IDEA)で機能あり
  • Jenkinsでも要望がある
  • DVCSで代用することも可能?



Jenkins概論 @cactusman


Jenkins


  • OSSのCIツール
  • 簡単、手軽、親切
  • プラグインで機能拡張
  • 各OSごとにインストーラがある
  • CIのデファクト?

Jenkisの役割


  • チェックアウト
  • ビルドスケジュールの管理
    • 1時間間隔とか
  • 通知
  • レポーティング
  • ログの保存

よくある誤解


  • JenkinsがJavaだから、Javaしか扱えないんでしょ
  • Java知らないです

誤解への回答


  • Javaの知識はなくてもいい
  • ビルドにsh, batを使える

高度な機能


  • トリガー
  • plugin
    • wikiを見てから聞け
  • Jobのチェーン
    • A -> B -> C, B -> D
  • CLI
  • クラスタリング
    • マスタ/スレーブ形式
  • RESTのAPI

QA


  • サーバの移行は?
    • .jenkinsを固めて、転送する



Trac + Jenkinsで始めるCIのある開発 @shuji_w6e


自己紹会


  • @shuji_w6e
  • Blog やさしいデスマーチ

Jenkinsと私


  • 2009年末に個人的に導入
  • 2010年夏ごろ、社内開発環境で導入

現代のソフトウェア開発の特性


  • 複雑性
  • 短納期
  • 超大規模または超小規模
  • 開発手法の変化

現代ソフトウェア開発の3本柱


  • バージョン管理
  • テスティング
  • 自動化
  • (チケット管理システム)

導入の手順


  • バージョン管理
  • チケット
  • テスト
  • 自動化

バージョン管理とテスティング


  • 効果的な自動化に必要な要素
    • 継続的なテストとフィードバック
    • テスト != 品質保証
  • その他の自動化
    • ビルド、パッケージング、デプロイ
    • 静的解析、ドキュメンテーション

導入事例


開発の流れ


  • tracで作業を洗いだしてチケット化
  • Eclipse等でコードを書く
    • 可能なかぎりユニットテストを行う
    • TDDとペアプロ
  • Subversionにコミット
    • CIでテストが通るか確認する
  • Tracのチケットをクローズ

開発の流れ 自動化部分


  • Subversionにコミット
  • JenkinsCIにコミットを通知
  • Mavenによるビルド・テストの実行
    • 成功時はパッケージを作成
    • ビルド/テスト失敗時は、IRC/メールに通知

変化したこと


  • Tracの活用により作業漏れが減った
    • ファイルサーバのExcelは見ない
  • コミット間隔が細かくなった
  • ユニットテストを実施している部分の品質があがった
  • JenkinsCIが常に監視しているので、問題が起きた場合にすぐ解るようになった
  • 開発に集中できるようになった

導入まで


  • 「よく解らない」に対する抵抗
  • メリットが説明・理解させにくい
    • やってみれば解る
    • 効果が出るまで時間がかかる
  • ある程度は強引に導入

導入に失敗しないため


  • 導入失敗時には「次」はない
  • 同調できる仲間を作っておく
  • ノウハウを勉強会や書籍で勉強する
    • 実際に手を動かして使ってみる
  • 導入経験のある人を巻き込む

導入事例まとめ


  • 開発スタイルは「文化」
    • 内部の「文化」は変えられる
  • メンバーの半分の意識が変われば自然に変われる
    • 1/6から2/6は大変
    • 3/6から4/6はそうでもない

構成事例


TracからJenkinsへ


  • HudsonTracPlus プラグイン
    • タイムラインにビルド結果を通知
    • Jenkinsのビルドページへのリンクとかwikiフォーマット

JenkinsからTracへ


  • Trac プラグイン
    • コミットログからTracへのリンク

Windowsサーバの場合


  • Trac Lightning

Google Code


  • バージョン管理、チケットはGoogle
  • VPSでJenkins

Maven


  • Javaはつかないので省略

デモ中の質問等


  • Jenkins自体で256MBくらい
  • ジョブは別プロセスで動かすのでオーバーヘッドがあるかも
  • CPUはそこまでいらないかも



Jenkins Plugin開発、ハック(@cactusman)


core, pluginのハックの前に


  • shell script等で対応できないか
  • 今ある機能でなんとかなるか
  • coreよりもpluginでいいのではないか
    • 拡張ポイントを見てから

Jekinsのビルドとハック


  • 必要なもの


    • jdk6
    • Maven
  • ビルド


    • git clone hogehoge
    • cd jenkins
    • mvn install -Dskip-test-harness的ななんか
    • 詳しくはwiki
  • IDEでの開発


    • NetBeans(6.7+)
    • Eclipse
    • IDEA
  • URLマッピングはStapler

  • ViewはApache Jellyによって記述
    • GroovyやJRubyが使用可能

Pluginの作り方


  • 公式Pluginを参考にする
  • チュートリアルがwikiにある https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial

オススメぽいPlugin


  • Task Scanner Plugin
    • XXX、TODOとか攫ってくれる
  • Change Log History Plugin
    • Jenkinsの設定を変更した時に変更履歴を見れる