docker の検索結果:

Web アプリケーションを把握するためのコンソール

…プリケーションでは Docker イメージを Jenkins でビルドして Amazon ECR にプッシュし、Rundeck から hako を用いて ECS にデプロイし、またその Web アプリケーションからは Amazon RDS、Amazon ElastiCache 等のマネージドサービスを活用しています。 このように多くの Web アプリケーションが存在し、また各アプリが別のアプリや AWS の様々なマネージドサービスを利用している状況では、どのアプリが何を使って…

巨大なWEBアプリケーションに巨大な変更を取り入れるためにやったこと

…入れることができる Dockerを利用したナウいデプロイフローを取り入れる Webpackerを利用してナウいjavascript開発環境を取り入れる React.js を導入して再利用性の高いプレゼンテーショナルコンポーネントを設計してみる 電話番号パーサーを導入してみる また、サービスを水平に分割し地層を積み上げるのではなく垂直に分割することで、新しい技術要素を取り入れる場面では早い段階で技術スタックを試し、技術的に実現可能であることの裏取りができます。 巨大な開発ブラン…

Nginxへの変更に伴うリバースプロキシのテストの改善

…sterのテストにはDocker Composeを使用しており、以下のようなコンテナの構成になっていました。 前述の通り、Apacheの設定はItamaeとは別のGitリポジトリで管理されており、cookpad.comを含む主要なサービスの設定が同じリポジトリに含まれています。 [リバースプロキシリポジトリ] ├── cookpad/ │ ├── conf/ │ │ └── httpd.conf │ └── conf.d/ │ └── xxx.conf ├── other_s…

サーバーレスなバックアップシステムを AWS SAM を用いてシュッと構築する

…ci/lambda Docker image を利用すると便利です。以下のようなコマンドで npm install しましょう。 $ docker run --rm -v "$PWD/src/":/var/task lambci/lambda:build-nodejs6.10 npm install すると、Lambda 環境に近い状態でビルドされた node_modules が src/ ディレクトリに作られ、以下のようなコマンドで function を動かすことができます…

Encoder-Decoder でレシピの材料名を正規化する

…実行環境をまとめた Docker イメージが社内の Docker レポジトリに登録されます。このイメージは後述するバッチで利用されます。 バッチ実行 クックパッドは主に Rails で構築されているため、そのデータの多くは MySQL に蓄積されています。さらに、これらはログデータ等とともに Redshift に集約されています。正規化バッチはこれらのデータをもとに動作しています。 まず、正規化の対象とする材料名を Redshift から取得して、S3 に保存します。次に、D…

2nd Hackarade: Machine Learning Challenge

…るために、準備した Dockerfile を用いて各自のノートPCで docker image をビルドしてもらい、立ち上げたコンテナで jupyter notebook を使って分析をするという形にしました。 そのため GPU は使用しませんでしたが、nvidia-docker を使えば同じスクリプトで GPU を使った分析もできるようになっています。 レシピ分類(テキストデータ) レシピのタイトルや材料や手順のテキストデータを特徴ベクトル化して、該当のカテゴリ(e.g.,…

Kuroko2の近況

…ako を利用した Docker アプリケーションへのオプション定義のショートカットとして利用しています。 また、実験的なタスクを試したりすることもできるので、Kuroko2 本体にコントリビュートする際にも事前に検証などが行なえます。 Kuroko2::ApplicationController の拡張 次に Kuroko2::ApplicationController を拡張する方法を紹介します。 ここでなぜこのような拡張が必要なのかという理由を先に述べておきます。 クッ…

最近のサービス間のデータとイベントの連携について

…arbeque は Docker の利用を前提としたジョブキューシステムなので、ジョブの実行は Docker コンテナ内で行なわれます。すでに稼動しているサービスとは別のコンテナでジョブが実行されるため、ジョブが増えたことによりリクエストが増えて Unicorn のワーカーが詰まる問題を避け、よりスケーラブルなジョブ実行環境となります。クックパッドでは、現状ほとんどすべての新規サービスが Docker コンテナ上で動いているため、この仕組みの恩恵を十分に受けることができます。…

Consumer-Driven Contract testing in Cookpad

…ックされ、その後の Docker イメージのビルド、開発環境サーバーへのデプロイ、本番環境同等のカナリアサーバーへのデプロイが自動で行われています。カナリアサーバーへのデプロイ後は、カナリアサーバーに対してスモークテストが自動で実行され、さらに必要に応じて開発者による動作確認が行われます。本番環境へのデプロイは細かい粒度で行われています。リリース対象の機能やバグ修正に責任を持つ開発者が明確になっているので、開発者の責任でデプロイ後の動作確認をしています。問題があれば開発者がロ…

エンジニア全体ミーティング Tech MTGのすゝめ

…uilt-with-docker クックパッドのMicroservicesへの取り組みに関する話 クックパッドで取り組んでいるMicroservicesの事例に関して、社内で行われている様々な取り組みの事例もあげて説明してもらいました。詳しい内容はクックパッドにおける最近のMicroservices事例 でも紹介されています。 speakerdeck.com 資料: https://speakerdeck.com/adorechic/how-microservices-are…

ECS を利用したオフラインジョブの実行環境

…ンの実行環境として Docker を利用していましたが、最近は徐々に Amazon EC2 Container Service (ECS) を利用し始めています。 去年の時点での Web アプリケーションのデプロイ手法 *1 や、最近 ECS を利用してどう Web アプリケーションをデプロイしているか *2 については紹介したことがあるので、今回は定期的なバッチ処理やジョブキューを介して非同期に実行されるようなオフラインの処理について、どのような環境を構築しているか紹介した…

データベースドキュメント管理システム dmemo のご案内

…ソースとの同期処理 Dockerfile, Docker Imageも提供しているため、多くの環境ではDocker経由で稼働させるのが簡単でしょう。 ユーザ認証 ユーザ認証は Google OAuth 2.0 認証のみ提供しています。 接続先データソースなどの編集は Admin ユーザのみに許可されていますが、最初の Admin ユーザは DB を直接編集するか rake タスクから作成する必要があります。 $ ./bin/rake admin:activate EMAIL=…

実践 Pact:マイクロサービス時代のテストツール

…れています。公式に Docker イメージも提供されています。 https://hub.docker.com/r/dius/pact_broker/ https://github.com/DiUS/pact_broker-docker また Ruby 向けクライアントライブラリとして pact_broker-client が提供されています。 後述しますが、クックパッドでも pact_broker サーバーを用意して Provider/Consumer 間のやりとりに利用して…

クックパッドにおける最近のMicroservices事例

…のアプリケーションがDockerで管理されています。もちろんテスト環境だけではなく本番環境もDockerです。 ビルドパイプライン 各サービスでの変更がマージされると、各サービスのCIが実行され、テストが通ればDockerイメージが作成されます。作成されたイメージはそのまま自動でstagingにデプロイされます。 もちろん本番も同じイメージが使われますし、またバッチジョブもサービス専用の実行環境を必要とせず、Dockerイメージをとってきて実行するだけです。 もちろんこのイメ…

クックパッドのジョブ管理システム kuroko2 の紹介

…行中のジョブの一覧 Dockerコンテナの活用 kuroko2の欠点として、新規のプロジェクトで新たにアプリケーションがバッチを実行したいときには、そのアプリケーションが動作できるように環境構築の作業が発生してしまうことです。 社内では、eagletmt によるDocker環境の整備が進められており、バッチ実行に関してもDockerの恩恵が受けられるようになっています。 具体的には、Dockerイメージをジョブ実行の際にpull、コンテナを立ち上げ、Dockerコンテナ内でコ…

クックパッドの広告エンジニアは何をやっているのか

…入稿されたファイルをDockerコンテナの中で専用フォーマットに変換する仕組みを作ったりもしました。 分析まわりをみるエンジニア 部署的には「トレンド調査ラボ」に所属するエンジニアです。 クックパッドには、恐らく日本で最大の日常食に関するデータがあります。 毎日600万人ほどのユーザさんがレシピを探したり、ご飯のことを考えるためにクックパッドを訪れています。 訪れてくださるユーザさんの検索キーワードに現れてくるようなユーザさんの「たべたい」という情報を日々蓄えていって、正しく…

Graylog ではじめるログ管理

…ョンのパッケージや Docker image, VM image など色々と用意されていますので、環境に合わせて選択します。 詳細はドキュメントを参照いただくとして、具体的なインストール手順についてはここでは割愛します。 Graylog へのデータ入力 Graylog へデータを入力する方法はいくつかありますが、クックパッドでは現在 Syslog 入力と GELF 入力、そして CloudTrail input plugin を利用しています。 input の設定は、図のよう…

nginx で omniauth を利用してアクセス制御を行う

… であれば、添付の Dockerfile と config.ru に環境変数を渡して簡単に利用できます。詳細は README をごらんください。 nginx 側の設定例は examples ディレクトリを参考にすると良いでしょう。 仕組み さて、上記 nginx の設定を見ると、若干トリッキーな内容になっていることが分かると思います。本節ではそれを踏まえて、nginx_omniauth_adapter がどのように ngx_http_auth_request_module と…

Docker を利用した Web アプリケーションのデプロイ

…ケーションサーバで Docker が使われており、今回はそのデプロイ方法について紹介します。 Docker で Web アプリケーションをデプロイするときには、まだまだベストプラクティスがある状況ではありません。 たとえば、どのように無停止でデプロイするか、どのようにコンテナと通信するかといった問題があります。 最初に Apache Mesos と Marathon などのツールを検証しましたが、クックパッドの環境において使いやすそうなものはなく、最終的に自前でデプロイのしく…

雑な発想を活かすチーム作り

…シ、刀削麺にします?Dockerfileにします?」とかいってた— Issei Naruta (@mirakui) 2014, 12月 5 図: マクドナルド理論の実践 zatsu リポジトリ 雑な発言は、雑すぎて記憶にとどまらず、すぐに忘れてしまいがちという問題点があります。特に、精神的に自由な状態の時(=酔っ払ってる時)に出たせっかくのアイデアが、翌日には覚えていないということがチームで問題になっていました。 そこで、私達のチームでは、GitHub Enterprise …

Dockerでffmpegもimagemagickも怖くないという話

…変換の仕組みにおけるDockerの活用について紹介します。 クックパッドは8月8日、iOS/Androidのブラウザにおいて動画クリエイティブを掲出する広告商品を公開しました。広告商品としての詳細はプレスリリースやスライドを見ていただくのがわかりやすいのですが、本稿に関係する特徴としてスマートフォンのブラウザで自動的に再生が開始されるというものがあります。 スマートフォンのブラウザにおいては、現在のところ、動画を自動再生させることは出来ません。これはAppleやGoogleと…