タグ

ブックマーク / techlife.cookpad.com (12)

  • Service Mesh and Cookpad - クックパッド開発者ブログ

    こんにちは、開発基盤の Taiki です。今回は、マイクロサービスで必須のコンポーネントとなりつつあるサービスメッシュについて、クックパッドで構築・運用して得られた知見についてご紹介できればと思います。 サービスメッシュそのものについては以下の記事や発表、チュートリアルで全体感をつかめると思います: https://speakerdeck.com/taiki45/observability-service-mesh-and-microservices https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/ https://blog.envoyproxy.io/service-mesh-data-plane-vs-control-plane-2774e720f7fc https://istio.io/

    Service Mesh and Cookpad - クックパッド開発者ブログ
    k12u
    k12u 2019/06/24
  • TLS証明書の発行・デプロイについて - クックパッド開発者ブログ

    こんにちは、インフラストラクチャー部セキュリティグループの三戸 (@mittyorz) です。 クックパッドでは全てのサービスをHTTPSにて提供しています。 今回はHTTPSの使用にあたって必要となるTLS証明書について、申請や発行、管理やサーバへのデプロイなどの運用について書きたいと思います。 TLS終端 クックパッドでは、サービスとユーザーとの通信経路は全てTLSにより暗号化されていますが、通信内容を暗号化するためのTLS終端処理はELBあるいはCloudFrontで行っています。 ELB、CloudFrontともにAWS Certificate Manager(ACM)を用いて証明書を管理*1することが出来ますが、社内向けで外部に公開していないサービスやステージング環境についてはELB背後のリバースプロキシで終端処理をしているものも多く、これらについては証明書ファイルを直接EC2イ

    TLS証明書の発行・デプロイについて - クックパッド開発者ブログ
    k12u
    k12u 2018/03/19
  • Nginxへの変更に伴うリバースプロキシのテストの改善 - クックパッド開発者ブログ

    Nginxへの変更に伴うリバースプロキシのテストの改善 SREグループの菅原です。 クックパッドではブラウザ用Webサイトのリバースプロキシ用のWebサーバとして長らくApacheを使っていたのですが、最近、Nginxへと変更しました。 Nginxへの変更に当たって、構成管理の変更やテストの改善を行ったので、それらについて書きたいと思います。 リバースプロキシのリニューアルについて まず、ブラウザ用Webサイトの基的なサーバ構成は以下のようになります。 リバースプロキシはELB経由でリクエストを受けて、静的ファイルの配信やキャッシュサーバ・Appサーバへの振り分けを行います。 リバースプロキシとして利用されているApacheは、長年の改修により設定が煩雑なものとなっており、設定の追加や変更にコストがかかる状態になっていました。 また、Apacheの設定ファイルはItamaeでは管理されて

    Nginxへの変更に伴うリバースプロキシのテストの改善 - クックパッド開発者ブログ
    k12u
    k12u 2018/03/11
  • MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ

    最近、Elastic BeanstalkやECSと戦っているSREチームの菅原です。 P5をやりたいのにPS3もPS4も持っていないので指をくわえて羨ましがっている毎日です。 この記事では、突然のアクセス増に備えるために、MySQLのスレーブを1〜2時間でスケールアウトできるようにした話を書きます。 MySQL on EC2 クックパッドは周知の通りAWSを利用していますが、主要なデーターベースについてはAmazon RDSではなくMySQL on EC2を使っています。 これは以下のような理由によるものです。 歴史的な経緯: AWS移行当時、RDSが無かった。また、移行後もしばらくはTritonnを使っていたため、RDSを使うことができなかった オンラインメンテナンスの実現: VPCルートテーブルを使った仮想IPとMHA for MySQLを使ってダウンタイムゼロのマスタDBの切り替えを

    MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ
    k12u
    k12u 2016/10/07
    長いジョブの後パイプで`curl slack api`というのはよくやってる
  • 実践 Pact:マイクロサービス時代のテストツール - クックパッド開発者ブログ

    技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運用しています。この記事では、その運用の知見を紹介できればと思います。 Pact Pact は Consumer-Driven Contract testing (CDC testing) を実現するためのツールです。"Consumer"、"Provider" という見慣れない単語が出てきますが、この記事ではだいたい「Consumer = Web API クライアント」、「Provider = Web API サーバー」と対応ができます。この記事では具体的な Pact の利用例を通じて CDC testing がどういうものなのかについても

    実践 Pact:マイクロサービス時代のテストツール - クックパッド開発者ブログ
    k12u
    k12u 2016/06/29
  • Cookpad TechConf 2016 開催報告 - クックパッド開発者ブログ

    こんにちは、Cookpad TechConf 2016 実行委員長*1の小川です。 先週の土曜日の2016/01/23、クックパッド初となる技術系カンファレンスCookpad TechConf 2016を開催しました。staffblogの方でも報告させていただきましたが、開発者ブログの方では発表内容の紹介をしたいと思います。 追記:動画を公開しましたので、それぞれリンクを追加しました。ただし申し訳ありませんが、一部の発表については撮影に失敗していて動画ありません。あしからずご了承ください。 基調講演: ユーザーのために、技術をどう活かすか by 舘野 祐一 まず最初は基調講演で、弊社CTO舘野さんによる発表です。ユーザファーストのためにクックパッドがどのように技術を活かしてきたのか。例えば仮説検証や効果測定を手軽にできるようにするためにどうしてきたのか。またエンジニア組織としてユーザファー

    Cookpad TechConf 2016 開催報告 - クックパッド開発者ブログ
    k12u
    k12u 2016/02/02
  • アラートエスカレーションシステム"Waker"の紹介 - クックパッド開発者ブログ

    インフラストラクチャー部の荒井(@ryot_a_rai)です。今回は社内で利用しているアラート通知システムであるWakerの紹介をします。 Wakerはアラートを受け付けて、指定されたユーザに電話などの手段でアラートを通知するためのアプリケーションです。 PagerDuty アラートのエスカレーション・通知といえばPagerDutyが有名ですが、弊社では主にコスト面でPagerDutyを利用していません。日国内への電話発信はGlobal Phone Alertsとしてカウントされ、通知数にもよりますが1ユーザ当たり$29〜49/月かかります。これを高いとするか、安いとするかはそれぞれかと思いますが、ユーザが増えてくると高くなるためユーザの追加がしづらく監視の委譲・分業がすすめづらいという点がありました。 また、弊社ではシンプルなエスカレーションと電話通知のみが必要されていた、という背景が

    k12u
    k12u 2015/11/19
  • Cognitoを使ったらAndroidアプリプッシュ通知実装にサーバサイドプログラミングが不要になった話 - クックパッド開発者ブログ

    こんにちは、id:hogelog(会員事業部 小室)です。 現在自分が開発しているAndroidアプリのプッシュ通知の実装に Amazon Cognito, Amazon SNS, Amazon DynamoDB を使ったらアプリコード(と、AWSの設定)だけで機能が実現できてしまい、予定していたサーバサイド実装がまったく不要となったのでその知見を共有します。 アプリプッシュ通知の要件 今回実装したプッシュ通知の要件は以下です。 プッシュ通知を許可したユーザ全員に共通した内容を一斉通知 通知はバッチプログラムから週に数回程度 年内には一万ユーザぐらいに利用されること目標 GCMトークンはデータストアに記録しておく 将来的にはA/Bテストなどをおこなうことも可能なように 当初はこれらの機能を実現するため、適当なRailsアプリでGCMトークンを受け取ってうまいことあれこれするAPIを実装しよ

    Cognitoを使ったらAndroidアプリプッシュ通知実装にサーバサイドプログラミングが不要になった話 - クックパッド開発者ブログ
    k12u
    k12u 2015/06/16
  • チーム開発の進め方 - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 今回はウチのチームの開発の進め方や見積もりの仕方を説明しようと思います。 実はコレ系の話は 5 年前にもデブサミで発表 したのですがこの時はリリースまで 1 年とかのレベルのプロジェクトの進め方の話でした。今回は 1,2 ヶ月でリリースまで持っていく開発の進め方を説明します。 動画サービス部分を microservices 化するときに実際に行った事を元に説明します。開発者は 3 人で 1.5 ヶ月位の開発です。 何故このようなことを行うのか 誰だって楽しく仕事がしたいし、なるべく不安などは無い方が良いはずです。 例えば自分がやっている作業がどうなったら終わりなのかわかっていなければ不安でしょうし、いつまでに作ればいいのかわかっていなければ不安でしょう。 そういった不安をなるべく無くすためにうちのチームでは

    チーム開発の進め方 - クックパッド開発者ブログ
    k12u
    k12u 2015/06/05
    実践寄りでよい
  • クックパッドのサーバプロビジョニング事情 - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。この記事ではクックパッドで利用しているプロビジョニングツール "Itamae" の紹介と細々した Tips を紹介します。 式年遷宮とプロビジョニングツール 現在、弊社ではインフラの式年遷宮*1を進めています。式年遷宮以前、弊社では Puppet を利用してサーバをセットアップしていましたが、式年遷宮に際して既存のプロビジョニングに関するコードは捨てることになるため、プロビジョニングツールの再検討を行うことになりました。 Puppet, Chef, Ansible, SaltStack を検討した結果、 言語特性の観点では、Ruby DSL な Chef が良い アーキテクチャ・エコシステムの観点では、シンプルな Ansible が良い といった点から、どれも決め手に欠ける状況で、Ruby DSL で記述できるシンプルなプロビジョニングツール

    k12u
    k12u 2015/05/26
  • Docker を利用した Web アプリケーションのデプロイ - クックパッド開発者ブログ

    技術部の鈴木 (id:eagletmt) です。 クックパッドでは一部の Web アプリケーションサーバで Docker が使われており、今回はそのデプロイ方法について紹介します。 Docker で Web アプリケーションをデプロイするときには、まだまだベストプラクティスがある状況ではありません。 たとえば、どのように無停止でデプロイするか、どのようにコンテナと通信するかといった問題があります。 最初に Apache Mesos と Marathon などのツールを検証しましたが、クックパッドの環境において使いやすそうなものはなく、最終的に自前でデプロイのしくみを作ることにしました。 しかし Docker 周辺のツールは様々な新しいものが出てきている最中です。 今はまだベストなものが無いけれども、近いうちによりよいものが出てくるかもしれません。 そのため、できるだけ単純なしくみにしておく

    Docker を利用した Web アプリケーションのデプロイ - クックパッド開発者ブログ
    k12u
    k12u 2015/04/20
  • クックパッドとマイクロサービス - クックパッド開発者ブログ

    技術部の高井です。 最近、日でもマイクロサービスという言葉が流行しつつあります。 今回は、なぜクックパッドがマイクロサービスを選択したのか、また実際にどのようなやり方をしているのかということを紹介します。 Conwayの法則 ここ数年の間、クックパッドレシピの投稿・検索サービスから「を中心とした生活のインフラ」として事業領域を拡大しつつあります。海外レシピサービスの買収による海外展開は、単なる金銭的な関係にとどまらず、人的・技術的な交流も含めて格化しつつあります。また、「モバイルファースト」を標語とするモバイルアプリケーションへの取り組みも加速してきました。 事業領域の拡大やグローバル展開、モバイルファーストといったビジネス要求の変化に応じて、会社の組織構造も変化しています。そして、Conwayの法則 として知られているように、組織構造とソフトウェアアーキテクチャには密接な関係があ

    クックパッドとマイクロサービス - クックパッド開発者ブログ
    k12u
    k12u 2014/10/26
  • 1