タグ

batchに関するmoronbeeのブックマーク (6)

  • なぜcronからsystemd timerへ移行しているのか?歴史と設計思想から理解する

    この時代において cron は、軽量・シンプル・依存関係なしという 非常に優れた設計でした。 cron の「通知」はログではなくメール cron は「ログを溜める」より「異常を通知する」発想でした。典型的には stdout/stderr をメールで送るのが当時の設計です。 2. crontab の何が問題だったか? cron は長年使われてきましたが、現代のサーバ運用では次の問題が顕在化しました。 問題① 実行されたか分からない(状態がない) cron には「実行履歴」という概念がありません。 成功したか? 実行されたか? 何秒かかったか? これらを OS 側で追跡しません。 問題② ログが自動で残らない(可観測性が低い) cron は標準でログを「保存」しません。 そのため実務ではよく次のようになります。 出力先は人力 ローテーションも自前 失敗検知も自作 運用が属人化しやすいのが問題で

    なぜcronからsystemd timerへ移行しているのか?歴史と設計思想から理解する
  • バッチ設計ガイドラインを公開しました | フューチャー技術ブログ

    はじめにこんにちは。TIG(Technology Innovation Group)の田です。 フューチャー社内の有志メンバーでバッチ設計ガイドラインを作成し、公開しました。 記事ではガイドラインの作成の経緯や想いなどを簡単に紹介します。 ガイドラインの対象読者ガイドラインは、以下のような方を主な読者として想定しています。 バッチ開発を行う初学者 バッチ処理を含むシステム設計を行う人 自身のメイン領域はバッチ処理ではないがバッチ処理設計の勘所を知っておきたい人 特に初学者の方はジョブ設計の章だけでも読んでいただくことをオススメします。バッチ処理のプログラムを実装する上で留意するべき冪等性や性能といったポイントが紹介されています。 ガイドラインの作成経緯フューチャーでは様々な規模のシステムを構築しており、その中には多種多様なバッチ処理も含まれます。 cronのようなシンプルなスケジ

    バッチ設計ガイドラインを公開しました | フューチャー技術ブログ
  • AWSでサーバレスな定期バッチ環境を作るには結局どれ使えばいいの?(Lambda vs Fargate vs Batch) - Qiita

    それでは、一つずつ説明していきます。 環境構築の容易さ Lambdaはコードをアップロードさえすれば、実行環境が構築でき、その導入障壁の低さが魅力と言えます。 FargateとBatchはコンテナベースのコンピューティングサービスであり、事前にバッチアプリケーションを含んだDockerイメージを用意しておく必要があります。 実行環境の拡張性 Lambdaは標準で使用できるランタイム(プログラム言語とバージョン)に限りがあります。ただ主要言語はほぼサポートされており、カスタムランタイムも作成できるため、さほど不自由さを感じないのではないでしょうか。 また、そのままだと標準ライブラリしか使えないため、 Serverless Framework や AWS SAM を使用して、ローカルの実行環境をパッケージ化してデプロイする運用が一般的かと思います。ただ、OS依存のネイティブライブラリの導入には

    AWSでサーバレスな定期バッチ環境を作るには結局どれ使えばいいの?(Lambda vs Fargate vs Batch) - Qiita
  • AWS でバッチ処理・定期実行する4つの方法(EC2,EventBridge,SQS,ECS,Lambda)

    AWS上でバッチ処理を行う場合に、 どのAWSサービスが選択肢として考えられるかどのAWSサービスを選択すればいいのかについて考えていきます。 AWSでバッチ処理・定期実行する方法を4つ紹介し、それぞれ特徴やメリットとデメリットがありますので、この点について記載していきます。 バッチ処理・定期実行方式のパターンと特徴を知って適切な手段を選択しよう!という記事です。 まずはどのような構築方法があるかについて記載していきます。

    AWS でバッチ処理・定期実行する4つの方法(EC2,EventBridge,SQS,ECS,Lambda)
  • バッチで大量更新を行う際の設計パターン - 理系学生日記

    次のようなよくある前提があるとして、じゃぁどのように設計すればいいのかという話です。 +24 時間サービスであり、エンドユーザがどの時間帯でもサービスを利用している +エンドユーザ用サービスが参照するテーブルに対し大量の(例えば数十万〜数億レコード)をバッチで更新する +不整合があるデータをエンドユーザから可視状態にしてはならない 一括コミットが楽なのだけれど、大量のデータの一括コミットは禁じ手です。だいたいの場合は UNDO 領域が枯渇して、おなじみの ORA-1555 なんてのがアラートに上がって夜中に起こされる羽目になり、世の中を恨みながら暮らすようになります。 一括コミットが禁じ手であれば、分割コミットしかありません。UNDO 領域が枯渇せず、かつ、commit の負荷が大きくならない程度に、更新対象レコード数を小分けにしてコミットしていくことになります。 ここで問題となるのが、前

    バッチで大量更新を行う際の設計パターン - 理系学生日記
    moronbee
    moronbee 2018/11/02
    "カラムの 2 面持ち、あるいは、テーブルの 2 枚持ち"
  • 初心者のための本格的なrubyバッチの書き方(slackボット) - Qiita

    概要 みんなー、雑にバッチ書いて遊んでるー!? (ゝω・)v ところでそういったバッチやスクリプトはみんなの好意によって公開してもらっているけど、その大半は走り書きで実際に業務で書くような書き方ではないよね。当然だけど。 **だから今日は簡単なバッチを、少し丁寧に書いてみたい。**業務レベルではない趣味エンジニアの参考になれば嬉しい。みんなが知っているもっと良い書き方をコメントで教えてくれるともっと嬉しい! バッチの内容 今回書くのは当にとっても簡単なバッチだ。 毎朝ネコの画像を見たくない? 見たいよね! そこでの画像urlをAPIで取得してslackの特定チャンネルへ投稿する。これだけだ。 の画像をAPIで取得するとは何か。そのままの意味での画像を取得するWebAPIがあるんだ。 http://thecatapi.com/ 走り書きとの違い 真面目にバッチを書く、と言っているが複

    初心者のための本格的なrubyバッチの書き方(slackボット) - Qiita
  • 1