タグ

2019年6月23日のブックマーク (4件)

  • なぜMicroservicesか?

    現職においてMonolithアーキテクチャからMicroservicesアーキテクチャへの移行とその基盤の構築に関わって2年近くが経った.未だ道半ばであるがこれまでの経験や日々のインプットをもとにいろいろ書いておこうという気持ちになった.記事ではそもそもMicroservicesアーキテクチャとは何かを整理し,なぜやるべきか?・なぜ避けるべきかを整理する. Microservices? Microservicesアーキテクチャとは「Single purpose,High cohesion,そしてLoosly Couploedなサービスを組み合わせてシステムを構築する」アーキテクチャ手法である.それぞれの原則をまとめると以下のようになる. Single purpose: 一つのことに集中しておりそれをうまくやること Loose coupling: サービスは依存するサービスについて最小限の

  • digdag 拡張用 Python モジュール - Qiita

    概要 現職で digdag を集計バッチをコントロールするジョブサーバとして利用していますが、いくつか機能的に足りないところがあったので Python で機能拡張してみました。それについて簡単に紹介したいと思います。 不足してる機能 ジョブ待ち合わせ ワークフロー require オペレータが存在し、これによって複数のワークフロー間の依存関係を記述することは既存機能で可能です。しかしながら、待ち合わせができるワークフローは同一プロジェクト内のワークフローに限られています。「依存関係があるならば同一プロジェクトで管理しろ」と言われそうですが、よんどころない理由で別プロジェクト管理にしたい場合には依存関係をもたせることができません。 タスク _parallel: true を記述して並行実行しているところで一部だけタスクの待ち合わせをしたい場合、タスクの記述順序とかを駆使して書く必要があり、若

    digdag 拡張用 Python モジュール - Qiita
  • 2019年のワークフローエンジンまとめ - Qiita

    概要 データパイプラインの管理にワークフローエンジンを導入したいのですが、今の要件に対してどれが合っているのか判断しきれない部分があるので整理してみました 最近の導入事例や発表をみるかぎりAirflow, Argo, Digdagあたりが人気なのかなと思います ワークフローエンジンとは ワークフローエンジンとは定期的なバッチ処理をうまく処理できるように、バッチ実行を管理してくれるソフトウェアのことです 古典的な実現方法としては適当なlinuxサーバーの上でcron実行させることが考えられますが、以下のような問題があります ジョブごとの依存関係を表現できない。cronの時間指定で実現させようとすると、タスクAを1時に開始してそれが完了するとみなして依存するタスクBを2時に開始するというような書き方をすることになるが、実際にタスクAが2時までに終わらなかった場合に処理が上手く実行できない タス

    2019年のワークフローエンジンまとめ - Qiita
  • GitHub - microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.

    It also includes a robust way to override the default allocator in Windows. Notable aspects of the design include: small and consistent: the library is about 8k LOC using simple and consistent data structures. This makes it very suitable to integrate and adapt in other projects. For runtime systems it provides hooks for a monotonic heartbeat and deferred freeing (for bounded worst-case times with

    GitHub - microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.