Tomcatにゼロダウンタイムでデプロイする
Tomcat7からゼロダウンタイムでデプロイができるようになりました(だいぶむか~しの話になってしまいましたが、、、
ようやくTomcatを7にアップグレードしたので、ゼロダウンロードデプロイできるようにJenkinsさんの成果物にバージョニングをしたいなぁと
…と思っていると、まさにされている方がいらっしゃいました。
Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録
自分の場合は、本番用のビルドをあまり走らせていないため、採番が一桁になってしまいます。
この辺の情報を元に3桁くらいあれば、困ることはないよねーということで、 Apache Tomcat 7 Configuration Reference (7.0.55) - The Context Container ハードリンク作成をちょっと変更して
ln "${WORKSPACE}/target/hoge.war" "${WORKSPACE}/target/hoge##$(printf %03d ${BUILD_NUMBER}).war"
とこんな形でシェルを実行しています。
Mavenプロジェクトなので、そっちのバージョンでもいいかなぁと思いましたが、integration環境とかだとかぶっちゃうので当分は、シンプルなJenkinsさんの採番でやってみようかなぁというところです。
DBFluteフェス 2013
昨日、DBFluteフェス 2013へ参加してきました。 http://atnd.org/events/43654
一番目のAセッションで行われたjfluteさんの『DBFluteとは?』について 備忘録としてまとめます。
全体の流れはこんな感じ...
- CBをつかってDBアクセスのライブコーディング
- 会場からのリクエストで、現場で使うクエリ対応例をライブコーディング
- jfluteさん自己紹介とDBFluteの説明
というjfluteさんスタイルでした。やっぱりライブコーディングみているのは 楽しいですね。
セッションの内容は、
という感じでしょうか
会場で披露されたEclipseショートカット
- Ctrl + 2,その後に L:定義側を作ってくれますが、セミコロンもいれてくれるの知らなかった!
- Shift + Return で次の行に移る(入力モード中でもそこから抜けて次の行にいける)
- 入力モードのときに、緑の棒はエンター押したときに行くところ(囲われている変数部分は、変更できる場所ですね)
- foreと書き込んであとは補完(Ctrl + Space) でfor eachを作る(直前にあるlistで作ってくれる)
- Ctrl + 1 ,直ったら Enter
- Ctrl + Alt + ↑でコピー行をつくって, Alt + ↑ で移動させる (同じ記述が必要になったとき) 方向は下でもよかった気がします
あと、Ctrl + Shift + T と Ctrl + Shift + R はDBFluteユーザにはあたりまえですかね。
http://d.hatena.ne.jp/jflute/20090628/1246196310
現場で使うクエリ対応例
- 複数のカラムに対しての曖昧検索
- 一部のカラムだけ取得
- 期間指定系でいいのないですか
- NN検索(本人から)
期間指定系でいいのないですか?
- まで検索(ex. 1日から3日いっぱいまで)がしたくなったらsetFromalizedDatedDatetime_FromToを使うと簡単にできる。 終了日時を次の日の0時にして未満でクエリをつくってくれる。
- さらに、FromToOptionを使うと、月まで指定の検索ができる。
- FromToOptionはいろいろ入ってて便利(週指定とか月指定とかできてスタート日も設定できるので、水曜からの一週間や、20日締め日での計算とか)
- ちょっとやり過ぎなぐらいに盛りだくさんでしたが、日付処理系のところは人のミスによるバグが入りやすいところということで、かなり作りこんだそうです。
http://dbflute.seasar.org/ja/manual/function/ormapper/conditionbean/query/fromto.html
DBFluteの紹介
DBFluteは自動生成ツール
- 早い、打ち間違えがないのも特徴だけど、DBがかわったらコンパイルエラーで分かること(Freegenの魅力ですね)。
- DBの方がアプリよりも長生きなので、アプリの都合でDBが変えられないことを防ぎたい。
- orが使えるようになってます。DBMSでインデックスマージが使えるようになってきているので(まだunionを使った方が早いケースがあるそうです)
こだわっていることについて
- きっちりとログを出すこと
ログに出すsqlのインデントには拘っている
スピードの速いビジネス変化。DB変更に強くいかにするのか
HTTPの教科書を読んで
実は、HTTPのことをきちんと理解していないシステム開発者って多いんだと思います。 『HTTPの教科書』は、そんなシステム開発者が読むべき本というのが感想です。
特に社内システム開発等の担当者だとビジネスロジックやデータ周りのことに興味がいってしまってHTTPまわりってアクセスしてレスポンスがあればOKみたいな感じでシステム開発の経験を積んでいく人が多そうな気がしてます。イントラからのアクセスであれば、あまりセキュリティに関して文句も言われなさそうだし
ちょっと前からのRESTプームやJavaScript系がイントラシステムでも使われるようになってきているのでこういった本を一冊くらいは読んでおくべきだと思います。
『Webを支える技術 ── HTTP,URI,HTML,そしてREST』と重なる部分もありますが、代表的なステータスコードのわかりやすい説明がいいなぁと思います。 認証部分やセキュリティ、今後についての部分は、HTTPの教科書が詳しい(といっても詳細までではないですが)のでそういった部分も踏まえて学びたい人にはこちらがおすすめかなと思います。 REST にかんしては、やっぱりWebを支える技術が詳しいと思います。
- 作者: 上野宣
- 出版社/メーカー: 翔泳社
- 発売日: 2013/05/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (172件) を見る
『アジャイル開発とスクラム』を読んで
遅ればせながら、『アジャイル開発とスクラム』を読みました。 DevSum2013でも売られていたのですが、なんだかんだで今頃になってしまいました。
はじめにで、"ユーザ企業の情報システム部門の方にも"と書かれていましたが、今まで読んだAgile本と比べ情報システム担当が読んでぐさっとくる本でした。
特に、第2部の実践事例はとても面白い内容で、富士通事例はユーザ企業の情シスが抱えている問題点や課題にスクラムでどう対応したのかが語られていてとても参考になりました。リクルートの事例に出てくるQCDのQを高くすることは出版業界だけでなく製造業全般(特に日本)のスタイルだなぁと思います。どうしても一度出してしまったものを修正できないシステムの中ではQを高めることが全てに優先されるべきなのだと思います。
そういう意味で、製造業系の多くの人や仕組みがアジャイル開発を気持ちや制度的に”中途半端なものを提供する”とどうしても捉えがちなのかなと感じました。 やはりドキュメントや人による隅々までのテスト、品質チェックが”安心”を生むというのは、なかなか変えにくいのだと思います。 安全はいくらでも自働化でできたとしても安心度を高めることが、情シスの現場が頑張っていかなければならないことなんだと思います。日本の製造業はQCがとくに優れていると言われてきましたが、形式的になりがちなQCを本来のQC型にしていく、柔軟にしていくことが現場に求められているものだと感じました。
おわりにで、書かれていた合宿による解決については平鍋さんが何かのカンファレンスで話されたのを思い出しました。それくらい私の中でも組織の本質なんだろうなという思いがありました。 考えてみると町内会の集まりって、とても面白い集まりだなと思います。いろんな技術や知識を持っている人が集まって町を良くしていく。お酒などの催しもあってみんな主観を言い合って、みんなで主体的に動く。とても日本的で組織の本質を持っているのではないのかなと思いました。
アジャイル開発とスクラム 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント
- 作者: 平鍋健児,野中郁次郎
- 出版社/メーカー: 翔泳社
- 発売日: 2013/01/18
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 12回
- この商品を含むブログ (13件) を見る
DBFlute.NETの複数DB設定をつかってみた
DBFlute.NETの複数DB設定をつかってみたのでメモ。
普段Java版のDBFluteを使っていて、.NETについては無知なのでところどころつまづいてしまいました。
(やったことは、QuillとDBFluteをつかってのDB接続です。)
とりあえず動くようになりましたが、間違い等指ありましたら摘いただけると助かります
ということで複数DB接続をDBFlute.NETでやる場合に必要なこと備忘録
DBFlute.NETについてはDBFlute.NETの紹介 | DBFlute.NETにて説明があります。 また、svnリポジトリにdfnet-multipledb-quil-exampleがあります。
自動生成について
自動生成はJavaと同じようにdfprop等の設定をしてmanage.batを叩けば出力される。
- basicInfoMap.dfpropのtargetLanguageをcsharpにする
- basicInfoMap.dfpropのpackageBaseを出力するパスに設定する
- Javaでも同じですが、basicInfoMap.dfpropのprojectPrefixを設定して名前が被らないようにする
- 外だしファイルを使うときには、outsideSqlDefinitionMap.dfpropのsqlPackage = $$PACKAGEBASE$$のコメントアウトを外しておく(Javaでも一緒)
VisualStudioでの設定とか
- 外だしsqlファイルは、ExBhvに置く
- ファイルのプロパティ設定でビルドアクションを”埋め込まれたリソース”に変更する
- 埋め込まれたリソースに変更しないと、アセンブリに登録されず外だしsqlファイルが見つからないエラーが発生する
- 各DB用に生成されたフォルダ配下のAllCommon/S2Dao/XXS2DaoSettig.csのXXS2DaoSettingクラスにメソッドを追加する
public override String DataSourceName { get { return "DataSourceのid"; } }
- これを設定しないとDataSourceを使い分けることができなくなり、実行時にテーブルが無いというエラーが発生する
- これに対応するようにQuill.configには、DataSourceを2つ用意する
- 参照 Quillで複数データソース接続 - S2Container.NET
感想など
OSC2013 Spring
オープンソースカンファレンス 2013 Spring http://www.ospn.jp/osc2013-spring/ に行ってきました。
トピックは
の3つです。
初めてのOSC
初めてのOSCへの参加だったのでわくわくしながら参加したわけですが、けっこう明星大学って都心から遠かったです。 新宿 -> 調布 -> 多摩センター -> 中央大学 明星大学 ただ多摩センターから多摩モノレール沿線に広がる街は、とても住みやすそうでした。都心にも近くて広い中で生活できそうでした。
最初に会場についたときの感想は、DevSumiyよりギーク(オタク)ぽい。でした。 DevSumiはいわゆる上流といわれる範囲やソフト的な部分、プロジェクト管理などが中震ですが、OSCはH/W, OSについても広く出展されていました。 あと来場者の技術レベルもちょっと高めな感じがしました。
CMS
CMS系のOSSの出展が非常に多かったように思う。ビジネスでも個人でもWebページの基本だからなんですかね。 WordPress考えてもコミュニティの大きさやプラグイン系の量あたりが重要なパラメータになるのかなと思います。
Camel & Sphinx
前にちょっと使ってみたCamelとSphinxについてユーザグループの方といろいろと話がきけました。 やっぱり、やってる方々を直に会えるとと安心感というか実在感ができて、使うにしても何にしてもプラスな気がする。気分的な問題なんだけど
リーン開発の本質1
『リーン開発の本質』を読み始めて第1章からとても引き寄せられた。
第1章は歴史としてリーンの元であるトヨタ生産方式について説明されているけれど、ソフトウェア開発、会社で起こっていることに対して素直に解決をしていくことの大切さをとても感じることができる。
- Just In Time ==> 複雑生の攻略
- 自働化: 組織が指示を仰ぐのではなく、出来事に即座、的確に反応する反射生をそなえる
- 局所的な効率ばかり追い求めてはならない
- コンセプト--> 製品の具現化の流れを大切にする
改めて、システム開発において有効に活用できるという前提や、アジャイルに関しての予備知識があるとすごい納得ができる事だと感じられる。 なんとなくだけれど、有機的だ
- 作者: メアリー・ポッペンディーク,トム・ポッペンディーク,高嶋優子,天野勝,平鍋健児
- 出版社/メーカー: 日経BP社
- 発売日: 2008/02/07
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 133回
- この商品を含むブログ (66件) を見る