Move data to Azure Archive Storage using PowerShell

Concept You may have come across a term multi-tiered storage. This means, that the storage solution has multiple arrays, fast and expensive and slow but cheap. Files accessed very frequently are stored on very fast SSD disks, files accessed less frequently are stored on the much cheaper but much slower spinning disks. Files designated for long term archive are often stored on magnetic tapes. Most enterprise storage solutions can handle the first two tiers automatically and some can also offload to tapes on a schedule. Azure offers similarly tiered storage: Hot, Cold and Archive. The Archive tier is very cheap (and yes, also very slow) storage designed for long term retention. Azure Storage Account allows changing the tier for existing, individual files. The current tier can be seen in the Azure Storage Explorer: The idea is that we can move existing files, in the existing Storage Account to the archive tier, or upload files as we normally would to an existing account and can then mark them for archiving. This process is completely manual but with the help of PowerShell can be easily automated. Microsoft does not reveal how the archive storage works and what exactly sure happens behind the

Rapid SQL Server test instances with Docker and Azure

As a DBA, developer, and more importantly the creator of SQLWATCH.IO, I need the ability to rapidly deploy and test different SQL Server configurations or test different upgrade variations from one version of SQLWATCH to another. This is quite laborious, time-consuming tasks as I either have to build a new SQL Server instance of a specific configuration, collation etc or use snapshots which increases complexity and flexibility. Docker makes this very easy and quick. Introduction to Docker In a very simplified language, Docker is a container (sandbox) platform and it virtualises the Operating System. Container, however, is a packaged image of an application, in our case, this will be SQL Server. Images run in isolation and each can have different resource allocation i.e. different memory, CPU and disk space. Docker uses the internal network to allow containers to communicate with each other and with the external world. We can start and stop containers on demand. The main difference between running the application as Container vs natively installed is the isolation and lack of package dependencies. We could have two applications using let’s say different versions of Python in isolated containers. If both applications were natively installed, we would have to also install