Wednesday, September 6, 2023

Software deployement and upgrades!

 🔹 Deployment pipeline is a set of steps code changes will go through to make their way to the production.

🔹 Software deployment is a central task for IT teams in organizations of all sizes. The entire process of releasing software applications to end users can present a few challenges.

🔹 Software release and software deployment are often used interchangeably, but they refer to 𝗱𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝘀𝘁𝗮𝗴𝗲𝘀 𝗶𝗻 𝘁𝗵𝗲 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 𝗹𝗶𝗳𝗲𝗰𝘆𝗰𝗹𝗲.


🎯 𝗠𝘂𝗹𝘁𝗶 𝘀𝗲𝗿𝘃𝗶𝗰𝗲 𝗱𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁


✔ The new changes are 𝗱𝗲𝗽𝗹𝗼𝘆𝗲𝗱 𝘁𝗼 𝗺𝘂𝗹𝘁𝗶𝗽𝗹𝗲 𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝘀𝗶𝗺𝘂𝗹𝘁𝗮𝗻𝗲𝗼𝘂𝘀𝗹𝘆.
✔ Easy to implement: No need to create separate environments for testing and production.
✔ Difficult to manage and test dependencies: Can be difficult to track which services depend on each other.
✔ Difficult to rollback safely: If something goes wrong, all of the services must be rolled back to the previous version.

🎯 𝗕𝗹𝘂𝗲 𝗴𝗿𝗲𝗲𝗻 𝗱𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁


✔ Two identical environments: 𝘀𝘁𝗮𝗴𝗶𝗻𝗴 (𝗯𝗹𝘂𝗲) and 𝗽𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 (𝗴𝗿𝗲𝗲𝗻).
✔ Staging environment is one version ahead of production.
✔ Testing is done in the staging environment.
✔ User traffic is switched to the staging environment after testing.
✔ Staging becomes the production.
✔ Simple to perform rollback.
✔ Expensive to maintain two identical production-quality environments.

🎯 𝗖𝗮𝗻𝗮𝗿𝘆 𝗱𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁


✔ Rolls out new changes to a small subset of users.
✔ Cheaper than 𝗯𝗹𝘂𝗲-𝗴𝗿𝗲𝗲𝗻 𝗱𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 𝗮𝗻𝗱 𝗲𝗮𝘀𝘆 𝘁𝗼 𝗿𝗼𝗹𝗹𝗯𝗮𝗰𝗸.
✔ No staging environment, so testing must be done in production.
✔ More complicated to monitor and migrate users.

🎯 𝗔/𝗕 𝘁𝗲𝘀𝘁𝗶𝗻𝗴


✔ 𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁 𝘃𝗲𝗿𝘀𝗶𝗼𝗻𝘀 𝗼𝗳 𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝗿𝘂𝗻 𝗶𝗻 𝗽𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 simultaneously.
✔ Each version runs an "experiment" for a subset of users.
✔ Cheap method to test new features in production.
✔ Need to control the deployment process to avoid pushing features to users by accident.

No comments:

Post a Comment