Azure Enablement in Aptify

Introduction

 Microsoft Azure is a tool that allows businesses to manage their cloud computing and storage accounts with ease. With Microsoft Azure one can manage virtual machines, databases, storage, networking etcetera across multiple subscriptions and locations.

 Aptify release 7.0 provides Azure native support that allows the Aptify applications to run on Azure native constructs. This release enables Aptify to run all of the major application components using Azure platform as a service (PaaS) cloud computing model.

 Azure Enablement activity will be carried out in phases. Release 7.0 introduces phase I activities that targets re-hosting of the Aptify application components as mentioned under Release 7.0 Azure Enablement activity.

Below are the sections of this document:

Release 7.0 Azure Enablement Activity

AptifySA user support

Aptify release 7.0 enables clients to host Aptify database into cloud managed database offerings such as Azure Managed SQL Instance. The cloud services do not grant access to the SA login account provided by Microsoft. By default, the SA user is the only user granted administrative permissions when Aptify is installed. SA user can perform tasks like running license import wizards for newly restored database, and other tasks which requires elevated permissions.

To address the restrictions on SA user in cloud managed database offerings, a new user termed as AptifySA needs to be created and granted same level of roles and permissions as that of the SA user. For more information see AptifySA user support for Azure Enablement.

Setting Network, Security & Monitoring on Azure

As a part of Azure enablement initiative, this release provides directions to set Network Security Rule, Virtual Network, Dedicated subnet for each Azure PaaS services, Firewall, Key Vault, network security and monitoring, and App Insight. See Configuring Network Security Group Structure document for more information.

Hosting SQL Database to Azure SQL Managed Instance

Release 7.0 enables clients to host Aptify database into cloud managed database offerings such as Azure Managed SQL Instance. Azure SQL Managed Instance is the intelligent, scalable cloud database service that combines the broadest SQL Server database engine compatibility with all the benefits of a fully managed and evergreen platform as a service. See Migrating Aptify database on Azure SQL Managed Instance document to learn more about the topic.

Hosting Web Application to Azure App Service

Azure App Service is an HTTP-based service for hosting web applications. App Service not only adds the power of Microsoft Azure to your application, such as security, load balancing, autoscaling, and automated management but also you can take advantage of its DevOps capabilities.

Release 7.0 enables hosting of all the Web applications namely Aptify Web, e-Business 6, classic e-Business (CMS & Non-CMS) websites on Azure App Service.

Refer to documents Migrating e-Business Classic (Non-CMS) to Azure, Migrating e-Business Classic (CMS) to Azure, Migrating e-Business 7.0 to Azure App Service, and Migrating Aptify Web to Azure App Service to know more about the topic.

Moving Aptify Application Server Schedule Jobs to Azure Web Jobs

Web Jobs is a feature of Azure App Services that runs a program or script in the same instance as a web app, API app, or mobile app.

Release 7.0 enables moving Aptify Application Server schedule jobs to run as an Azure WebJobs for managing the scheduled asynchronous jobs. Web Jobs is a feature of Azure App Services that runs a program or script in the same instance as a web app, API app, or mobile app. To know more about this implementation, refer Azure WebJobs for schedule tasks, and Process flow run WebJobs documents.

Hosting Desktop Application on Azure Virtual Machines

With Azure enablement in 7.0, it is possible to host Aptify Smart Client (Desktop) application on an Azure Virtual Machines and connect the client to the database hosted on Azure SQL Managed Instance. See Installing Aptify Smart Client (Desktop) application on Azure Virtual Machine for more details. 

Hosting SSRS Reports on Azure Virtual Machines

Release 7.0 enables Aptify SSRS Reporting services for Aptify Smart Client (Desktop) and Aptify web to be hosted on Azure Virtual machine.  Refer to Hosting SSRS Reports on Azure Virtual Machine for more details.

Deploying Crystal Reports on Azure Virtual Machines

Release 7.0 enables Aptify Crystal Reporting services for Aptify Smart Client (Desktop) and Aptify web to be hosted on different Azure Virtual machine.  Refer to Deploying Crystal Report on Client System for more details.

Azure BLOB storage for Uploading/Downloading the Attachments

Azure BLOB storage is Microsoft’s object storage solution for the cloud.

Aptify 7.0 enables the users to store attachments on Azure BLOB storage instead of the database. As part of Azure enablement for Aptify, the users will now be able to upload and download the attachments on Azure BLOB storage. A utility has been provided to migrate existing attachments from database to BLOB storage.

Release 7.0 also provides facilities for on-premises customers to leverage attachment storage in Azure Blob.

To use cloud service for BLOB storage attachments in Aptify Web, refer to Configuring and Uploading Attachments on Azure BLOB Storage.

Migrating Attachments from SQL Database to Azure BLOB storage

In Aptify, attachments are stored in database.

To support Azure BLOB storage, Release 7.0 provides a utility to migrate the existing attachments from database to BLOB storage. See document Migrating Aptify Attachments to Azure Blob Storage for instructions on how to perform the migration. 

Login using Azure Active Directory on Aptify Web

Azure Active Directory is an enterprise identity service that provides single sign-on, multifactor authentication, and conditional access to guard against cybersecurity attacks.

Release 7.0 uses Azure AD as the authentication mechanism for the users to access Aptify Web, once the applications are hosted on Azure.

For more details on how Azure AD can be configured in Aptify refer to Authentication Using Azure Active Directory for Aptify Web document.

Serilog Integration with Azure Application Insight

With release 7.0, Aptify Web and Smart Client can be configured to use Serilog and Application Insights to log application related information such as errors, warning messages etcetera to text file and to Azure Application Insights. Refer Configuring Serilog with Azure Application Insights to know more.

Azure Deployment

Release 7.0 provides standard Infrastructure-as-Code (IaC) templates which are code-based template for automating the provisioning of cloud resources and configurations for Aptify. These templates can be used by development teams to quickly and easily configure and deploy Cloud resources more efficiently.

Once the resources are deployed on Azure using the template, the hosting of the Aptify database, Web application, desktop application, Reports can be done using the migration instructions given in Deploying Aptify 7.0 on Azure document.

 

Release 7.1 Azure Enablement Activity

Azure Active Directory Reimplementation for trusted user

In Release 7.1, the authentication mechanism for the users to access Aptify Web, Aptify Services and Aptify Smart (Desktop) Client, once the applications are hosted on Azure, has been updated to utilize Azure AD.  This new authentication option replaces the previous Aptify Domain authentication, which is not available on Azure. This applies specifically to association who have hosted their Aptify web application on Azure App services. To know more about the new implementation, refer to Authentication using Azure Active Directory in Aptify Web 7.1 and Smart (Desktop) Client 7.1 documentation.

Enabling Crystal Reports to function with Azure AD authentication

In Release 7.1, Aptify product has undergone a reimplementation of Azure Active Directory (AD) to support authentication for AD users. To use Crystal Report as Azure AD user, certain configurations are needed on Azure Virtual Machine hosting the Smart Client application. Below are step-by-step instructions to configure Crystal Reports. See Generating Crystal Reports with Azure AD User document for the instructions. 

Utility for Custom Naming Aptify Database

Aptify release 7.1 provides support for enabling custom names to Aptify database. This gives the flexibility to an organization to designate a name other than APTIFY and to host multiple databases simultaneously on a single server. For more information on this topic, refer to document Utility for Custom Naming Aptify Database

Release 7.2 Azure Enablement Activity

Automation of Aptify Web Azure Deployment

Starting with Aptify release 7.1, Aptify product has been enabled to run on Azure platform. In Aptify release 7.2 further enhancements have been made to deploy Aptify Web application on App services automatically.  To support the automated deployment of Aptify Web App services, a Logic App has been developed. (some more details on the logic app working). This automated deployment supports full deployment (single file) and partial deployment (specific files) of App services.  Refer to Aptify Web Automated Deployment for information on how to use the automated deployment. 

Release 7.3 Azure Enablement Activity

Aptify WebJobs Enhancements

For Schedule Tasks

In Aptify release 7.3, significant enhancements have been implemented to the Schedule Task WebJobs. These improvements include:

  1. Creation of Process Flow Run Record for Synchronous Tasks:

    Previously, the synchronous process flow initiated from a scheduled task did not create an entry in the PFRun record. With this enhancement, when a synchronous process flow runs from a scheduled task, an entry is created in the PFRun record table. The web job then picks up this process flow from the PFRun record table to execute it. If a synchronous process flow is triggered by an action performed within the application (whether in Aptify Web or Smart Client), it will execute directly from the application.

    With the new implementation, the web job does not execute the process flow directly. Instead, it first creates a PFRun record, allowing the synchronous process flow to function asynchronously. The process flow run record is then executed to complete the task.

  2. Improvement of Schedule Tasks with frequencies set to Once or Daily: With this enhancement, the Scheduled Task with frequency set to Once or Daily can now be executed multiple times within a single day. In the previous versions, these Schedule tasks were limited to a single run per day.

For information on how to setup new webjobs and configure existing schedule tasks to run as Azure webJobs, refer to Deploying Azure WebJobs for Schedule Tasks

For Process Flow Runs

In Aptify release 7.3, significant enhancements have been done to the Process Flow Runs. These improvements include:

  1. Enhancements to improve overall performance: Process Flow Runs WebJobs have been enhanced to improve the overall performance and to maintain up-to-date information about the execution of the Process Flows.
    • With this enhancement, the PFRUN WebJob now updates the ProcessFlow Run record by modifying the ProcessFlow Start time. This enables maintaining up-to-date information about the execution of the Process Flows. Example, ProcessFlowStartTime would now be set correctly after PF Web Job Run.
    • With this enhancement, the PFRun WebJobs (Handle Process Flow Run Record) now internally calls a new stored procedure, spGetPendingProcessFlowRunsForWebJob. This stored procedure ensures that a single PF Run record is executed only once, even when there are multiple WebJobs hosted on the portal. This functionality allows asynchronous execution, the other hosted WebJobs pick up additional records that are not locked. This enables multiple distinct records to be processed simultaneously, resulting in a significant improvement in overall performance.
    • As part of this enhancement, code changes have been made to ProcessFlowEngine so that the Webjobs are triggered based on Azure Storage Queue functionality. Earlier Webjobs were being called continuously to check PFrun entries from the database this affected the performance.
  2. Inclusion of  WebJobs Name: This enhancement adds WebJob's name in the client machine field of PF Run record details.

For more information on how to setup new webjobs and configure existing process flow runs as Azure webJobs, refer to Deploying Azure WebJobs for Process Flow Runs

Generic Web Job Improvements

  1. Configuration to assign Web Job name in Message Queue Run:
    Earlier in Web Jobs, messages were picked only from the queue named ‘testing’. This has been modified, with an attribute added in WebJobManualDeploy.exe.config and ProcessFlowRunWebJob.exe.config to enable users to customize the queue name below.
    • Attribute Name: <"Aptify.Services.Authentication.AzureAD.StorageQueueName">
  2. Introduction of support for Managed Identity Users: Starting from this release, WebJobs can be run against Managed Identity Users, previously only SQL users were supported to run WebJobs.
    To run the WebJobs against a Managed Identity user, users need to create a new Managed identity. They cannot use the same Managed identity that is being used in the AptifyWeb SOA Endpoint. 
  3. WebJobs logging enhancements: To improve the readability of WebJobs log file, WebJobs has been enhanced to log only the error messages and exceptions in the log file. Previously, warning messages and intermediate information details were logged in the WebJobs log file. 

Azure AD Authentication Performance Improvement

Multiple enhancements have been made to improve the performance of the Aptify Smart client and Aptify Web applications when using Azure AD Authentication.

Highlights of the improvements:

  • Connection Pooling: Implemented connection pooling for Azure AD in both the Smart Client and Aptify Web application.
  • Managed Identify: Improved retrieval of refresh tokens for managed identities. 
  • Token Optimization: Optimized the code for retrieving Azure AD access token and refresh tokens.
  • Log Cleanup: Removed redundant warnings and information logs related to Azure AD authentication.
  • VDI Login Issue: Addressed Smart Client login failures from VDI environment for user AD accounts by increasing connection timeout during database connection.

Enabling e-Business SOA Endpoint Using Managed Identity

Enhancements have been made to the e-Business SOA endpoint connectivity. This enables the e-Business services to execute using managed identity to connect to database. This removes the need to mention the credentials in the web.config file.

Release 7.4 Azure Enablement Activity

CM Pack Deployment Automation

In the Aptify 7.4 release, enhancements have been made to automatically deploy CM packs on Azure. The automation of CM packs is a further enhancement to automation of deployment of Aptify Web on App services which was released in Aptify 7.2. Please refer to Automating Aptify Web and CM Pack Deployment in Azure for information on how to use the automated deployment of CM packs and App Services.

Azure Scale-Out Feature implementation in Aptify

Starting with Aptify release 7.4, Azure scale-out feature has been implemented in Aptify Web and e-Business using Redis technology to overcome the limitations of in-memory cache setups for single instance. Redis (Remote Dictionary Server) is an open-source, in-memory key-value store widely used for caching, real-time data processing, and session management which provides a centralized caching mechanism that scales efficiently with Aptify applications.

For information on how to setup Redis in the Azure portal and in Aptify applications, refer to the Implementing Azure Scale-Out Feature in Aptify Web Using Redis document.

Support for '@' Symbol for SQL Users in Azure Managed Instance

Aptify 7.4, supports user creation with '@' symbol for non-trusted users like SQL users on Azure managed instances. Previously, users with '@' symbol were considered as AD users. With the new implementation, user creation in Smart Client for untrusted users with '@' symbol is considered as SQL user. To support all existing non-trusted users with '@' symbol on managed instance a script has been provided. 

For more information on the script, refer to Supporting '@' Symbol for SQL Users document.  

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.