タグ

ブックマーク / www.ryuzee.com (14)

  • Docker + Capistrano3で簡単にWebアプリをデプロイする

    こんにちは。@ryuzeeです。 アプリケーションのデプロイを楽にするためにDockerを使いたいけど、別にクラスタは必要ない規模だったりクラスタの管理もしたくないという人は多いのではないかと思います。 そこで、今回は、DockerとCapistrano3を組み合わせて単にデプロイを楽にする方法を紹介します。 構成図まず今回の構成図はこんな感じです。AWS上での構成例になっていますが別にどの環境でもあまり関係ない普通のWebアプリケーションを想定してください。 実現したい要件次に実現する要件です。特に変わったことはありません。 いつも同じ方式でデプロイするダウンタイムなしでデプロイするデプロイに失敗したら簡単にロールバックできるようにするサーバが増えてもデプロイの方式は変えなくて済むようにするサーバを再起動してもサービスは自動で復旧する方式では方式を見ていきましょう。 Webアプリケーショ

    Docker + Capistrano3で簡単にWebアプリをデプロイする
  • プロダクトオーナーと開発者の兼任は可能なのか?

    こんにちは。@ryuzeeです。スクラムに関してオンライン上でお悩み相談を頂きましたので私見を述べたいと思います。 プロダクトオーナーと開発者の兼任は可能ですか?注意すべき点はなんですか? さて、この手の議論をする際にまず確認すべきは、スクラムガイドです。スクラムガイドには以下の記述があります。 プロダクトオーナープロダクトオーナーは、開発チームの作業とプロダクトの価値の最大化に責任を持つ。その作業は、組織・スクラムチーム・個人によって大きく異なる。 プロダクトオーナーは、プロダクトバックログの管理に責任を持つ1人の人間である。プロダクトバックログの管理には、以下のようなものがある。 プロダクトバックログアイテムを明確に表現する。ゴールとミッションを達成できるようにプロダクトバックログアイテムを並び替える。開発チームが行う作業の価値を最適化する。プロダクトバックログを全員に見える化・透明化

    プロダクトオーナーと開発者の兼任は可能なのか?
  • オープンソースのAPI Gateway「Kong」

    全国100万人のモノリシック巨大アプリケーションに苦しむみなさんこんにちは。 世の中も杓子もマイクロサービスだ!!とかAPIだ!!とか言っていますが、実際にマイクロサービス環境にしようとすると、どのようにしてAPIのサービスを取りまとめるかが課題になります。 一般的には以下のようなやり方になります。 複数のサービスに分散しているAPIを統合するゲートウェイを用意するそのゲートウェイでは以下のようなことをおこなうクライアントからのアクセスのシングルエンドポイントの役目を果たすAPIの実体へのルーティング認証アクセス記録の収集スロットリング(過度なアクセスの抑止)実体がダウンしている場合のデグレーションこのようなAPIゲートウェイの機能は既にAWSではAmazon API Gatewayとして提供されていますが、オープンソースでもいくつかのプロダクトがあります。今回はそのうち一番開発が活発そ

    オープンソースのAPI Gateway「Kong」
  • 5分で分かるDockerのキホン

    全国100万人のImmutable Infrastructure職人のみなさんこんにちは。 もう誰も彼もがDockerなので、あんまりブログに書こうという気にもならなかったのですが、知り合いからリクエストを貰ったので、5分くらいで分かるようにかいつまんで概略を説明します。 Dockerとは詳しくは家サイト見ればだいたい分かる。仮想化技術コンテナ単位でパッケージングVirtualBoxとかと違って高速、オーバーヘッドが少ない。chrootに近い。LXCには依存しなくなっているコンテナごとにIDが振られるコンテナは差分保存なのでロールバックも簡単一回作ればどこでも動く。JavaっぽいDockerfileでコンテナを作成するDockerfileの1行ごとにコンテナIDがフラれる動作環境Linux Kernel 3.8以降 64bit OSMacの場合はVirtualBoxの中で動かす形になる→

    5分で分かるDockerのキホン
  • 【発売のお知らせ】Chef実践入門

    全国1000万人のInfrastructure as Code職人とImmutable Infrastructure芸人のみなさんこんばんは! ということでタイトルの通りなのですが、このたび5月22日に「Chef実践入門 コードによるインフラ構成の自動化」(技術評論社)が発売になりますのでお知らせいたします。 の表紙はこんな感じになります(カバーの色やデザインは変更の可能性があります)。 ご予約は、こちらで受付中です!昨年前半に着手していたので随分時間がかかってしまいましたが、なんとか出すことができました。 今回はCakePHP界隈でもおなじみの安藤祐介さん、イケメン寿司&ドラクエ好きでおなじみの伊藤直也さん、Ruby使いの菅井さん、インフラのスペシャリスト並河さんという凄い人たちとの共著になります。 の内容ですが、Vagrantを使って簡単なクックブックをChef Soloを使って実

    【発売のお知らせ】Chef実践入門
  • Sensuを使って自由度の高い監視システムの構築を行う方法

    SensuとはSensuはhttp://sensuapp.org/で公開されているオープンソース(MITライセンス)のモニタリングフレームワークです。 特徴以下のような特徴があります(公式サイトの記述を整理) シンプルで融通が効き拡張性があるモニタリングフレームワークエージェント、メッセージバス、イベントプロセッサーの機能を提供要件にあわせて他のツールとの組み合わせが可能クラウドを意識して開発自動でクライアント(監視対象)を登録コミュニティが活発RubyのEventMachineを使って作られているコードはGitHubホストされ、テストコードは高いカバレージ。TravisCIで継続的インテグレーションを実施Nagiosのプラグインを再利用可能設定はすべてJSONファイルで行うRabbitMQを使ったメッセージ型のアーキテクチャーオムニバスインストーラーを提供個人的な見解としては、Sens

    Sensuを使って自由度の高い監視システムの構築を行う方法
  • vagrant-execによるラクラク仮想マシン操作

    全国3000万人のVagrantユーザーのみなさんこんにちは。 通常Vagrantを利用している際に仮想マシン内部でコマンドを実行したい場合はvagrant sshコマンドを使ってコマンドを実行します。この際、Vagrantの標準機能を使って、仮想マシンにログインすることなく、コマンドを実行できますが、このvagrant-execプラグインを利用することでさらに簡単に仮想マシン上のコマンドをログインせずに実行できるようになります。 たとえばログの確認や設定状況の確認のような簡単な作業は作業を効率化できます。 インストール方法インストールは以下のようにコマンドを実行します。vagrant plugin install vagrant-exec 使い方使い方はかなり簡単です。 最低限このプラグインで設定しないといけない項目は1つで、コマンド実行時のルートディレクトリの指定が必要です。 以下のよ

    vagrant-execによるラクラク仮想マシン操作
  • CakePHPのアプリのコーディング規約チェックを自動で行う方法

    みなさんこんにちは。@ryuzeeです。 PHPで書かれたソースコードがコーディング規約に準拠しているかどうか確認するには、PHP_CodeSnifferというツールを使うのはよくご存知だと思いますが、今回はCakePHPを使って書いたソースコードの規約をチェックする方法を紹介します。 なお、このような規約チェックはローカル環境で気が向いた時にやるだけではなく、継続的インテグレーションにも組み込んで実施することが望まれます。 PHP_CodeSnifferのインストール特にチャンネルの追加は必要ありません。 インストールが完了すると、phpcsコマンドがインストールされます。 また標準では、Squiz, PEAR, Zend, MySource, PSR1, PSR2 , PHPCS の7個の規約がインストールされます。このうちMySourceは自分でのカスタマイズ用です。 CakePHP

    CakePHPのアプリのコーディング規約チェックを自動で行う方法
  • CakePHP2系でマイグレーションを利用する方法

    マイグレーションを使わないで、データベースのスキーマ構成を変更したりすると、特に複数人で開発しているような場合にこんなことが起こったりします。 自分の開発マシンとテストサーバ等でスキーマ構成が違っているさらには他人の開発マシンともスキーマ構成が異なっているしかもどっちがあっているか分からない例えば、みんなが色々変更しているせいで、カラムの順番が入れ子になってたりする番サーバに反映しようとした時に、どの順番にスキーマ変更を行ったらよいか分からない。ソースコードのリリースバージョンと紐付くデータベースの状態がよく分からない。こういう質的でないことに時間を使っては勿体無いので、データベースの構成管理にはマイグレーション機能を使うのが定石です。Railsなんかだと当たり前なのですが、今回はCakePHP2系でマイグレーションを利用する方法を紹介します。 CakeDC Migrationの導入C

    CakePHP2系でマイグレーションを利用する方法
  • CakePHP2アプリケーションをCapistranoでデプロイする

    アプリケーションのデプロイを自動化すべきなのは言うまでもないことです。 一応手動でデプロイを行う場合の問題点について整理しておくと以下になります。 プロジェクトの期間中そして運用に入ってからも何度も手でデプロイするということはとてつもなく多くの時間を手作業に費やすことになるデプロイ先の環境の数が多くなればなるほど作業の時間も増える手作業で作業すると間違えやすい。特に手順が複雑だったり環境が多かったりすると確率は飛躍的にあがるもしデプロイしたアプリケーションに問題があってすぐに戻さなければならない場合に多くの時間がかかる。場合によってはビジネス上の機会損失に繋がる来は価値を生むフィーチャーを実装することに時間をかけたいはずが、こういうことをやっているとどんどん時間がなくなっていきます。また手作業のリスクや消費される時間を恐れてデプロイの回数を減らしてしまうのは、ビジネス側からみると納得いか

    CakePHP2アプリケーションをCapistranoでデプロイする
  • CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法

    みなさんこんにちは。@ryuzeeです。 CakePHP2.0になってテスティングフレームワークがSimpleTestからPHPUnitに変わったことで、以前に比べると大分簡単にはなっていますが、まとまった情報が少ないので整理しておきます。 事前準備JenkinsのインストールおよびCIサーバへのPHPのインストールは済ませておいてください。 CakePHP2.0でCIを行う場合は、以前のようにStagehand_TestRunnerを使ったりPhingを使う必要はありません(Phingは以前も使わない手もあった)が、PHPUnit、Xdebugのインストールは行なっておきます。 また今後利用するであろう、PMDやCPD等も導入しておくと良いでしょう。 なお、今回の作業はCentOS5.7上でPHP5.3.8を利用して行いました。 PHP関連のパッケージ導入 pecl install xd

    CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
  • PHP (続)CakePHPでユニットテストする際に気をつけること

    前回の話はこちらを参照 前回以降もテストしているんだけど、「メモっとかないと忘れちゃうねー」的な話を以下列挙。 それにしても今回は真面目にテストしているぞ(笑 カバレージを測定したかったらテストモジュールの分割方法は、テスト対象モジュール1つにつきテストモジュール1つにするべきだ。  僕が作っているシステムは一般向け画面と管理者向け画面に分かれていて、管理者画面へのアクセスはadmin routingを使っているのだけれど、こういう場合のテストでもコントローラー単位、モデル単位で分割すべきで、利用シーンで分離すべきではない。但し受け入れテスト等、カバレージではなく業務要件への充足確認が中心になる場合は別だけど。 setUp、startTest、startCase等の初期化処理の違いを押さえておくこと。bakeでControllerのテストケースを作るとsetUp()が自動で作成されるが、こ

    PHP (続)CakePHPでユニットテストする際に気をつけること
  • CakePHPでユニットテストする際に気をつけること

    今やっている案件ではCakePHPを使ったアジャイル開発で、当然テストも自動化している。 テストの自動化を徹底的にやったので楽なんだけど、次回の案件のためにどういう観点でテストを組んでおくと良いか、またどこに嵌りがあるかメモとして残しておく。 CakePHPに限らない話 テストしやすい実装にする。例えばメソッドに複数の異なる役割を持たせない。引数と戻り値が明確。適切な行数など MVCの複数レイヤーにまたがる処理を書かない。例えばコントローラの中でSQLじゃぶじゃぶ投げたり、バリデーションチェックをぐちゃぐちゃやったりしない 自動でテスト実行できる仕掛け作り。例えばPHPならphpUnderControl。JAVAならCruiseControlとかHudson。 基に返って、テストを先に書くという意識付け テストがいっぱいありすぎたら今度はテストのリファクタリング。似たようなテストがコピペ

    CakePHPでユニットテストする際に気をつけること
  • EclipseでCakePHPのMVCを切り替える

    著作 SCRUM BOOT CAMP THE BOOK 著者/訳者:西村直人 永瀬美穂 吉羽龍太郎 出版社:翔泳社( 2013-02-13 ) 定価:¥ 2,520 スクラム初心者に向けて基的な考え方の解説から始まり、プロジェクトでの実際の進め方やよく起こる問題への対応法まで幅広く解説。マンガと文章のセットでスクラムを短期間で理解できます。スクラムの概要を正しく理解したい人、もう一度おさらいしたい人にオススメ。 CakePHPで学ぶ継続的インテグレーション 著者/訳者:渡辺 一宏 吉羽 龍太郎 岸田 健一郎 穴澤 康裕 出版社:インプレス( 2014-09-19 ) 定価:¥ 4,320 Webアプリケーション開発における継続的インテグレーションについて、CakePHPのサンプルをベースにして、その概要から使用ツール解説、導入方法、メンテナンスまでを解説 Chef実践入門 ~コードによる

    EclipseでCakePHPのMVCを切り替える
  • 1