Empower engineers to be able to truly own their deployments and rollouts. The infrastructure team should not be a gatekeeper for day-to-day activities (e.g. rolling out a new application version or even adding an entirely new microservice). Product teams should be able to go from prototype to production with no involvement from the infrastructure team.
Clear separation between microservice deployments and infrastructure changes. This would allow us to easily understand who was responsible in case of failure.
Fine grained authentication and authorisation, application level access control and removing the necessity for developers to access cloud provider consoles, APIs or UIs directly.
Storing deployment configuration next to application code to avoid having to jump around multiple repos when making changes.
Fast startup times when rolling out updates to our microservices.
Removing any need to SSH into VMs to debug failures. Logs and additional useful information should be readily available to all engineers when something goes wrong.