This site uses different types of cookies, including analytics and functional cookies (its own and from other sites). To change your cookie settings or find out more, click here. If you continue browsing our website, you accept these cookies.
I wanted to share my thoughts on Best Practices with Alteryx Servers. I've just gone through a complete audit and migration of our servers that have been running for over fours year with 250+ active workflows, 50+ Gallery Apps and many many macros. The environment was AWS and at it's peak contained 4 workers, 2 controllers, a gallery server and 3 mongo servers.
I found several workflows that should have been decommissioned, some duplicates and some workflows that are orphans. It all cleaned up now but what is below are things that can help you be successful with a server deployment for years to come.
Here are the top 10 items you should implement with tools or processes.
1. Provision Private Studios to teams of developer and not just individuals.
One thing you'll learn quickly is that administrator do not have access to all of the workflows on the server. Setting up you users and server successfully means understanding how to associate teams of people to a common Private Studio so they can collaborate and see not just the workflows but the results and the schedules. Think about structuring you server to a set of studio and setup users into one of these studios and then establish an admin account for each. This is the only way to see what's going on in the Gallery app.
2. Use Collections to group your workflows with team access.
Collections are like folders of workflow. This is the way to share applications on you server with user. Private Studios is still the best way to share with Alteryx Designers (developers). In mid 2019 Alteryx stated that there are improving the server and Collections will be preserved with future releases. So take advantage of Collections.
Don't use Districts and Insights. These are confusing and may make future upgrade harder.
3) Pull data from your Mongo DB and publish results to a dashboard. Monitor at least three things:
1) Server Capacity - Know when you need to add more workers. Understand which workflows or applications are capacity hogs.
2) Workflow duration - Identify the longest workflows and work with the authors to improve performance.
3) Errors - Monitor errors for all workflows. promote authors maintaining their workflows.
4) Do not use dedicated Mongo DB servers or dedicated Gallery Servers.
Per Alteryx support in 2019 Mongo DB is migrating to PostgreSQL at some point. Under the KISS principal I would recommend not separating out Mongo to a separate server. I'm very satisfied with us having 3 Mongo dedicated servers but it was not simple to set up. We had one Mongo server go down and it had zero impact to production. This server went down due to a lack of disk space. We brought the Mongo Server back up and all was good. Performance improvements on the Controller are minor.
We also had the Gallery Server on a separate box and this just created more administration with no performance improvements. This just seemed to add to the complexity so we rolled Gallery functionality back on to the main server.
If you are looking for high-availability think about having two controllers each with multiple workers.
5) Create a family of icons and use them to better organize your workflows.
This one sounds nuts but with the possibilities of duplicate workflows on a server with the same names, icons is a simple way to ensure you are looking at the right workflows or applications. Go into PowerPoint and create and save square jpeg files that have colors and headlines that help you understand the workflows.
6) Back up your server environment periodically.
Develop a way to backup your entire server and practice restoring. Also back up macros and workflows so you have a way to grab old versions of macros and workflows that may have been deleted.
7) Catalog workflow with ownership, IO and secondary ownership
Alteryx's Connect may be a able to help here but from what I understand you will need to do a lot of this manually. It would be great if you could scan all workflows for tool usage, macro usage, credential usage and input sources and output destinations. Until something like this is standard you need to record what you have. Knowing this helps you prevent duplicate workflows and ensure you are using the server resource in the best manner. Promote single sources of data. If you don't do this Alteryx will love you since you'll need more servers.
Understand which workflows have replaced manual work.
Isn't it great when you can state you saved x number of people from doing boring jobs.However you need to document and understand what happens when this workflow stops working and you need people to manually do the work again. Document and assess the risks.
9) Have a Credential strategy
You need to understand how credentials are used and stored across the server including workflows. Think about what happens when credentials expire. How do you identify credentials about to expire. How do you make sure someone can keep things rolling. This includes ODBC connectors, SFDC Input tools, API calls and shares server resources.
10) Do not associate your Admin account to a single person.
We had a person who was admin leave the company. There is no way, other than modifying Mongo DB, to hand this account ownership to another person unless you start messing with email addresses. Think about a generic account.
Nice to see you sharing your experience @TimChandlerClone Going to be useful for others! Although I think a couple of these will be trumped by corporate policy rather than whats easier, better. Still nice to have a clean list of things to consider