Planning your Tableau Server Deployment, Part 2
In this series we’re talking about things to think of when planning to deploy a Tableau Server in your business. In the first part of this series, we covered considerations for the role of the content administrator, a role that looks after how content is published, organised and managed on the Tableau Server. Read all about it here.
In Part 2, we’re talking about considerations for the role of the system administrator, or the role that’s responsible for the IT side of things, including architecting the system, ordering the infrastructure, installing and deploying the environment.
As with the previous part in this series, some caveats – this is a checklist of things to think about while planning your deployment. There are lots of other things to consider post-deployment, those are outside the scope of this post. Secondly, in my experience I see a clear divide in responsibilities between the content side and the IT side of things, but that’s not to suggest that these roles can’t overlap, you might be the sole person responsible for all of these activities, or there might be a large team of people looking after separate aspects of each of these. Whichever the case, it’s important to consider both ends, and make sure you’ve got the right people with the right knowledge and skills looking after each.
12 tips for system admins when planning your Tableau Server deployment
- What kind of server usage do you expect in the short/medium/long term?
Get a steer from your business lines as to how users and activity is anticipated to grow over time. This might be limited by the number of named-user licenses you have, but it’s also good to understand how many users will have Tableau Desktop so you can infer publish activity etc.
- How much of a priority is tableau server in your business? is your CEO going to use it? are your customers going to use it?
Tableau is primarily used to analyse business performance, or present data in such a way as to help decision-making. These use cases mean you’re more often than not exposing Tableau Server to a senior audience in your business, or even to your customers in some cases. As such, Tableau Server needs to be prioritised appropriately. Your team needs to know that while Tableau Server may not garner a lot of usage at the outset, it’s very likely it will become a key analytics tool for senior management and so needs to be architected as such.
- Do you need the server to be highly available (HA), do you need additional redundancy?
Scaling out your Tableau Server infrastructure helps provide additional redundancy in the system and helps you get closer to a highly available system. Decide your RTO/RPO objectives for Tableau Server up front and let that guide your decisions around HA and redundancy. Sometimes you might find it’s just as quick to stand up a replacement single server installation from a backup, rather than scaling out, but there are good arguments for both scenarios.
- Will you provision in the cloud, or on-premise, on bare metal or in a VM? What’s the lead time to provision the hardware?
You know how long it takes to order infrastructure in your business. Factor this in when planning your deployment so you’re not left waiting for resources at the last minute. Also, physical hardware is always going to give you 5-10% better performance than a similarly specc’ed virtual machine, so take this into account when sizing your architecture.
- How many instances will you stand up? Have you provisioned hardware for all?
Your Tableau Server license key allows you to install up to three instances – one production and two non-production. You’ll need one key for a production instance, and I would recommend a second instance for testing server upgrades and configuration changes. The business line may want to stand up a third instance as a separate environment. Consult with your content admin and/or see Part 1 of this series for more information here.
- Don’t just look at the minimum requirements, look at the recommended requirements
Don’t skimp on the hardware provisioning. Your business has made a significant investment in one of the leading business analytics tools, so why run it on cheap-and-cheerful infrastructure? The minimum requirements for 64-bit v.9.2 call for 4 CPU and 8 GB RAM, but this is for a proof-of-concept, non-production server. These specs are also based on the assumption you’re installing on physical hardware. If you’re using a virtual machine then you can always expect to lose a bit of performance, even when perfectly tuned. The published requirements for a production Tableau Server, in my opinion, are the entry-level requirements for a Tableau Server to be of any use in a business. This is 8 CPU, and 32GB RAM.
- There’s more to it than just those requirements – disk speed, network connectivity, play their part too
Ensuring optimal Tableau Server performance means sizing your infrastructure to cope with the large spikes in resource usage that you see when a Tableau Server is experiencing a lot of activity. While the following are unpublished requirements, I tend to always follow these rules of thumb when specifying a Tableau Server:
a) Disk – you need high throughput storage. Your goal is 400MB/s read and write speed. Tier 0 or Tier 1 storage in the SAN is a must, a locally attached SSD array is ideal.
b) Network – these days, network speed is rarely an issue, but it’s worth making sure that you locate your Tableau Server infrastructure as close to your users, and their data, as possible. Try to avoid sending Tableau Server traffic over site-to-site VPN, for example, to minimise browser timeouts.
c) Memory – 32GB is the stated minimum for a production instance. My guidance is 6-10GB per core, so on an 8 CPU machine go for 64GB RAM.
- Have you got all your non-hardware based requirements set up?
Have you set up a service account to be used as the Tableau Server run-as user? Have you agreed the friendly DNS name of your Tableau Server with the business line? Have you opened ports and whitelisted the necessary domains in the firewall? Have you got a solution for backup and recovery?
- How will you manage authentication? are there groups of users you need to create on the AD?
You have two choices for user management –local authentication or Active Directory. For authentication, you can use either of the above two, or additionally configure SAML or OpenID. In a typical business environment, I see Active Directory (with or without SAML) being the most popular choice, as this gives you the flexibility to import AD groups directly into your Tableau server for easy user management.
- How often will you upgrade?
Tableau has a rather aggressive release cycle, with maintenance updates almost monthly, point releases quarterly and major releases annually. Agree a sensible upgrade frequency with your content admin. I typically see companies doing planned upgrades twice a year, with the potential for one or two unplanned upgrades in situations where there’s a new feature that’s critical for them, for example. Make sure you’re aware of the compatibility and implications of upgrading Tableau Server vs Tableau Desktop, so you don’t get caught out.
- Who’s going to support this system, how will you train and manage them?
Not much to say here, other than to recommend Paul Banoub’s excellent blog post on this very topic.
- Use the Tableau Server Scalability White Paper as the starting point for sizing your hardware
Tableau has done a lot of testing on how their server product scales with usage, and this is documented in their scalability white paper. Use this document as a rough benchmark for transactions per second and concurrent users based on several typical hardware scenarios. Prior to launching you new Tableau Server, use a load-testing tool like TabJolt to prove your infrastructure is scaling in line with Tableau’s own scalability benchmarks. If it’s not, then that would indicate a performance issue with your hardware.
Are you responsible for administering a Tableau Server at your organisation? What other considerations do you think belong on this list? Find me on Twitter @macdonaldj and let me know!