SiriusIQ delivers seriously intelligent AI on Azure Service Fabric
To design the next generation of enterprise workflow automation, SiriusIQ built a new development stack and defined their core architecture using Azure Service Fabric, Azure Cognitive Service Language Understanding, and other Azure services.
This article is part of a series on customers who worked closely with Microsoft on Service Fabric over the last year. We look at why they chose Service Fabric, and we take a closer look at the design of their solution.
Bot-driven intelligence and workflow automation
SiriusIQ focuses on next-generation artificial intelligence (AI) and bot technologies with workflow automation. Their cloud-born solutions streamline business processes, conversations, and analytics using a dynamic workflow engine built on the Service Fabric platform.
SiriusIQ solutions share a dynamic, intelligent workflow engine at their core. Many of these workflows solve common business issues including automated data migrations, GDPR (General Data Protection Regulation) solutions, AI-built FAQs, automated meeting bookings, and cross-system enterprise workflows involving third-party interfaces such as Salesforce, ServiceNow, and DocuSign.
By combining the power of SiriusIQ’s workflow engine with AI and bot technologies, they developed an innovative cloud-based migration tool that enables their customers to move just about any data from point A to point B. SiriusIQ embraces AI as the UI—their natural language interface makes it easy for customers to interact with the many SiriusIQ services. This interface uses Language Understanding (LUIS) and other services from Azure’s growing library.
Service Fabric gives us a globally scalable solution that is secure, stays current, and is easily extensible by adding new microservices. It also eased or removed many classic development challenges—OS patching, version testing, security issues, scalability. We can develop and bring new functionality to our global customers in timelines that were not possible before embracing Azure services.
—Ken Leach, SiriusIQ Partner
Microservices empower the development team
SiriusIQ wanted to avoid the traditional way of developing and solving workflow issues. That model requires distinct solutions, forcing code changes and regression testing for variances in customers’ requirements. Using this classic, monolithic development model, developers are burdened with many challenges. Anyone who has written production code in the last 30 years is familiar with massive code bases, recompilation issues, and the need to redeploy the whole stack while managing the impact on user downtime. Whole app regression testing is challenging enough without also trying to keep up with operating system patches.
This pattern is common in the industry, but SiriusIQ knew they needed to do things differently. They needed a broader architecture than they could create on their own, one that scaled globally, stayed secure, and could be dynamically optimized for performance. They simply could not use the classic development model with its operating system limits and much slower software development life cycle. Azure gave them the platform they needed for delivering a globally balanced solution, and Service Fabric provided a way to get new features into production in just minutes or hours.
By switching to Service Fabric and microservices, the developers at SiriusIQ soon discovered how many of the old development issues they could leave behind. They quickly embraced the new development patterns that enabled them to scale on demand and deploy only what’s changed without downtime. The team didn’t have to worry about operating system patches. Even security was simpler, since many of the classic application security concerns are not relevant in a Service Fabric solution. Microservices also freed developers from the overhead associated with the traditional development model. They can focus on just the microservice they are building, which makes the team more efficient.
Using Service Fabric, the SiriusIQ team could also rethink the way they developed services. They made the most of stateless services for HTTP as well as stateful services for internal processing and actors for processing millions of small transactions—all of which can be scaled independently. This shift in technology led to far more advanced integrations than the team ever imagined and gave rise to QuinnTM, the SiriusIQ intelligent assistant that uses Azure Cognitive Services AI with active learning. Quinn plays many roles at SiriusIQ. It manages the overall flow of data, consumes telemetry, and learns more efficient workflows. The more Quinn is used, the smarter it gets.
A new workflow architecture
One of the team’s goals was to create a new workflow engine to speed their customers’ data migrations. SiriusIQ went beyond the classic development model, which runs processes in parallel or uses PowerShell scripts. Instead, they used Service Fabric to build microservices that disconnect reads from writes to create dynamic workflows that adapts to the most efficient path based on their custom AI. The Azure platform provides global scalability and performance.
Figure: SiriusIQ dynamic workflow architecture uses separate reader and writer microservices for fast, intelligent data migration.
To achieve the goal of ever smarter, faster services, SiriusIQ’s new workflow architecture uses a collection of AI services and telemetry—much of which is collected with Microsoft Application Insights—to power Quinn, the SiriusIQ AI bot. The team also optimized the new architecture with a continuous deployment model based on Visual Studio Team Services. This continuous integration and deployment environment for Azure allows SiriusIQ to deploy on demand using their AI bot, which avoids the need for downtime.
A dynamic service workflow
In the SiriusIQ architecture, dynamic workflows define goals. Those goals are achieved by a collection of microservices that run in Service Fabric and perform a certain task efficiently. Using deep learning and Application Insights telemetry, the AI calculates an efficient path from the starting point to the goal via the correct set of microservices. Intelligent workflow processes consider multiple permutations to ensure the most efficient path. Many SiriusIQ services work in similar fashion to support very complicated workflows such as tracking a contract through signing with HubSpot, ServiceNow, and DocuSign.com.
For data migrations, the AI manages optimal path to reach the goal using SiriusIQ’s growing library of microservices. One migration will easily have millions of Service Fabric requests, instantiating required microservices that securely read data from sources such as email, files, or messaging systems. The reader microservice works independently of the writer microservice that writes to a destination in a similar manner. Massive parallelism ensures extremely fast workflows. The architecture can even read once and write to multiple destination systems if, for instance, a customer wants a copy to go to both OneDrive for Business and Box.com.
During a file migration, millions of instances may be running, but even if an instance encounters an exception, the overall process does not slow at all. The process with the exception attempts to use a new path based on past telemetry from instances with similar issues where a known path solved the issue.
If a path does not exist, a development “swim lane” is generated with captured telemetry from Application Insights. This detailed information includes the telemetry around the issue as well as the line of code that caused the exception. A developer can quickly find the issue and build a slightly different version of the microservice, then use a continuous deployment pipeline to add it to the possible options—without breaking any of the existing code. The excepted process can then find a new route with the new microservice. If successful, it becomes a model for other processes that may encounter a similar issue. If unsuccessful, the effectiveness rating of the new service drops, and the process is aged off the system if it does not provide any value. In this manner, the development team can dynamically optimize any workflow and take full advantage of Service Fabric and the AI.
Service Fabric allows SiriusIQ to build a real, managed microservice platform that can be scaled and provisioned easily with high availability both on premises and in the cloud.
—Wallace Breza, SiriusIQ Partner
Service Fabric benefits
The team at SiriusIQ has been working with the latest technology for more than 30 years. Always on the lookout for value and more efficient and effective ways to achieve their goals, the team was impressed by what Service Fabric had to offer. It completely changed the way they developed, tested, deployed, and scaled their core technology. Service Fabric also delivered a valuable model for any development effort going forward, enabling SiriusIQ to bring more value to customers through dynamic services, improved costs and efficiencies, and a better user experience.
The Service Fabric platform provided the following key benefits:
- Fewer dependencies: By breaking up the dynamic workflow process into smaller microservices, the SiriusIQ team removed widespread dependencies. Dependencies still exist but only for a focused microservice instead of a larger dependency matrix typical in monolithic applications. This change alone greatly increased performance and reduced testing and deployment timelines.
- Mid-process branching at scale: Using the Service Fabric Actor pattern, SiriusIQ introduced mid-process branching, which opened up many possibilities for future products. For example, an added service is metadata tagging during content migrations. If access is granted by a customer, the contents of the object being moved can be tagged for PII, GDPR, or other custom requirements, all out of band while the payload is in transit. Tagging does not slow down the migration—it occurs without interruption to the dataflow underway.
- Global scale: The Service Fabric microservice model gave the SiriusIQ team the global scalability and performance they needed. For example, in a simple migration where 1,000 users exchange email, the new platform easily supports more than seventy million messages on Service Fabric. SiriusIQ was also able to comply with data sovereignty laws of Australia while moving sensitive government email. They deployed a complete, dedicated solution in the Azure Australian data center using their AI bot and Azure Resource Manager in under thirty minutes.
- Streamlined testing: SiriusIQ’s patent-pending workflow exception model allows dynamic workflow updates without code deployments. The new microservice-based process reduces the scope of the testing needed. The overhead of managing patches, scale, and deployments is no longer a burden.
- Self-tuning systems: When a new service is introduced, SiriusIQ’s patent-pending workflow process compares its performance to others that perform a similar function and ranks them dynamically. The best options for a given scenario float to the top; likewise, the slower or non-performing options age off the system. This process is managed by SiriusIQ’s custom AI that considers rank among many other metrics when determining the most efficient path to reach goals.
- Security: The compliance certifications of the Azure platform bring added value to SiriusIQ and their customers’ security teams. SiriusIQ performs regular service audits based on the Service Organization Control (SOC) reporting framework. Since SiriusIQ’s complete solution lives in Azure, many of the compliance checkboxes needed are provided to them by Microsoft.
Other Azure services
SiriusIQ works with a number of other Azure services, including:
- LUIS: The AI bot can dynamically update the intent model in LUIS, growing as it is used.
- Application Insights: One of the secrets to the success of the best practices model of developing in Service Fabric is to have the best possible telemetry. Application Insights gives the SiriusIQ team a level of visibility into everything that is happening, from one user’s file to billions of messages and migrations happing simultaneously. A small email migration of 1,000 users, for instance, can easily produce over 35 MB a day of telemetry data from Application Insights. SiriusIQ spent a fair amount of time designing how they could not just report status but use their AI and Azure deep learning to make the telemetry actionable.
- Azure Redis Cache: The power and speed of Azure Redis Cache combined with the ability to secure the transport brings performance, security, and scalability for the countless services SiriusIQ provides to its customers.
- Azure Service Bus: Leveraging Service Bus topics and subscriptions allows the pub/sub model to scale to support thousands of requests per second.
- Azure Cosmos DB: The solution uses Azure Cosmos DB for fast, reliable geo-redundant data storage across document and graph databases.
- Microsoft Bot Frameworks: SiriusIQ’s bot communication channels seamlessly scale to the most popular messaging channels available. The framework offers capabilities for building their own as well.
- Azure Key Vault: To keep SiriusIQ’s protected configuration data secure, they use Key Vault.
Deciding to build new tech from scratch using Service Fabric at the core of our solution could not have been a better fit for us. We now start projects within a whole ecosystem of technology from within Azure that honestly gets us more than 80 percent of the way to delivery. The more microservices we build and accumulate, the more capabilities we are able to offer to our customers. There was no other alternative on the market that came close to Service Fabric.
—Mark Golden, SiriusIQ Partner
As the cloud landscape continues to evolve and customers ask for more services, the Service Fabric platform helps the SiriusIQ team adapt to change quickly. Although the team’s current focus is data migration, GDPR, and healthcare use cases, the company’s core dynamic workflow is very flexible and can be used to solve many business issues. By simply adding new microservices, SiriusIQ can take advantage of new functions in Service Fabric, release new services to its customers, and set the pace of the industry. The natural language capabilities enable users to continue to interact with the process while it runs.
SiriusIQ was recently approved as a member of the Co-Sell program of the Microsoft One Commercial Partner ISV program. This exclusive program highlights unique partner solutions that address critical enterprise IT pain points by making the most of Microsoft technologies. Learn more at the SiriusIQ website.
The SiriusIQ offering is intelligent, powerful, and flexible. And the leadership team has a stellar track record of successfully bringing next-gen tech to the enterprise.
—Frank J. Casale, IRPAA Founder and Chairman