タグ

batchに関するakishin999のブックマーク (14)

  • 大公開!バッチアプリケーションの品質を高めるZOZOの『バッチ開発ガイドライン』 - ZOZO TECH BLOG

    こんにちは。MA部の田島です。 弊社では開発ガイドラインというものを用いて、システムの品質を担保しています。今回私がテックリードを務めているということもあり、バッチアプリケーションを開発するためのガイドラインを作成しました。記事では「開発ガイドライン」と「バッチ開発ガイドライン」を紹介します。 バッチアプリケーション開発に限定したTipsはまとまっているものが多くないため参考にしていただければと思います。 開発ガイドラインについての紹介 冒頭でも紹介した通り弊社では、開発ガイドラインというものを用いてシステムの品質を担保しています。バッチ開発ガイドラインを紹介する前に、まず開発ガイドラインを紹介します。 開発ガイドラインの種類 開発ガイドラインは現在、以下の種類が存在します。 共通 Android iOS Frontend Backend Infra API Batch DB(Datab

    大公開!バッチアプリケーションの品質を高めるZOZOの『バッチ開発ガイドライン』 - ZOZO TECH BLOG
  • EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers

    概要 ソーシャル経済メディア「NewsPicks」SREチームの中川です。 皆さんはバッチ処理基盤はどうされていますでしょうか。 NewsPicks では少し前まではそれらをEC2、cronの組み合わせで動作させていました。 何年も前からこの仕組みだったのですがSREとしてはEC2の面倒見るのも手間ですし、それ以上にcronを変更する際のオペレーションミスが目立ったのが懸念点でした。 その為、まずはAWSマネージド化するための基盤を整備し、その後バッチアプリを載せ替えていくようにしました。 対応前の基盤構成 同じSREチームの安藤さんが CloudNative Days Tokyo 2023 で登壇されたときの資料をお借りします。 ご覧の通り、大体のサービスはマネージド化していましたがバッチ基盤だけは旧来のままEC2インスタンスを利用していました。 10年モノのサービスのインフラを漸進的

    EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers
    akishin999
    akishin999 2023/12/24
    “Fargate”
  • 【AWS】大規模なバッチ処理を支える技術選定

    ここから、表で挙げた内容をそれぞれ解説していきます。 構築難度に関しては、関数を実装するだけで済むLambdaが最も簡単で、バッチ専用に特化されたサービスであるBatchに関しては比較的バッチ構築はしやすい印象ですが、ECSに関してはバッチに特化していないため、バッチ処理を行うようにカスタマイズする必要があります。 タイムアウト制約に関して留意すべきは、Lambdaの実行時間は15分までなので、それ以上を超える処理時間のバッチは実装できないことです。 起動•実行上のオーバーヘッドに関しては、Lambdaにはコールドスタートがあるため起動時にオーバーヘッドを考える必要があり、Batchではジョブをキューに送信して、最適化のために、ある程度のジョブがキューイングしてから実行しようするので、即時性を求める処理には不向きです。 既存バッチを移行したいケースがあると思いますが、Lambdaで動かせる

    【AWS】大規模なバッチ処理を支える技術選定
  • Google Cloud Batchを使ってバッチの処理待ち時間を1/30以下にしたので紹介させて欲しい - DeLMO(identify)エンジニアブログ

    この記事について 今回、Google CloudのBatchを利用した動画変換処理を実装したので、どのようにしたのか、どこにハマったのか(ハマっているのか)、その効果についてまとめました。端的に現状を3行でまとめると、以下のようになります。 動画変換処理にGoogle CloudのBatchを使いました GPUを利用することで処理時間を短くできました コンテナでGPUをうまく使えずシェルスクリプトとGoで作ったバイナリを活用しています(コンテナ化の知見募集中です) はじめに はじめまして。identify株式会社 CTOの@suthioです。 弊社、identify株式会社では動画素材サービスDeLMOの運営を行っています。 service.delm0.jp 簡単に言うと、動画素材を提供するサービスとなります。 課題 弊社ではGoogle Cloud Platformをインフラとして利用し

    Google Cloud Batchを使ってバッチの処理待ち時間を1/30以下にしたので紹介させて欲しい - DeLMO(identify)エンジニアブログ
  • バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング

    こんにちは。メルペイで、決済・振込申請のバックエンドソフトウェアエンジニアをしている id:koemu です。 今日は、バッチ処理を行う理由について、考察を深めて設計に活かしていく話をしたいと思います。 はじめに バッチ処理とは、ある決まったタイミングで1つのプログラムが複数のデータを 一括処理 することを指します。この反対の言葉として、オンライン処理があります。オンライン処理とは、お客様の操作を初めとしたイベントをもとに 逐次処理 されるものです。OLTP(Online Transaction Processing)とも言います。 エントリでは、バッチ処理を採用するにあたり、どういったユースケースが適切なのかを整理して、今後のソフトウェアの設計の指針にできることを目指しています。今回は、「バッチ処理を採用するとき」と「バッチ処理の設計」の2つについて取り上げます。 バッチ処理を採用する

    バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング
  • Rails/ActiveRecord バッチ処理の最適化 - Hack Your Design!

    検証環境 前提条件 オリジナルコード ベンチマーク 最適化1: 簡単な最適化 ベンチマーク 最適化2: where & each を使う ベンチマーク 最適化3: find_each を使う ベンチマーク 最適化4: in_batches & update_all を使う ベンチマーク 最適化5: where & update_all ベンチマーク 最終結果 「ActiveRecordデータ処理アンチパターン」で発表します 参考リンク Railsのバッチ処理最適化の記事書いたら需要あるかな — toshimaru (@toshimaru_e) December 2, 2017 ということで今日はRailsバッチ処理の最適化について書いてみたいと思います。 検証環境 コードの検証に使った環境は下記の通りです。 macOS High Sierra (2.3 GHz Intel Core i5

    Rails/ActiveRecord バッチ処理の最適化 - Hack Your Design!
  • バッチ処理の通知・アラート管理 - CARTA TECH BLOG

    こんにちは、nekoyaです。 システムを日々運用していく中で、その処理結果の記録や異常検知の仕組みは地味ながらも大切な存在です。 各種監視ツールからの通知や、ブラウザから利用可能なWebインタフェースなど、その形態も様々です。 今回はその中から、バッチ処理の結果通知について、我々のチームが実践している方式をご紹介します。 loggerを通して記録する まず前提として、通知する内容はプログラマ自身が出力することが基になります。 自分はここ数年はPythonをメインに使っていて、標準のloggingモジュールを通して import logging logger = logging.getLogger(__name__) logger.info('hello!') のようにログを吐いておくと、スクリプトの終了時にそれまで出力したログがいい感じに集約されて通知されるようにしています。 ログレベ

    バッチ処理の通知・アラート管理 - CARTA TECH BLOG
  • Shoryukenでつくるバッチ処理基盤 - トレタ開発者ブログ

    トレタのAPI開発を担当している芹沢です。 トレタでは、長時間かかるバッチ処理を複数台のサーバ上で処理させて短時間で処理できるバッチ処理基盤をAWS上で構築しました。この仕組みについて説明します。 目的 短期的には以下の課題を解決するため、長期的には似たような要件が再度発生した時に、同じ手法で解決できることを目的に作りました。 非同期でDBをデータソースとしたデータを加工してCSVファイルとして出力してS3にputしたい データソースはDBに入っているリアルタイムのデータであることが求められる CSVファイルの作成は決められた時間内に完了する必要がある 対象となるデータソースの量は日々増加し続けるが、常に決められた時間内にCSV作成が完了している必要がある 難点 今回の要件で技術的に難しい点は以下の2点です。 DBを直接参照しながら大量のデータを処理する 例えば、データソースとしてDBから

    Shoryukenでつくるバッチ処理基盤 - トレタ開発者ブログ
  • 続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのがそれ単体で勉強するのが難しく勉強しようとすると何に手を付けるべきかさっぱりわからないということは、先日のブログで述べたとおり。 自分が経験の中で得てきた知見は正しいのかどうか、世間の人に見てもらいたかったというのが書いた動機。 そして、新たな視点や指摘をゲットしてより不測の事態を考慮できている最高なバッチを作りたいという目的があったわけだ。 で、いろいろな意見をもらったのだけどその中で特に辛いと感じたのはこれ。 基幹システムにおけるバッチ処理みたいなものに関する知見については、カジュアルに学ぶ方法はありません。それを体系化した知識として整理した上で、実装できる組織があるんなら、それでメシがえるんじゃないですかね。— 太一 (@ryushi) 2016, 2月 18 読んでいると 「俺達は障害でつらい思いをしてるし当然先人達も障害でつらい思いをしているはずだ。 なのに、

    続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
  • Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのはそれ単体で勉強しようとするとなかなか何を勉強したらいいのかわからないことが多い。 特に経験がWeb系ばっかりだと、いざバッチ処理を実装しようとした時に基的なノウハウを知らないままに書いてしまうことが多い。 バッチ処理というのは実態を整理すると「何らかのトリガーを期に起動し、データをロード・加工・変換・集計してから、出力する」という事になる。 まぁ、INがあって処理してOUTがあるという点では関数だと考えてもいいだろう。 システムの利用者(人に限らない)のアクションとは直接関係ない処理であったり、利用者のアクションをトリガーとしていても、即時にレスポンスがいらないor返せない場合に バッチ処理を選択する事が多い。 実現方式はシェルスクリプト、LL言語、実行可能バイナリだったりするし、デーモンとして立ち上げる場合もある。 利用者の操作に対して対話的・同期的な処理はオンライ

    Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
  • 多い日も安心設計 - Qiita

    アプリケーションエンジニアの多くは、眠れない夜を過ごしたことがあるでしょう。特に月に一度の…「月末締めバッチ」の日は。 そんなデータ量の多い日や、初モノのバッチが動く日でも安心して眠れるためのバッチ設計を考えてみます。 ログの設計 まず何はなくともログです。きちんとしたメッセージを出せていれば、専任の人がリカバリ可能にもなるってものです。 Audit用のログなど業務要件の強いものを除いては、だいたい3種類に分けるようにしています。 プログレスログ リカバリログ 例外ログ(調査のため) この分類でファイル単位も分けます。ログを必要とする人が、それぞれ異なるからです。 プログレスログ プログレスログは、特に長時間かかるバッチに対して、現在どのくらいまで処理が出来ているのかを目的として出力します。 トラブル発生時や、大規模移行作業時には、バッチの定期的なモニタリングと報告の必要が出てきます。「あ

    多い日も安心設計 - Qiita
  • バッチ処理、ジョブ管理について書いてみる - wyukawa's diary

    僕はHive, Pythonでバッチ処理を書いてAzkabanでジョブ管理するシステムを構築、運用した経験が2年ほどあるので今日はバッチ処理、ジョブ管理について書いてみようと思います。 僕の経験上Hadoop特有の部分、例えばテスト環境が作りづらいとかバッチサーバーはジョブをsubmitするだけなので負荷はそんなにかからないとか、はあるけれど割と汎用的なのではないかと思います。そもそもバッチ処理、ジョブ管理について書かれたものはほとんど見た事がないので参考になれば嬉しいし、こういう良い方法もあるよ!とかあれば是非ブログ等に書いてほしいと思っております。 最初に言っておくとバッチ処理、ジョブ管理において重要なのは障害時のリカバリのしやすさです。正常時はまあいいでしょ。 なので例えば引数に日付を持てないようなバッチ書いたら辛いですし、LL言語で書く方がコンパイル、パッケージングとか楽です。CP

    バッチ処理、ジョブ管理について書いてみる - wyukawa's diary
  • はじめてのjBatch - CLOVER🍀

    このあたりのエントリを見て、ちょっとやってみようかなぁと思いまして。 JSR352-Batch Applicationを試してみた(Batchlet編) http://siosio.hatenablog.com/entry/2015/06/06/011830 JSR352-Batch Applicationを試してみた(BatchletでDBアクセス-JPA編) http://siosio.hatenablog.com/entry/2015/06/07/151425 その他、ちょっと目を通したのはこのあたり。 Jbatch実践入門 #jdt2015 http://www.slideshare.net/agetsuma/jbatch-jdt2015 The Java EE 7 TutorialのjBatchの章をテキトーに訳した http://kagamihoge.hatenablog.co

    はじめてのjBatch - CLOVER🍀
  • Jbatch実践入門 #jdt2015

    Java Day Tokyo 2015 jBatch実践入門セッションのスライドです。Read less

    Jbatch実践入門 #jdt2015
  • 1