Low-Code, High Cost: Pitfalls In The Power Platform
As the constant talk of digital transformation meshes with the typical
goal to grow business without additional headcount, the significance of a
customer portal facilitating online procurement of products is one of the
first projects identified in the journey. Organizations strive to stay ahead
in the digital age, they find themselves navigating a dynamic marketplace,
where customer expectations, competitive pressures, and technological
advancements constantly reshape the business environment. In this context, a
well-designed customer portal that streamlines the process of product
procurement emerges as a central focal point, not only enhancing operational
efficiency but also fortifying a company's capacity to adapt and innovate.
Having a data-driven customer portal is often the key to success, thus a
recent clean-up job that we were awarded involved course correcting a
previous decision of turning to low-code or no-code platforms like
Microsoft's Power Pages to build such a portal and integrating such with
their flagship Dynamics 365 Finance and Operations ERP system.
Introduction: Microsoft Power Pages - The Low-Code Solution for Modern External-Facing Websites
Microsoft Power Pages is marketed as a secure, enterprise-grade, low-code
Software as a Service (SaaS) platform designed to revolutionize the
creation, hosting, and administration of modern external-facing business
websites. Whether you are a low-code enthusiast or a professional developer,
Power Pages is supposedly built to equip you with the tools to swiftly
design, configure, and publish websites that seamlessly function across web
browsers and devices.
Power Pages introduces an array of compelling features, including rich and
customizable templates, an intuitive design studio for a fluid visual
experience, and an integrated learning hub. These resources are intended to
empower you to craft websites that cater to your unique business
requirements with speed and precision.
A key highlight of Power Pages is its integration with the Microsoft Power
Platform family. This means you can harness the same shared business data
stored in Microsoft Dataverse for building apps, workflows, intelligent
virtual agents, reports, and analytics – all with other Microsoft Power
Platform components in your organization. In essence, Power Pages attempts to offer a
holistic solution for your web presence, utilizing the same data assets you
rely on across various aspects of your business operations.
Introduction: Microsoft Dataverse - The Central Hub for Secure Data Management
Microsoft Dataverse stands as a foundational component within the Microsoft
Power Platform, suggesting a secure and robust environment for the storage and
management of data, essential for powering your business applications. At
its core, Dataverse organizes and safeguards data using a structured
approach, relying on tables as its foundational structure.
Each table within Dataverse is a collection of rows, previously known as
records, and columns, which were once referred to as fields or attributes.
The columns within these tables are carefully designed to store specific
types of data, such as names, ages, salaries, and other relevant
information. This structured approach ensures that your data remains
organized and accessible, facilitating efficient data management and
utilization.
Dataverse comes equipped with a core set of standard tables that cater to
common business scenarios, providing a solid foundation for your data
management needs. However, Dataverse's flexibility truly shines as it
empowers you to create custom tables tailored to the unique requirements of
your organization. These tables can then be populated with data through the
use of Power Query, a powerful data transformation tool.
App makers within your organization are told they can harness the capabilities of Power
Apps / Power Pages to build robust and feature-rich applications that seamlessly integrate
with and utilize the data stored in Dataverse. This integrated approach
allows you to bridge the gap between data management and application
development, empowering you to create solutions that are not only efficient
but also fully aligned with your business's specific needs.
Dataverse is then marketed as the heart of your data strategy, suggesting you can centralize,
secure, and leverage your data effectively, facilitating the development of
powerful business applications that drive success and efficiency across your
organization. However, when integrating Dataverse with external systems,
such as Microsoft's Power Pages and Dynamics 365, certain challenges
certainly will present themselves, as we will explore in the following
sections.
Our findings have suggested that while Microsoft's Dataverse is a good attempt and standardizing common data models found in the enterprise, it is simply a tall order to think that Microsoft can build data models that accommodate all the diverse use cases of how businesses operate, with that we suggest consumers of such proceed with caution.
The Challenges of Scaling Power Platform Services for Larger Organizations
While Microsoft's Power Platform, including services like Power Pages and
Power Apps, presents an array of promising capabilities for businesses of
various sizes, the reality is that larger organizations, often with revenues
approaching or exceeding $500 million, will most likely find themselves facing a unique
set of challenges that can undermine the lofty promises of these tools. It's
essential to recognize that the "right-size" of technology stack can vary
significantly depending on the scale of operations, and what works for
smaller or mid-sized companies will most certainly not seamlessly
translate to the demands of larger enterprises.
While Microsoft's Power Platform, including Power Pages and Power Apps, may
present an attractive solution for smaller businesses and certain use cases,
it has become quite apparent they are not the "right-size" technology stack
for large organizations. The complexities and scale of operations at this
level can introduce substantial challenges that negate the marketing
promises provided by Microsoft, resulting in the accrual of significant
technical debt. When considering these tools for a large enterprise, it's
crucial to carefully assess and take inventory of the limitations and plan
for the additional resources and customizations that will be required to
ensure a successful and sustainable implementation.
We encountered the following showstoppers in the pursuit of building an always-on and always-available e-Commerce website:
1. Cross-Company Data Sharing Challenges
Large organizations often rely on cross-company data sharing to centralize
and standardize their master data across multiple entities. This practice is
essential for maintaining data consistency and integrity. However, when
using Power Pages to integrate with Dynamics 365, a significant roadblock
emerges. The standard functionality of dual-write synchronization from
Dynamics 365 to the Dataverse does not support this cross-company data
sharing approach. This means that additional custom Extract, Transform, Load
(ETL) operations become necessary to handle the data synchronization
properly. Not only does this add complexity to the project, but it also
introduces significant overhead and the dreaded technical debt.
2. Data Sync Timeouts and ERP Disruptions
Attempting to leverage dual-write synchronization on large volumes of data
can lead to timeouts, causing significant disruption to the functionality of
Dynamics 365. This disruption, in turn, affects the user experience, as
errors and performance degradation become all too common. The customer
portal, which is reliant on this data synchronization, becomes a major
source of concern. When your customer-facing website's data is out of sync
with your ERP system, the potential for inaccuracies and customer
dissatisfaction increases.
3. Missing Data Structures in the Dataverse
One of the key advantages of using the Dataverse is its role as a common
data service for all Microsoft Power Platform applications. However, in
real-life scenarios, it often falls short of providing the necessary data
structures. Data that is vital for the customer portal may not be readily
available in the Dataverse, leading to a challenging predicament. This, in
turn, necessitates direct API access to Dynamics 365, requiring
customizations in the form of X++ development. Moreover, this introduces the
risk that your customer portal may become temporarily unavailable when
Dynamics 365 is undergoing maintenance or upgrade/release operations.
4. Relying on Azure Serverless Functions for Performance
To achieve the required performance and website responsiveness, a heavy
reliance on Azure Serverless Functions will become necessary. These
functions can handle the heavier lifting in data processing, but they also
require .NET resources. This introduces additional complexity and resource
requirements into your project, which can be a major concern for
organizations that chose a low-code/no-code approach to simplify
development.
While Microsoft's Power Pages and Dynamics 365 offer powerful tools for
building data-driven customer portals, real-life projects can encounter
significant challenges and limitations. These range from handling
cross-company data sharing, to dealing with data synchronization
disruptions, missing data structures, and the need for additional resources
like Azure Serverless Functions. Organizations embarking on such projects
must carefully assess these potential pitfalls and be prepared to invest in
customizations and workarounds to overcome them. By understanding these
challenges and planning accordingly, organizations can create robust
customer portals that meet their data-driven needs while mitigating these
potential issues.
Course Correction: Rebuilding with ASP.NET MVC, Azure Services, and Microservices
Recognizing the challenges and limitations encountered in the journey to
build a customer portal using Power Pages and other Power Platform
components, a course correction became imperative. The organization
decided to pivot towards a more robust and reliable solution that better
aligned with their needs and future scalability. The decision was made to
revert to a proven technology stack and leverage cloud-native
microservices, resulting in a more maintainable and efficient solution.
1. Embracing ASP.NET MVC on Azure App Services: The organization
made the strategic choice to move away from the Power Platform and,
instead, built the customer portal using ASP.NET MVC hosted on Azure App
Services. This transition provided a sturdy foundation for the portal,
enabling more control over the architecture and scalability. With ASP.NET
MVC, the organization could tailor the portal to their specific
requirements and ensure that it met their needs without the constraints
encountered in the previous setup.
2. Robust Data Model and Hierarchy of Classes: To address and remove the
dependency on Dynamics 365 being continuously available, the organization
designed a robust data model represented by a hierarchy of classes. This
approach allowed the extension of the portal to accommodate various
entities within the organization. By creating a well-defined data model,
the organization achieved better data consistency and control, reducing
the risk of disruptions due to external dependencies such as relying on the flimsy dual-write D365 to Dataverse functionality.
3. Leveraging Azure Storage Queues and Azure Logic App: The
previous reliance on direct APIs to Dynamics 365 was replaced with a more
resilient solution. Azure Storage Queues were introduced to queue
transactions, ensuring that they were picked up and processed at specific
intervals via an Azure Logic App. This decoupled the portal from Dynamics
365's availability, allowing the organization to handle transactions
asynchronously and avoid disruptions caused by downtime.
4. Data Management with Azure File Storage and LINQ: To address
their data needs, the organization developed purpose-built data export processes
that produced JSON data, which was then serialized and deserialized from
Azure File Storage coupled with the usage of file-dependency cache mechanisms. This approach enabled the use of LINQ for extremely
fast in-memory data access. The result was a data management strategy that
was not only efficient but also highly performant.
5. A Pure Native .NET Solution with Cloud-Native Microservices: The
end result was a pure native .NET solution that leveraged cloud-native
microservices. This approach offered scalability, reliability, and
flexibility, aligning with the organization's objectives. It also ensured
that the solution could adapt to future requirements without the need for
extensive customizations and workarounds.
6. Consolidation of Skills: By transitioning to a more traditional
.NET-based solution, the organization consolidated the skills needed to
maintain and enhance the portal. This approach simplified the hiring and
training process, reducing the dependency on a wide range of expertise, as
was required in the Power Platform setup.
The course correction that we suggested and that was undertaken by the
organization represented a strategic move towards a more reliable and
maintainable solution. By reverting to ASP.NET MVC, embracing Azure
services, and transitioning to a cloud-native microservices architecture,
the organization has addressed the pitfalls and limitations of their
initial approach. This new solution not only offers better control and
scalability but also simplifies skill requirements, ensuring a more
efficient and robust customer portal that can adapt to future needs with
ease.
In Closing: Navigating the Reality of Tech Solutions in a Cost-Value Paradigm
The journey from a Power Pages-built solution to a more robust, native
.NET architecture serves as a valuable reminder of the critical importance
of aligning technology choices with an organization's identity and scale.
In an age where marketing propaganda (Microsoft Power Platform) and
pay-to-play content (Gartner) can easily sway decision-making, it is
essential to discern the true value of a tech solution beyond the allure
of broken low-code/no-code promises. Organizations must be mindful of their
specific needs and challenges, knowing that a "one-size-fits-all" approach
rarely aligns with the intricate realities they face. Prioritizing cost
over value can lead to disappointments and, ultimately, costly
consequences. In the end, it's not about settling for what's popular but
making informed decisions that truly serve the organization's unique
mission and goals.
Comments
Post a Comment