How would you design systems that securely and efficiently connect on-premises hardware with cloud environments such as Azure or AWS?