At its core, AKS Engine uses an apimodel (or a cluster definition) JSON file in order to generate Azure resource manager templates that can be used for deploying a Kubernetes cluster directly to Azure. The documentation and schema for apimodel can be found here: https://github.com/Azure/aks-engine/blob/master/docs/topics/clusterdefinitions.md. AKS Engine comes with out-of-the-box support for Windows nodes in cluster definitions. You can find examples in the official AKS Engine GitHub repository: https://github.com/Azure/aks-engine/tree/master/examples/windows.
Let's now create a custom apimodel based on the minimal Windows cluster example definition (https://github.com/Azure/aks-engine/blob/master/examples/windows/kubernetes.json). We will also include two Linux nodes in order to run a hybrid Windows/Linux configuration...