Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Modernize Legacy Batch System for Business Inov...

Avatar for Chihiro Ito Chihiro Ito
November 24, 2020

Modernize Legacy Batch System for Business Inovation

Avatar for Chihiro Ito

Chihiro Ito

November 24, 2020
Tweet

More Decks by Chihiro Ito

Other Decks in Technology

Transcript

  1. V0000000 良くある課題 ビゞネス課題 IT課題 ビゞネスから‚ 芋たIT課題 すぐ開始できない ビゞネスが止たるリスク コストが増加 開発期間が長い‚

    リリヌス時期が限定 ‹ 修正範囲の芋積りが困難 ‹ 想定より䌞びる開発期間 ‹ 他システムずの調敎 ‹ リリヌス䜓制構築が困難 䞀郚の障害でも党䜓が停止 ‹ 結果埅ち時間の長時間化 ‹ 単䞀障害点‚ HA構成のスキルが䞍足 ‹ バッチ凊理時間の長時間化 ‹ 凊理フロヌの再怜蚎 ‹ 構築・維持コスト増‚ 工数が予想より高い スケヌルアップのコスト ‹ 芏暡拡倧で運甚䜜業の増加 ‹ 開発期間延長で工数が増加 ‹ 環境䟝存の調査コスト 3
  2. V0000000 モノリスなアプリずDBのよくある構成 DB AP バッチ システムA システムB システムC システムD W

    R バッチ W R W R API GW R/W バッチ R/W R/W R/W デヌタ分析 デヌタ収集 デヌタ掻甚
  3. V0000000 あるべき姿 ビゞネスの‚ あるべき姿 解決策 ビゞネスをすぐ開始できる 安定しおビゞネスを皌働 ビゞネスに比䟋のコスト 新機胜をすぐリリヌス ‹

    ビゞネスロゞックに集䞭 ‹ 環境を自動で構築 圱響範囲を最小化‚ 可胜な限りビゞネスを継続 ‹ デヌタ量増加に非䟝存 ‹ デヌタ増でスケヌルアップ ‹ デヌタ枛でスケヌルむン ‹ 適材適所のデヌタストア ‹ サヌビスを疎結合化 ‹ リリヌスプロセスを改善 ‹ 最適なフレヌムワヌク ‹ システムの自動構築化 障害の局所化‚ クラスタ化‚ システムの自動運甚化 ‹ 小芏暡からスケヌルアりト ‹ 動的にリ゜ヌスを増枛 ‹ RDBMSだけに頌らない ‹ ‹ ‹ ITの‚ あるべき姿 5
  4. V0000000 モダナむズしおビゞネスアゞリティを向䞊 DB/KVS コンシュヌマ システムA システムB システムC システムD W R

    コンシュヌマ W R W R API GW R/W コンシュヌマ R/W R/W AP DB/KVS R/W AP  R R/W R/W DB コンシュヌマ W W R/W  コンシュヌマ コンシュヌマ デヌタ収集 デヌタ分析 デヌタ掻甚
  5. V0000000 密で巚倧なバッチを疎結合で小さな凊理ぞ バッチ 凊理 凊理 凊理 これたでの方匏 これからの方匏 これたでの方法 •

    バッチの䞭に䞀連の耇数の凊理を含む。 • 䞀日分や䞀月分など䞀定期間分のデヌタをたずめお凊理 • 1぀のプロセスで凊理する 課題 • デヌタが貯たっお凊理されるたでビゞネスは停止 • 凊理したいデヌタを問い合せるため、 DBに高負荷 これからの方法 • バッチの䞭で行う凊理を分割しおコンシュヌマずしお凊理 ◩ バッチで䞭間デヌタを生成する単䜍で分割するず良い • デヌタは各凊理で䞊行凊理される メリット • 凊理するデヌタは取り出すだけなので、キュヌは䜎負荷 • 分割により凊理ずデヌタの流れが明確化しテストも容易 • ビゞネス芁望を盎ぐ実珟できるようになる   コンシュヌマ 凊理1 コンシュヌマ 凊理2 コンシュヌマ凊 理3 利益 リスク コスト
  6. V0000000 ビゞネスの速床を高めたい -時間を指定するのではなくニアリアルタむムぞ-   これたでの方法 • バッチの結果をファむルや DB経由で次のバッチぞ連携 •

    スケゞュヌラがバッチの順序を管理 • ある凊理量が䞀定時間で終わるように最倧性胜で環境を構築 課題 • 凊理されお次のバッチに凊理されるたでビゞネスは停止 • 凊理完了するたで次の凊理は進たず、倱敗するず停止 • バッチ間の開始時間ず終了時間の調敎が必芁  バッチの範囲 これたでの方匏 これからの方匏 ファむル・DB 連係 バッチ バッチ これからの方法 • 前の凊理からデヌタが来たら盎ぐに凊理される メリット • リアルタむムにビゞネスが進む • デヌタは流れるので開始時間の調敎は䞍芁 • 障害時は他の支流は凊理が行われる • 凊理が間に合う分の性胜で環境を構築 バッチの範囲 リアルタむム 連携 コンシュヌマ コンシュヌマ コンシュヌマ コンシュヌマ 利益 リスク コスト
  7. V0000000 新しい機胜をすぐにリリヌス 凊 理 これたでの方匏 これからの方匏 これたでの方法 • 既存の実装を考慮しお開発 •

    曎新したい凊理だけではなく党䜓の凊理を考慮しお開発 • 1぀のプロセスで凊理する 課題 • 業務倉曎の圱響範囲が広く芋積り・開発が困難 • アプリ停止時にシステム党䜓が止たる これからの方法 • キュヌから読み蟌む新たな凊理を远加する • 入力のデヌタ構造だけを考慮しお開発 メリット • 必芁なデヌタを持぀キュヌから読むだけなので他に無圱響 • 業務倉曎の圱響範囲を限定でき芋積もりやすく開発し易い • ある凊理の障害時に他の凊理は皌働できる • 凊理ごずにスケヌルできるためリ゜ヌスの䜿甚効率が高い バッチ 凊理 凊理 凊理   コンシュヌマ 凊理1 コンシュヌマ 凊理2 コンシュヌマ凊 理3 コンシュヌマ 凊理4 利益 リスク コスト
  8. V0000000 デヌタストアを分割 DB AP R/W 賌買情報 圚庫情報 圚庫DB AP R/W

    賌買情報 賌買DB  コンシュヌマ コンシュヌマ R/W 圚庫情報 これたでの方匏 これからの方匏 これたでの方法 • 党おのデヌタを1぀のDBぞ栌玍 課題 • DBが集䞭的に負荷䞊昇 これからの方法 • サヌビス毎に栌玍先を分けるマむクロサヌビス化 メリット • 負荷を分散 • 他のサヌビスの圱響を受けない • ビゞネス芁望を盎ぐ実珟できるようになる • 小さな範囲でスケヌルアップができる 利益 リスク コスト
  9. V0000000 リレヌショナルが䞍芁なデヌタは別の圢匏で栌玍 R/W リレヌショナルな情報 非リレヌショナルな情報 KVS AP R/W 非リレヌショナルな情報 DB

    SDS R/W リレヌショナルな情報 これたでの方匏 これからの方匏 これたでの方法 • デヌタ圢匏問わず党おを DBぞ栌玍 課題 • 無駄なデヌタ倉換凊理が発生 • デヌタベヌスに負荷が偏る • デヌタベヌスのスケヌルアップには限界がある これからの方法 • デヌタ圢匏に合わせおデヌタストアを遞択 ◩ Key-ValueはKVSぞ ◩ JSONなどドキュメントはSDSやドキュメントDBぞ メリット • 適切なデヌタストアで無駄な凊理を削枛 • デヌタベヌスの負荷をオフロヌドできる DB AP リスク コスト
  10. V0000000 システムの郜合䞊必芁なデヌタは保存しない R/W 凊理に必芁な情報 Write 凊理を匕き継ぐ情報 R/W 凊理に必芁な情報 Read 凊理を匕き継ぐ情報

    凊理を匕き継ぐ情報 凊理に必芁な情報 凊理に必芁な情報 これたでの方匏 これからの方匏 これたでの方法 • 党おのデヌタを1぀のDBぞ栌玍する • 凊理に必芁な情報の受け枡しも DB 経由 課題 • 負荷が䞊昇 これからの方法 • 凊理の匕き継ぎはキュヌで行う • マスタデヌタや最終凊理の結果は DBぞ読み曞きする • 途䞭結果や他の凊理ぞ匕き継ぐ情報はキュヌぞ読み曞きする メリット • DBの負荷が䜎枛 • 無駄なデヌタの流れが枛る • デヌタの生成に察しお盎ぐに次の凊理が行え機敏性が増す AP AP  コンシュヌマ DB バッチ DB リスク コスト 利益
  11. V0000000 トランザクションではなく取り消し凊理 トランザクション開始 曎新凊理 ロヌルバック 曎新凊理 取り消し凊理 これたでの方匏 これからの方匏 これたでの方法

    • 倱敗時は党おをロヌルバックしお元ぞ戻す • 正垞に終わった凊理も戻される 課題 • 䞀郚凊理の問題が凊理党䜓に圱響を及がす これからの方法 • 倱敗した凊理は取り消し凊理を実行 メリット • 正垞終了した凊理はそのたた凊理を継続 • トランザクションに必芁なリ゜ヌスが枛る • デヌタが盎ぐに反映されるようになる DB AP AP  コンシュヌマ 利益 リスク コスト
  12. V0000000 リ゜ヌス䞍足時に動的にリ゜ヌスを远加 バッチ バッチ これたでの方匏 これからの方匏 これたでの方法 • むンスタンスサむズを倧きくする •

    スケヌルアップのアプロヌチ • オンプレでは別のHWを甚意 課題 • クラりドでは2倍・4倍・8倍ずなる • コストが非垞に高い これからの方法 • 䞍足分だけむンスタンス数を远加 • スケヌルアりトのアプロヌチ • 小さいむンスタンスを䞊べる メリット • コストの増加は埮増   コンシュヌマ 凊理1 コンシュヌマ 凊理2 コンシュヌマ凊 理3 コスト
  13. V0000000 リ゜ヌスの有効掻甚 これたでの方匏 これからの方匏 これたでの方法 • 必芁な最倧凊理量に合わせおサヌバを構成 課題 • 1぀だけサヌバが皌働し遊䌑リ゜ヌスが倚い

    ◩ バッチが凊理䞭はDBは負荷がない ◩ DBが凊理䞭はバッチが負荷がない これからの方法 • 1日に行う凊理量に合わせおサヌバを構成 メリット • 小さい凊理が䞊列に実行されるため遊䌑リ゜ヌスは僅か ◩ バッチA1がSQL埅ちの時にバッチA2はCPUを䜿える • 時間に間に合わなくなったらコンシュヌマを远加 DB バッチ DB AP AP コンシュヌマ リスク コスト
  14. V0000000 手動による構築から自動による構築ぞ これたでの方法 • H/W(or VM)䞊にアプリやミドルりェアを構築 • ツヌルを駆䜿し手動で環境を構築 課題 •

    可甚性や拡匵は事前に怜蚎が必芁で、埌からの倉曎は困難 • 完党に同䞀な環境䜜成は困難 • 正しい構築には十分に高いスキルが必芁 これたでの方匏 これからの方匏 これからの方法 • コンテナ䞊にアプリやデヌタストアを構築 • Operatorにより構築ず運甚を自動化 メリット • 可甚性や拡匵の仕組みを含んだ構成が導入される • 完党に同䞀な環境を容易に構築可胜 • 正しい構築には十分に高いスキルは䞍芁 コンテナ・オヌケストレヌション オペレヌタ コンテナ コンテナ 導入・管理 アプリ DB キュヌ リスク コスト
  15. V0000000 障害時には圱響範囲を狭く、期間を短くする これたでの方匏 これからの方匏 これたでの方法 • 䞀郚の凊理による障害でもアプリ党䜓に及ぶ • バッチを手やスケゞュヌラで再起動 •

    怜知する仕組みを䜜り蟌む 課題 • なかなか怜知ができない • 仕組みの構築に工数が掛かる • 正しい運甚の方法を構築できない これからの方法 • オペレヌタずオヌケストレヌションによる構築・運甚 メリット • いく぀かのコマンドだけで構築・運甚できる • ゚キスパヌトによる導入・運甚知識が適甚される • 怜知ず再起動は自動で行われる コンテナ・オヌケストレヌション オペレヌタ 怜知 起動し盎し リスク
  16. PROCESS AUTOMATION RUNTIMES INTEGRATION 最高クラスのランタむム、フレヌム ワヌク、蚀語; EAPずQuarkusを含 む 近代化・最適化ぞの取り組み むンメモリデヌタグリッドず

    暙準ベヌスの゚ンタヌプラむズメッ セヌゞング SSO認蚌 パタヌンベヌスの統合゚ンゞン コネクタずデヌタ圢匏の包括的な セット 倖郚および内郚に分散されたAPI ぞのアクセスを管理および保護 ストリヌミングおよび盞互接続メッ セヌゞング ビゞネスアプリケヌションを 䜜成および倉曎するための 䞀貫した開発モデル マむクロサヌビス・レベルでのプロ セスの自動化ず意思決定 ビゞネス・ナヌザヌおよび 開発者が自動化を実珟するための 独自のプラットフォヌム ルヌルおよびプロセス䞭心の アプリケヌションの管理 Runtimes, Integration and Process Automation 25
  17. マむクロサヌビスやサヌバレスのような高床に分散したクラりドネむティブなアヌキテクチャのための軜量な ランタむムずフレヌムワヌクを提䟛し、高速なデヌタアクセスのための分散むンメモリキャッシュ、認蚌ず承認のためのシング ルサむンオン、既存ず新芏アプリケヌション間の信頌性の高いデヌタ転送のための氞続的な メッセヌゞングを提䟛する。 • 最高の組み合わせのランタむム、フレヌムワヌク、蚀語 • OpenShiftずKubernetesサヌビスのネむティブ統合 • 近代化・最適化ぞの取り組み

    • ミドルりェア技術の確立(EAP) • むンメモリデヌタグリッド • 暙準ベヌスの゚ンタヌプラむズ・メッセヌゞング • SSO認蚌 30 サヌビスを起動 SSO CLOUD-NATIVE RUNTIMES
  18. OpenJDKを䜿甚しおデスクトップ、 サヌバ、およびクラりドでJavaを暙準化 • 開発者のデスクトップ、デヌタセン タヌ、およびクラりドで䜿甚される Javaプラットフォヌムの違いを排陀 • RHELおよびWindowsの本番 • ワヌクロヌドを完党にサポヌト

    • 革新のスピヌドに合わせた長いラ むフサむクル • Red HatはOpenJDKの䞻芁な開 発者で貢献者 ゚ンタヌプラむズ党䜓で䜿甚できるRed Hat Enterprise LinuxおよびWindows向 けJavaプラットフォヌムの無償か぀オヌ プン・゜ヌスの実装 32
  19. メモリ内に分散されたデヌタで アプリケヌションのパフォヌマンスを向䞊 • コンテナ最適化、クラスタ察応、 • クロスデヌタセンタヌ • オンプレミス、Web、クラりド、ビッグ デヌタ、IoTアプリに理想的 •

    ほずんど手間をかけずにデヌタ駆動 型アプリのパフォヌマンスを向䞊 • Java開発者向けの䜿い慣れたAPI • レガシヌアプリの拡匵が可胜 アプリケヌションデヌタ甚の分散型 むンメモリデヌタ管理システム。 耇数のシステム間でデヌタを同期し、 デヌタぞの高速アクセスを実珟。 33
  20. Red Hat AMQでアプリケヌションを疎結合 • 最新のアプリケヌションに察応する、信 頌性ず耐久性に優れたメッセヌゞング バックボヌン。 • 非同期メッセヌゞングは分散マむクロ サヌビスにずっお玠晎らしい゜リュヌショ

    ンです。 • 耇数の暙準プロトコルのサポヌト。 • Spring Apps甚のRabbitMQの代替ずし お完党にサポヌトされる。 • IoTアプリケヌションで特に有甚(Red Hat IoTアヌキテクチャずの互換性) ゚ンタヌプラむズ、クラりド、 IoT向けの柔軟な暙準ベヌスの メッセヌゞング。 34
  21. Enhance Security By Leaving Credential Management To The Experts •

    認蚌ず承認に関する最新のセキュリ ティ暙準をサポヌト • Red Hat ランタむム甚アダプタ • OpenShift甚に最適化 • 既存の蚘録のシステム(SoR)ずの • 統合(LDAP、ADなど) • デヌタ・グリッドずの統合により、デヌ タ・センタヌ間のセキュリティを確保 • 統合およびプロセス自動化プロゞェ クトを確実にするための基盀 安党なWebアプリケヌションず、SAML 2.0、OpenID Connect、OAuth 2.0など の䞀般的な暙準に基づく シングル・サむンオン機胜を提䟛。 SSO 35
  22. RED HATず共に既存のアプリケヌションをクラ りドぞ移行する • レガシヌアプリケヌションを珟代の 䞖界に移行するための制埡された 方法 • 移行プロゞェクト開始前のROI予枬 •

    アプリケヌションサヌバ、統合プラッ トフォヌム、クラりド察応など、様々 な゜ヌスおよびタヌゲットプラット フォヌムをサポヌト • 広範なアプリケヌション状況の芖芚 化ず移行の芋積り 独自仕様たたは旧匏のミドルりェア プラットフォヌムから、最先端の軜量、モ ゞュヌル匏、クラりド察応 ミドルりェアアプリケヌション むンフラストラクチャぞの移行。 36
  23. ステヌトフルなアプリケヌション運甚 ステヌトフルな運甚には、管理者によっお手動オペレヌションが必芁だった Container Operations on Multi Cloud 正垞皌働 障害怜知 状態確認

    埩旧䜜業 正垞確認 正垞皌働 障害怜知 動的埩旧 Container Orchestration 䞍具合修正 or 再構築 正垞確認 自己修埩 (Self-Healing) 個別察応 (Customize) ステヌトフル‚ Stateful Application ステヌトレス‚ Stateless Application これたでステヌトフルなアプリケヌションのコンテナ化は避けられおいた‚
  24. What’s Operator An Operator is a method of packaging, deploying

    and managing a Kubernetes application Container Operations on Multi Cloud Kubernetes Applications 運甚の知芋をコヌド化し、アプリケヌションの運甚を自動化する アプリ運甚における運甚の知芋をコヌド化し、パッ ケヌゞ化したもの。 アプリケヌション運甚に必芁な以䞋のような 䜜業を自動的に行う。 ・むンストヌル ・リ゜ヌススケヌリング ・バックアップ ・アップデヌト 運甚の知芋をコヌド化
  25. Operatorの仕組み Observation, Analysis, Actionの圹割をコヌド化する What’s Operator Observation プロセスの芳察 Analysis プロセス状態の刀断

    Action プロセス埩旧䜜業 Observation アプリケヌションの珟圚の状態を刀断する。 (䟋) Application Cluster is running 2 Processes - application-0001 - application-0002 Analysis アプリケヌションの珟圚の状態ずアプリケヌションの予想される状態を比 范する。 (䟋) Differences from desired config - 3Processes should be running instead of 2 Action アプリケヌションの実行状態を期埅状態に䞀臎させるための凊理を実行 したす。 (䟋) How to get desired config - Start new Process - Add new node to the existing cluster - Trigger data rebalancing etc
  26. OpenShift察応Operatorの提䟛(予定) Upstream Project (operatorhub.io) Product (OperatorHub on OpenShift) runtimes integration

    other Q4 Q1 CY2019 DELIVERED CY2020 BROKER (phase II) 8 Halkyon BROKER runtimes integration automation other 7 Interconnect Streams https://www.openshift.com/learn/topics/operators
  27. RED HAT MIDDLEWARE の付加䟡倀 42 独自のペヌスでの 革新、最適化、およ び近代化 柔軟性 より迅速な開発を

    促進する共同䜜業 のためのツヌルず 手法 協調 より迅速な開発を促進 する共同䜜業のため のツヌルず手法 最適された統合 ポヌトフォリオ党䜓の機 胜ず再利甚機胜を掻甚し おスピヌドアップ 垂堎ぞの投入時間 革新ず競争力の維 持により倚くの時間 を費やす 生産性
  28. RED HAT MIDDLEWARE の付加䟡倀 43 数字による Source: (1) https://www.redhat.com/en/resources/business-value-jboss-eap-idc-whitepaper (2)

    https://www.redhat.com/en/resources/value-red-hat-integration-products (3) https://www.redhat.com/cms/managed-files/mi-business-value-process-automation-idc-analyst-paper-f14406bf-201810-en.pdf 481% 520% 556% Red Hat Integration2の 3幎間の ROI JBoss EAP1の 3幎間の ROI Red Hat Process Automation3の 3幎間の ROI
  29. 44 Source: 1 https://www.developerweek.com/awards/ 2 https://quarkus.io/blog/quarkus-wins-devies-award/ 3 https://stevieawards.com/aba/product-management-new-product-awards#BusinessTechnology 2020 Stevie

    Bronze award for Best Software Development Solution for Quarkus3 202 Best Innovation In Code Frameworks/Libraries for Quarkus2 2019 Best Innovation for Node.js1 RED HAT MIDDLEWARE の付加䟡倀 衚地
  30. V0000000 技術を駆䜿するこずでビゞネス課題を解決 ビゞネス課題 • 新しいビゞネスをなかなか始められず利益が埗られない • ビゞネスが止たっおしたうリスク • ビゞネスに必芁なITコストの増加 IT課題

    • 新しい機胜の実装箇所が䞍明瞭で開発に長い期間がかかる。 • 新機胜をリリヌスできるタむミングが限られおいる。 • 䞀郚分の障害時にその圱響がシステム党䜓に及ぶこずがある。 • バッチの実行時間が延び、実行順序の敎合性が保おないこずがある。 • システムの初期構築や維持管理に倚倧なコストがかかる。 • システムの開発に必芁な工数が予枬より高くなっおいく。 ITのあるべき姿 • 新しいビゞネスをすぐに始められる • システムの停止時間を限りなく短くし、安定しおビゞネスを皌働 • ビゞネス芏暡に比䟋し、なだらかなコスト増加 解決策 • 圹割ごずにマむクロサヌビス化ず開発プロセスを芋盎す • デヌタストアを䜿い分けオフロヌドずスケヌルアりトを実珟する • オヌケストレヌションの導入する 解決技術 • マむクロサヌビス • DevOps • オヌケストレヌション • ミドルりェア • クラスタ • クラりド • オペレヌタ
  31. V0000000 Red Hatずビゞネスのアゞリティを高めたしょう DB/KVS コンシュヌマ システムA システムB システムC システムD W

    R コンシュヌマ W R W R API GW R/W コンシュヌマ R/W R/W AP DB/KVS R/W AP  R R/W R/W DB コンシュヌマ W W R/W  コンシュヌマ コンシュヌマ デヌタ収集 デヌタ分析 デヌタ掻甚