This article is contributed. See the original author and article here.
App Service Hybrid connection offers a quick and uncomplicated way to reach your on-premises services in scenarios where there aren’t other networking solutions like VPN or ExpressRoute available. Normally, you don’t even need to open any firewall ports in your on-premises environments because it only requires outbound HTTP connection over port 443 towards Azure to work. Behind the scenes, it is a TCP relay proxy over websockets. It only works to reach services that run on TCP protocols and not UDP.
Therefore, it might be a good fit if you are planning to migrate your application(s) to Azure App Service but this app has dependencies to on-premises databases or APIs and your networking team is not yet ready to set up a VPN/ExpressRoute connection between these environments. The migration work can be unblocked using Hybrid connections towards these external dependencies with no code changes within your app.
However, what to expect in terms of performance? Apart from the pure networking latency of having an App Service connecting back to on-premises service… will the Hybrid connection itself introduce extra latency on top of network? What about the different scenarios:
Reaching on-premises HTTP APIs;
Reaching on-premises databases;
Downloading on-premises large files over HTTP
In this article we will run benchmarks on all given scenarios above and compare them with and without Hybrid connection. It is not the goal here how to configure such a connection, because that tutorial is very well described here.
The test setup
An App Service Hybrid connection relies on a service called Azure Relay to work (and Azure Relay is based on Azure Service Bus platform). This is how the architecture looks like:
Now, let me explain how the setup in this test is done when comparing to the diagram above:
App Service: a small PremiumV2 .NET Core 6 app running in Brazil South;
Azure Relay: if you don’t have an already created Azure Relay created, the App Service Hybrid connection will ask you to do so. Here, I created one in Brazil South region;
On Premises: to simulate an on-premises environment, here I have a physical computer with a fast and modern hardware (Ryzen 5 5600H, 16GB ram, 512gb SSD) connected to a 600mbps stable fiber connection. This system has an average 12ms (milliseconds) latency to Azure and vice-versa. It also has one SQL Express 2019 database, a .NET 6 API to simulate on-premises services for these tests and the HCM (Hybrid Connection Manager) that is required for this setup.
Now, we want to compare the Hybrid connection overhead over the raw network connection. So, for each test that will follow in this article, we will configure the App Service to hit the services via Hybrid connection endpoints and then run the same test but going directly to the public IP of the “on-premises” server, skipping the relay completely.
Here’s the configuration in the Portal:
Scenario 1: HTTP requests
Let’s assume you got on-premises HTTP services to reach from an App Service via Hybrid connection. In the configuration picture above, that endpoint name is “andre-api” which points to a on-premises DNS name of “testerelay” on port 5001. That is the .NET API running in the on-premises computer. This API has a REST endpoint that returns random strings of around ~8kb in size.
From the App Service side, it runs another .NET API that calls the previous endpoint in three different ways:
Single request: App Service calls the on-premises API once
Sequentially: App Service calls the on-premises API 50 times in a row. When the previous request finishes, the next goes ahead and so on… until we reach 50 requests;
Parallel: App Service calls the on-premises API 50 times at the same time. This is accomplished by making use of .NET tasks
The intention here is to verify how well the relay handles a typical real-world scenario where you get many parallel requests at a given time. All requests here are using HTTP2 protocol.
Check out the results table:
Average response time per HTTP request
Difference
Direct
Hybrid connection
Single request
13ms
24ms
+84%
Sequential (50)
13ms
34ms
+161%
Parallel (50)
50ms
60ms
+20%
Important note
Having the App Service .NET API calls the relay forcing the HttpClient to use HTTP2 by default made a huge difference for the positive side in the tests results. HTTP 1.1 was much worse especially in the parallel requests test;
Conclusion for HTTP tests
If we look at the difference numbers in % it seems to be a huge overhead added by the Hybrid Connection, but looking at absolute numbers, it is not. In the more realistic test of this setup – the Parallel HTTP simulation – we get only 10ms added compared to a direct connection, which is negligible for most applications. Another point to keep in mind here is that we are comparing the Hybrid connection to a direct connection back to on-premises. In reality we would have a VPN or other appliance which might add some extra delay there too.
Scenario 2: database connections
Another very common use case is the need to fetch data from a on-premises database that could not be migrated to Azure at the same time as the application. Here we will make the App Service .NET API call the on-premises SQL Server using the relay connection and then directly. The query returns from the database around ~8kb of data per call. Like the HTTP tests, there will be three different scenarios:
Single request: AppService queries the database once
Sequentially: App Service queries the database 50 times in a row. When the previous query finishes, the next goes ahead and so on… until we reach 50 queries;
Parallel: App Service queries the on-premises database 50 times at the same time. This is accomplished by making use of .NET tasks
Average response time per SQL query
Difference
Direct
Hybrid connection
Single query
13ms
13ms
0%
Sequential (50)
13ms
27ms
+107%
Parallel (50)
13ms
30ms
+130%
Conclusion for database tests
Compared to the HTTP tests, the database queries have less overhead because of the TCP nature of the connections. While the direct connection had no extra overhead even when querying 50 in parallel, the Hybrid counterpart added some but not significantly – again, looking from absolute numbers perspective and not purely in percentage.
Scenario 3: large file downloads
Now let’s benchmark something less usual: what about using the Hybrid connection to stream a 1GB file (a Linux ISO file) from on-premises REST API via HTTP? Here I’m expecting more overhead because the underlying websockets protocol that Azure Relay is using is not really meant for these cases. But anyway, here are the results:
REST API HTTP download speed
Difference
Direct
Hybrid connection
27 MB/s
20 MB/s
35%
Conclusion for file download test
I was expecting a much worse result, but the Hybrid connection surprised for the better here. I wouldn’t recommend this connection for streaming large files but this test shows that this is possible if it is really needed.
Overall conclusion
These benchmarks did not cover all the possibilities for a Hybrid connection but certainly give us an idea what to expect. Generally speaking, it is a solid alternative and I would recommend for scenarios where a VPN or ExpressRoute connection is not possible. The biggest advantage for sure is ease of use – setting up your own environment to run similar tests will take just a couple of hours top.
If you wish that I run additional benchmarks and scenarios, please let me know in the comments!
This article is contributed. See the original author and article here.
Customization is one of the most effective tools to ensure users are maximizing application capabilities by tailoring them to their organization or individual use cases. Microsoft Dynamics 365 Sales users love the sales accelerator experience, where they get a prioritized list of customers and an optimized workspace. It is a modern view that provides seamless navigation and relevant guidance regarding the next best activity the user should take, without multiple context switches. However, our users told us they needed more flexibility to customize work item cards according to the requirements and use cases of specific organizations or users. That flexibility is now available.
The new work item experience enables users to customize work item cards according to their needs and organizational requirements. With key information visible in the work item cards and relevant filters and sorting mechanisms easily available, users can make quick, informed decisions about the next entity or sales workflow to select, just by glancing at the curated worklist.
Work item appearance customization options
The key highlights of this feature include:
Modify the information, icons, and action buttons displayed in a work item card so that the most relevant data for Sales entities is always available
Control the customization at the organization (admin) and user levels
Let’s understand the capabilities in detail and how you can benefit by customizing work item cards across your sales scenarios.
What is work item card customization?
The ability to customize work item cards is a new capability offered as part of the sales accelerator workspace. It allows users to customize the design, content, and structure of work item cards to display the most relevant and valuable information in the work item. Users can personalize work items for each entity type they work with, by adding, removing, or modifying icons, activities, and the number of rows or the number of fields in each row, which are displayed as part of the out-of-the-box card structure. Users can view the fields and activities that are relevant for them in any ongoing sales processes.
Who will benefit from customized work item cards?
Work item card customization is beneficial to individual users, business admins, and sales managers, as this feature provides control at both organizational and user levels.
Work item card customization is available for business admins without having to change any settings. If you have an admin role in your organization, you can start using the feature right away to customize work item cards. Define the work item card structure that will be visible in the worklist of the sales accelerator workspace for all relevant entities in accordance with your organizational directives or sales scenarios.
As an admin, you can lock customization to ensure that users are not able to make any modifications to work item cards without reaching out to you.
Lock customization capability for admins
If allowed, users can define the work item card structure for all relevant entities according to their own requirements and advantages. The customized view is visible only to the user, and they can always restore the default card view with a single click.
Below are some of the use cases for customizing the work item card:
If sellers are directed to prioritize opportunities based on the estimated revenue, an admin can update the structure of the Opportunity work item to show the “Estimated Revenue” field.
To pick up an opportunity based on a field like “Rating,” which is not part of the Opportunity entity card, users can modify the card structure to add the field.
In cases where lead cards are displaying information that isn’t relevant for the user’s work, they can remove unneeded fields and keep the ones they find relevant.
How to customize work item cards?
A card designer with dynamic preview options allows users to view their changes as they are making them, reducing design errors and minimizing rework while modifying the card structure. The designer comes with a one-click “Reset to Default” option available at any point in case they want to return to the out-of-the-box card structure for an entity.
Users can make the following customizations using the card designer:
Modify the card icon to add an image, initials, or record or activity type associated with the record
Add up to three fields and three icons in a single row
Add up to four rows
Remove rows or fields (a minimum of one row is required)
Add action options from an available set (skip, preview, assign, mark complete, etc.) to perform the actions without having to delve into the form details of each entity
The card designer allows users to update the design and structure for all the sales entities by selecting the relevant one from a list. Changes that admins make are reflected in work item cards for all users. Users can modify and save their own card structure, which overrides the out-of-the-box or admin-defined structure.
This article is contributed. See the original author and article here.
When you’re crafting marketing and sales strategies, an important way to drive engagement and purchases is by personalizing your marketing campaigns, journeys, and content to your customer segments. One method for segmenting your customers is by their potential value. AI can help predict their potential lifetime value so you can create segments of high-value and low-value customers. As with all AI, the more data the AI model has, the more accurate its predictions will be. Now you can use Dynamics 365 Customer Insights to include selected customer profile attributes in the customer lifetime value (CLV) predictive model. This post will share what customer profile attributes are, how to use them in the CLV model, and what’s new in the overall experience of using the model.
AI: It’s all about the data
The type of data that’s provided to an AI model can influence the accuracy of its predictions. Transaction data, which AI models use to predict transaction value in the future, can become more accurate by adding customer data. The more customer data you provide to a model, the more accurate and targeted the segments of “high-value” and “low-value” customers will be. As a result, marketing campaigns that target those segments can speak more directly to the individual traits of your customers, driving engagement and sales.
Dynamics 365 Customer Insights is introducing a new feature for the CLV out-of-the-box predictive model that allows you to select customer profile attributes to include in the prediction. You can select from 18 commonly used attributes, in any combination, to include as an input to the model.
What is the customer lifetime value prediction model?
The CLV prediction model predicts the potential valuerevenuethat individual active customers will bring to your business in a future period that you define. The model can help you to:
Identify high-value customers.
Target individual high-value customers.
Create strategic customer segments based on customers’ potential value to run personalized campaigns with targeted sales, marketing, and support efforts.
Recognize and reward high-value customers through loyalty or rewards programs.
Identify characteristics of high-value customers.
Guide marketing and sales strategies by optimizing factors that increase customer value; for example, by incentivizing more frequent visits or using upsell campaigns to encourage larger transaction totals.
Optimize sales or marketing strategy and allocate budget more accurately for customer outreach.
Identify medium-value and lower-value customers to create strategies to improve their value.
What are customer profile attributes?
Attributes are the fields in a customer profile (or in any Common Data Model entity). Customer Insights uses both standard entity definitions and its own entities, including CustomerProfile. The CustomerProfile entity includes dozens of attributes that define the characteristics of your customers, such as their birth date, first name, last name, and gamertag.
What is the model doing with these attributes?
Customer attributes can serve as extra sources of information to make customer lifetime value prediction more personal. Personalizing these predictions helps to customize the model to your use case without requiring you to develop fully customized AI models.
The profile attributes that you select during configuration are added to the model and considered alongside required input data. The model’s results page shows how much the attributes influenced the prediction.
As illustrated in the figure below, the CLV model creates a table of the features of transaction activities, such as average transaction value and transaction frequency, with one row for each customer. It augments the table with features of other activities, such as the number of days since the last retail product web review. Now, you can include customer profile attributes such as gender and date of birth as features in the activities table as well, to determine how those factors affect the prediction.
How has the experience of configuring the CLV prediction model changed?
The high-level experience of configuring the CLV model hasn’t changed. The only difference you’ll notice is that now you can use the Additional data (optional) step to boost model insights with additional customer data, in addition to activity data.
As shown in the following screenshot, you’ll need to map one or more of the 18 possible customer profile attributes to a field in the activities table for the model to include them.
Adding customer profile attributes to the model is optional. If you choose to use them, you can map as few as one or as many as 18. The CLV model will consider all attributes for which you’ve provided a mapping and decide whether they’re influential in identifying your predicted high-value and low-value customers.
What changes will I see in the CLV prediction model?
You can review your prediction results on the My predictions tab in Intelligence > Predictions. Select a prediction to view its results page.
You’ll see the results of using customer profile attributes on the results screen. More information about the results page is available in the product documentation. The model will decide which of the customer profile attributes are influential in the customer lifetime value prediction and will show them alongside other influential factors on the results page.
The results page is the easiest way to know whether the attributes you mapped were used in the prediction. The influential factors table shows the importance for predictive ability that the model assigned to each of the aggregated factors. If a mapped attribute had zero or very little impact, you might infer that that characteristic of your customers doesn’t affect their potential lifetime value.
The factors are aggregated because it’s a simpler way to understand hundreds of factors that are similar. For example, the model aggregates the importance of all location-related fields under a single factor called Location.
Could adding customer attributes make my model biased?
Like all AI features that are developed at Microsoft, all the out-of-the-box predictive models in Customer Insightsincluding the CLV modelare subject to rigorous Responsible AI principles. We follow these principles to ensure that our AI features meet our standards for developing ethical solutions that you can trust. Because you bring your own data to these models, it’s important to understand that any bias that’s present in your data might influence the predictions to be biased as well.
Let’s say that Contoso Coffee is hosting an event to launch a top-of-the-line espresso machine. Wanting to target high-value customers to invite to the launch, they use the CLV model and include the customer profile attributes Location and Occupation in the prediction. They find that their highest-value customers live in affluent suburbs and work in particular occupations.
A closer look reveals the bias hidden in the prediction when it includes just Location and Occupation: assuming that where a customer lives or what they do for a living are the only attributes that indicate a high-value customer. Selecting only a subset of customer profile attributes can be a type of bias.
Three ways to avoid bias in customer lifetime value prediction
To avoid introducing bias into your predictions, make sure the source data is fair. You can use tools like Fairlearn to check the data you’re ingesting into Customer Insights.
You can train your model in a way that avoids bias, too. It’s as easy as including as many customer profile attributes as you can map, to allow the model to consider them as influential factors.
Finally, you can avoid bias when you review your results. Take the model’s influential factors list into consideration and avoid “cherry picking” customer attributes that serve a hypothesis you might have.
Returning to our Contoso Coffee example, should they include Location in their model? Certainly. They want to make sure guests they invite can easily travel to the event, so that’s a fair use of the Location attribute. But they should consider other attributes to help them make a fair decision and capture the best audience to invite.
Why might my mapped attributes not be used?
If a customer attribute you mapped doesn’t appear in the influential factors table, this might be why:
You might have mapped the attribute incorrectly. Map it correctly, and then run the model again.
The model didn’t find it to be influential compared to the transaction and activity data.
Data quality issues made the attribute unusable.
Customer Insights checks the data quality of mapped attributes before using them in the model. For example, if most entries for an attribute are missing, we consider that attribute unreliable for prediction. The model doesn’t use it and it doesn’t appear in the influential factors list, but it does appear in the input data usability report.
When is this feature available?
Customer profile attributes are available now in the CLV prediction model in Customer Insights.
New to Dynamics 365 Customer Insights? Already using it but want to try out CLV customer profile attributes with demo data? Start a trial.
Want more information? Reach out through the Customer and Partner Voice channels or share a suggestion on the Dynamics 365 Application Ideas page.
Want to engage with the wider community? Ask a question, share an idea, and connect with other Customer Insights partners and users in the Customer Insights forums.
This article is contributed. See the original author and article here.
Attempting to impersonate someone is an activity as old as humanity, and has been used to great comedic effect by comedians and jesters throughout the ages.
Sadly, the crime of identity theft (in which a criminal uses someone’s identity details for fraudulent purposes) is very much not a joke. Not only because it can destroy someone’s finances and credit, but can even lead to false arrests and other life-altering consequences for the person whose identity is being abused.
Even less funny than that, is that the number of these crimes is currently at an all-time high. According to identitytheft.org1 the number of identity theft incidents are up 70% compared to 2020, with the yearly number of reported identity theft incidents clocking in at 5.7 million in 2021 for the US alone.
Figure 1 – Source: FTC annual data book 2021 (ftc.gov/data)
Figure 1 – Source: FTC annual data book 2021 (ftc.gov/data)
And along with the number of incidents, the median cost of these identity theft incidents is also on the rise, reaching an estimated $500 USD per incident based on the 2021 data2. This is in direct correlation with the ever-increasing number of devices and services people use in their daily lives, and the strong shift to conducting life online (from work, shopping, and entertainment), which have all served to increase exposure to this type of crime.
All of this means that, on average, someone’s identity is stolen every 22 seconds in the US, and 33% of Americans will become a victim of identity theft at some point in their lives. In fact, 1 in 4 have been victimized by identity theft before they turn 183. In all, this is most certainly not a laughing matter, especially when you consider that this type of crime costs the US economy 5.8 billion USD per year4.
Hopefully, after hearing the above numbers, you’re wondering what can be done to stop this. Or, at the very least, what you can do to prevent yourself and your family from becoming identity theft victims.
The answer to that question is both simple and very hard; It starts with implementing all the common security advice you’ve probably heard thousands of times before: Use strong passwords, do not reuse credentials, enable multi-factor authentication, do not post personal data on social media, monitor your credit cards, bank accounts, and credit history for anything out of the ordinary, etc.
But the problem with this is that securing your identity is not just solely your responsibility. What makes it hard is that every company, government body, institution, etc. that holds your information is also participating in this game of staying ahead of the identity thieves. And, when we remember that data loss incidents by those entities have been on a steady rise for years with no signs of stopping, it’s an almost statistical certainty that someone, somewhere, will expose your data at some point.
As a result, all too often people that follow the commonly espoused advice about account and identity security to the letter still become a victim of identity theft, through no fault of their own.
Introducing identity theft monitoring
Which brings us to the core topic of this article; Microsoft is excited to announce that identity theft monitoring is available today to Microsoft 365 subscribers (for both Personal and Family subscription plans) in the United States.
Figure 2 – Microsoft Defender with identity theft monitoring enabled
This solution addresses one of the biggest challenges in preventing identity theft: visibility. We’ve partnered with Experian® to leverage their powerful identity monitoring technology to detect, track, and alert you whenever we find any identifying information on the internet, the dark web, and less common sources like file sharing, chat rooms, and many other places.
By showing exactly what details are compromised and/or publicly available, Microsoft empowers you to take control of your personal identity security and make informed decisions. Once you know what’s out there, you can take action by resetting passwords for compromised services, enabling multi-factor authentication for services that support it, placing a credit freeze to avoid malicious actors affecting your credit, contacting your bank or card provider to report potential fraud on your account, etc.
Identity theft monitoring can currently track and report up to 64 different types of identity details per breach, from usernames and passwords to credit card numbers and even Social Security Numbers. And it does so intelligently; whenever a match is found on any monitored information, it will also alert you to any of your other personal information that was found in that same breach.
For example, when identity theft monitoring is tracking your email address, it will report all associated data it finds in a breach where your email was found. So, if you had a credit card on file with the breached company or service, it will not just report that it found your email, but also the credit card that was registered on your account there. Even if you never added your credit card number to your monitored identity details!
And, if the cause of the breach is known, identity theft monitoring will even tell you what happened to cause your data to be lost.
But knowing your identity has been compromised is only half the battle. While most people we surveyed were perfectly familiar with how to reset a password, many indicated that they wouldn’t know where to start if more sensitive information like their Social Security Number or driver’s license got exposed. Furthermore, many shared their struggles with looking up instructions online due to conflicting information and insufficient clarification of nuances like the difference between placing a credit freeze and a credit lock.
Identity theft monitoring helps answer these questions with contextual recommendations for each individual breach, as well as in-depth guides on how to perform more complex tasks. And, because we want to empower you to make informed decisions about your identity security, it will also inform you of the risks associated with each identity type. This way you can take the action that works best for your situation and risk tolerance.
That’s all well and good, but what if you need further help? Or if someone is actively trying to take over your identity, right now? For those cases Defender includes access to a 24/7 support team of restoration specialists that can guide you through the appropriate next steps for any situation regarding your identity and can even take action for you if time is of the essence.
This means, regardless of the situation, you are never left wondering what the appropriate next steps to resolving your identity breach are or having to fend for yourself in trying to get everything sorted.
This extends to the damages caused by identity theft too. Identity theft monitoring subscribers are insured for the costs associated with restoring their identity (document fees, legal fees, etc.) up to $1M USD and stolen funds caused by the identity theft up to $100k USD5.
So even if the worst should happen, Defender users who have identity theft monitoring enabled can rest (a little bit) easier, knowing that they have access to insurance that will help them in recovering their identities and the associated fallout.
And, as mentioned in the beginning, identity theft monitoring extends to family members in your Microsoft 365 family. These features and benefits can be set up and managed by the family organizer for all members of the family6. Once set up, family organizers will then receive alerts for all managed family members7 through the Defender app on any device they’re signed in on, as well as via email. This helps the organizer stay on top of not just their own identity security, but their families’ as well.
Figure 3 – Managing breaches for multiple family members
And of course, all of that can be easily managed from the central dashboard provided by the Defender app.
Getting started
To get started with identity theft monitoring today, visit https://mydefender.microsoft.com, sign-in with the personal Microsoft account (@gmail, @outlook, etc.) linked to your Microsoft 365 subscription, find the identity theft monitoring card on the dashboard, and select “Get started.” You can also download the app from the Microsoft, Google, and Apple app stores or download the MacOS app here (if you haven’t already)!
5. The identity theft insurance is underwritten and administered by American Bankers Insurance Company of Florida, an Assurant company. Please refer to the actual policies for terms, conditions, and exclusions of coverage. Coverage may not be available in all jurisdictions. Review the Summary of Benefits.
6. All family members need an active Microsoft 365 subscription, and any user over the age of 13 need to explicitly consent to being monitored and managed by the family organizer.
7. Requires alert sharing to be enabled. Users over the age of 13 need to explicitly consent to sharing their alerts with a family organizer.
This article is contributed. See the original author and article here.
A warm welcome!
In #30DaysOfDataScience we will go from understanding the Python language to working with real life data and finally creating Machine Learning models both on Azure and in Python. The main role is understanding our data and using the knowledge to make decisions such as fraud detection, customer segmentation and product pricing.
Register for the Program set to kick off on the 17th October to 17th November 2022.
The program journey.
The program is set to start on the 17th of October, before then you need to register as part of the program then start learning on Microsoft Learn using the Cloud Skills Challenge modules.
We will hold discussions on GitHub and over the 30-day period we will host live sessions to help you navigate your journey. Register and join us for this epic adventure.
What to expect after 30 days.
Successfully build 3 end to end Data Science projects i.e. fraud detection model, customer segmentation and product pricing model.
Badge of completion to be posted on LinkedIn
Next Steps
Register for the Program set to kick off on the 17th October to 17th November 2022.
Recent Comments