zakiranのブックマーク (78)

  • 社内PCでホスティングされていたRedashをFargateに移行してみた - ZOZO Technologies TECH BLOG

    こんにちは、最近気になっている哺乳類はオリンギートな、開発部の塩崎です。 私の所属しているMarketingAutomationチームではRealtimeMarketingシステムの開発運用を行っております。 このシステムはZOZOTOWNのユーザーに対してメールやLINEなどのコミュニケーションチャンネルを使い情報の配信を行うものです。 メルマガの配信数や開封数などの数値は自動的に集計され、BIツールであるRedashによってモニタリングされています。 このRedashは社内PCによってホスティングされていましたが、運用面で辛い部分が多々あったためパブリッククラウドに移行しました。 移行先のクラウドはawsを選択し、RedashをホスティングするためのサービスはECS/Fargateを選択しました。 この記事ではawsに構築した環境や、移行作業などを紹介します。 移行前のRedash

    社内PCでホスティングされていたRedashをFargateに移行してみた - ZOZO Technologies TECH BLOG
    zakiran
    zakiran 2018/10/25
  • GitHubで管理されたデータマート構築基盤の紹介 - ZOZO Technologies TECH BLOG

    こんにちは。バックエンドエンジニアの田島(@katsuyan121)です。 弊社ではデータマートをBigQuery上に構築しています。データマートはデータベース全体のデータのうち、必要なデータだけを使いやすい形にしたデータベースです。データマート作成のためのSQLクエリは日々更新や追加があり、BigQueryのコンソールから自由にデータマートを作ってしまうと管理が大変になってしまいます。 そこで、データマートをすべてGitHub上でバージョン管理し、運用の効率化をしました。また、差分更新の導入や依存関係のあるデータマートへの対応などのデータマート構築に必要な機能を作成しました。 弊社のデータ基盤をざっくり紹介します。まずデータはBigQueryへ集約し、Digdagを用いてデータ基盤を構築しています。以下がその概要図です。S3などの分散ストレージや各種DBからデータをBigQueryへ同期

    GitHubで管理されたデータマート構築基盤の紹介 - ZOZO Technologies TECH BLOG
    zakiran
    zakiran 2018/10/04
  • CodeDeployで構築するAutoScalingに追従可能なデプロイ環境 - ZOZO TECH BLOG

    こんにちは。新事業創造部インフラチームの光野(kotatsu360)です。 先日、VASILY時代1から長らく使われていたCapistranoによるデプロイを見直し、CodePipeline+CodeDeployによるデプロイフローを導入しました。 CodeDeployはEC2 AutoScalingとよく統合されており、この新しいデプロイフローによって最新のアプリケーションコードをどう反映するかという悩みから開放されました。この記事ではそのフローについて設計と運用を交えつつ紹介します。 AWS CodePipeline / AWS CodeDeploy CodePipeline AWS CodePipelineはアプリケーションのCI/CDパイプラインを作るためのサービスです。 Source、 Build、 Test、 Deployの4ステージに対して1つ以上のアクションを割り当てること

    CodeDeployで構築するAutoScalingに追従可能なデプロイ環境 - ZOZO TECH BLOG
    zakiran
    zakiran 2018/07/20
  • Lambda@EdgeでCloudFrontへのアクセスをいい感じに振り分ける - ZOZO TECH BLOG

    (Icon Credit *1) こんにちは。PB開発部インフラチームの@inductorです。最近はすっかりインフラ勉強会というオンライン勉強会の運営が趣味になっています。 今回はLambda@EdgeというAWSのサービスを使って、CloudFrontへのアクセスを「細かいルール」を設定して振り分けてみたいと思います。 Lambda@Edgeについてもう詳しく知っているよ! という方は、次のセクションはスキップしてもらって構いません。もしよく知らないという方は、一緒に勉強してみましょう! AWS Lambda@Edgeとは Lambda@Edgeは以下の2つのサービスから成り立ちます。 AWS Lambda Amazon CloudFront CloudFrontのエッジロケーションにおいて、Lambdaで定義した任意のコードを実行できるというのがLambda@Edgeで、具体的には以

    Lambda@EdgeでCloudFrontへのアクセスをいい感じに振り分ける - ZOZO TECH BLOG
    zakiran
    zakiran 2018/07/12
  • スタイルを基準としたコーディネートのクラスタリング - ZOZO TECH BLOG

    スタートトゥデイ研究所リサーチャーの中村です。 今回は、コーディネートからスタイルを自動抽出する技術に関するアイデアの紹介です。こちらは、企業研究所による研究発表カンファレンス (CCSE2018)でも同様の内容で発表させていただきました。 そのときに使用した資料はこちらです。 ファッションのスタイルについて 服は組み合わせによって見た目の印象が変化します。例えば同じスラックスを履いたとしても、トップスがYシャツのときとTシャツのときでは印象が異なるはずです。ファッションではこの現象をスタイルやテイストといった言葉で表現します。 スタイルはコーディネートを考える際の指針となります。頻出するスタイルにはエイリアスが設定されており、印象を伝える際に利用されます。例えば以下のようなものです。 ところが多くの人にとって、このスタイルという概念はとても厄介です。服の組み合わせは無限に存在し、組み合わ

    スタイルを基準としたコーディネートのクラスタリング - ZOZO TECH BLOG
    zakiran
    zakiran 2018/07/06
  • OpenAPIのschema定義からRubyのクラスを生成するgem「openapi2ruby」をつくりました - ZOZO TECH BLOG

    こんにちは。スタートトゥデイテクノロジーズ新事業創造部のid:takanamitoです。 今日はVASILY時代から活用されているOpenAPI(Swagger)の定義からRubyのクラスを自動生成するgemを作ったので、その紹介をしようと思います。 Swaggerの定義と実際のAPIが返すレスポンスの内容がズレている 弊社ではVASILY時代からSwaggerの導入が進んでいましたが、徐々に「Swaggerの定義と実際のAPIが返すレスポンスの内容がズレている」といった問題が発生しはじめていました。 その問題を解決するために今回つくったのがこのgemです。 github.com 例えばこんなOpenAPI Specification 3.0のYAMLの定義から schemas: user: type: object properties: username: type: string u

    OpenAPIのschema定義からRubyのクラスを生成するgem「openapi2ruby」をつくりました - ZOZO TECH BLOG
    zakiran
    zakiran 2018/06/28
    素敵☆
  • DigdagをHA構成にしてみた - ZOZO TECH BLOG

    こんにちは、最近のマイブームはマヌルネコ動画な新事業創造部バックエンドエンジニアの塩崎です。 今回のテックブログでは、以前にDigdagを紹介した記事の続編として、DigdagをHA構成にするためのTipsなどを紹介します。 Digdagとは Digdagはワークフローエンジンと呼ばれるソフトウェアです。 複数個のタスク間の依存関係からなるワークフローを定義し、そのワークフローの実行及び管理を行います。 この説明だけですと、何が便利なのかいまいちピンとこない方が多いかと思います。 ですが、かゆいところに手が届く便利ソフトウェアです。 具体的なかゆいところの紹介は以前にDigdagを紹介した記事の前半部分に書かれています。 Digdagを使用したことのない方はこちらを読んでから記事を読み進めると理解しやすいかと思います。 tech.starttoday-tech.com さて、前回の記事で

    DigdagをHA構成にしてみた - ZOZO TECH BLOG
    zakiran
    zakiran 2018/06/25
  • RubyKaigi2018参加レポート - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアの田島(@katsuyan121)です。 5/31〜6/2にかけて仙台で開催されたRubyKaigi2018に、スタートトゥデイテクノロジーズから5人が参加しました。 今年のRubyKaigiは3日間で50を超える講演があり、参加者も1000人を超える大変大規模なカンファレンスでした。たくさんの講演の中で、スタートトゥデイテクノロジーズのエンジニアが興味を持ったものを、この記事でいくつか紹介します。 また今回スタートトゥデイテクノロジーズはスポンサーブースを出展したので、そこで得られたことを共有します。 セッション Proverbs(Matz) Rubyのお父さんであり、弊社スタートトゥデイテクノロジーズの技術顧問でもあるMatzさんの発表です。 今回の発表では3つの諺を例にお話を展開されました。 名は体を表す 「名は体を表す」という通り、名前は重要である

    RubyKaigi2018参加レポート - ZOZO TECH BLOG
    zakiran
    zakiran 2018/06/13
  • 新卒エンジニアがカスタマーサポートを一度は経験しておくべき6つの理由 - ZOZO TECH BLOG

    (Headphones icon credit *1) こんにちは、2018新卒エンジニアの田島(@katsuyan121)です。 新卒研修の一環としてZOZOTOWNカスタマーサポートセンターにてカスタマーサポート研修に参加しました。 研修を受けるまではエンジニアがカスタマーサポート研修を受ける必要があるのだろうかと疑問に思っていましたが、実際にやってみると学びが多く会社としてもメリットがあると感じました。 そこで、記事ではカスタマーサポート研修の内容とそのメリットをご紹介します。 ZOZOTOWNカスタマーサポートセンターとは ZOZOTOWNカスタマーサポートセンターはお客様からのZOZOTOWNに関するお問い合わせを受け付けています。 「お客様と友達になる」を理念として掲げており、困っている友達を助けるように全力でお客様をサポートしお客様が笑顔になれるよう日々努めています。 また

    新卒エンジニアがカスタマーサポートを一度は経験しておくべき6つの理由 - ZOZO TECH BLOG
    zakiran
    zakiran 2018/05/30
  • トラブルシューティングから学ぶSQL Server統計情報の更新タイミング - ZOZO TECH BLOG

    こんにちは。zozoバックエンド部の廣瀬です。 弊社のサービスではDBMSとしてMicrosoft社のSQL Serverを使用している箇所があります。 記事では、過去に経験したSQL Server関連のトラブル及びその調査内容をご紹介し、最後にトラブルシューティングを通して策定した統計情報の更新に関する方針をまとめます。 トラブル発生 ある日突然、SQL Serverが稼働しているサーバーのCPU使用率が高騰し、100%に張り付く状態が一定期間続きました。 CPU使用率のグラフを見ただけでは、なぜ突然高騰したのか原因は分かりません。 そのため、原因を特定するための調査を実施しました。 トラブルシューティング 同一ホスト上で稼働している主要なプロセスはSQL Serverしか無かったため、SQL Server上でCPUリソースを多く消費するようなクエリが実行されていることを疑いました。

    トラブルシューティングから学ぶSQL Server統計情報の更新タイミング - ZOZO TECH BLOG
    zakiran
    zakiran 2018/05/25
  • iOSアプリの継続課金コンテンツに無料トライアル機能を導入する方法 - ZOZO TECH BLOG

    こんにちは! 最近暑いのでビール最高と感じている新事業創造部バックエンドエンジニアのりほやんです。 今回はAppleが提供しているお試し価格の機能のひとつである無料トライアル機能を紹介します。 お試し価格とは お試し価格とは自動更新の定期購読に対して割引価格を設定したり、定期購読の開始時に一定の無料トライアル期間を設けることができる機能です。 お試し価格には都度払い、前払い、無料トライアルの3種類があります。 お試し価格はユーザーにとって、有料会員の体験ができるとても便利な機能です。 しかし公式ドキュメント以外の資料が少なく実装に何点か困ったことがありました。 そこで今回はお試し価格の無料トライアル機能を導入する方法についてご紹介します。 この記事が無料トライアルを導入しようか悩んでいる方、実際に無料トライアルを導入する方のお役に立てば幸いです。 記事では、課金機能自体の実装の説明は行い

    iOSアプリの継続課金コンテンツに無料トライアル機能を導入する方法 - ZOZO TECH BLOG
    zakiran
    zakiran 2018/05/18
  • ConstraintLayoutのレイアウト組み方実用例 - ZOZO TECH BLOG

    こんにちは。フロントエンドエンジニアの遠藤です。 皆さん、ConstraintLayoutを使用していますか? 弊社では最近、ほとんどのレイアウトをConstraintLayoutを使用して実装しています。 今回はConstraintLayoutを使用してレイアウトを組んだ際に便利だなと思ったポイントや難しくてはまったことについて紹介したいと思います。 今回はConstraintLayoutを使用したレイアウトの組み方について注目するので、基的な使い方については説明しません。 ConstraintLayoutの基的な使い方は下記の記事が分かりやすくておすすめです。 Google Developer Yukiの枝折: ConstraintLayout 実用例 今回はConstraintLayout1.1.0-beta5を使用しています。 サンプルコードはGitHubにあげてあります。 g

    ConstraintLayoutのレイアウト組み方実用例 - ZOZO TECH BLOG
    zakiran
    zakiran 2018/03/22
  • UserData、OpsWorks、Lambdaを組み合わせ、常に新鮮なSpotFleetインスタンスでサービスを運用する - ZOZO Technologies TECH BLOG

    インフラエンジニアの光野(@kotatsu360)です。 今週のテックブログは豪華二立てでお送りいたします。 一目はバックエンドエンジニアの木曽による「福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました」でした。 二目はUserData、OpsWorks、Lambdaを組み合わせ、常に新鮮なSpotFleetインスタンスでサービスを運用するという取り組みについて紹介させていただきます。 なお、記事は先日開催されたX-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く未来~での登壇資料を補足するものです。適宜スライドを取り上げて説明をいたします。 キーワード:EC2 SpotFleet、AWS Lambda、UserData、Apache Mesos ネットワーク概要 弊社が運営するIQONは、独自のクローラーを用いて契約済みECサイ

    UserData、OpsWorks、Lambdaを組み合わせ、常に新鮮なSpotFleetインスタンスでサービスを運用する - ZOZO Technologies TECH BLOG
    zakiran
    zakiran 2018/03/03
  • 福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました - ZOZO TECH BLOG

    つい最近、中途入社しましたバックエンドチームのid:takanamitoです。 今回は入社してすぐに会社の福利厚生をつかってAWSソリューションアーキテクト アソシエイトレベルを取得した話をご紹介します。 Amazon - Badge Verification - CertMetrics きっかけ 作戦 後に引けない状況をつくる どんな試験なのか知る どう勉強するかを考える 模試を受ける 試験当日 福利厚生 まとめ きっかけ 転職に伴いまとまった時間が確保できたことや、前職の同僚が同資格のプロフェッショナルを持っていて仕事でけっこう役立ってそうな感じでうらやましかったので取ろうと思いました。 過去に何度か時間ができたタイミングで趣味webサービスを作っていたんですが、途中で飽きたり運営がうまくいかなかったりといい結果が出ていませんでした。 そこで今回は路線変更して、資格という成果がわかりや

    福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました - ZOZO TECH BLOG
    zakiran
    zakiran 2018/02/28
  • FacebookAccountKitを用いたSMS認証(サーバーサイド編) - ZOZO TECH BLOG

    こんにちは! 最近は熱燗にはまってます。 バックエンドエンジニアのりほやんです。 記事では、最近2段階認証などにもよく使われているSMS認証のサーバーサイド実装についてご紹介します。 FacebookAccountKitを用いて実装しました。 SMS認証とは SMS認証とは、SMS(ショートメッセージ)を利用した認証方法です。 ユーザーが入力した電話番号に対してショートメッセージを送り、ショートメッセージに記載された認証番号を入力することでユーザーを認証する方法です。 FacebookAccountKitとは FacebookAccountKitはFacebookがSMS認証用に提供しているサービスです。 電話番号やメールアドレスを用いて、ユーザー認証を行うことができます。 Web, iOS, Androidの3種類のSDKが提供されています。 利用価格についてですが、2018年8月まで

    FacebookAccountKitを用いたSMS認証(サーバーサイド編) - ZOZO TECH BLOG
    zakiran
    zakiran 2018/02/09
  • OpsWorksにおける複数レイヤ構成の構築Tips - ZOZO TECH BLOG

    こんにちは。インフラエンジニアの内山(@k4ri474)です。 弊社ではCloudFormationとOpsWorksを活用してインフラ構築をしています。 この両サービスではハマりどころが多く、中でもOpsWorksでインスタンスが複数のレイヤに所属する構成を構築した際にとても苦戦しました。 そこで今回は、私が上記構成でインフラ構築をした際に悩んだ点の解決法をTipsとして公開します。 目次 目次 サービスの概要 CloudFormation OpsWorks [Theme 1]インスタンス名の決定 前提条件 命名法則 順序が明確でない場合の挙動 複数レイヤを同じ変更セットで作成した場合 複数インスタンスを同じ変更セットで作成した場合 順序のコントロール [Theme 2]ダミーセキュリティグループの利用 導入ケース 実装方法 [Theme 3]レシピのマージ 注意点 問題発見のアプローチ

    OpsWorksにおける複数レイヤ構成の構築Tips - ZOZO TECH BLOG
    zakiran
    zakiran 2018/01/26
  • 検索システムだって高可用性にしたい!SolrCloudを用いた高可用性構成の紹介 - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアの塩崎です。 最近のTECH BLOGではMatzさんのインタビュー記事を書いたり、RubyKaigiの発表まとめを書いたりして、他人の褌で相撲を取っていました。 今回は心を入れ替えて(?)、自分自身が取り組んだ内容について書きます。 VASILYでは検索用のミドルウェアとしてApache Solr(以下、Solr)を使用しています。 全文検索や、ファセット機能などはMySQLだけでは不十分なために、Solrを併用しています。 Solrのサーバー構成例にはいくつかのパターンがありますが、今回はその中でも最も可用性の高いSolrCloudをサービスインしたので、それについて紹介を行います。 Solrの構成例を幾つか紹介 Solrの構成例は大きく以下の3つに分けられます。 まずは、それぞれについて詳しく説明していきます。 スタンドアローン構成 master s

    検索システムだって高可用性にしたい!SolrCloudを用いた高可用性構成の紹介 - ZOZO TECH BLOG
    zakiran
    zakiran 2018/01/23
  • 6年半のテックブログ運用を振り返って気づいたメリットと長く続けるコツ - ZOZO TECH BLOG

    あけましておめでとうございます、CTOの今村(@kyuns)です。 このテックブログを購読してくださっている読者の皆さん、いつもありがとうございます。 VASILYテックブログも記事を投稿し始めてから約6年半が経ちました。 今回はテックブログを長年続けてきた振り返りと、長く続けるコツについて紹介したいと思います。今年はテックブログを始めてみたい、という方々の参考になれば幸いです。 振り返り 初めてVASILYテックブログに記事が投稿されたのは2011年5月9日、この時から現在までに約6年半の月日が経ちました。余談ですがこの時に紹介した3種の神器は今でも現役です。(QC3はQC30になりましたが) それでは6年半の歴史を軽く振り返っていきましょう。 2011年〜2013年 とりあえず始めてみたフェーズ 2011年から2013年まではエンジニアもまだ5,6名しかおらず、気が向いたら更新する、と

    6年半のテックブログ運用を振り返って気づいたメリットと長く続けるコツ - ZOZO TECH BLOG
    zakiran
    zakiran 2018/01/09
  • コーディネートの自動生成 - Start Today Technologies TECH BLOG

    この服装に合うを選んでコーディネートを完成させたいと思います。皆さんはどのを選びますか? データサイエンティストの中村です。今回、このようなタスクを解くためのシステムを開発しました。記事ではシステムと裏側の要素技術について紹介したいと思います。 概要 ファッションにおいて、コーディネートは何より大事な要素です。安物の服でもコーディネートが整っていればおしゃれに着ることができますし、逆にハイブランドで固めたとしてもダサく見えてしまうことは充分に考えられます。 コーディネートはアイテムの組み合わせであり、コーディネートをよく見せるには一定の規則1に基づく組み合わせの選択が重要です。ところが、この規則は複雑で敷居が高いので、組み合わせに関する表現を直接データから獲得してしまおうというのが今回のトライの内容です。 記事で紹介するシステムは、コーディネートを学習することで以下のようなタスクを

    コーディネートの自動生成 - Start Today Technologies TECH BLOG
    zakiran
    zakiran 2017/12/19
  • 本番DBと開発DBが乖離した無法地帯の整備 - ZOZO TECH BLOG

    こんにちは。バックエンドエンジニアインターンの田島です。弊社ではIQONの運用を7年間続けています。長年の運用から技術的負債が溜まってきていました。その中の1つに、IQONのDBと開発DBの状態が乖離しているという問題があります。この問題をどのように解決したかについて紹介します。 IQONについて IQONはRuby on Railsで運用されており、以下のような環境で動作しています。 Ruby 2.2 Rails 4 MySQL 5.6 IQONのデータベースについて IQONではRDBとしてMySQLを利用しています。DBDB、開発DB、テストDBの3種類に分かれています。スキーマ変更の作業はRailsのマイグレーション機能を利用せず、SQLを直接利用して行っています。これは、サービスの大規模化に伴い、マイグレーション機能だけでは要件を担保できなくなったためです。手順は以下の

    本番DBと開発DBが乖離した無法地帯の整備 - ZOZO TECH BLOG
    zakiran
    zakiran 2017/12/13