The whole process of selecting the right platform and the right tools to support it is continuing to become more and more complex. It’s not just a matter of selecting a provider, but an approach to getting the job done. There are many different things to consider at different levels of this choice, and it will depend quite a lot on your culture, experience, vendor relationships, support infrastructure, and politics.
One of the things that comes up more and more is the fact that there are some very high-level decisions that come first, in order (often):
- On-premises? Will you host the servers? Is there a reason for this? Against this? Why is this choice being made or being avoided? It’s critical to understand the real logic behind this, no matter which way this goes. Truly a devil’s advocate situation to play the opposite side of this to be sure it’s understood exactly why one option or the other is considered.
- Cloud implementation approach
- Your instances
- Managed SQL Server instances
- SQL Server as a Service
- Provider-specific solutions
Each of these options can be influenced by your tech requirements. Things like availability, your approach to recoverability, scaling, what types of access you need. All of these will weigh on the platform options that you can consider on an application-by-application basis.
You’ll also want to understand server functional requirements – things like functions that execute on the server (using mail? Other high-level processes? SQL Agent routines?) These types of functions can drive and eliminate options for your installation.
It may be that there are approaches to these, too, that will satisfy your requirements. For example, if you want to do some operations to automate steps, you may be able to accomplish that with other tools. There are many scripting languages now supported on the various providers, but your team will need to be able to support those, and implementation may be something you don’t want to tackle in your migration or setup project.
The point in all of this is that this is a critical skill. It’s extremely important to understand the “why” of your installations, then to understand the options. Many providers give you the old wave of the hand, a big smile and “of course that will work fine here!” type of message. There are so many moving parts to some of these that you will almost surely want to be experimenting with your installation before committing.
None of this is to say “don’t use the cloud” or any form of it. There are numerous benefits and incredible leverage offered with the right solutions, the right environment, right tools, and your supporting skill sets. It’s very important to make sure you know how those dove-tail with the applications you’re supporting.
…and don’t get me started about taking company politics into account as you make your choices.