Lifting and shifting a database
If you’re migrating an application to the cloud and your application stack includes a SQL Server database, Azure provides the widest variety of options of any public cloud provider for you to migrate that database to.
If you have a fairly simple schema you might be able to migrate straight to the PaaS (platform-as-a-service) option, Azure SQL Databases, to offload some of the maintenance burden onto Microsoft and lower your total cost of ownership. This is something you should definitely look to do, if you can. However, larger applications with a more complex data schema may have difficulty migrating straight into Azure SQL Databases. This service is multi-tenant, so the T-SQL allowed is not the same as the on-premises SQL Server you might be used to.
Love Entity Framework and ORMs
I love Entity Framework and other object-relational mappers (ORMs) like it. These frameworks allow us to code against an object-oriented data model and map any changes seamlessly (usually) to the underlying relational model that the data is persisted in. They reduce the amount that we need to worry about databases.
Where I have seen the most value
You won’t need me to tell you that Docker has been a dominating force in automated infrastructure for the last couple of years. For the uninitiated, a container is an isolated, lightweight execution context for an app/service (and its dependencies) that share a kernel with other containers. Because an app can be delivered in its deployed state and run consistently by any Docker host, using containers greatly reduces the scope for environmental issues, e.g. incompatible versions of libraries on the host machine, interfering external processes, etc. Containers are the biggest advancement in application delivery since the birth of server virtualization, so they’re worth learning how to use.