Upgrade Impossible: How We Upgraded a 3.7 TB NAV DB in 47 Hours
This past weekend, the ArcherPoint upgrade team upgraded a 3.7 TB NAV DB for a customer from NAV 2009R2 to NAV 2018. Their GoLive runtime was 47 hours. Their DB is heavily customized with 1200 customized objects, 1544 custom fields and 9 add-ons. We did it for a fixed-fee in 9 months and…GoLive Monday was largely uneventful with no blockers.
How did we do this?
I hear so often from the Dynamics community of partners and customers: “anything over 1 TB cannot be upgraded,” or “our DB is the most customized solution on the planet,” or “our partner told us we are too heavily customized or too big to upgrade,” or “we’re just going to re-implement because an upgrade will be too difficult and costly.”
This recent upgrade is one that proves that no DB is too big or too complex to upgrade. I’ve never doubted there was such a DB and, since 2002, after being involved in over 300 upgrades, databases have become increasingly complex and increasing in size. The challenges are real and the size and complexity will continue to rise. The digital revolution is here and data proliferation is real, but upgrades are also evolving thanks to Microsoft’s efforts with Dynamics 365 Business Central and some serious dedication from a very small and unique segment of the NAV community (the 1% of developers that actually love upgrading).
There are 3 main areas that create overwhelming challenges for most upgraders: database size, complex customizations, and risk mitigation.
Before I describe how we addressed these three challenges with this current 3.7 TeraByte (3.7 trillion Bytes) DB, it is important to note that this seemingly impossible task was the result of ArcherPoint’s commitment to the Microsoft Dynamics community.
ArcherPoint’s purpose is: Easier Work. Smarter Decisions.
We are here to make work easier and smarter decisions not only for our customers, but for ourselves.
To support that lofty purpose, ArcherPoint Upgrades’ purpose is to get customers current and keep them current.
A decade ago, all ArcherPoint upgrade projects were Solo Flyer projects. The Solo Flyer role accountabilities include Estimator, Project Manager, Code Merger, Data Migrator, GoLive Runner, Issue Resoluter, Post GoLive Supporter, basically every role in an upgrade project. While we still have a Solo Flyer role, that role is reserved for the small, minimal customs and no add-on database projects. In fact, one of our keys to success, that we will mention later, is that we have been able to break down a very large and complex upgrade project into small pieces so multiple team members can all be working on the same project at the same time.
7 years ago, we realized that Microsoft was beginning to move faster than the community could handle. Customers were getting behind at a rapid pace. ISVs were not able to keep up. Partners were not able to keep up and developers were writing non-upgrade-friendly code at an alarming rate.
As a Partner, ArcherPoint realized that we had to make radical changes in our processes and services to be able to support our customers to keep current and upgrade. If ArcherPoint or no one else could figure out how to upgrade the Dynamics community of customers, then it suggested a serious threat to our market. If we, as a community of Partners could not upgrade our customers, their option to look at other products would be viable. This would create harm to the market and all Partners.
We asked ourselves, “What would it look like if we did 150 upgrades per year? What would we need to change to upgrade all of our customers within 3 years?” From that lofty, but simple, hypothetical brain game, we created a team approach to upgrades, assigned roles, streamlined our processes, went international with ArcherPoint India, and started to work on creating an upgrade experience for our customers with a goal of 100% customer satisfaction at affordable prices. We now have a team of 25 that does just that, 24/7.
We have a “why” for our “what”, therefore, maximizing our potential for our “how” is literally infinite.
Our “tricks” are NAV/BC-centric methods we can throw at any-sized DB to produce provable outputs from and to any version of Navision, NAV, or Business Central.
To address this latest 3.7 TB size challenge, we used all of our combined tricks.
Complex customizations are easily handled by PowerShell. This simple tool merges 80% of customizations automatically. If it doesn’t conflict, don’t touch it. The exception to this rule is when there are few or no conflicts, we strategically Event customizations. The end goal is to have our customers fully Evented and Extended, eventually. And we do this for our customers as part of our Upgrade Subscription Plan.
Risk mitigation is handled by thorough testing, training, an awareness of unique customer needs, and a simple, customer-centric “trick”; onsite, mock GoLives, when necessary. Oh, and a project manager that has a technical background, i.e., one of the 1% of developers that love upgrading. This works extremely well for us and our clients.
Dimension caching, dynamic indexing and concurrent processing. These are the main technical ideas behind the “how” we did this. These are our tricks to overcome the DB size challenge. Our tricks are NAV-centric and we don’t use SQL injections, ever. Concurrent processing is simple. Look at your processes. If some are running really long, consider running them concurrently with other processes. ArcherPoint’s goal is always that the customer’s downtime cannot be more than 2 days, and shorter is always appreciated. Watch this webinar I did a couple years ago titled, “Dynamics NAV - How to upgrade a 1.3 Terabyte database from Classic to Three Tier” to find out about dimension caching and dynamic indexing.
I hope this helps. Onward to the future.