Year In The Life Running Microsoft Dynamics 365 F&O In The Cloud

We have spent the past year blessed to have been able to broaden our insights on running  Microsoft Dynamics 365 Finance & Operations (F&O) in the cloud here at Initech Solutions. While we have successfully migrated ERP and CRM systems from on-premises to the cloud in little as 6 months, unfortunately those stories have not come without challenges along the way. Through it all we wanted to share our findings with our peers and describe some of the biggest challenges we faced during our first year with Dynamics 365 F&O in the cloud and how best to manage such moving forward.

Managing Expectations in Performance

Performance is a top priority for us, as it should be for you. If your business suffers from poor performance, then it can cause serious problems for your bottom line and the success of your team. Performance issues can be difficult to identify and fix, but fortunately there are many tools available to help troubleshoot these issues.

We often see performance issues caused by a variety of factors:

  • Limited bandwidth at the location that the users are accessing D365, while D365 does not contain significantly sized payloads to and from servers it can be relatively chatty and thus will appear to be sluggish in such environments.

  • The servers (Application Object Server (AOS) + SQL Server) hosting Dynamics 365 F&O has limited computing resources (at least performance comes at a cost), or as with typical ERP deployments was stood up with usage statistics that are far different from the current, leading to a need to revisit the Database Transaction Unit (DTU) configuration that was initially setup, and unfortunately should that be increased results in a higher cost profile.

Unfortunately, Microsoft retains tight control over these configurations thus transparency is a bit "cloudy".  In the event performance degradations are experienced the course of action is the dreaded Microsoft support ticket which requires your users to be trained in obtaining very cryptic (to an end user) session information to make available to Microsoft.  At the time of writing this entry, we have submitted 23 tickets associated with poor performance with associated session information only to have Microsoft respond with "everything is normal" leaving system administrators in a negative light.


Additional common performance pitfalls happen by way of the keepers of the IT finances as they stubbornly are beholden to cloud offerings having a financial cost ceiling that would never make the cloud option appear to be more costly than an on-premises solution, thus they intentionally govern compute resources for political gains.

Monitoring/Telemetry

Monitoring and telemetry are critical metrics to the success of any enterprise application. It's the data that tells you how your system is performing, which helps you understand and corroborate where your user's pain points are. Monitoring/telemetry generates metrics from various components of an application, including:

  • Data flows within and between applications (using messages).

  • Calls to web services or external systems (using web service calls).

  • Long running queries, services, or batch jobs.

  • Scenarios resulting in database locks.

In comparison to previous versions of the platform (AX 2012, AX 2009, AX 4.0) a system administrator or database administrator had access to SQL Server DMV (data management views), this information was supremely beneficial in proactively identifying poor performing queries from a historical perspective. Support personnel had insights in the most frequently used queries and could optimize such queries as part of the normal software development life cycle, once again moving to cloud removes that capability as those type of insights are only maintained by Microsoft or available in very limited scope in Microsoft's Lifecycle Services (LCS).

Vendor/Partner Support

Vendor/partner support is critical to the success of a project. Unfortunately, such support is not always available or timely. Managing and monitoring this support can be difficult as well as most companies have resorted to some sort of managed application services through offshore partners.

See Related: IT Outsourcing - The Great Resignation Enabler and the Downfall of the Great American Corporation

As previously mentioned in another article these partner resources are simply not a replacement for a fully engaged full time employee as partner resources typically have multiple clients they are working for coupled with language and time zone challenges.  Unfortunately, the end result is IT departments being the scapegoat or face for poor customer service to the most important internal resources performing mission critical tasks when these partner resources struggle to deliver in the areas of quality, timeliness, and transparency.

Forced and Frequent Upgrade Cycles

Given that D365 is a cloud-based enterprise resource planning (ERP) system of the monolithic variety it spans multiple departments with many different use cases and process flows. As with any software system, it is important to keep it up to date with the latest features and security patches. Unfortunately, Microsoft requires limited usage on previous versions and releases scheduled updates on a regular basis to provide new features and functionality to users.

While these updates can be beneficial, they can also put added strain on functional users who are typically responsible for testing the application to ensure that it is working correctly and that the new features do not disrupt existing processes. This can be especially challenging for users who are already stretched thin with their normal responsibilities and may not have the time or resources to devote to testing the application.

In most cases, the added strain on functional users to test and verify updates to D365 are simply too great, and unfortunately the onus falls on IT personnel to perform these tasks. The risk presents itself with IT personnel not having the same level of expertise and knowledge about the specific processes and workflows that are used within the organization, leading to inadequate test coverage and potentially missed points of failure.

The IT personnel are not fully aware of the different roles and responsibilities of the functional users and how they use the application in their daily work. As a result, it is important for IT and functional users to work together and collaborate on testing and verifying updates to ensure that the application is functioning correctly and that all necessary processes and workflows are being adequately tested. This may involve IT personnel seeking guidance and input from functional users on what to test and how to test it, as well as functional users providing feedback and assistance during the testing process.  Ultimately if time is money, then these tasks take significant amount of time to collaborate and complete and thus the costs of cloud-based ERP systems continue to trend upwards and on even footing with traditional on-premises applications.

In order to alleviate this strain, it is important for organizations to have a clear and well-defined process for testing and implementing updates, and to allocate the necessary resources and time for functional users to complete this task.  The keyword here is necessary resources, given the current culture of corporate greed, organizations will stubbornly refuse to address these risks and continue the grind and wonder why defects happen and why turnover continues as all control has been relinquished and too much trust has been placed with profit-driven vendors/partners.

The Aura of Test Automation 

Test automation software can be appealing to managers because it has the potential to save time and improve efficiency in the software testing process. Automating repetitive or time-consuming tests allows testers to focus on more complex and high-value tasks, and it can also reduce the risk of human error.

However, it is important to recognize that not all testing can be automated. It is generally recommended to use a combination of manual and automated testing, depending on the specific needs of the project. Automating all testing may not be practical or cost-effective, especially in the case of an ERP application that sees continuous improvement and constant updates.

One of the challenges of test automation is the overhead of managing a test script repository. This can be significant, especially in a large and complex application like an ERP system. Maintaining and updating test scripts requires ongoing effort, and there may be costs associated with implementing and using test automation tools. Furthermore, test scripts and/or the automation tools associated with such typically require software development skills which puts the salary on par with the organization's developers, leading to question if that is value added given the high dollar resource requirements.

It is important for managers to carefully consider the potential benefits and costs of test automation, and to choose an approach that is appropriate for the specific needs of the project. It may be more effective to focus on automating certain types of tests, rather than attempting to automate all testing.

Developer Friendly Deprecation

The integration of D365 development into Visual Studio may have some advantages, but it is not necessarily a change for the better for all developers or all situations.

One advantage of integrating development into Visual Studio is that it provides a more familiar and integrated development environment for developers who are already familiar with Visual Studio. This can make it easier for developers to get up to speed on the development tools and processes for D365.

However, the migration to Visual Studio and the associated build processes have introduced some challenges for developers who were accustomed to the rapid application development capabilities of the X++ programming language and its embedded IDE in previous versions of Dynamics. For example, the build processes and scheduled downtime now introduce delays and disruptions that ultimately slow down development and development velocity.

Ultimately, whether the integration of development into Visual Studio is a change for the better will depend on the specific needs and preferences of the development team and the organization. It may be worth weighing the potential benefits and challenges of the new development environment to determine whether it is the right fit for your project.

Unquestionable Leader Remains

Despite the aforementioned challenges of running D365, it remains a top tier enterprise resource planning (ERP) system that is suitable for organizations that need a customized option and the flexibility of running on-premises or in the cloud.

One key advantage of D365 is its ability to support customization and integration with other systems. The system is built on top of Microsoft's Azure cloud platform, which provides a range of tools and services for building and deploying custom applications and integrations. This allows organizations to tailor the system to their specific needs and requirements, and to integrate it with other systems and data sources as needed.

In terms of deployment options, D365 can be run either on-premises or in the cloud. This allows organizations to choose the deployment option that best meets their needs and preferences, whether that is running the system on their own infrastructure or using Microsoft's cloud services.

Overall, D365 is a robust and flexible ERP system that is well-suited to organizations that need a customized solution and the flexibility to run either on-premises or in the cloud. It offers a range of capabilities and tools that can support a wide range of business processes and operations, making it a top-tier choice for many organizations.

Comments

Popular posts from this blog

Exploring C# Optimization Techniques from Entry-Level to Seasoned Veteran

Implementing Enhanced Policing With Big Data and Predictive Analytics

Is Cloud Computing a Digital Transformation Enabler or Obstacle?