ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਬਨਾਮ ਮੋਨੋਲਿਥਿਕ ਆਰਕੀਟੈਕਚਰ: ਤੁਹਾਨੂੰ ਕੀ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ?

ਇੱਕ ਸੰਸਥਾਪਕ (founder) ਨੇ ਇੱਕ ਵਾਰ ਮੈਨੂੰ ਆਰਕੀਟੈਕਚਰ ਪਿੱਚ ਦੀ ਸਮੀਖਿਆ ਕਰਨ ਲਈ ਕਿਹਾ ਸੀ।

ਏਜੰਸੀ ਨੇ ਗਿਆਰਾਂ ਸੇਵਾਵਾਂ (services), ਇੱਕ ਮੈਸੇਜ ਕਿਊ (message queue), ਅਤੇ ਇੱਕ ਸਰਵਿਸ ਮੈਸ਼ (service mesh) ਦਾ ਪ੍ਰਸਤਾਵ ਦਿੱਤਾ। ਇਹ ਇੱਕ ਸਧਾਰਨ ਬੁਕਿੰਗ ਟੂਲ ਲਈ ਸੀ ਜਿਸ ਦੇ ਕੋਈ ਯੂਜ਼ਰ ਨਹੀਂ ਸਨ।

ਇਹ ਇੱਕ ਜਾਲ ਹੈ।

ਆਰਕੀਟੈਕਚਰ ਦੇ ਫੈਸਲੇ ਤੁਹਾਡੇ ਹੋਸਟਿੰਗ ਬਿੱਲ, ਤੁਹਾਡੀ ਸ਼ਿਪਿੰਗ ਸਪੀਡ, ਅਤੇ ਤੁਹਾਡੀ ਹਾਇਰਿੰਗ ਯੋਜਨਾ ਨੂੰ ਤੈਅ ਕਰਦੇ ਹਨ। ਕਿਸੇ ਡਿਵੈਲਪਰ ਨੂੰ ਬਜਟ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਨੂੰ ਇਸਦੀ ਲਾਗਤ ਦਾ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।

ਮੋਨੋਲਿਥ (The Monolith) ਇੱਕ ਮੋਨੋਲਿਥ ਇੱਕ ਕੋਡਬੇਸ (codebase), ਇੱਕ ਡਿਪਲਾਈਮੈਂਟ (deployment), ਅਤੇ ਇੱਕ ਡਾਟਾਬੇਸ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਸਰਲ ਹੈ।

ਪਹਿਲੇ ਦਿਨ, ਤੁਹਾਨੂੰ ਆਪਣੀਆਂ ਡੋਮੇਨ ਸੀਮਾਵਾਂ (domain boundaries) ਦਾ ਪਤਾ ਨਹੀਂ ਹੁੰਦਾ। ਜੇਕਰ ਤੁਸੀਂ ਬਹੁਤ ਜਲਦੀ ਸੇਵਾਵਾਂ ਨੂੰ ਵੰਡ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਉਹਨਾਂ ਕੰਧਾਂ ਨੂੰ ਹਟਾਉਣ ਵਿੱਚ ਸਮਾਂ ਬਰਬਾਦ ਕਰਦੇ ਹੋ ਜੋ ਹੋਣੀਆਂ ਹੀ ਨਹੀਂ ਚਾਹੀਦੀਆਂ ਸਨ। ਜਦੋਂ ਤੁਹਾਡੀ ਟੀਮ ਛੋਟੀ ਹੁੰਦੀ ਹੈ ਤਾਂ ਮੋਨੋਲਿਥ ਨੂੰ ਸੰਭਾਲਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। ਤੁਸੀਂ API ਸੈੱਟਅੱਪ ਕਰਨ ਦੀ ਬਜਾਏ ਇੱਕ ਫੰਕਸ਼ਨ (function) ਨੂੰ ਕਾਲ ਕਰਦੇ ਹੋ। ਜਦੋਂ ਰਾਤ ਦੇ 2 ਵਜੇ ਕੋਈ ਬੱਗ (bug) ਆਉਂਦਾ ਹੈ, ਤਾਂ ਗਲਤੀ ਕੋਡ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ, ਨਾ ਕਿ ਨੈੱਟਵਰਕ ਫੇਲ੍ਹ ਹੋਣ ਵੱਲ।

ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ (Microservices) ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਸੰਗਠਨਾਤਮਕ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦੀਆਂ ਹਨ। ਉਹ ਵੱਖ-ਵੱਖ ਟੀਮਾਂ ਨੂੰ ਆਪਣੇ ਸ਼ਡਿਊਲ ਅਨੁਸਾਰ ਕੋਡ ਸ਼ਿਪ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀਆਂ ਹਨ। Netflix ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਇਸ ਲਈ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਇੱਕ ਖਰਾਬੀ ਪੂਰੇ ਸਿਸਟਮ ਨੂੰ ਡੁਬੋ ਨਾ ਦੇਵੇ।

ਹਾਲਾਂਕਿ, ਤੁਹਾਨੂੰ ਇਸ ਦੀ ਕੀਮਤ ਹਰ ਰੋਜ਼ ਚੁਕਾਉਣੀ ਪੈਂਦੀ ਹੈ। ਨੈੱਟਵਰਕ ਕਾਲਾਂ ਲੇਟੈਂਸੀ (latency) ਵਧਾਉਂਦੀਆਂ ਹਨ। ਡਾਟਾ ਇਕਸਾਰਤਾ (data consistency) ਮੁਸ਼ਕਲ ਹੋ ਜਾਂਦੀ ਹੈ। ਲੌਗਸ (logs) ਅਤੇ ਟ੍ਰੇਸਿੰਗ (tracing) ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਤੁਹਾਨੂੰ ਵਿਸ਼ੇਸ਼ ਟੂਲਸ ਅਤੇ ਇੱਕ ਵੱਡੀ ਟੀਮ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸਹੀ ਕਰਮਚਾਰੀਆਂ ਦੀ ਗਿਣਤੀ ਤੋਂ ਬਿਨਾਂ, ਤੁਸੀਂ ਇੱਕ 'ਡਿਸਟ੍ਰੀਬਿਊਟਿਡ ਮੋਨੋਲਿਥ' (distributed monolith) ਦੇ ਨਾਲ ਖਤਮ ਹੁੰਦੇ ਹੋ। ਇਹ ਤੁਹਾਨੂੰ ਨੈੱਟਵਰਕ ਦੀ ਸਾਰੀ ਗੁੰਝਲਤਾ ਦਿੰਦਾ ਹੈ ਪਰ ਕੋਈ ਸੁਤੰਤਰਤਾ ਨਹੀਂ।

ਮੋਡਿਊਲਰ ਮੋਨੋਲਿਥ (The Modular Monolith) ਇਹ ਇੱਕ ਵਿਚਕਾਰਲਾ ਰਸਤਾ ਹੈ। ਇਹ ਇੱਕ ਐਪ ਹੈ ਜਿਸ ਵਿੱਚ ਕੋਡ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਵਿਚਕਾਰ ਪੱਕੀਆਂ ਕੰਧਾਂ ਹੁੰਦੀਆਂ ਹਨ। ਬਿਲਿੰਗ (Billing

ਉਤਪਾਦ ਇਸ ਲਈ ਖ਼ਤਮ ਹੋ ਜਾਂਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹ ਕਦੇ ਲਾਂਚ ਹੀ ਨਹੀਂ ਹੁੰਦੇ। ਇੱਕ ਸਾਫ਼-ਸੁਥਰਾ monolith ਉਪਭੋਗਤਾਵਾਂ ਤੱਕ ਪਹੁੰਚਣ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਹੈ। ਪਹਿਲਾਂ ਉਹ ਬਣਾਓ। ਆਪਣੇ ਟ੍ਰੈਫਿਕ ਨੂੰ ਇਹ ਦੱਸਣ ਦਿਓ ਕਿ ਚੀਜ਼ਾਂ ਨੂੰ ਵੱਖ ਕਰਨ ਦਾ ਸਮਾਂ ਕਦੋਂ ਆਇਆ ਹੈ।

ਸਰੋਤ: https://dev.to/amara_wallis_2f533953a6ac/microservices-vs-monolithic-architecture-what-should-your-full-stack-development-partner-build-3g6

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