技術部の鈴木 (id:eagletmt) です。 クックパッドでは一部の Web アプリケーションサーバで Docker が使われており、今回はそのデプロイ方法について紹介します。 Docker で Web アプリケーションをデプロイするときには、まだまだベストプラクティスがある状況ではありません。 たとえば、どのように無停止でデプロイするか、どのようにコンテナと通信するかといった問題があります。 最初に Apache Mesos と Marathon などのツールを検証しましたが、クックパッドの環境において使いやすそうなものはなく、最終的に自前でデプロイのしくみを作ることにしました。 しかし Docker 周辺のツールは様々な新しいものが出てきている最中です。 今はまだベストなものが無いけれども、近いうちによりよいものが出てくるかもしれません。 そのため、できるだけ単純なしくみにしておく
5. Open Cloud Campus 5 Linux女子部 Dockerを支える技術 一般的なサーバ仮想化の分類 物理マシン 物理マシン ホスト OS ハイパーバイザ (カーネルモジュール) 仮想 マシン ゲスト OS VMware vSphere, Xen など Linux KVM ハードウェアによる仮想化 (物理マシンにハイパーバイザを内蔵) ソフトウェアによる仮想化 (物理マシン上にハイパーバイザを導入) ソフトウェアによる仮想化 (ホスト OS にハイパーバイザ機能を追加) 物理マシン OS 非仮想化環境 基本的には「物理マシン」と同等の「仮想マシン」を複数 作り出す技術です。 仮想 マシン ゲスト OS 仮想 マシン ゲスト OS 仮想 マシン ゲスト OS 仮想 マシン ゲスト OS 仮想 マシン ゲスト OS 仮想 マシン ゲスト OS 仮想 マシン ゲスト OS ハイパ
今までいろいろ触ってきて,Dockerネットワーク周りに関しては何となくは理解していたが,人に説明できるほど理解してなかったのでまとめておく.基本は,Advanced networking - Docker Documentationがベースになっている. 仮想ブリッジの仕組み Dockerのネットワークは,仮想ブリッジdocker0を通じて管理され,他のネットワークとは隔離された環境で動作する. Dockerデーモンを起動すると, 仮想ブリッジdocker0の作成 ホストの既存ルートからの空きのIPアドレス空間を検索 空きから特定の範囲のIPアドレス空間を取得 取得したIPアドレス空間をdocker0に割り当て が行われる. コンテナを起動すると,コンテナには以下が割り当てられる. docker0に紐づいたveth(Virtual Ethernet)インターフェース docker0に割り
Docker はただ LXC を再発明しているわけではないというお話。DotCloud のファウンダーによる stackoverflow の質問への回答。 LXC はネームスペースやコントロールグループ等の Linux カーネルケーパビリティ機能を利用し、プロセスを他のプロセスからサンドボックス化し、それらプロセスへのリソースの割当てをコントロールしている。Docker はこのローレベルのカーネル機能を軸に、以下のような機能を提供している。 LXC に対し Docker が提供している機能 どんなマシンへもポータブルデプロイ可能 Docker はアプリケーションをビルドするためのフォーマットが定義されており、その全ての依存関係を (Docker がインストールされている全てのマシンで動作する) 単一のオブジェクトに入れ、それはどこで実行してもアプリケーション実行環境が同一になります。LXC
Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる | SOTA を参考にして、Dockerfile を使用せずに、Ansible を使用して Docker イメージを作成してみました 仮想環境の準備 Vagrant を使用して環境を準備します Vagrantfile の内容は下記の通りです box は事前に shiguredo/packer-templates を使用して作成しました Vagrant.configure("2") do |config| config.vm.box = "ubuntu-13.10" config.vm.box_url = "ubuntu-13-10-x64-virtualbox.box" config.vm.hostname = "ubuntu-13.10" config.vm.network "private_ne
1つのJenkinsの環境で複数のプロジェクトのテストが実行されることは、ままあると思う。Jenkins上で動作するすべてのプロジェクトが同時に動作するようにJenkins環境を整えるのは難しいことがある。あるプロジェクトのためにライブラリのバージョンを更新したことで、別のプロジェクトのテストが落ちるとか。 Ruby なら Bundler やrbenvを使って環境を切り替えるとだいたい解決するけど、libhogeみたいな共有ライブラリやBundlerやrbenv自体の更新とか、どうしても共有される部分はあって、だいたい普段は問題はないが、まれに困ると言う感じだと思う。 そこで、テストごとにDockerのコンテナを立ち上げてその中でテストを実行するようにすれば、環境を独立させることができるので、環境をこわさないように丁寧に設定するみたいなことに気を使わなくてよくなるので便利。 miyagaw
開発合宿でDevOps界隈やモニタリング界隈で流行りのツールを組み合わせてBlue Green Deploymentできる何かを作りました。 同じチームで開発したid:shiba_yu36 先生やid:wtatsuru 先生が既にブログを書いてますが、自分の視点で書いてみます。(13/12/24追記: より詳細な内容が新規に書かれたのでリンク先を入れ替えました) Docker, Mesos, Sensu等を利用したBlue-Green Deploymentの仕組み - $shibayu36->blog; Docker コンテナにアプリケーションを立てて Graphite でいい感じに可視化するまで - wtatsuru's blog 僕は主に、各ツールから得られる情報をまとめて管理し、デプロイを実行するデプロイ管理ツールを作成していましたので、それについて書きます。 普段は運用の修行をして
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog LT の中で触れた環境を構築するデモコードを Vagrantfile にまとめて GitHub においていますのでよければ触ってみてください。ジョブ登録済の Jenkins が立ち上がるので全く同じ環境を試してもらえます。 yahoojapan/jenkins-with-docker-demo LT は5分でざっと流してしまったため、このエントリで補足します。 ジョブ実行毎にクリーンな環境がほしい 特に説明の必要もなく普段 Jenkins を使っていればジョブ毎にクリーンな環境がほしいと思うはずです。スレーブノードをジョブ毎に新規でインスタンスを立ちあげて実行することもできますが インスタンスの作成、起動はそれなりの時間がかかりま
Products Docker DesktopContainerize your applicationsDocker HubDiscover and share container imagesDocker ScoutSimplify the software supply chainDocker Build CloudSpeed up your image buildsTestcontainers Desktop Local testing with real dependenciesTestcontainers Cloud Test without limits in the cloud See our product roadmapMORE resources for developers
仮想化の分野はどんどんと新しいものが出てくる。全部を実際に試すことは出来なくても、筋が良さそうなものについては、どういうものなのかある程度把握しておきたい。最近はちょっと忙しくてあまり情報収集ができてなかったので、追いつこうと思ってちょっと調べてみた。 ハイパーバイザ型仮想化とコンテナ型仮想化 仮想マシンの歴史をたどると、メインフレームの方では随分と昔から使われている技術である、と出てくる。一方で、x86の世界ではそれほど歴史は長くなく、1999年にリリースされたVMwareがおそらく実用的な初の仮想マシン技術だろう。 VMWareはハイパーバイザ型仮想化と呼ばれる技術で、上に乗るOS(ゲストと呼ばれる)に対して仮想的なハードウェアを提供する。ハイパーバイザ型も、どのレイヤで仮想的なハードウェアを提供するかで更に細分化されるらしいが、よく知らないので、ここではそこまでは踏み入らない。ハイパ
ちょっと前から Docker を使っているので、その話。 Dockr について Docker は dotcloud がオープンソースで公開している、コンテナ技術による仮想化ソフトウェア。 以下のテクノロジーベースにしている: LXC 前にも書いた。Xen とか VirtualBOX みたいにホスト内に仮想マシンを立ち上げるんじゃなくて、ホスト内の隔離された環境で仮想マシンを動かす技術。物理マシンをシミュレーションしているんじゃないってことは、VPS とか EC2 とかの仮想マシン上でも問題なく動くし、マシンを起動するプロセスが不要となるので、一瞬で使い始められるというメリットにつながっている。 AUFS UnionFS(ディレクトリを重ね合わせることができる)の実装の一つ。元の仮想マシンイメージを書き換えないで、更新が発生した部分は別の場所に書き込んでいくようになっている。これにより、仮想
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く