Unlocking Cloud Efficiency: Overcoming Reporting Challenges with 27Global’s Enterprise Solutions

Our clients want to move to the cloud for modern tools, flexibility, reliability, and a host of other reasons. At 27Global, we help our clients achieve these goals better than anybody.

Challenges with Off-the-Shelf Reporting Tools

Modern enterprise-level cloud environments with multiple apps and services present additional complications that, if not planned for and architected appropriately, can make the cloud environment feel just as disjointed and siloed as the on-premises systems being replaced.

Many applications need to produce polished, deliverable reports to customers or other stakeholders. While off-the-shelf reporting tools like PowerBI or Tableau are incredibly powerful at statistical reporting, visualizations, and dashboards, some deliverables need to live outside a dashboard, or have multiple components to be collated together into a cohesive unit.

In other cases, the ongoing licensing cost of these tools is more than the business wants to bear. If reporting needs can’t be easily met by those sorts of tools, the default is to make each app responsible for creating its own reports. In this scenario, each app development needs the added complexity of the infrastructure to be able to generate those reports.

The Solution: Enterprise Reporting Service

When each app must do it all, it increases individual app complexity. It also increases the complexity of doing company-wide updates. Maybe a logo needs to be updated, a brand style book is tweaked with a new set of colors and fonts, or some common metric calculation is updated to meet a new industry standard.

In the normal way of doing things, the app dev teams need to be familiar with the reporting structures of all the different apps in the environment and spend the time and effort to make changes in each of the apps.

The cloud-native solution is an app agnostic enterprise reporting service. 

An enterprise reporting service needs to be flexible and extensible, capable of handling ad-hoc requests and massive batches. It needs to have provisions for easy report templating and discrete deployment.

Implementing Enterprise Reporting on Azure

When we deliver to clients on Azure environments, there are a number of tools at our disposal to accomplish this kind of structure. 

The Azure Service Bus is the backbone of the reporting service. Service Bus can facilitate communication between disparate systems and allow the application to request reports. Metadata on the message determines what topic and subscription on which to publish the message. The message itself contains all the necessary inputs from the app for the report to run properly. 

Individual Azure Function Apps are set up for each report. Each function app is subscribed to the appropriate service bus subscription and is triggered by a message landing in the queue. The function app can then consume the message to produce the report.

Settings on the number of concurrent invocations a function app is allowed to do combined with app service plan scaling can provide the flexibility to run large numbers of reports as necessary. 

A separate enterprise reporting code repository underpins the function apps, whether GitHub or ADO, code for the reporting function apps lives in a centralized spot. In that repo, different pipelines are set up for each function app.

DevOps teams can deploy new report code or make updates to existing reports without affecting anything but that specific report. In some cases, logic that feed sections of reports can and should be common across several reports. This structure also allows for a change to be made in one place to cascade effortlessly to everywhere else that logic is required.

Modern Document Creation Utilities

Instead of building dense, code heavy report templates in some arcane format that might not be supported in the next code version, a modern document creation utility is required for enterprise reports. These tools can be fed templates as PowerPoint slides, PDFs, Excel workbooks, and a host of other formats to create that professional, polished report for the final recipient.

Streamlined Document Creation with Aspose

At 27Global, we have used Aspose to accomplish this. This kind of tool lets the design and marketing teams who excel at how a document should look and feel create, and the developers fill those templates in with application data. This utility – and all the templates it needs – live in the enterprise reporting repo, all in one place for the app dev teams to manage. 

As the user interacts with any of the connected web apps, the app will trigger the Service bus to queue up a message. Each function app is listening to the appropriate Service Bus Subscription to execute.

Once the function app picks up the message, it will run the operations it needs to, interacting with the app and interacting with Aspose to generate the report, save it to an appropriate storage account, and tell the app that it has completed. The app can then serve the finished report up to the user via their browser.

Azure-Powered Reporting Infrastructure

27Global has built several apps in Azure for one of our longtime partner clients. These apps have various levels of reporting needs, all handled within the apps. As the client relationship has grown, the need for a more enterprise-focused approach has become a goal.

A particularly complex app developed recently has dozens of different types of reports, reports that are conglomerations of other reports, and large batch reporting needs that all needed to be accounted for in the design.

Enhanced App Reporting Structures

We designed the reporting structure for the app as described above and it has proven to be a flexible, time-saving improvement. In a discussion with the client’s app dev team, the relief at how much easier it would be to update and improve reports was evident and the team was pleased to hear they wouldn’t have to deal with unwieldy RDLC files anymore.

Previously, simple tweaks to report look and feel could take weeks as the app dev team had to get the format code just right. Now, they can call the marketing group to put together a PDF using all the appropriate style guides and up-to-date graphics, and set that new PDF as the template in minutes.

The reporting system allows for other apps to hook into it as needs grow. Existing apps can be refactored to use the reporting structure, should the client choose, for easier maintenance of their reporting loads. The biggest benefits will be seen in subsequently developed apps using the new infrastructure.

This directly reduces the cost of developing that subsequent application substantially. There is now a defined, uniform process for designing an application’s reporting structures that doesn’t require a technical architect to reinvent the wheel, cloud engineers to build out redundant infrastructure, or developers to deal with different tools each time the client needs an app with reporting capabilities. 

Driving Enterprise Cloud Transformation

If your organization needs help taking a more enterprise-focused approach to your cloud environment, 27Global has the acumen and experience to help you meet your goals. Contact us today to learn how we can partner.

27Global’s Brandt Whittenburg is a Senior Consultant with a background in reporting and database management. He has extensive experience delivering exceptional software in the healthcare and financial industries. 

Share this post