Citrix Cloud on Azure is one of those perfect combo for any Desktop As A Service delivery for any organization.
I have recently had a chance to work on an engagement that enables Citrix VDI delivery through Azure Workloads and using Citrix Cloud as the Control Pane.
The solution incurred Both Virtual Apps and Virtual Desktops workloads to be delivered through Azure Workloads. Sharing a few quick bits that i learned while i was at it, hoping it helps everyone else as they work towards their saga to a citrix cloud adoption journey.
Few things to plan before getting your hands dirty:
- Ensure that you have a solid connectivity to your Active Directory infrastructure on Azure for workloads to be able to retrieve any AD objects / GPOs in place. Without having a solid foundation of AD integration do not proceed!!
- Plan for the number of VDIs being deployed and design your Virtual Networks accordingly, best way to do it would be to lay out a clear structure in terms of what would be your requirements for any management traffic that your VDI workloads would be incurring and also the lay out of the data that they are processing in the back-end by coordinating with the back-end services
- Naming Conventions – Stick to a standard naming convention as you would on your on-prem infrastructure, but do not just limit it to your virtual machines, but extend your standards to the resource groups being created, may it be networks, security groups, Storage repositories. Make these easily identifiable, this makes your troubleshooting easy should things go wrong considering that there would be multiple teams involved.
- Lay out a structure on as to how you would be placing your Cloud Connectors, if you have multiple domains that you would be dealing with, ensure that the Cloud Connectors being placed on Azure have access to all those domains. Another alternative would be to create separate resource groups for different domains and have isolated cloud connectors HA pairs serving those specific domains if each domains have significant number of users / workloads to be taken care of.
- In our case i had created separate network security groups for work loads and management servers, such that the network security group policy could be applied / re-used for each resource(VM/VM network) that i would be hosting on Azure.
- Ensure that if you have any applications that you are deploying on your workloads (Virtual apps / VDI) there is good connectivity to your backend resources, I would strongly suggest to do some bench marks here while you are building the infrastructure, this will help to ensure that you set an expectation of performance of the apps for your customer on the cloud. If you have a cross cloud dependency to fetch application data involve your network guy while you are in the planning / design phase itself rather than waiting for something to break during build.
- Have a cost estimate in mind as to what are the different Costs that your customer would be incurring as part of the solution, this would not only help you win the deal but would also give you a clear picture of the resources that you would be utilizing for your solution.
- One of the key learning for hosting Virtual Apps, if you would like to get full benefit of cloud for cost controlling and automation, Consider more number of Mid sized servers rather than hosting servers with high specs. Now that wouldn’t make sense does it? There is more to it than meets the eye, When we talk about Virtual Apps we would be essentially spinning off Windows Server OS VDAs, Since these would be shared servers even if a single user is logged on and using the server the SmartScale feature or any custom solution that you would be using may not be able to stop the server for your compute cost clock to stop ticking. Start with a few number of servers and scale up / down as required, let the SmartScale do the work for you.
- Use of Automation: Hey now.. Since we are talking cloud.. obviously there is enough opportunities that you could consider for automation. From Creating a S2D server pairs for Profile management to be able to Setup a Citrix Cloud Connector servers in HA pair, all of it can be automated.
- Last but not the least, Since this is Citrix Components as a service that we are talking about, there could be improvements and changes to the Service as you go through with your design. Keep up-to date with the changes that the Citrix Cloud is bringing, so that your solution stays relevant. As at times this could have significant impact on the commercials. (Example: If there is a specific feature that was assumed in the design on Netscaler Services on Citrix Cloud, should the assumption fail it would mean that you would have to rework your design to accommodate a relevant solution for Netscaler)
While this Article is only focused on initial planning / ground work before getting into specifics, for those interested in getting into specifics on how the above points are going to help you, refer the below which have helped me throughout my design / deployment.
- This blog takes you into a deep dive of the core infrastructure, there are 3 parts of the blog and every one of them is important. Found this to be a great read. https://www.citrix.com/blogs/2018/05/31/cloud-guidepost-understanding-the-control-plane-and-planning-the-access-layer/
- Automation For installing Cloud Connector on your VMs: https://www.citrix.com/blogs/2017/03/15/automating-the-cloud-connector-installation/
- Storage Space Direct Easy deployment with Azure Arm templates: https://github.com/Azure/azure-quickstart-templates/tree/master/301-storage-spaces-direct