🏭 Docker を Production 投入するメリットを考える 仕事で開発中のシステムで、 master ブランチに Pull Request が Merge されると自動的に AWS ECS に構築した社内向けの確認環境にデプロイが行われるような仕組みを導... portalshit.net Kaizen Platform 時代は Naoya Ito さんの以下の記事にあるような感じで deploy してた。 Slack 上で hubot に話しかけると deploy 用の Pull Request が作られていい感じに deploy フローが始まる。 GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー 少し前までアプリケーションのデプロイと言えば capistrano などをコマンドラインから叩いてデプロイ、みたいなことをやっていたが、最近は少し様子が違うのでそ
仕事で開発中のシステムで、 master ブランチに Pull Request が Merge されると自動的に AWS ECS に構築した社内向けの確認環境にデプロイが行われるような仕組みを導入した。自動テスト、コンテナイメージのビルド、デプロイには CircleCI を利用している。 .circleci/config.yml は以下のような感じ。 version: 2 shared: &shared working_directory: ~/app docker: - image: xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/organization/app environment: PGHOST: 127.0.0.1 PGUSER: user RAILS_ENV: test REDIS_HOST: localhost - ima
意識レベルを低く保ったまま自動化する話 世の中にはChefやらAnsibleやらPuppetやらと様々な自動化ツールがあって、 意識の高いはてな民は日々「Chef-soloはオワコン、いまやChef-zeroの時代」 「Ansibleなら対象サーバへの事前準備が不要、時代はAnsible」といった不毛な会話を繰り広げていると聞く。 「モダンなエンジニアは全員Chefを使いこなしているものだ」みたいな空気すらある。 なるほど、自動化ツールの学習は興味深いし楽しい。 大規模なサーバ群が次々と自動的にセットアップされてゆく様子は感動すら覚える。 が、私がやりたいことはリモートサーバのログを消したいだけなんだ、コマンド2つで済む内容なんだ・・・というときにはちと大仰すぎる。 「鶏を割くに焉んぞ牛刀を用いん」とはよく言ったものである。 シェルスクリプトで済むような内容、特に冪等性が必要ない場面、日常
by @dekokun on 2013/05/21 23:46 Tagged as: Capistrano, Fabric. 最近、Fabric, Capistranoと立て続けに2種類のデプロイツールを使ってデプロイ環境を構築する機会がありましたので、その際に感じた両者の利点を書いてみたいと思います。 両者の簡単な解説 そもそもCapistrano, Fabricについて、「片方は知っているけど片方は知らないよ」という人がいるかと思いますので、簡単な説明をします。 両方とも何かを知らない人は…「自動デプロイ」とかそのあたりで検索してみるといいんじゃないですかね。 Capistranoとは Ruby製のFabricみたいなものです Fabricとは Python製のCapistranoみたいなものです Fabricは私の中ではデプロイツールという認識なのですが、最近Chefと比較されること
amakanをUnicornからPumaに移行した - ✘╹◡╹✘ に引き続き、小さい改善を加えた。 変更の概要 https://amakan.net/ への今後の変更に備えて、テストやデプロイに掛かる時間を短くする恩恵が良いだろうと思い、node_modulesの管理に使うツールとしてyarnを使うことにした。結果的に、テスト用ビルドの所要時間が130秒から70秒に、デプロイ用ビルドの所要時間が300秒から200秒になった。 CircleCIの設定変更 継続的なテストとデプロイ作業の実行のために、amakanではCircle CIを利用している。Circle CIを使っている理由は、仕事でも使っている上にPrivateでも無料だから。 yarnを利用するためにCircle CIに追加する必要があった設定は、以下の通り。 指定したバージョンのyarnが入っていない場合はインストールする グ
移行したぞ、というだけで特に技術的な知見の無い記事です。 移行の背景 https://amakan.net/ という、レビューの無いシンプルな読書管理サービスを2016年7月から運営している。 5ヶ月ほど運用している中で、利用してくれている人達に色々な意見をもらうことができて、これに対応して年末に時間を取って大きく改善しようとしている。しかし「年末に時間を取ってやろうとしていて...」という発言は明らかに危険信号で、高確率で「結局やれなかったよHAHAHA」ということになるのが目に見えている。そこで、年末に向けて小さな改善を徐々に積み重ねていくことで、モチベーションを高めつつ、新たに変更を加えることへの心理的障壁を無くそうと目論んでいる。今回はその一環として、amakanを動かすWebサーバをUnicornからPumaに変更することで、改善を図ることにした。 amakanの事情 amaka
https://zeit.co/now の翻訳です。 nowとは? △now は、JavaScript (Node.js)もしくはDockerで動作するウェブサイトや、アプリケーション、サービスを素早く、簡単、確実にクラウド化することができます。 実際的な言い方をするなら、package.jsonもしくはDockerfileを含む任意のディレクトリが、nowコマンド一つでクラウドに送られます。 プロジェクトをデプロイする毎に、△now は固有のURLを与えます(ビルドが完了する前に!)。URLは次のようになります。my-app-erkgfjtrna.now.sh 本番環境へデプロイするときには、単に適切なエイリアスを選ぶだけです。 △nowは動的なコード(マイクロサービスおよびバックエンド)のためのCDNと考えることができます。 はじめに インストール nowを使い始めるには、次のようにn
こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当ブログでは1年半ほど前にMicroservicesへのとりくみについてご紹介しました。 当時社内ライブラリだったGarageはその後オープンソースとして公開され、また社内のシステムも当時と比べ飛躍的な進化を遂げています。 そういったクックパッドにおける最近のMicroservices事例を先日Microservices Casual Talksで紹介しました。 Microservicesの抽象的な話は一切割愛し、具体的な事例に終始した内容となっています。 Microservicesの基本となる考え方はわかったものの、実践方法で
はじめに さまよえるアラフォー男子 @artifactsauce です。 突然ですが、弊社は「外資就活ドットコム」というWebサービスを開発・運営している会社です。サービスイン当初はイケイケガンガンで高速開発・高速リリースをうたっていましたが、開発者が増えるにしたがって様々な問題が発生してきました。今回はプロダクトのリリースにまつわる問題を解決するために弊社で採用した開発ワークフローについて紹介します。 どんな問題が起こっていたのか? Capistranoによる自動デプロイは実現していた我々ですが、それですべてがうまくいったわけではありませんでした。具体的には以下の様な問題が発生していました。 デプロイできる環境を用意するのが面倒である。 各デプロイ担当者がデプロイツールをインストールする必要がある。 デプロイツールを更新していない場合には失敗する。 デプロイ対象サーバーにデプロイ担当者の
Lobiチームの長田です。 今回は現在運用中のLobiというサービスのデプロイについて紹介します。 Lobi Chat & Game Community Lobiについての紹介は以前のエントリを参照ください。 サーバーサイドエンジニア視点でLobiというサービスを紹介します | tech.kayac.com - KAYAC engineers' blog TL;DR デプロイ=各種ファイル更新とサービスへの反映、chefの実行 毎日十数回のデプロイを行っている デプロイ対象は数十台単位 十余名のサーバーサイドエンジニア全員にデプロイ権限がある Auto Scalingを考慮したデプロイ手段を採用している ファイル更新もchef実行もstretcherでOK まだまだ改善の余地あり おおまかな手順 本番環境にデプロイするぞ!という段になると、こんな操作が行われます。 GitHub上でコードレ
2015-07-22 EC2 Container Service(ECS)を管理して、Blue-Green Deploymentを実現するツールを書いた AWS Docker ECS 最近は暑いのでめっきり外に出なくなりましたが、相変わらずDevOpsのOpsばっかりやっています。 さて、今やってるプロジェクトではAmazon EC2 Container Service(ECS)で完全にDockerベースでの開発をしています。本番運用を見越したオペレーションの作り込みをやってるわけですが、今回はBlue-Green Deploymentを実現してみたよってお話。 材料 必要な材料は以下の通り。 VPC Route53 EC2 ELB AutoScaling Group ECS 方式 最近ELBがAutoScaling Group単位での切り替えができるようになったので、これを利用します。基
tech.kayac.com Advent Calendar 2014 10日目担当の @fujiwara です。 最近書いている stretcher というデプロイツールの紹介をしたいと思います。 長いので3行で push型デプロイはホスト台数が増減しやすい環境に適さない 各種問題を解決するpull型デプロイツールを書いた Consul と連携するよ 中央ホスト配布(push)型デプロイの問題点 カヤックの自社サービスでは久しく Archer というツールを利用し、中央ホストから各デプロイ対象ホストに rsync でファイルを配布する形のデプロイを行っていました。ここではこれを push 型と呼びます。 push型のデプロイは、ホスト台数が頻繁に増減する環境で以下のような問題があります。 新しくホストが起動してきた場合に、中央ホストからデプロイを行ったあとでないと (古い状態で起動してい
背景 アカツキではRailsでゲームサーバを開発しています。インフラはAWSにあり、CloudFormation, Chef, Capistrano を用いて、Infrastructure as Code を実現しています。 エンジニアは普段ローカルマシンで開発していますが、ディレクター、レベルデザイナーなどは定義ファイルを変えた後、それを反映して動作を確認するための検証サーバ(以下、検証環境)を使っています。 検証環境へのデプロイも Capistrano で自動化しており、最初は問題が無かったのですが、ゲーム上のデータが増えることによって、一度のデプロイで10分程度かかるようになっていました。 以下、Capistrano ver.2系の話にはなりますが、検証環境のデプロイを高速化したので、その内容を紹介したいと思います。 現状分析 rsync について、capistrano_rsync_
perlでdaemontools + Server::Starterで面倒見てたあたりをRailsでもしっかりやりたいなぁと。 以外としっかりとやってるサンプルがウェブに落ちてなかったので、いろいろ調べました。 いろいろ検証してみたけど、最終的に以下のように落ち着きそうです。試行錯誤した中身もまとめたい気もする。 やること graceful restart Railsアプリの永続化 永続化してるやつの自動起動とか永続化とか capistranoからアプリの再起動などできるように 終着点 Railsアプリをgod + unicornで上げて、godをinit script置いてchkconfigで自動起動とかの設定。 あと、capistranoからgod監視下のアプリを再起動できるように unicornをgodで動かす よくあるやつ。 rails_env = ENV['RAILS_ENV']
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く