ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਆਧੁਨਿਕ ਟੂਲਿੰਗ ਨੂੰ ਆਕਾਰ ਦਿੰਦੀ ਹੈ। ਜਾਨੋ ਕਿ ਕਿਹੜੀਆਂ ਰਾਏ-ਅਧਾਰਿਤ ਲੇਅਰਾਂ ਨੂੰ ਚੁਣਨਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਜੋ ਡਿਲਿਵਰੀ ਤੇਜ਼ ਹੋਵੇ ਪਰ ਆਪਰੇਸ਼ਨਲ ਦਿੱਖ ਉਪਲਬਧ ਰਹੇ।

ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਕੋਡ ਲਿਖਣ ਵਿੱਚ ਸੁਸਤ ਨਹੀਂ ਹੁੰਦੀਆਂ; ਉਹ ਇਸ ਲਈ ਸੁਸਤ ਹੁੰਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਹਰ ਪ੍ਰੋਡਕਟ ਟੀਮ ਇੱਕੋ ਹੀ ਬੁਨਿਆਦੀ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਫੈਸਲਿਆਂ ਨੂੰ ਮੁੜ-ਬਣਾ ਲੈਂਦੀ ਹੈ: ਕਿਵੇਂ ਡਿਪਲੋਇ ਕਰਨਾ ਹੈ, ਕੰਫਿਗ ਕਿੱਥੇ ਰਹਿੰਦੀ ਹੈ, ਸੀਕ੍ਰੇਟ ਕਿਵੇਂ ਹੈਂਡਲ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਲੌਗਿੰਗ, ਬੈਕਅੱਪ ਅਤੇ ਰੋਲਬੈਕ ਲਈ "ਮੁਕੰਮਲ" ਕੀ ਮਤਲਬ ਹੈ।
ਸ਼ੁਰੂ ਵਿੱਚ ਇਹਨਾਂ ਬੁਨਿਆਦੀਆਂ ਨੂੰ ਮੁੜ-ਬਣਾਉਣਾ ਸੁਰੱਖਿਅਤ ਲੱਗਦਾ ਹੈ। ਤੁਸੀਂ ਹਰ ਨਿਯੰਤਰਣ ਨੂੰ ਸਮਝਦੇ ਹੋ ਕਿਉਂਕਿ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਖੁਦ ਸੋਮੇ ਕਰਕੇ ਰੱਖਿਆ ਸੀ। ਕੁਝ ਰਿਲੀਜ਼ਾਂ ਮਗਰੋਂ, ਲਾਗਤ ਉਡੀਕ ਦੁਆਰਾ ਪ੍ਰਗਟ ਹੁੰਦੀ ਹੈ: ਬੋਇਲਰਪਲੇਟ ਤਬਦੀਲੀਆਂ ਲਈ ਸਮੀਖਿਆ ਦੀ ਉਡੀਕ, "Terraform ਜਾਣਨ ਵਾਲੇ" ਵਿਅਕਤੀ ਦੀ ਉਡੀਕ, ਜਾਂ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਉਡੀਕ ਜੋ ਫਲੇਕੀ ਡਿਪਲੋਇ ਨੂੰ ਡੀਬੱਗ ਕਰ ਸਕੇ।
ਇਸ ਨਾਲ ਇੱਕ ਜਾਣਿਆ-ਪਛਾਣਿਆ ਵਪਾਰ ਉਤਪੰਨ ਹੁੰਦਾ ਹੈ: ਇੱਕ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਨਾਲ ਤੇਜ਼ੀ ਨਾਲ ਵਧੋ, ਜਾਂ ਪੂਰਾ ਨਿਯੰਤਰਣ ਰੱਖੋ ਅਤੇ ਹੱਥ ਨਾਲ ਸਭ ਕੁਝ ਕਰਨ ਦੀ ਕੀਮਤ ਭਰਦੇ ਰਹੋ। ਦਰ ਦਾ ਭਾਵ ਗੈਰ-ਤਰਕਸੰਗਤ ਨਹੀਂ ਹੈ। ਇੱਕ ਟੂਲ ਬਹੁਤ ਕੁਝ ਛੁਪਾ ਸਕਦਾ ਹੈ। ਜਦੋਂ ਕੁਝ 2 ਵਜੇ ਰਾਤ ਨੂੰ ਟੁੱਟੇ, ਤਾਂ "ਪਲੇਟਫਾਰਮ ਇਹ ਸੰਭਾਲਦਾ ਹੈ" ਕੋਈ ਯੋਜਨਾ ਨਹੀਂ ਹੁੰਦੀ।
ਇਹ ਤਣਾਅ ਸਭ ਤੋਂ ਵੱਧ ਉਹਨਾਂ ਟੀਮਾਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜੋ ਉਸੇ ਸਮੇਂ ਬਣਾਉਂਦੀਆਂ ਅਤੇ ਚਲਾਉਂਦੀਆਂ ਹਨ ਜੋ ਉਹ ਸ਼ਿਪ ਕਰਦੀਆਂ ਹਨ। ਜੇ ਤੁਸੀਂ ਆਨ-ਕਾਲ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਗਤੀ ਦੀ ਲੋੜ ਹੈ, ਪਰ ਤੁਹਾਨੂੰ ਸਿਸਟਮ ਦੇ ਚੱਲਣ ਦਾ ਮਾਨਸਿਕ ਮਾਡਲ ਵੀ ਚਾਹੀਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਉਤਪਾਦ ਨੂੰ ਚਲਾਉਂਦੇ ਨਹੀਂ, ਤਾਂ ਛੁਪੇ ਹੋਏ ਵਿਸਥਾਰ ਕਿਸੇ ਹੋਰ ਦਾ ਸਮੱਸਿਆ ਵਰਗੇ ਮਹਿਸੂਸ ਹੋ ਸਕਦਾ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਆਧੁਨਿਕ ਡੈਵ ਟੀਮਾਂ ਲਈ, ਇਹ ਫਿਰ ਵੀ ਤੁਹਾਡੀ ਸਮੱਸਿਆ ਹੈ।
ਇੱਕ ਉਪਯੋਗੀ ਹੱਦ ਸਧਾਰਨ ਹੈ: ਰੁਟੀਨ ਕੰਮ ਘਟਾਓ, ਜ਼ਿਮੇਵਾਰੀ ਨਹੀਂ। ਤੁਸੀਂ ਘੱਟ ਦਫ਼ਾ ਫੈਸਲੇ ਚਾਹੁੰਦੇ ਹੋ, ਪਰ ਅਜੇ ਵੀ ਪਰਭਾਵਾਂ ਨੂੰ ਗੁੰਝਲਦਾਰ ਨਹੀਂ ਬਣਾਉਣਾ।
ਟੀਮਾਂ ਨੂੰ ਇਹ ਕੋਣ ਵਿੱਚ ਧੱਕਿਆ ਜਾਂਦਾ ਹੈ ਇਕੋ ਹੀ ਦਬਾਅਾਂ ਵੱਲੋਂ: ਰਿਲੀਜ਼ ਸਾਈਕਲ ਛੋਟੇ ਹੁੰਦੇ ਜਾ ਰਹੇ ਹਨ ਪਰ ਸੰਚਾਲਕੀ ਉਮੀਦਾਂ ਉੱਚੀਆਂ ਰਹਿੰਦੀਆਂ ਹਨ; ਟੀਮਾਂ ਵਧਦੀਆਂ ਹਨ ਅਤੇ "ਟ੍ਰਾਈਬਲ ਨੋਲੇਜ" ਸਕੇਲ ਨਹੀਂ ਕਰਦੀ; ਅਨੁਕੂਲਤਾ ਅਤੇ ਡੇਟਾ ਨਿਯਮ ਅਜਿਹੇ ਕਦਮ ਜੋ ਤੁਸੀਂ ਛੱਡ ਨਹੀਂ ਸਕਦੇ ਸ਼ਾਮਿਲ ਕਰਦੇ ਹਨ; ਅਤੇ ਘਟਨਾਵਾਂ ਵੱਧ ਦਰਦਨਾਕ ਹੁੰਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਯੂਜ਼ਰ ਹਰ ਵੇਲੇ-ਚੱਲਦੇ ਸੇਵਾ ਦੀ ਉਮੀਦ ਰੱਖਦੇ ਹਨ।
Mitchell Hashimoto ਉਹਨਾਂ ਟੂਲਾਂ ਲਈ ਸਭ ਤੋਂ ਵੱਧ ਜਾਣੇ ਜਾਂਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੇ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਨੂੰ ਰੋਜ਼ਾਨਾ ਟੀਮਾਂ ਲਈ ਪ੍ਰੋਗ੍ਰਾਮੇਬਲ ਮਹਿਸੂਸ ਕਰਵਾਇਆ। ਮੋਟੇ ਤੌਰ 'ਤੇ ਸਬਕ ਇਹ ਨਹੀਂ ਕਿ ਕਿਸ ਨੇ ਕੀ ਬਣਾਇਆ; ਸਬਕ ਇਹ ਹੈ ਕਿ ਇਸ ਅੰਦਾਜ਼ ਦੀ ਟੂਲਿੰਗ ਨੇ ਕੀ ਬਦਲਿਆ: ਇਸ ਨੇ ਟੀਮਾਂ ਨੂੰ ਉਹ ਨਤੀਜਾ ਵਰਣਨ ਕਰਨ ਦੀ ਉੱਤਸਾਹਿਤ ਕੀਤਾ ਜੋ ਉਹ ਚਾਹੁੰਦੇ ਹਨ, ਫਿਰ ਸੋਫਟਵੇਅਰ ਦੁਹਰਾਏ ਜਾਣ ਵਾਲੇ ਕੰਮ ਸੰਭਾਲ ਲੈਵੇ।
ਸਧਾਰਨ ਸ਼ਬਦਾਂ ਵਿੱਚ, ਇਹ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਯੁੱਗ ਹੈ। ਜ਼ਿਆਦਾ ਡਿਲਿਵਰੀ ਐਸੇ ਟੂਲਾਂ ਰਾਹੀਂ ਹੁੰਦੀ ਹੈ ਜੋ ਡਿਫੌਲਟਸ ਅਤੇ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਕੋਡ ਕਰਦੇ ਹਨ, ਅਤੇ ਘੱਟ ਕੁਝ ਹੱਦਾਂ 'ਤੇ ਕੰਸੋਲ ਕਲਿੱਕਾਂ ਜਾਂ ਏਡ-ਹਾਕ ਕਮਾਂਡਾਂ ਰਾਹੀਂ ਹੁੰਦਾ ਹੈ। ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧਦੇ ਹੋ ਕਿਉਂਕਿ ਟੂਲ ਇੱਕ ਗੁੰਝਲਦਾਰ ਕਦਮ-ਸੈਟ ਨੂੰ ਦੁਹਰਾਏ ਜਾਣਯੋਗ ਰਾਹ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
ਕਲਾਉਡ ਪਲੇਟਫਾਰਮ ਸਭ ਨੂੰ ਸ਼ਕਤੀਸ਼ਾਲੀ ਬਿਲਡਿੰਗ ਬਲਾਕ ਦਿੱਤੇ: ਨੈੱਟਵਰਕ, ਲੋਡ ਬੈਲੈਂਸਰ, ਡੇਟਾਬੇਸ, ਆਈਡੈਂਟੀਟੀ। ਉਹ ਸਧਾਰਨ ਬਣਾਉਣੇ ਚਾਹੀਦੇ ਸਨ। ਹਕੀਕਤ ਵਿੱਚ, ਜਟਿਲਤਾ ਅਕਸਰ ਸਟੈਕ ਉੱਤੇ ਉੱਪਰ ਉਠ ਗਈ। ਟੀਮਾਂ ਕੋਲ ਜ਼ਿਆਦਾ ਸਰਵਿਸਜ਼ ਜਿੰਨ੍ਹਾਂ ਨੂੰ ਕਨੈਕਟ ਕਰਨਾ, ਜ਼ਿਆਦਾ ਅਨੁਮਤੀਆਂ, ਜ਼ਿਆਦਾ ਐਨਵਾਇਰਨਮੈਂਟ ਸੰਰਚਨਾ ਬਣਾਈ ਰੱਖਣੀਆਂ, ਅਤੇ ਛੋਟੀ-ਛੋਟੀ ਫ਼ਰਕਾਂ ਦੇ ਆਉਟੇਜ ਬਣਨ ਦੇ ਹੋਰ ਤਰੀਕੇ ਹੋ ਗਏ।
ਰਾਏ-ਅਧਾਰਿਤ ਟੂਲਾਂ ਨੇ ਇੱਕ "ਮਿਆਰੀ ਰੂਪ" ਤੈਅ ਕਰਕੇ ਜਵਾਬ ਦਿੱਤਾ। ਇੱਥੇ ਹੀ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਮਹੱਤਵਪੂਰਨ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਹ ਬਹੁਤ ਸਾਰਾ ਅਕਸੀਡੈਂਟਲ ਕੰਮ ਹਟਾਉਂਦੀ ਹੈ, ਪਰ ਇਹ ਇਹ ਵੀ ਨਿਰਧਾਰਤ ਕਰਦੀ ਹੈ ਕਿ ਤੁਹਾਨੂੰ ਰੋਜ਼ਾਨਾ ਕਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਬਾਰੇ ਸੋਚਣ ਦੀ ਲੋੜ ਨਹੀਂ ਰਹੇਗੀ।
ਇਸਦਾ ਪ੍ਰਯੋਗੀ ਤਰੀਕਾ ਇਹ ਪੁੱਛਣਾ ਹੈ ਕਿ ਟੂਲ ਕਿਸ ਚੀਜ਼ ਨੂੰ ਨਿਰਰਸ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਚੰਗੇ ਉੱਤਰ ਅਕਸਰ ਸ਼ਾਮਿਲ ਹੁੰਦੇ ਹਨ: ਡੈਵ, ਸਟੇਜ ਅਤੇ ਪ੍ਰੋਡ ਵਿੱਚ ਪਹਿਲ-ਸਰੂਪ ਸੈਟਅੱਪ; ਟ੍ਰਾਈਬਲ ਨੋਲੇਜ ਤੇ ਹੱਥ ਲਿਖੇ ਰਨਬੁੱਕ 'ਤੇ ਘੱਟ ਨਿਰਭਰਤਾ; ਅਤੇ ਰੋਲਬੈਕ ਅਤੇ ਰੀਬਿਲਡ ਜੋ ਹੀਰੋਇਕ ਨਹੀਂ ਬਲਕਿ ਰੁਟੀਨ ਵਰਗੇ ਲੱਗਦੇ ਹਨ। ਚੰਗੇ ਤੌਰ 'ਤੇ, ਸਮੀਖਿਆਵਾਂ ਵੀ "ਤੁਸੀਂ ਸਹੀ ਚੀਜ਼ ਕਿਆ ਕੀਤੀ?" ਉੱਤੇ ਕੇਂਦਰਿਤ ਹੁੰਦੀਆਂ ਹਨ ਨਾ ਕਿ "ਕੀ ਤੁਸੀਂ ਸਹੀ ਬਟਨ ਕਲਿੱਕ ਕੀਤਾ?"
ਮਕਸਦ ਹਕੀਕਤ ਨੂੰ ਛੁਪਾਉਣਾ ਨਹੀਂ ਹੈ। ਇਹ ਹੈ ਦੁਹਰਾਏ ਜਾਣ ਵਾਲੇ ਹਿੱਸਿਆਂ ਨੂੰ ਪੈਕੇਜ ਕਰਨਾ ਤਾਂ ਜੋ ਲੋਕ ਉਤਪਾਦ ਦਾ ਕੰਮ ਤੇਜ਼ੀ ਨਾਲ ਕਰ ਸਕਣ ਅਤੇ ਫਿਰ ਵੀ ਸਮਝ ਸਕਣ ਕਿ ਜਦੋਂ ਪੇਜਰ ਵੱਜੇਗਾ ਤਾਂ ਕੀ ਹੋਵੇਗਾ।
ਇੱਕ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਇੱਕ ਛੋਟਾ ਰਾਹ ਹੈ ਜੋ ਕਈ ਛੋਟੇ ਕਦਮਾਂ ਨੂੰ ਇੱਕ ਆਸਾਨ ਕਾਰਵਾਈ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਇਮੇਜ ਬਣਾਉਣ, ਪੁਸ਼ ਕਰਨ, ਡੇਟਾਬੇਸ ਮਾਈਗ੍ਰੇਸ਼ਨ, ਸੇਵਾ ਅਪਡੇਟ ਅਤੇ ਹੈਲਥ ਚੈੱਕ ਯਾਦ ਕਰਨ ਦੀ ਥਾਂ, ਤੁਸੀਂ ਇੱਕ ਕਮਾਂਡ ਚਲਾਉਂਦੇ ਹੋ ਜਾਂ ਇੱਕ ਬਟਨ ਦਬਾਉਂਦੇ ਹੋ ਅਤੇ ਟੂਲ ਉਹ ਸਭ ਕਰਦਾ ਹੈ।
ਇੱਕ ਸਧਾਰਣ ਉਦਾਹਰਨ "ਡਿਪਲੋਇ" ਨੂੰ ਇੱਕ ਇਕਾਈ ਕਿਰਿਆ ਬਣਾਇਆ ਜਾਣਾ ਹੈ। ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਬਹੁਤ ਕੁਝ ਹੁੰਦਾ ਹੈ: ਪੈਕਿੰਗ, ਕੰਫਿਗ, ਨੈੱਟਵਰਕ ਨਿਯਮ, ਡੇਟਾਬੇਸ ਐਕਸੈਸ, ਮਾਨੀਟਰਨਿੰਗ, ਅਤੇ ਰੋਲਬੈਕ ਯੋਜਨਾਵਾਂ। ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਤੁਹਾਨੂੰ ਇੱਕ ਹੀ ਹੈਂਡਲ ਦੈਂਦਾ ਹੈ।
ਜ਼ਿਆਦਾਤਰ ਆਧੁਨਿਕ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਰਾਏ-ਅਧਾਰਿਤ ਵੀ ਹੁੰਦੀਆਂ ਹਨ। ਇਸਦਾ ਮਤਲਬ ਇਹ ਹੈ ਕਿ ਉਹ ਡਿਫੌਲਟਸ ਅਤੇ ਪਸੰਦੀਦਾ ਤਰੀਕਾ ਲੈਂਦੀਆਂ ਹਨ। ਟੂਲ ਫੈਸਲਾ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡੀ ਐਪ ਕਿਵੇਂ ਬਣੀ ਹੋਵੇਗੀ, ਐਨਵਾਇਰਨਮੈਂਟਾਂ ਦਾ ਨਾਮ ਕਿਵੇਂ ਹੋਏਗਾ, ਸੀਕ੍ਰੇਟ ਕਿੱਥੇ ਰਹਿਣਗੇ, "ਸੇਵਾ" ਕੀ ਹੈ, ਅਤੇ "ਸੁਰੱਖਿਅਤ ਡਿਪਲੋਇ" ਕਿਵੇਂ ਲੱਗੇਗਾ। ਤੁਸੀਂ ਤੇਜ਼ ਹੋਵੋਗੇ ਕਿਉਂਕਿ ਹਰ ਵਾਰੀ ਦਹਾਂ ਛੋਟੇ-छोटे ਫੈਸਲੇ ਨਹੀਂ ਕਰਨੇ ਪੈਣਗੇ।
ਜਦੋਂ ਡਿਫੌਲਟ ਦੁਨੀਆ ਤੁਹਾਡੇ ਹਕੀਕਤੀ ਦੁਨੀਆ ਨਾਲ ਮੈਚ ਨਹੀਂ ਕਰਦੀ ਤਾਂ ਇਹ ਤੇਜ਼ੀ ਛੁਪੇ ਖਰਚੇ ਲਿਆ ਸਕਦੀ ਹੈ। ਸ਼ਾਇਦ ਤੁਹਾਨੂੰ ਡੇਟਾ ਰਿਹਾਇਸੈਂਸੀ ਕਿਸੇ ਖਾਸ ਦੇਸ਼ ਵਿੱਚ ਚਾਹੀਦੀ ਹੋਵੇ, ਔਖੇ ਆਡਿਟ ਲੌਗ ਲੋੜ ਹੋਣ, ਅਨੋਖੇ ਟ੍ਰੈਫਿਕ ਪੈਟਰਨ, ਜਾਂ ਐਸੀ ਡੇਟਾਬੇਸ ਸੈਟਅਪ ਜੋ ਆਮ ਮਾਮਲੇ ਤੋਂ ਵੱਖਰਾ ਹੋਵੇ। ਰਾਏ-ਅਧਾਰਿਤ ਟੂਲ ਸ਼ਾਨਦਾਰ ਮਹਿਸੂਸ ਹੋ ਸਕਦੇ ਹਨ ਜਦ ਤੱਕ ਤੁਹਾਨੂੰ ਬਾਹਰ ਰੰਗ ਕਰਨਾ ਨਾ ਪਏ।
ਚੰਗੀ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਫੈਸਲੇ ਘਟਾਉਂਦੀ ਹੈ, ਪਰ ਨਤੀਜਿਆਂ ਨੂੰ ਨਹੀਂ। ਇਹ ਤੁਹਾਨੂੰ ਰੁਟੀਨ ਕੰਮ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ, ਸਹੀ ਗੱਲਾਂ ਨੂੰ ਦੇਖਣਾ ਤੇਝ ਬਣਾ ਕੇ। ਅਮਲ ਵਿੱਚ, "ਚੰਗੀ" ਆਮ ਤੌਰ 'ਤੇ ਮਤਲਬ ਹੁੰਦਾ ਹੈ: ਖੁਸ਼ ਪੱਥ ਤੇਜ਼ ਹੋਵੇ, ਪਰ ਤੁਸੀਂ ਹਮੇਸ਼ਾ ਐਸਕੇਪ ਹੈਚ ਪ੍ਰਾਪਤ ਕਰੋ; ਤੁਸੀਂ ਦੇਖ ਸਕੋ ਕਿ ਕੀ ਬਦਲੇਗਾ ਪਹਿਲਾਂ (ਪਲੈਨ, ਡਿਫ, ਪ੍ਰੀਵਿਊ); ਫੇਲਿਯਰ ਸਪਸ਼ਟ ਰਹਿਣ (ਸਪਸ਼ਟ ਲੌਗ, ਸਪਸ਼ਟ ਐਰਰ, ਆਸਾਨ ਰੋਲਬੈਕ); ਅਤੇ ਜ਼ਿਮੇਵਾਰੀ ਸਪਸ਼ਟ ਰਹੇ (ਕੌਣ ਡਿਪਲੋਇ ਕਰਦਾ ਹੈ, ਕੌਣ ਮਨਜ਼ੂਰੀ ਦਿੰਦਾ ਹੈ, ਕੌਣ ਆਨ-ਕਾਲ ਹੈ)।
ਇਹ ਅਸਲ ਟੀਮਾਂ ਵਿੱਚ ਇੱਕ ਤਰੀਕੇ ਨਾਲ ਦਰਸਦਾ ਹੈ: ਉੱਚ-ਸਤਹ ਪਲੇਟਫਾਰਮ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਿਵੇਂ Koder.ai ਜਿਸ ਨਾਲ ਚੈਟ ਰਾਹੀਂ ਐਪ ਬਣਾਕੇ ਡਿਪਲੋਇ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਹੋਸਟਿੰਗ, ਸਨੇਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ ਉਪਲਬਧ ਹੁੰਦੇ ਹਨ। ਇਹ ਕਈ ਦਿਨਾਂ ਦੇ ਸੈੱਟਅੱਪ ਨੂੰ ਹਟਾ ਸਕਦਾ ਹੈ। ਪਰ ਟੀਮ ਨੂੰ ਫਿਰ ਵੀ ਜਾਣਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਐਪ ਕਿੱਥੇ ਚੱਲ ਰਿਹਾ ਹੈ, ਲੌਗ ਅਤੇ ਮੈਟ੍ਰਿਕਸ ਕਿੱਥੇ ਹਨ, ਮਾਈਗ੍ਰੇਸ਼ਨ ਦੌਰਾਨ ਕੀ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਜੇ ਡਿਪਲੋਇ ਗਲਤ ਹੋ ਜਾਵੇ ਤਾਂ ਕਿਵੇਂ ਰਿਕਵਰ ਕਰਨਾ ਹੈ। ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਉਹਨਾਂ ਉੱਤਰਾਂ ਨੂੰ ਅਸਾਨੀ ਨਾਲ ਪਹੁੰਚਯੋਗ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਲੱਭਣਾ ਔਖਾ।
ਜ਼ਿਆਦਾਤਰ ਟੀਮ ਕਮ ਲੋਕਾਂ ਨਾਲ ਵੱਧ ਸ਼ਿਪ ਕਰਨਾ ਚਾਹੁੰਦੀਆਂ ਹਨ। ਉਹ ਹੋਰ ਐਨਵਾਇਰਨਮੈਂਟ (ਡੈਵ, ਸਟੇਜ, ਪ੍ਰੋਡ, ਅਤੇ ਕਈ ਵਾਰੀ ਪਰ-ਬ੍ਰਾਂਚ ਪ੍ਰੀਵਿਊ), ਹੋਰ ਸਰਵਿਸਜ਼, ਅਤੇ ਹੋਰ ਇੰਟੀਗਰੇਸ਼ਨ ਸਮਰਥਨ ਕਰਦੀਆਂ ਹਨ। ਇਕੱਠੇ ਹੀ, ਰਿਲੀਜ਼ ਸਾਈਕਲ ਛੋਟੇ ਹੁੰਦੇ ਜਾ ਰਹੇ ਹਨ। ਰਾਏ-ਅਧਾਰਿਤ ਟੂਲਿੰਗ ਸਹਾਰਾ ਦਿੱਦੀ ਹੈ ਕਿਉਂਕਿ ਇਹ ਲੰਬੀ ਫੈਸਲਿਆਂ ਦੀ ਸੂਚੀ ਨੂੰ ਘੱਟ ਡਿਫੌਲਟਸ ਵਿੱਚ ਬਦਲ ਦਿੰਦੀ ਹੈ।
ਆਨਬੋਰਡਿੰਗ ਇੱਕ ਵੱਡਾ ਫਾਇਦਾ ਹੈ। ਜਦੋਂ ਵਰਕਫਲੋ ਸੰਗਠਿਤ ਹੁੰਦੇ ਹਨ, ਨਵਾਂ ਹਾਇਰ ਪੰਜ ਵੱਖ-ਵੱਖ ਤਰੀਕੇ ਕਰਨ ਦੀ ਬਜਾਏ ਇੱਕੋ ਹੀ ਰਾਹ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ। ਇਹ ਸਥਿਰਤਾ "ਟ੍ਰਾਈਬਲ ਨੋਲੇਜ" ਸਮੱਸਿਆ ਨੂੰ ਵੀ ਘਟਾਉਂਦੀ ਹੈ ਜਿੱਥੇ ਸਿਰਫ ਇੱਕ ਵਿਅਕਤੀ ਨੂੰ ਯਾਦ ਹੁੰਦਾ ਹੈ ਕਿ ਬਿਲਡ ਜਾਂ ਡਿਪਲੋਇ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ।
ਸਟੈਂਡਰਡਾਈਜ਼ੇਸ਼ਨ ਹੋਰ ਸਪਸ਼ਟ ਫਾਇਦਾ ਹੈ। ਜਦੋਂ ਇੱਕੋ ਚੀਜ਼ ਦੇ ਕਰਨ ਦੇ ਘੱਟ ਤਰੀਕੇ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਇਕ-ਆਫ਼ ਸਕ੍ਰਿਪਟਾਂ, ਖਾਸ ਮਾਮਲਿਆਂ ਅਤੇ ਰੋਕਣ ਯੋਗ ਗਲਤੀਆਂ ਘੱਟ ਹੁੰਦੀਆਂ ਹਨ। ਟੀਮਾਂ ਅਕਸਰ ਇਹੀ ਲਈ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਅਪਨਾਉਂਦੀਆਂ ਹਨ: ਹਕੀਕਤ ਨੂੰ ਛੁਪਾਉਣ ਲਈ ਨਹੀਂ, ਪਰ ਬੋਰਿੰਗ ਹਿੱਸਿਆਂ ਨੂੰ ਦੁਹਰਾਏ ਜਾਣਯੋਗ ਰਣਨੀਤੀਆਂ ਵਿੱਚ ਪੈਕੇਜ ਕਰਨ ਲਈ।
ਦੁਹਰਾਏ ਜਾਣਯੋਗ ਹੋਣਾ ਮਿਆਰੀਕਰਨ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਵਿੱਚ ਵੀ ਮਦਦ ਕਰਦਾ ਹੈ। ਜੇ ਹਰ ਸੇਵਾ ਇੱਕੋ ਬੇਸਲਾਈਨ ਨਾਲ ਬਣਦੀ ਹੈ (ਲੌਗਿੰਗ, ਬੈਕਅਪ, ਲੀਸਟ-ਪ੍ਰਿਵਿਲੇਜ ਪਹੁੰਚ, ਅਲਰਟ), ਤਾਂ ਅੰਦਰੂਨੀ ਸਮੀਖਿਆ ਆਸਾਨ ਹੋ ਜਾਂਦੀ ਹੈ ਅਤੇ ਘਟਨਾ ਪ੍ਰਤਿਕਿਰਿਆ ਤੇਜ਼ ਹੋ ਜਾਂਦੀ ਹੈ। ਤੁਸੀਂ ਇਹ ਵੀ ਜਵਾਬ ਦੇ ਸਕਦੇ ਹੋ "ਕੀ ਬਦਲਿਆ ਅਤੇ ਕਦੋਂ?" ਕਿਉਂਕਿ ਬਦਲਾਵ ਇਕੋ ਰਾਹ ਰਾਹੀਂ ਆਉਂਦੇ ਹਨ।
ਇੱਕ ਪ੍ਰਾਇਕਟਿਕ ਉਦਾਹਰਨ ਇੱਕ ਛੋਟੀ ਟੀਮ ਦਾ ਹੈ ਜੋ ਇੱਕ ਟੂਲ ਚੁਣਦੀ ਹੈ ਜੋ ਇੱਕ ਮਿਆਰੀ React ਫਰੰਟਐਂਡ ਅਤੇ Go ਬੈਕਐਂਡ ਸੈੱਟਅਪ ਜਨਰੇਟ ਕਰਦਾ ਹੈ, ਐਨਵਾਇਰਨਮੈਂਟ ਵੇਰੀਏਬਲ ਰਵਾਇਤਾਂ ਬਰਕਰਾਰ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਸਨੇਪਸ਼ਾਟ ਤੇ ਰੋਲਬੈਕ ਦਿੰਦਾ ਹੈ। ਇਹ ਸੰਚਾਲਕੀ ਕਾਰਜ ਹਟਾਉਂਦਾ ਨਹੀਂ, ਪਰ ਅਨਿਸ਼ਚਿਤਤਾ ਘਟਾਉਂਦਾ ਹੈ ਅਤੇ "ਸਹੀ ਤਰੀਕਾ" ਨੂੰ ਡਿਫੌਲਟ ਬਣਾਉਂਦਾ ਹੈ।
ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਵਧੀਆ ਹਨ ਜਦ ਤੱਕ ਕੁਝ 2 ਵਜੇ ਰਾਤ ਨੂੰ ਟੁੱਟਦਾ ਨਹੀਂ। ਫਿਰ ਇੱਕੱਲੀ ਚੀਜ਼ ਜਿਹੜੀ ਗਿਣਤੀ ਰੱਖਦੀ ਹੈ ਉਹ ਹੈ ਕਿ ਆਨ-ਕਾਲ ਵਿਅਕਤੀ ਦੇਖ ਸਕਦਾ ਹੈ ਕਿ ਸਿਸਟਮ ਕੀ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਸਹੀ ਨਿਯੰਤਰਣ ਬਦਲ ਸਕਦਾ ਹੈ। ਜੇ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਡਿਲਿਵਰੀ ਤੇਜ਼ ਕਰਦਾ ਹੈ ਪਰ ਨਿਧਾਰਣ ਨੂੰ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਤੇਜ਼ੀ ਲਈ ਮੁੜ-ਵਾਰੀ ਆਉਟੇਜਾਂ ਨਾਲ ਸੌਦਾ ਕਰ ਰਹੇ ਹੋ।
ਕੁਝ ਚੀਜ਼ਾਂ ਹਮੇਸ਼ਾਂ ਦਿੱਖਣਯੋਗ ਰਹਿਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ, ਭਾਵੇਂ ਡਿਫੌਲਟ ਹੋਣ:
ਵਿਜ਼ੀਬਿਲਟੀ ਦਾ ਮਤਲਬ ਇਹ ਵੀ ਹੈ ਕਿ ਤੁਸੀਂ ਲਾਜ਼ਮੀ ਸਵਾਲ ਤੇਜ਼ੀ ਨਾਲ ਜਵਾਬ ਦੇ ਸਕੋ: ਕਿਹੜਾ ਵਰਜ਼ਨ ਚੱਲ ਰਿਹਾ ਹੈ, ਕਿਹੜੀ ਕੰਫਿਗ ਪ੍ਰਭਾਵੀ ਹੈ, ਕੱਲ੍ਹ ਤੋਂ ਕੀ ਬਦਲਿਆ, ਅਤੇ ਵਰਕਲੋਡ ਕਿੱਥੇ ਦੌੜ ਰਿਹਾ ਹੈ। ਜੇ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਇਹਨਾਂ ਵਿਸਥਾਰਾਂ ਨੂੰ ਇੱਕ UI ਦੇ ਪਿੱਛੇ ਲੁਕਾਊਂਦਾ ਹੈ ਬਿਨਾਂ ਆਡਿਟ ਟ੍ਰੇਲ ਦੇ, ਤਾਂ ਆਨ-ਕਾਲ ਅਨੁਮਾਨ ਬਣ ਜਾਂਦਾ ਹੈ।
ਦੂਜਾ ਜਰੂਰੀ ਤੱਤ ਐਸਕੀپ ਹੈਚ ਹੈ। ਰਾਏ-ਅਧਾਰਿਤ ਟੂਲਿੰਗ ਨੂੰ ਡਿਫੌਲਟ ਓਵਰਰਾਈਡ ਕਰਨ ਦਾ ਸੁਰੱਖਿਅਤ ਤਰੀਕਾ ਚਾਹੀਦਾ ਹੈ ਜਦੋਂ ਹਕੀਕਤ ਖੁਸ਼ਪਥੀ ਰਾਹ ਨਹੀਂ ਹੁੰਦੀ। ਇਸਦਾ ਅਰਥ ਹੋ ਸਕਦਾ ਹੈ ਟਾਈਮਆਊਟ ਟੀਊਨ ਕਰਨਾ, ਰਿਸੋਰਸ ਲਿਮਿਟ ਬਦਲਣਾ, ਵਰਜ਼ਨ ਪਿਨ ਕਰਨਾ, ਇੱਕ-ਵਾਰੀ ਮਾਈਗ੍ਰੇਸ਼ਨ ਚਲਾਉਣਾ, ਜਾਂ ਬਿਨਾਂ ਹੋਰ ਟੀਮ ਦੀ ਉਡੀਕ ਕੀਤੇ ਰੋਲਬੈਕ ਕਰਨਾ। ਐਸਕੇਪ ਹੈਚ ਦਸਤਾਵੇਜ਼ਤ, ਪਰਮੀਸ਼ਨ-ਅਧੀਨ ਅਤੇ ਵਾਪਸ ਕਰਨਯੋਗ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ, "ਇੱਕ ਵਿਅਕਤੀ ਜਾਣਦਾ ਹੈ" ਵਾਲੀ ਗੁਪਤ ਕਮਾਂਡ ਨਾ ਹੋਣ।
ਅੰਤ ਵਿਚ ਜ਼ਿਮੇਵਾਰੀ ਹੈ। ਜਦੋਂ ਟੀਮ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਅਪਣਾਉਂਦੀ ਹੈ, ਤਾਂ ਪਹਿਲਾਂ ਇਹ ਫੈਸਲਾ ਕਰੋ ਕਿ ਨਤੀਜਿਆਂ ਲਈ ਕੌਣ ਜ਼ਿਮੇਵਾਰ ਹੋਵੇਗਾ, ਸਿਰਫ ਉਪਯੋਗ ਨਹੀਂ। ਅਗਰ ਤੁਸੀਂ ਇਹ ਜਵਾਬ ਦੇ ਸਕੋ ਕਿ: ਸੇਵਾ ਫੇਲ ਹੋਣ 'ਤੇ ਪੇਜਰ ਕੌਣ ਲੈਂਦਾ ਹੈ, ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਸੈਟਿੰਗਸ ਕੋਈ ਕੌਣ ਬਦਲ ਸਕਦਾ ਅਤੇ ਕਿਵੇਂ ਸਮੀਖਿਆ ਹੁੰਦੀ ਹੈ, ਕੌਣ ਛੂਟ ਮਨਜ਼ੂਰ ਕਰਦਾ ਹੈ, ਟੈਂਪਲੇਟਸ ਅਤੇ ਡਿਫੌਲਟ ਕੌਣ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਘਟਨਾਵਾਂ ਦੀ ਜਾਂਚ ਅਤੇ ਫਿਕਸ ਕੌਣ ਕਰਦਾ ਹੈ — ਤਾਂ ਤੁਸੀਂ ਬਾਅਦ ਦੀ ਦਰਦਨਾਕ ਅਸਪਸ਼ਟਤਾ ਤੋਂ ਬਚ ਸਕਦੇ ਹੋ।
ਜੇ ਤੁਸੀਂ ਉੱਚ-ਸਤਹ ਪਲੇਟਫਾਰਮ ਵਰਤ ਰਹੇ ਹੋ, ਜਿਵੇਂ ਕਿ Koder.ai ਐਪ ਤੇਜ਼ੀ ਨਾਲ ਸਮਰਪਿਤ ਕਰਨ ਲਈ, ਇਸਨੂੰ ਉਹੀ ਮਿਆਰ ਰੱਖ ਕੇ ਰੱਖੋ: ਐਕਸਪੋਰਟ ਕਰਨਯੋਗ ਕੋਡ ਅਤੇ ਕੰਫਿਗ, ਸਪਸ਼ਟ ਰਨਟਾਈਮ ਜਾਣਕਾਰੀ, ਅਤੇ ਪ੍ਰੋਡਕਸ਼ਨ ਡੀਬੱਗ ਕਰਨ ਲਈ ਕਾਫੀ ਆਬਜ਼ਰਵੇਬਿਲਟੀ ਬਿਨਾਂ ਕਿਸੇ ਗੇਟਕੀਪਰ ਦੀ ਉਡੀਕ ਕਰਨ ਦੇ। ਐਸਾ ਕਰਕੇ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਮਦਦਗਾਰ ਰਹਿੰਦੇ ਹਨ ਨਾ ਕਿ ਬਲੈਕ ਬਾਕਸ ਬਣਦੇ ਹਨ।
ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਲੈਅਰ ਚੁਣਨਾ ਇਹਦੇ ਨਾਲ ਜ਼ਿਆਦਾ ਸੰਬੰਧਤ ਨਹੀੰ ਕਿ ਕੀ ਆਧੁਨਿਕ ਲੱਗਦਾ ਹੈ, ਪਰ ਇਹ ਨਾਲ ਕਿ ਤੁਸੀਂ ਕਿਹੜੇ ਦਰਦ ਨੂੰ ਦੂਰ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ। ਜੇ ਤੁਸੀਂ ਇੱਕ ਵਾਕ ਵਿੱਚ ਦਰਦ ਨਹੀਂ ਨਾਂਮ ਕਰ ਸਕਦੇ, ਤਾਂ ਸੰਭਵ ਹੈ ਕਿ ਤੁਸੀਂ ਇੱਕ ਹੋਰ ਟੂਲ ਖਰੀਦ ਲੈਓਗੇ ਜਿਸ ਨੂੰ ਰੱਖਨਾ ਪਵੇਗਾ।
ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਉਹ ਖਾਸ ਬੋਤਲ-ਨੈਕ ਲਿਖੋ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਹੱਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ। ਇਸ ਨੂੰ ਨਿਰਧਾਰਤ ਅਤੇ ਮਾਪਯੋਗ ਬਣਾਓ: ਰਿਲੀਜ਼ ਤਿੰਨ ਦਿਨ ਲੈਂਦੇ ਹਨ ਕਿਉਂਕਿ ਐਨਵਾਇਰਨਮੈਂਟ ਮੈਨੁਅਲ ਹਨ; ਘਟਨਾਵਾਂ ਉੱਪਰ ਚੜ੍ਹਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਕੰਫਿਗ ਡ੍ਰਿਫਟ ਹੁੰਦੇ ਹਨ; ਕਲਾਉਡ ਖਰਚ ਅਣਪੇਛਾਣਯੋਗ ਹੈ। ਇਹ ਸੰਭਾਲਦਾ ਹੈ ਕਿ ਡੈਮੋਜ਼ ਚਮਕਦਾਰ ਹੁੰਦਿਆਂ ਸਮੇਂ ਗੱਲ-ਬਾਤ ਜ਼ਮੀਨੀ ਰਹੇ।
ਫੇਰ ਆਪਣੇ ਨਾਨ-ਨੈਗੋਸ਼ੀਏਬਲ ਨਿਰਧਾਰਤ ਕਰੋ। ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਸ਼ਾਮਿਲ ਹੁੰਦੇ ਹਨ ਕਿ ਡੇਟਾ ਕਿੱਥੇ ਰਹਿ ਸਕਦਾ ਹੈ, ਆਡਿਟ ਲਈ ਕੀ ਲੌਗ ਰੱਖਣੇ ਹਨ, ਅਪਟਾਈਮ ਉਮੀਦਾਂ, ਅਤੇ ਟੀਮ ਕਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਰਾਤ 2 ਵਜੇ ਸੰਭਾਲ ਸਕਦੀ ਹੈ। ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਉਸ ਵੇਲੇ ਵਧੀਆ ਕੰਮ ਕਰਦੇ ਹਨ ਜਦੋਂ ਉਹ ਹਕੀਕਤੀ ਬੰਧਨਾਂ ਨਾਲ ਮਿਲਦੇ ਹਨ, ਨਾ ਕਿ ਆਕਾਂਛਿਤ ਨਿਰਦੇਸ਼ਾਂ ਨਾਲ।
ਫਿਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਨੂੰ ਇੱਕ ਠੇਕੇ ਵਾਂਗ ਕਰੋ, ਵਾਅਦੇ ਵਾਂਗ ਨਹੀਂ। ਪੁੱਛੋ ਕਿ ਤੁਸੀਂ ਕੀ ਦਿੰਦੇ ਹੋ (ਇਨਪੁਟ), ਤੁਹਾਨੂੰ ਕੀ ਮਿਲਦਾ ਹੈ (ਆਉਟਪੁੱਟ), ਅਤੇ ਜਦੋਂ ਗਲਤ ਹੋਵੇ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ। ਇੱਕ ਚੰਗਾ ਠੇਕਾ ਫੇਲ ਨੂੰ ਨਿਰਸ ਰੱਖਦਾ ਹੈ।
ਇੱਕ ਸਧਾਰਨ ਤਰੀਕਾ:
ਇੱਕ Konkreet ਉਦਾਹਰਨ: ਇੱਕ ਟੀਮ ਛੋਟੀ ਵੈੱਬ ਐਪ ਲਈ ਇੱਕ ਰਾਏ-ਅਧਾਰਿਤ ਰਸਤਾ ਚੁਣ ਸਕਦੀ ਹੈ ਜੋ React ਫਰੰਟਐਂਡ ਅਤੇ Go ਬੈਕਐਂਡ ਨਾਲ PostgreSQL ਜਨਰੇਟ ਕਰਦਾ ਹੈ, ਪਰ ਫਿਰ ਵੀ ਲੌਗ, ਮਾਈਗ੍ਰੇਸ਼ਨ ਅਤੇ ਡਿਪਲੋਇ ਇਤਿਹਾਸ ਦੀ ਸਪਸ਼ਟ ਪਹੁੰਚ ਲਾਜ਼ਮੀ ਕਰਦਾ ਹੈ। ਜੇ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਸਕੀਮਾ ਬਦਲਾਂ ਜਾਂ ਰੋਲਬੈਕ ਨੂੰ ਗੁੰਝਲਦਾਰ ਬਣਾ ਦਿੰਦੀ ਹੈ, ਤਾਂ ਇਹ ਖਤਰਨਾਕ ਹੈ ਭਾਵੇਂ ਇਹ ਤੇਜ਼ੀ ਨਾਲ ਸ਼ਿਪ ਕਰਵਾਏ।
ਅਧਿਕਾਰਤਤਾ ਬਾਰੇ ਸਖ਼ਤ ਰਹੋ। ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਨੂੰ ਦੁਹਰਾਏ ਜਾਣ ਵਾਲੇ ਕੰਮ ਘਟਾਉਣੇ ਚਾਹੀਦੇ ਹਨ, ਨਾ ਕਿ ਇੱਕ ਨਵਾਂ ਬਲੈਕ ਬਾਕਸ ਜੋ ਸਿਰਫ ਇੱਕ ਵਿਅਕਤੀ ਹੀ ਸਮਝਦਾ ਹੋਵੇ। ਜੇ ਤੁਹਾਡਾ ਆਨ-ਕਾਲ ਇੰਜੀਨੀਅਰ ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ "ਕੀ ਬਦਲਿਆ?" ਅਤੇ "ਅਸੀਂ ਕਿਵੇਂ ਰੋਲਬੈਕ ਕਰੀਏ?" ਦਾ ਜਵਾਬ ਨਹੀਂ ਦੇ ਸਕਦਾ, ਤਾਂ ਲੇਅਰ ਬਹੁਤ ਅਪਾਰਦਰਸ਼ੀ ਹੈ।
ਪੰਜ-ਵਿਆਕਤੀ ਟੀਮ ਨੂੰ ਇੱਕ ਕਸਟਮਰ ਪੋਰਟਲ ਚਾਹੀਦਾ ਹੈ: ਇੱਕ React UI, ਇੱਕ ਛੋਟੀ API, ਅਤੇ PostgreSQL ਡੇਟਾਬੇਸ। ਲਕੜੀ ਸਿੱਧਾ ਹੈ: ਹਫਤਿਆਂ ਵਿੱਚ ਸ਼ਿਪ ਕਰੋ, ਮਹੀਨਿਆਂ ਵਿੱਚ ਨਹੀਂ, ਅਤੇ ਆਨ-ਕਾਲ ਦਰਦ ਮਿਆਰਕ ਰੱਖੋ।
ਉਹ ਦੋ ਰਾਹ ਵੇਖਦੇ ਹਨ।
ਉਹ ਕਲਾਉਡ ਨੈੱਟਵਰਕਿੰਗ, ਇੱਕ ਕੰਟੇਨਰ ਰਨਟਾਈਮ, CI/CD, ਸੀਕ੍ਰੇਟ, ਲੌਗਿੰਗ ਅਤੇ ਬੈਕਅੱਪ ਸੈਟਅੱਪ ਕਰਦੇ ਹਨ। ਇਸ ਰਾਹ 'ਚ ਕੋਈ "ਗਲਤ" ਨਹੀਂ, ਪਰ ਪਹਿਲਾ ਮਹੀਨਾ ਫੈਸਲਿਆਂ ਅਤੇ ਗਲਿਊ ਵਿੱਚ ਲੰਘ ਜਾਂਦਾ ਹੈ। ਹਰ ਐਨਵਾਇਰਨਮੈਂਟ ਥੋੜ੍ਹਾ ਵੱਖਰਾ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਕਿਸੇ ਨੇ "ਸਟੇਜਿੰਗ ਚਲਾਉਣ ਲਈ ਥੋੜ੍ਹਾ ਟਵਿਕ ਕੀਤਾ"।
ਕੋਡ ਸਮੀਖਿਆ ਹੁੰਦੀ ਹੈ, ਪਰ ਆਧਾ ਚਰਚਾ ਡਿਪਲੋਇ YAML ਅਤੇ ਅਨੁਮਤੀਆਂ ਬਾਰੇ ਹੁੰਦੀ ਹੈ, ਨਰ ਪੋਰਟਲ ਬਾਰੇ ਨਹੀਂ। ਪਹਿਲਾ ਪ੍ਰੋਡਕਸ਼ਨ ਡਿਪਲੋਇ ਕੰਮ ਕਰਦਾ ਹੈ, ਪਰ ਟੀਮ ਹੁਣ ਹਰ ਤਬਦੀਲੀ ਲਈ ਲੰਬੀ ਚੈਕਲਿਸਟ ਦੀ ਮਾਲਿਕ ਹੈ।
ਬਜਾਏ ਇਸਦੇ, ਉਹ ਇੱਕ ਰਾਏ-ਅਧਾਰਿਤ ਵਰਕਫਲੋ ਚੁਣਦੇ ਹਨ ਜਿੱਥੇ ਪਲੇਟਫਾਰਮ ਇੱਕ ਸਟੈਂਡਰਡ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਐਪ ਬਣਾਉਣ, ਡਿਪਲੋਇ ਕਰਨ ਅਤੇ ਚਲਾਉਣ ਲਈ। ਉਦਾਹਰਨ ਵਜੋਂ, ਉਹ Koder.ai ਵਰਤਦੇ ਹਨ ਜੋ ਚੈਟ ਤੋਂ ਵੈੱਬ ਐਪ, API ਅਤੇ ਡੇਟਾਬੇਸ ਸੈਟਅਪ ਜਨਰੇਟ ਕਰਦਾ ਹੈ, ਫਿਰ ਉਸਦੀ ਡਿਪਲੋਇ ਅਤੇ ਹੋਸਟਿੰਗ ਫੀਚਰ, ਕਸਟਮ ਡੋਮੇਨ, ਅਤੇ ਸਨੇਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ।
ਸਰਲ ਤੌਰ 'ਤੇ ਜੋ ਚੰਗਾ ਹੁੰਦਾ ਹੈ:
ਕੁਝ ਹਫ਼ਤਿਆਂ ਮਗਰੋਂ, ਟਰੇਡ-ਆਫ਼ ਸਾਹਮਣੇ ਆਉਂਦੇ ਹਨ। ਲਾਗਤਾਂ ਘੱਟ ਸਪਸ਼ਟ ਹੁੰਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਟੀਮ ਨੇ ਬਿੱਲ ਨੂੰ ਲਾਈਨ ਦਰ ਲਾਈਨ ਡਿਜ਼ਾਇਨ ਨਹੀਂ ਕੀਤਾ। ਉਹ ਸੀਮਾ ਤੇ ਉਠਦੇ ਹਨ: ਇੱਕ ਬੈਕਗਰਾਊਂਡ ਜੌਬ ਨੂੰ ਖਾਸ ਟਿਊਨਿੰਗ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਪਲੇਟਫਾਰਮ ਡਿਫੌਲਟ ਉਹਨਾਂ ਦੇ ਵਰਕਲੋਡ ਲਈ ਪੂਰੇ ਤੌਰ 'ਤੇ ਪਰਫੈਕਟ ਨਹੀਂ।
ਇੱਕ ਘਟਨਾ ਦੌਰਾਨ, ਪੋਰਟਲ ਸੁਸਤ ਹੋ ਜਾਂਦਾ ਹੈ। ਟੀਮ ਨੂੰ ਪਤਾ ਹੈ ਕਿ ਕੁਝ ਗਲਤ ਹੈ, ਪਰ ਨਹੀਂ ਪਤਾ ਕਿਉਂ। ਕੀ ਇਹ ਡੇਟਾਬੇਸ ਹੈ, API ਹੈ ਜਾਂ upstream ਸਰਵਿਸ? ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਉਨ੍ਹਾਂ ਨੂੰ ਸ਼ਿਪ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ, ਪਰ ਇਹਨਾਂ ਵਿਸਥਾਰਾਂ ਨੂੰ ਧੁੰਦਲਾ ਕਰ ਦਿੱਤਾ ਜੋ ਆਨ-ਕਾਲ ਦੌਰਾਨ ਲੋੜੇ ਜਾਂਦੀਆਂ।
ਉਹ ਪਲੇਟਫਾਰਮ ਨੂੰ ਛੱਡੇ ਬਿਨਾਂ ਇਹ ਠੀਕ ਕਰਦੇ ਹਨ। ਉਹ ਕੁਝ ਡੈਸ਼ਬੋਰਡ ਜੋੜਦੇ ਹਨ ਬੇਨਤੀ ਦਰ, ਐਰਰ, ਲੈਟੈਂਸੀ ਅਤੇ ਡੇਟਾਬੇਸ ਹੈਲਥ ਲਈ। ਉਹ ਕੁਝ ਮਨਜ਼ੂਰ ਕੀਤੇ ਓਵਰਰਾਈਡ ਲਿਖਦੇ ਹਨ ਜੋ ਉਹ ਬਦਲ ਸਕਦੇ ਹਨ (ਟਾਈਮਆਊਟ, ਇੰਸਟੈਂਸ ਸਾਈਜ਼, ਕਨੈਕਸ਼ਨ ਪੁול ਲਿਮਿਟ)। ਉਹ ਸਾਫ਼ ਜ਼ਿਮੇਵਾਰੀ ਵੀ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਨ: ਪ੍ਰੋਡਕਟ ਟੀਮ ਐਪ ਵਰਤੋਂ ਦੀ ਜ਼ਿੰਮੇਵਾਰ, ਇੱਕ ਵਿਅਕਤੀ ਪਲੇਟਫਾਰਮ ਸੈਟਿੰਗਸ ਲਈ, ਅਤੇ ਹਰ ਕੋਇ ਜਾਣਦਾ ਹੈ ਕਿ ਘਟਨਾ ਨੋਟ ਕਿੱਥੇ ਹਨ।
ਨਤੀਜਾ ਇੱਕ ਸਿਹਤਮੰਦ ਮੱਧ-ਪਥ ਹੈ: ਤੇਜ਼ ਡਿਲਿਵਰੀ, ਤੇਰਾ ਕਾਫੀ ਓਪਰੇਸ਼ਨਲ ਵਿਜ਼ੀਬਿਲਟੀ ਤਾਂ ਜੋ ਜਦੋਂ ਚੀਜ਼ਾਂ ਟੁੱਟਣ ਤਾਂ ਸ਼ਾਂਤ ਰਹਿ ਸਕੋ।
ਰਾਏ-ਅਧਾਰਿਤ ਟੂਲਿੰਗ ਆਰਾਮਦਾਇਕ ਲੱਗ ਸਕਦੀ ਹੈ: ਘੱਟ ਫੈਸਲੇ, ਘੱਟ ਚਲਦੇ ਹਿੱਸੇ, ਤੇਜ਼ੀ ਨਾਲ ਸ਼ੁਰੂਆਤ। ਮਸਲਾ ਇਹ ਹੈ ਕਿ ਉਹੀ ਗਾਰਡਰੇਲ ਜੋ ਤੁਹਾਨੂੰ ਤੇਜ਼ ਕਰਦੇ ਹਨ, ਅਣਦੇਖੇ ਖੇਤਰ ਬਣਾਉ ਸਕਦੇ ਹਨ ਜੇ ਤੁਸੀਂ ਟੂਲ ਦੇ فرضੀ ਧਾਰਣਿਆਂ ਦੀ ਜਾਂਚ ਨਾ ਕਰੋ।
ਕੁਝ ਫੰਦ ਮੁੜ-ਮੁੜ ਨਜ਼ਰ ਆਉਂਦੇ ਹਨ:
ਲੋਕਪ੍ਰਿਯਤਾ ਖਾਸ ਕਰਕੇ ਧੁਕਧੁਕੀ ਵਾਲੀ ਹੈ। ਇੱਕ ਟੂਲ ਕਿਸੇ ਕੰਪਨੀ ਲਈ ਬੇਹਤਰੀਨ ਹੋ ਸਕਦਾ ਹੈ ਜਿਸ ਕੋਲ ਸਮਰਪਿਤ ਪਲੇਟਫਾਰਮ ਟੀਮ ਹੈ, ਪਰ ਇੱਕ ਛੋਟੀ ਟੀਮ ਲਈ ਜੋ ਸਿਰਫ ਪੇਸ਼ਗੀ ਡਿਪਲੋਇਜ਼ ਅਤੇ ਸਪਸ਼ਟ ਲੌਗ ਚਾਹੁੰਦੀ ਹੈ, ਦੁੱਖਦਾਇਕ ਹੋ ਸਕਦਾ ਹੈ। ਪੁੱਛੋ ਕਿ ਤੁਹਾਨੂੰ ਕੀ ਸਮਰਥਨ ਕਰਨਾ ਪਵੇਗਾ, ਨਾ ਕਿ ਲੋਕ ਕੀ ਬੋਲਦੇ ਹਨ।
ਰਨਬੁੱਕ ਛੱਡਣਾ ਹੋਰ ਆਮ ਨੁਕਸ ਹੋ ਸਕਦਾ ਹੈ। ਭਲੇ ਹੀ ਤੁਹਾਡਾ ਪਲੇਟਫਾਰਮ ਬਿਲਡ ਅਤੇ ਡਿਪਲੋਇ ਆਟੋਮੇਟ ਕਰਦਾ ਹੋਵੇ, ਪਰ ਕਿਸੇ ਨੂੰ ਫਿਰ ਵੀ ਪੇਜ ਕੀਤਾ ਜਾਵੇਗਾ। ਮੁੱਢਲੀਆਂ ਚੀਜ਼ਾਂ ਲਿਖੋ: ਕਿੱਥੇ ਹੈਲਥ ਵੇਖਣੇ, ਜਦੋਂ ਡਿਪਲੋਇ ਫਸ ਜਾਵੇ ਤਾਂ ਕੀ ਕਰਨਾ, ਸੀਕ੍ਰੇਟ ਕਿਵੇਂ ਰੋਟੇਟ ਕਰਣੇ, ਅਤੇ ਪ੍ਰੋਡ ਦੇ ਬਦਲਾਵ ਨੂੰ ਕਿਉਂ ਮਨਜ਼ੂਰ ਕਰਨਾ।
ਰੋਲਬੈਕ ਨੂੰ ਵੱਡੀ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ। ਟੀਮ ਅਕਸਰ ਸੋਚਦੇ ਹਨ ਕਿ ਰੋਲਬੈਕ ਦਾ ਮਤਲਬ "ਇੱਕ ਵਰਜ਼ਨ ਪਿੱਛੇ ਜਾਣਾ" ਹੈ। ਹਕੀਕਤ ਵਿੱਚ, ਰੋਲਬੈਕ ਅਕਸਰ ਫੇਲ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਡੇਟਾਬੇਸ ਸਕੀਮਾ ਬਦਲ ਗਿਆ ਜਾਂ ਬੈਕਗਰਾਊਂਡ ਜੌਬ ਨਵਾਂ ਡੇਟਾ ਲਿਖਦੇ ਰਹਿੰਦੇ ਹਨ। ਆਮ ਸਲੇਟ: ਇੱਕ ਵੈੱਬ ਐਪ ਡਿਪਲੋਇ ਵਿੱਚ ਇੱਕ ਮਾਈਗ੍ਰੇਸ਼ਨ ਸ਼ਾਮਿਲ ਹੁੰਦੀ ਹੈ ਜੋ ਇੱਕ ਕਾਲਮ ਹਟਾ ਦਿੰਦੀ ਹੈ। ਡਿਪਲੋਇ ਟੁੱਟਦਾ ਹੈ, ਤੁਸੀਂ ਕੋਡ ਰੋਲਬੈਕ ਕਰਦੇ ਹੋ, ਪਰ ਪੁਰਾਣਾ ਕੋਡ ਗੁੰਮ ਹੋਏ ਕਾਲਮ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਤਦ ਤੱਕ ਡਾਊਨ ਰਹਿੰਦੇ ਹੋ ਜਦ ਤੱਕ ਡਾਟਾ ਠੀਕ ਨਾ ਕੀਤਾ ਜਾਵੇ।
ਫਜ਼ੀ ਜ਼ਿਮੇਵਾਰੀ ਤੋਂ ਬਚਣ ਲਈ, ਸ਼ੁਰੂ ਵਿੱਚ ਸੀਮਾਵਾਂ 'ਤੇ ਸਹਿਮਤੀ ਕਰੋ। ਅਕਸਰ ਇੱਕ ਖੇਤਰ ਲਈ ਇੱਕ ਮਾਲਿਕ ਨਾਮਿਤ ਕਰਨਾ ਕਾਫੀ ਹੁੰਦਾ ਹੈ:
ਡੇਟਾ ਅਤੇ ਕੰਪਲਾਇੰਸ ਨੂੰ ਅੰਤ 'ਤੇ ਛੱਡੋ ਨਾ। ਜੇ ਤੁਹਾਨੂੰ ਖਾਸ ਦੇਸ਼ਾਂ ਵਿੱਚ ਵਰਕਲੋਡ ਚਲਾਉਣੇ ਪੈਣਗੇ ਜਾਂ ਡੇਟਾ ਟਰਾਂਸਫਰ ਨਿਯਮ ਮੀਟ ਕਰਨੇ ਹੋਣ, ਤਾਂ ਇਹ ਜਾਂਚੋ ਕਿ ਤੁਹਾਡਾ ਟੂਲ ਰੀਜਨ ਚੋਣਾਂ, ਆਡਿਟ ਟ੍ਰੇਲ, ਅਤੇ ਐਕਸੈਸ ਕੰਟਰੋਲ ਸਹਿਯੋਗ ਕਰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। Koder.ai ਵਰਗੇ ਟੂਲ ਇਹ ਗੱਲ ਪਹਿਲਾਂ ਹੀ ਉੱਠਾ ਸਕਦੇ ਹਨ ਕਿ ਟੀਮਾਂ ਕਿੱਥੇ ਐਪ ਚਲਾਉਣੀਆਂ ਹਨ, ਪਰ ਤੁਸੀਂ ਫਿਰ ਵੀ ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਇਹ ਤੁਹਾਡੇ ਗਾਹਕਾਂ ਅਤੇ ਕੰਟਰੈਕਟਾਂ ਨਾਲ ਮਿਲਦਾ ਹੈ।
ਇੱਕ ਅਬਸਟ੍ਰੈਕਸ਼ਨ 'ਤੇ ਟੀਮ ਦੀ ਸਟਰategy ਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਤੇਜ਼ "ਕਮਿੱਟ ਟੈਸਟ" ਕਰੋ। ਮਕਸਦ ਇਹ ਸਾਬਤ ਕਰਨਾ ਨਹੀਂ ਕਿ ਟੂਲ ਪਰਫੈਕਟ ਹੈ। ਮਕਸਦ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ ਕਿ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਰੁਟੀਨ ਪਰਚਲਨਾਂ ਨੂੰ ਕੇੁਝਰ ਨਹੀਂ ਬਣਾਏਗੀ ਜਦੋਂ ਕੁਝ ਟੁੱਟੇ।
ਇੱਕ ਨੇੜਲਾ ਜਾਂਚ ਕਰਨ ਲਈ ਕਿਸੇ ਨੂੰ ਜੋ ਮੁਲਾਂਕਣ 'ਚ ਸ਼ਾਮਿਲ ਨਹੀਂ ਸੀ, ਇਹ ਉੱਤਰ ਦਿਸ ਦੇ ਜਿਸ ਨੂੰ ਉਹਨਾਂ ਦਿੱਤੇ ਜਾਣ। ਜੇ ਉਹ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਤਾਂ ਤੁਸੀਂ ਸ਼ਾਇਦ ਅੱਜ ਤੇਜ਼ੀ ਖਰੀਦ ਰਹੇ ਹੋ ਪਰ ਬਾਦ ਵਿੱਚ ਉਲਝਣ ਲੈ ਰਹੇ ਹੋ।
ਜੇ ਤੁਸੀਂ ਹੋਸਟਡ ਪਲੇਟਫਾਰਮ ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਇਹ ਸਵਾਲ ਸਪਸ਼ਟ ਸਮਰੱਥਾਵਾਂ ਨਾਲ ਜੋੜੋ। ਉਦਾਹਰਨ ਵਜੋਂ, ਸੋਰਸ ਕੋਡ ਐਕਸਪੋਰਟ, ਸਨੇਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ, ਅਤੇ ਸਪਸ਼ਟ ਡਿਪਲੋਇ ਅਤੇ ਹੋਸਟਿੰਗ ਕੰਟਰੋਲ ਰਿਕਵਰ ਕਰਨ ਨੂੰ ਆਸਾਨ ਬਣਾਉਂਦੇ ਹਨ ਅਤੇ ਨਿਰੀਭਰਤਾ ਘਟਾਉਂਦੇ ਹਨ।
ਇੱਕ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਨੂੰ ਅਪਣਾਉਣਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਬ ਹੈ ਜਦ ਇਹ ਇੱਕ ਛੋਟਾ ਅੱਪਗਰੇਡ ਮਹਿਸੂਸ ਹੋਵੇ, ਕੋਈ ਰੀਰਾਈਟ ਨਾ। ਇੱਕ ਸੰਕੁਚਿਤ ਹਿੱਸੇ ਨੂੰ ਚੁਣੋ, ਸਿੱਖੋ ਕਿ ਟੂਲ ਕੀ ਛੁਪਾਉਂਦਾ ਹੈ, ਫਿਰ ਹੀ ਟੀਮ ਨੇ ਇਸ ਨੂੰ ਅਸਲ ਤਣਾਵ ਹੇਠਾਂ ਦੇਖਿਆ ਹੋਵੇ ਤਬ ਵਧਾਓ।
ਇੱਕ ਹਲਕਾ ਅਪਣਾਇਸ਼ ਯੋਜਨਾ ਜੋ ਤੁਹਾਨੂੰ ਈਮਾਨਦਾਰ ਰੱਖੇ:
ਸਫਲਤਾ ਨੂੰ ਮਾਪਯੋਗ ਬਣਾਓ। ਕੁਝ ਅੰਕੜੇ ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਟ੍ਰੈੱਕ ਕਰੋ ਤਾਂ ਜੋ ਗੱਲ-ਬਾਤ ਧਰਤੀ 'ਤੇ ਰਹੇ: ਨਵੇਂ ਮੈਂਬਰ ਲਈ ਪਹਿਲਾ ਡਿਪਲੋਇ ਦਾ ਸਮਾਂ, ਖ਼ਰਾਬ ਰਿਲੀਜ਼ ਤੋਂ ਬਹਾਲੀ ਦਾ ਸਮਾਂ, ਅਤੇ ਇੱਕ ਆਮ ਬਦਲਾਵ ਲਈ ਕਿੰਨੇ ਮੈਨੂਅਲ ਕਦਮ ਲੱਗਦੇ ਹਨ। ਜੇ ਟੂਲ ਡਿਲਿਵਰੀ ਤੇਜ਼ ਕਰਦਾ ਹੈ ਪਰ ਰਿਕਵਰੀ ਨੂੰ ਧੀਮਾ ਕਰ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਉਹ ਟਰੇਡ-ਆਫ਼ ਜ਼ਾਹਿਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਇੱਕ ਸਧਾਰਨ "ਅਬਸਟ੍ਰੈਕਸ਼ਨ README" ਬਣਾਓ ਅਤੇ ਕੋਡ ਕੋਲ ਰੱਖੋ। ਇੱਕ ਪੰਨਾ ਕਾਫੀ ਹੈ। ਇਸ ਵਿੱਚ ਲਿਖੋ ਕਿ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਕੀ ਕਰਦੀ ਹੈ, ਕੀ ਛੁਪਾਉਂਦੀ ਹੈ, ਅਤੇ ਜਦੋਂ ਕੁਝ ਟੁੱਟੇ ਤਾਂ ਕਿੱਥੇ ਦੇਖਣਾ ਹੈ (ਲੌਗ ਕਿੱਥੇ, ਜਨਰੇਟ ਕੀਤੇ ਕੰਫਿਗ ਕਿੱਥੇ ਵੇਖਣ, ਸੀਕ੍ਰੇਟ ਕਿਵੇਂ ਇੰਜੈਕਟ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਲੋਕਲ ਵਿੱਚ ਡਿਪਲੋਇ ਕਿਸ ਤਰ੍ਹਾਂ ਰੀਪ੍ਰੋਡਯੂਸ ਕਰਨਾ)। ਮਕਸਦ ਇਹ ਨਹੀਂ ਕਿ ਹਰ ਵਿਸਥਾਰ ਸਿਖਾਉਣਾ, ਪਰ 2 ਵਜੇ ਰਾਤ ਨੂੰ ਡੀਬੱਗ ਕਰਨਾ ਪ੍ਰੇਡਿਕਟੇਬਲ ਬਣਾਉਣਾ।
ਜੇ ਤੁਸੀਂ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਵਧਣਾ ਚਾਹੁੰਦੇ ਹੋ ਬਿਨਾਂ ਮਾਲਕੀ ਖੋ ਦੇ, ਤਾਂ ਉਹ ਟੂਲ جيڪي ਅਸਲ ਪ੍ਰੋਜੈਕਟ ਜਨਰੇਟ ਅਤੇ ਚਲਾਉਂਦੇ ਹਨ ਇੱਕ ਪ੍ਰਯੋਗੀ ਪੁਲ ਬਣ ਸਕਦੇ ਹਨ। ਉਦਾਹਰਨ ਵਜੋਂ, Koder.ai (koder.ai) ਇੱਕ ਟੀਮ ਨੂੰ ਚੈਟ ਰਾਹੀਂ ਐਪ ਪ੍ਰੋਟੋਟਾਈਪ ਅਤੇ ਸ਼ਿਪ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਪਲੈਨਿੰਗ ਮੋਡ, ਡਿਪਲੋਇਮੈਂਟ, ਸਨੇਪਸ਼ਾਟ ਅਤੇ ਰੋਲਬੈਕ, ਨਾਲ-ਨਾਲ ਸੋਰਸ ਕੋਡ ਐਕਸਪੋਰਟ ਜੋ ਤੁਹਾਨੂੰ ਕੰਟਰੋਲ ਰੱਖਣ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਜਦੋਂ ਚਾਹੋ ਤਬ ਅੱਗੇ ਵਧਣ ਦੀ ਆਜ਼ਾਦੀ ਦਿੰਦਾ ਹੈ।
ਇੱਕ ਪ੍ਰਾਇਕਟਿਕ ਅਗਲਾ ਕਦਮ: ਇਸ ਮਹੀਨੇ ਇੱਕ ਵਰਕਫਲੋ ਚੁਣੋ ਜਿਸਨੂੰ ਤੁਸੀਂ ਮਿਆਰੀਕਰਨ ਕਰਨਾ ਹੈ (ਐਪ ਡਿਪਲੋਇ, ਮਾਈਗ੍ਰੇਸ਼ਨ ਚਲਾਉਣਾ, ਜਾਂ ਪ੍ਰੀਵਿਊ ਐਨਵਾਇਰਨਮੈਂਟ ਬਣਾਉਣਾ), ਉਸ ਲਈ ਅਬਸਟ੍ਰੈਕਸ਼ਨ README ਲਿਖੋ, ਅਤੇ 30 ਦਿਨਾਂ ਵਿੱਚ ਤੁਸੀਂ ਜੋ ਦੋ ਮੈਟ੍ਰਿਕਸ ਦੇਖੋਗੇ ਉਹਨਾਂ 'ਤੇ ਸਹਿਮਤ ਹੋ ਜਾਓ।
ਇੱਕ ਇੰਫਰਾਸਟ੍ਰੱਕਚਰ ਅਬਸਟ੍ਰੈਕਸ਼ਨ ਅਨੇਕ ਸੰਚਾਲਕੀ ਕਦਮਾਂ (ਬਿਲਡ, ਡਿਪਲੋਇ, ਕੰਫਿਗ, ਅਨੁਮਤੀਆਂ, ਹੈਲਥ ਚੈੱਕ) ਨੂੰ ਕੁਝ ਘੱਟ ਕਾਰਵਾਈਆਂ 'ਤੇ ਘਟਾਉਂਦਾ ਹੈ ਤਾਂ ਜੋ ਇੱਕ ਸਮਝਦਾਰ ਡਿਫੌਲਟ ਮਿਲੇ।
ਫਾਇਦਾ ਇਹ ਹੈ ਕਿ ਬਾਰ-ਬਾਰ ਫੈਸਲੇ ਘਟ ਜਾਂਦੇ ਹਨ। ਖਤਰਾ ਇਹ ਹੈ ਕਿ ਜਦੋਂ ਕੁਝ ਟੁੱਟਦਾ ਹੈ ਤਾਂ ਇਹ ਪਤਾ ਕਰਨਾ ਮੁਸ਼ਕਿਲ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਅਸਲ ਬਦਲਾਵ ਕੀ ਸੀ ਅਤੇ ਕਿਵੇਂ ਰੀਕਵਰ ਕਰਨਾ ਹੈ।
ਕਿਉਂਕਿ ਬੁਨਿਆਦੀ ਕੰਮ ਦੁਹਰਾਏ ਜਾਂਦੇ ਹਨ: ਐਨਵਾਇਰਨਮੈਂਟ, ਸੀਕ੍ਰੇਟ, ਡਿਪਲੋਇ ਪਾਈਪਲਾਈਨ, ਲੌਗਿੰਗ, ਬੈਕਅਪ ਅਤੇ ਰੋਲਬੈਕ।
ਭਾਵੇਂ ਤੁਸੀਂ ਤੇਜ਼ ਕੋਡ ਲਿਖ ਸਕਦੇ ਹੋ, ਪਰ ਹਰ ਰਿਲੀਜ਼ 'ਤੇ ਇੱਕੋ operational ਪਜ਼ਲ ਨੂੰ ਮੁੜ-ਹੱਲ ਕਰਨ ਨਾਲ ਸ਼ਿੱਪਿੰਗ ਹੌਲੀ ਹੋ ਜਾਂਦੀ ਹੈ ਜਾਂ ਉਹ ਵਿਅਕਤੀ ਜੋ 'ਵਿਸ਼ੇਸ਼' ਸਕ੍ਰਿਪਟ ਜਾਣਦਾ ਹੈ ਉਸ ਦੀ ਉਡੀਕ ਕਰਨੀ ਪੈਂਦੀ ਹੈ।
ਮੁੱਖ ਫਾਇਦਾ ਮਿਆਰੀਕਰਨ ਰਾਹੀਂ ਗਤੀ ਹੈ: ਘੱਟ ਫੈਸਲੇ, ਘੱਟ ਵੱਖਰੇ ਸਕ੍ਰਿਪਟ ਅਤੇ ਜ਼ਿਆਦਾ ਦੁਹਰਾਏ ਜਾ ਸਕਣ ਵਾਲੇ ਡਿਪਲੋਇ।
ਇਸ ਨਾਲ ਔਨਬੋਰਡਿੰਗ ਵੀ ਬਿਹਤਰ ਹੁੰਦੀ ਹੈ, ਕਿਉਂਕਿ ਨਵੇਂ ਇੰਜੀਨੀਅਰ ਇਕੋ ਵਰਕਫਲੋ ਅਨੁਸਰਦੇ ਹਨ, ਹਰ ਸਰਵਿਸ ਲਈ ਵੱਖਰਾ ਪ੍ਰੋਸੈਸ ਨਹੀਂ ਸਿਖਣਾ ਪੈਂਦਾ।
ਲੋਕਪ੍ਰਿਯਤਾ 'ਤੇ ਨਿਰਭਰ ਨਾ ਕਰੋ। ਇੱਕ ਵਾਕ ਵਿੱਚ ਸ਼ੁਰੂ ਕਰੋ: ਅਸੀਂ ਕਿਸ ਦਰਦ ਨੂੰ ਦੂਰ ਕਰ ਰਹੇ ਹਾਂ?
ਫੇਰ ਜਾਂਚ ਕਰੋ:
ਇਹਨਾਂ ਨਾਲ ਪਾਇਲਟ ਚਲਾਓ ਅਤੇ ਅੰਕੜੇ ਟੋਲੋ ਤਾਂ ਜੋ ਫੈਸਲਾ ਸਪਸ਼ਟ ਰਹੇ।
ਜੇ ਤੁਸੀਂ ਔਨ-ਕਾਲ ਹੋ ਤਾਂ ਤੁਹਾਨੂੰ ਜਲਦੀ ਜਵਾਬ ਦਿੱਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ:
ਜੇ ਟੂਲ ਇਹ ਜਵਾਬ ਲੱਭਣਾ ਔਖਾ ਕਰ ਦੇਵੇ, ਤਾਂ ਉਹ ਪ੍ਰੋਡਕਸ਼ਨ ਲਈ ਬਹੁਤ ਅਪਾਰਦਰਸ਼ੀ ਹੈ।
ਇਹਨਾਂ ਬੁਨਿਆਦੀ ਚੀਜ਼ਾਂ ਦੀ ਲੋੜ ਹੈ:
ਜੇ ਤੁਸੀਂ ਪ੍ਰਸਿੱਧ ਨਹੀਂ ਕਰ ਸਕਦੇ ਕਿ 'ਇਹ ਐਪ ਹੈ, ਡੇਟਾਬੇਸ ਹੈ ਜਾਂ ਡਿਪਲੋਇ ਹੈ?' ਕਈ ਮਿੰਟਾਂ ਵਿੱਚ, ਤਾਂ ਸਖਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜੋੜੋ।’
ਰੋਲਬੈਕ ਬਟਨ ਮਦਦਗਾਰ ਹੈ ਪਰ ਮੰਤਵਿਕ ਨਹੀਂ। ਰੋਲਬੈਕ ਅਕਸਰ ਫੇਲ ਹੁੰਦੇ ਹਨ ਜਦ:
ਅਮਲ: ਮਾਈਗ੍ਰੇਸ਼ਨ ਨੂੰ ਰਿਵਰਸਿਬਲ ਬਣਾਉਣ ਜਾਂ ਦੋ-ਕਦਮੀ ਹੱਲ ਦੇ ਕੇ ਰੋਲਬੈਕ ਦੀ ਪੜਤਾਲ ਕਰੋ।
ਇੱਕ ਐਸਕੇਪ ਹੈਚ ਦਸਤਾਵੇਜ਼ਤ, ਪਰਮੀਸ਼ਨ-ਅਧੀਨ ਅਤੇ ਵਾਪਸ ਕਰਨਯੋਗ ਤਰੀਕਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ:
ਜੇ ਓਵਰਰਾਈਡ "ਰਾਜ਼ੀ ਕਮਾਂਡਾਂ" ਹਨ, ਤਾਂ ਤੁਸੀਂ ਫਿਰ ਤੋਂ ਤ੍ਰਾਈਬਲ ਨੋਲੇਜ ਬਣਾ ਰਹੇ ਹੋ।
ਸ਼ੁਰੂਆਤ ਛੋਟੀ ਰੱਖੋ:
ਸਫਲਤਾ ਮਾਪਯੋਗ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ: ਨਵੇਂ ਟੀਮ ਮੈਂਬਰ ਲਈ ਪਹਿਲਾ ਡਿਪਲੋਇ ਸਮਾਂ, ਖ਼ਰਾਬ ਰਿਲੀਜ਼ ਤੋਂ ਬਹਾਲੀ ਦਾ ਸਮਾਂ, ਅਤੇ ਰੁਟੀਨੀ ਬਦਲਾਵ ਲਈ ਮੈਨੂਅਲ ਕਦਮ।