There is a very short, simple and honest reason why Intelligent Cloud in Business Central is not ready for the real world: It is far too strongly coupled to the data structures of both systems. In fact, the data structures between the two systems could not be more coupled, and whilst on the surface this is a reasonable requirement for the replication of data between two systems seamlessly, the reality is less simple.
I do not think it’s unreasonable to expect a standard replication tool to work right out of the box, but this one does not.
Why?
Because the extensions that come as standard in SaaS are not the same as the extensions that come as standard on-prem, and so immediately you have different schemas.
You simply cannot install BC on-prem, create a SaaS tenant and start replicating.
At a very minimum you must uninstall standard extensions from the SaaS system before starting. That is bonkers.
Of course it makes a world of sense that you cannot have C/AL modifications in the database. Putting custom fields into existing tables and asking it to work is too much to ask. Anyone could have added anything, it’s a real nightmare However, if an extension that MS provides extends the G/L Setup, and I don’t have that in my on-prem environment, because I simply cannot put it there, why does any replicated data become totally inaccessible?
The reality of my first attempt to do this, is that I (and I admit this was a mistake on my part) upgraded my customer to BC on-prem, got that all set up and working with everything installed as per the upgrade documentation, and then thought ‘great, I’ll now get that replicating to SaaS ready for them to make the jump’. I then changed my company to look at data in one of the replicated companies and was unable to log in without a support call, as the g/l setup table had failed to replicate. And Business Central needs that setup table to function.
To make matters worse, once I’d removed the troublesome extensions, the problem did not go away. The ‘intelligent’ cloud seems unable to recognise when an extension has been removed. So even after realising my error, I was still left with no way to fix it. Not even using the ‘Reset Cloud Data’ option, or going through the setup process again resolved this. Again it took a support call to MS, which had to be referred to the dev team, to fix.
And my final big issue with this tight coupling, is one that I feel is the biggest real world issue. My SaaS tenant, overnight, unknown to me until after the fact, got the upgrade to the latest build of BC SaaS. My replication now does not work. It will not work until I’ve gone to my customers account manager, asked them to communicate the bad news & arranged for our upgrade team to do a code roll up, our platform team to a platform roll up, and for our customer to test, sign off & accept the down time of their system during that roll-up.
Yes, of course, they’re on BC, they have no mods, it should be a doddle, and I’m sure it will be. Just replace a bunch of files.
But rolling a customer up to a different CU is not as simple as just copying files.
It needs planning. Downtime is required. Different teams must be involved, processes planned & scheduled. Someone must pick up the cost. There is a risk.
Of course, this should all be largely automated, as it is for the SaaS environment. But anyone out there who supports live customers knows that getting to that point of automating upgrades & having the infrastructure to do so is a big ask when you’re also trying to juggle maintaining your existing customer base (of whom very little are on a version which has only been released for just under 2 months), and making sure that the chargeable work modifying & supporting existing systems keeps coming through the business to keep the lights on.
I’m very fortunate, I work for a company that is very keen on technological progression and indeed my day job is now to focus on making sure these processes are in place and that we can get things swifter & more automated. But how many partners can say that? How many people can invest time in automating this roll up? So instead, it becomes a tool that is difficult and costly to use. Even though in theory replicating data to the cloud is as easy as pressing that ‘Assisted setup’ button and following some very clear, well documented steps.
This needs to be less closely coupled. It needs to allow for extensions not being identical, especially when they’re just standard extensions. It needs to allow for new builds getting put out there overnight.
Of course there has to be limits. But roll ups & out of the box extensions are not that limit.