The advent of microservices has led multiple companies to migrate their monolithic systems to this new architecture. When decomposing a monolith, a functionality previously implemented as a transaction may need to be implemented as a set of independent sub-transactions, possibly executed by multiple microservices, paving the way for anomalies to emerge. The ability to assess, at design time, the anomalies that different decompositions may generate is key to guide the programmers in finding the most appropriate decomposition that matches their goals. This paper introduces MAD, the first framework for automatically detecting anomalies that are introduced by a given decomposition of a monolith into microservices. MAD operates by encoding the executions of the original functionalities as an SMT formula and then using a solver to find satisfiable assignments that capture the anomalous interleavings made possible by that specific decomposition. We have applied MAD to different benchmarks and show that it can identify precisely the causes of potential anomalous behavior.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Don’t go MAD with Anomalies! Design-time Microservice Anomaly Detection in Migration to Microservices

  • Valentim Romão,
  • Rafael Soares,
  • Luís Rodrigues,
  • Vasco Manquinho

摘要

The advent of microservices has led multiple companies to migrate their monolithic systems to this new architecture. When decomposing a monolith, a functionality previously implemented as a transaction may need to be implemented as a set of independent sub-transactions, possibly executed by multiple microservices, paving the way for anomalies to emerge. The ability to assess, at design time, the anomalies that different decompositions may generate is key to guide the programmers in finding the most appropriate decomposition that matches their goals. This paper introduces MAD, the first framework for automatically detecting anomalies that are introduced by a given decomposition of a monolith into microservices. MAD operates by encoding the executions of the original functionalities as an SMT formula and then using a solver to find satisfiable assignments that capture the anomalous interleavings made possible by that specific decomposition. We have applied MAD to different benchmarks and show that it can identify precisely the causes of potential anomalous behavior.