ਅਸੀਂ ਵਾਪਸ ਮੋਡਿਊਲਰ ਮੋਨੋਲਿਥ (Modular Monolith) ਵੱਲ ਕਿਉਂ ਵਧੇ

ਸਾਫਟਵੇਅਰ ਟੀਮਾਂ ਆਪਣੀ ਰਣਨੀਤੀ ਬਦਲ ਰਹੀਆਂ ਹਨ। ਕਈ ਟੀਮਾਂ ਨੇ ਐਪਸ ਨੂੰ ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ (microservices) ਵਿੱਚ ਵੰਡਣ ਲਈ ਕਈ ਸਾਲ ਬਿਤਾਏ। ਹੁਣ, ਉਹ ਉਹਨਾਂ ਟੁਕੜਿਆਂ ਨੂੰ ਦੁਬਾਰਾ ਇਕੱਠਾ ਕਰ ਰਹੀਆਂ ਹਨ। ਉਹ ਪੁਰਾਣੇ, ਗੁੰਝਲਦਾਰ ਮੋਨੋਲਿਥ ਨਹੀਂ ਬਣਾ ਰਹੇ। ਉਹ ਮੋਡਿਊਲਰ ਮੋਨੋਲਿਥ (modular monoliths) ਬਣਾ ਰਹੇ ਹਨ।

ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਲੁਕਵੇਂ ਖਰਚੇ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ। ਡਿਸਟ੍ਰੀਬਿਊਟਡ ਸਿਸਟਮ (Distributed systems) ਬਹੁਤ ਜ਼ਿਆਦਾ ਗੁੰਝਲਦਾਰਤਾ ਵਧਾ ਦਿੰਦੇ ਹਨ। ਕਈ ਟੀਮਾਂ ਸਿਰਫ਼ ਚਰਚਾ (hype) ਕਰਕੇ ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਨੂੰ ਅਪਣਾਉਂਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਨਹੀਂ ਕਿ ਉਹਨਾਂ ਨੂੰ ਵੱਡੇ ਪੱਧਰ (scale) ਦੀ ਲੋੜ ਹੈ। ਜੇਕਰ ਤੁਹਾਡੀ ਟੀਮ ਛੋਟੀ ਹੈ, ਤਾਂ ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਤੁਹਾਡੀ ਰਫ਼ਤਾਰ ਨੂੰ ਘਟਾ ਸਕਦੀਆਂ ਹਨ।

ਇੱਕ ਮੋਡਿਊਲਰ ਮੋਨੋਲਿਥ ਤੁਹਾਨੂੰ ਦੋਵਾਂ ਦੁਨੀਆਵਾਂ ਦੇ ਵਧੀਆ ਫਾਇਦੇ ਦਿੰਦਾ ਹੈ। ਇਹ ਇੱਕ ਡਿਪਲੋਏਅਬਲ ਯੂਨਿਟ (deployable unit) ਵਜੋਂ ਰਹਿੰਦਾ ਹੈ, ਪਰ ਕੋਡ ਨੂੰ ਸਖ਼ਤ ਮੋਡਿਊਲਜ਼ ਵਿੱਚ ਸੰਗਠਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਡਿਸਟ੍ਰੀਬਿਊਟਡ ਸਿਸਟਮ ਚਲਾਉਣ ਦੇ ਉੱਚੇ ਖਰਚੇ ਤੋਂ ਬਿਨਾਂ ਸਪਸ਼ਟ ਸੀਮਾਵਾਂ ਮਿਲਦੀਆਂ ਹਨ।

ਦੋਵਾਂ ਪਹੁੰਚਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ:

• ਡਿਪਲੋਇਮੈਂਟ (Deployment): ਮੋਨੋਲਿਥ ਇੱਕ ਯੂਨਿਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਕਈਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ। • ਸੀਮਾਵਾਂ (Boundaries): ਮੋਨੋਲਿਥ ਸਖ਼ਤ ਕੋਡ ਨਿਯਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ। • ਸੰਚਾਰ (Communication): ਮੋਨੋਲਿਥ ਸਧਾਰਨ ਫੰਕਸ਼ਨ ਕਾਲਜ਼ (function calls) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਨੈੱਟਵਰਕ ਕਾਲਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ। • ਓਵਰਹੈੱਡ (Overhead): ਮੋਨੋਲਿਥ ਦੇ ਸੰਚਾਲਨ ਖਰਚੇ ਘੱਟ ਹੁੰਦੇ ਹਨ। ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਦੇ ਖਰਚੇ ਜ਼ਿਆਦਾ ਹੁੰਦੇ ਹਨ।

ਤੁਹਾਨੂੰ ਮੋਡਿਊਲਰ ਮੋਨੋਲਿਥ ਕਦੋਂ ਚੁਣਨਾ ਚਾਹੀਦਾ ਹੈ?

  • ਤੁਹਾਡੀ ਟੀਮ ਵਿੱਚ 50 ਤੋਂ ਘੱਟ ਇੰਜੀਨੀਅਰ ਹਨ।
  • ਤੁਹਾਨੂੰ ਕਲਾਉਡ ਇਨਫਰਾਸਟ੍ਰਕਚਰ (cloud infrastructure) ਦੇ ਖਰਚਿਆਂ ਨੂੰ ਘਟਾਉਣ ਦੀ ਲੋੜ ਹੈ।
  • ਤੁਸੀਂ ਡਿਬੱਗਿੰਗ (debugging) ਅਤੇ ਟੈਸਟਿੰਗ ਨੂੰ ਸਰਲ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ।
  • ਤੁਹਾਡੀਆਂ ਸੇਵਾਵਾਂ ਨੂੰ ਅਕਸਰ ਇਕੱਠੇ ਹੀ ਡਿਪਲੋਏ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

ਅਸਲ ਕੰਪਨੀਆਂ ਪਹਿਲਾਂ ਹੀ ਅਜਿਹਾ ਕਰ ਰਹੀਆਂ ਹਨ। Shopify ਲੱਖਾਂ ਵਪਾਰੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਮੋਡਿਊਲਰ ਪਹੁੰਚ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। Amazon Prime Video ਨੇ ਇੱਕ ਖਾਸ ਵਰਕਲੋਡ (workload) ਨੂੰ ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਤੋਂ ਵਾਪਸ ਮੋਨੋਲਿਥ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ। ਉਹਨਾਂ ਨੇ ਇਨਫਰਾਸਟ੍ਰਕਚਰ ਖਰਚਿਆਂ ਵਿੱਚ 90% ਦੀ ਕਮੀ ਦੇਖੀ।

ਜੇਕਰ ਤੁਹਾਡੀ ਟੀਮ ਛੋਟੀ ਹੈ, ਤਾਂ Netflix ਦੇ ਪੱਧਰ (scale) ਲਈ ਨਾ ਬਣਾਓ। ਮੋਡਿਊਲਰ ਸ਼ੁਰੂਆਤ ਕਰੋ। ਕਿਸੇ ਸੇਵਾ ਨੂੰ ਉਦੋਂ ਹੀ ਵੱਖ ਕਰੋ ਜਦੋਂ ਤੁਹਾਡਾ ਡਾਟਾ ਦਿਖਾਵੇ ਕਿ ਤੁਹਾਨੂੰ ਸੱਚਮੁੱਚ ਇਸਦੀ ਲੋੜ ਹੈ।

ਇਹ ਦੇਖਣ ਲਈ ਕਿ ਕੀ ਤੁਹਾਨੂੰ ਇਕੱਠਾ ਕਰਨ (consolidate) ਦੀ ਲੋੜ ਹੈ, ਇਸ ਚੈੱਕਲਿਸਟ ਦੀ ਵਰਤੋਂ ਕਰੋ:

  • ਕੀ ਤੁਸੀਂ ਫੀਚਰ ਬਣਾਉਣ ਨਾਲੋਂ ਸੇਵਾ ਕਨੈਕਸ਼ਨਾਂ (service connections) ਨੂੰ ਡਿਬੱਗ ਕਰਨ ਵਿੱਚ ਜ਼ਿਆਦਾ ਸਮਾਂ ਬਿਤਾਉਂਦੇ ਹੋ?
  • ਕੀ ਤੁਹਾਡਾ ਕਲਾਉਡ ਬਿੱਲ ਤੁਹਾਡੇ ਯੂਜ਼ਰਾਂ ਨਾਲੋਂ ਤੇਜ਼ੀ ਨਾਲ ਵਧ ਰਿਹਾ ਹੈ?
  • ਕੀ ਕਈ ਸੇਵਾਵਾਂ ਲਈ ਤੁਹਾਡੇ ਕੋਲ 5 ਤੋਂ ਘੱਟ DevOps ਇੰਜੀਨੀਅਰ ਹਨ?
  • ਕੀ ਇੰਜੀਨੀਅਰ ਕਿਸੇ ਬੱਗ (bug) ਨੂੰ ਲੱਭਣ ਲਈ ਇੱਕ ਰਿਕਵੈਸਟ ਨੂੰ 3 ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਸੇਵਾਵਾਂ ਵਿੱਚ ਟ੍ਰੇਸ (trace) ਕਰ ਰਹੇ ਹਨ?

ਜੇਕਰ ਤੁਹਾਡਾ ਜਵਾਬ 'ਹਾਂ' ਹੈ, ਤਾਂ ਮੋਡਿਊਲਰ ਮੋਨੋਲਿਥ ਸ਼ਾਇਦ ਸਹੀ ਕਦਮ ਹੈ।

ਸਰੋਤ: https://dev.to/ail_akram_dcc5063c428734b/why-we-moved-back-to-a-modular-monolith-the-costly-reality-of-microservices-in-2026-3kbo

ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi