There are various types of deployment pattern, but we should select one which fits our case, and which uses all the functions together in one go: blue-green and canaries, and also lots of complexities, such as redundancy, high availability, rollback, A/B testing and incremental roll outs. All these need to be considered during deployment, and deployment should be achieved with ease and flexibility. So it should always be better to decide on the pattern before starting the automation.
We have to make sure deployment is constantly monitored and deployment failures are analysed and improved with time. All the deployment should be triggered through automated pipelines with minimal manual intervention, attached to a GitHub ...