Deploying Applications Flashcards
When would you use the recreate deployment pattern?
When you need a simple deployment approach. You don’t need to adhere to any SLAs and the app can handle downtime while the update occurs.
What is the recreate deployment pattern?
The recreate deployment pattern is when you fully scale down an existing application to zero, then scale up a new version.
What is the rolling deployment pattern?
Rolling deployment is when you update a subset of your application instances at a time.
When would you use rolling deployment?
When you don’t want any downtime, a reduced deployment risk and are willing to deal with slow rollback and backward compatibility.
Also, session persistence is an issue with this kind of deployment, so be sure to decouple it from the application to a datastore or load balancer.
What is blue/green deployment?
Blue/Green deployment is when you have two identical app deployments, and replace one of them (the ‘green’) with the new version of your app whilst the other (‘blue’) receives traffic.
The green is tested and once ready for production, traffic is routed to it instead of blue.
Blue can then be decommissioned or kept in case there needs to be a rollback.
When would you use blue/green deployment?
When you need zero downtime, instant rollback and a separate environment for each deployment, and don’t mind an increased cost and operational overhead, handling backwards compatibility and cutover (handling requests sent to the soon-to-be-defunct deployment).
What is a canary deployment?
Canary deployment is when you rollout a new app version to a small subset of users. Once confirmed as reliable, the new app version rolled out to all users.
When would you use a canary deployment?
When you want to minimize (but not eliminate) user impact and test a new version in production before rolling it out and you don’t mind operational overhead (is the new version a success, are there any problems, etc) and handling backwards compatibility.
What is backward compatibility in terms of deployment?
Ensuring a new application version works with existing resources (such as a database or database schema) to enable smooth rollover between different app versions.
What is Cloud Build?
Cloud Build is a service that executes your builds on Google Cloud. Cloud Build can import source code from a variety of repositories or cloud storage spaces, execute a build to your specifications, and produce artefacts such as Docker containers or Java archives.
Src - https://cloud.google.com/build/docs/overview#:~:text=Cloud%20Build%20is%20a%20service,Docker%20containers%20or%20Java%20archives.
What is a buildpack?
A buildpack is a set of executables that can analyze your app source code, create a build plan, and generate a container image that is ready for deployment to run your application. In essence, buildpacks help you to convert your source code into a secure, efficient, production-ready container image.
Src - https://developer.ibm.com/articles/awb-containerizing-java-apps-with-cloud-native-buildpacks/
What is Binary Authorization?
A service that enforces signature validation when deploying containers.