Deploying Applications with Intune: A Comprehensive Overview Software Deployment

 

Application deployment, also known as software deployment, encompasses the process of making an application functional on a target device or server. Software developers and engineers perform application deployment towards the end of the software development lifecycle (SDLC), following the building, extensive testing, and debugging of the applications. Upon completion of the deployment process, the applications become publicly accessible via a URL.

This article explores the fundamentals of application deployment and examines various strategies for successful deployment. It also delves into the use of Intune, a popular choice for application deployment among organizations worldwide.

Understanding Application Deployment Before discussing the process of deploying applications with Microsoft Intune, it is essential to define application deployment. It refers to the process through which developers deliver applications, updates, modules, and patches to users. As the penultimate and most critical step in the SDLC, application deployment directly influences an application’s capacity to adapt to shifts in client preferences and demands.

Stages of Application Deployment The application deployment process consists of nine primary stages necessary for success:

  1. Planning
    Ensure that your entire DevOps (Operations and Development) team is on the same page. Collaboratively, the team should map the deployment schedule, evaluate the existing infrastructure, and ascertain that all members understand their roles.
  2. Automating Build and Release
    Automation is crucial in the deployment process. Teams can utilize basic build servers like TFS, Jenkins, and Bamboo or opt for simple scripts to copy files across the network. The objective is to reduce human error and create a repeatable deployment process.
  3. Implementing Continuous Integration/Continuous Delivery (CI/CD)
    To mitigate risk in each application update or release, teams should adopt continuous integration or continuous delivery (CI/CD) practices. These DevOps practices facilitate the reliable and frequent shipping of code changes. CI involves developers frequently merging code changes into a central repository where automated tests and builds occur. CD deploys all code changes automatically to a production or testing environment following the build stage.
  4. Developing and Testing SQL Scripts
    Your DevOps team must identify environmental discrepancies and alterations. Tools like Red Gate SQL Compare can assist in running scripts on a backup copy of production.
  5. Determining Key Metrics
    Identifying key performance indicators (KPIs) is vital for your application’s success. KPIs can vary based on industry and application, including page load times, server utilization, database performance, and specific code snippet execution times. Upon establishing KPIs, your team should monitor them and promptly address potential errors.Related: Best Practices for Mobile Application Development
  6. Establishing Synthetic Transaction Tests
    Synthetic transaction tests enable the evaluation of your application’s performance. By sending simulated requests to services and applications from various devices, browsers, and locations, these tests mimic user traffic. Developers can employ them to detect performance issues with crucial application endpoints and user journeys before they impact user experience (UX). Developers can specifically monitor:
    – Application availability
    – Application response time
    – Functionality of customer transactions
  7. Developing Deployment Tracking
    Deployment tracking software enables DevOps teams to monitor when and where deployments take place. Retrace is an excellent example, offering:
    – Code-level tracing
    – Lightweight code profiling and bug elimination
    – Customizable dashboards for KPI tracking
    – Aggregated server and application logs
    – Advanced drill-down and search capabilities
    – Configuration and monitoring of custom log queries
    – Confirmation of performance updates via deployment tracking
    – Monitoring of critical metrics and integrated alerts
  8. Informing Colleagues, Users, and Stakeholders About Deployment
    Before deploying your application, notify colleagues, users, and stakeholders about the forthcoming application and software modifications. Failing to do so may result in widespread confusion and disruptions to workflows
  9. Monitoring and Adjusting as Necessary
    Once the application is deployed, the work is not yet complete. It is crucial to monitor the application and address any emerging issues. Utilize tracking software to keep an eye on KPIs and make adjustments as required.

Various Application Deployment Approaches Before commencing the process, consider the following software and application deployment strategies to achieve optimal results:

  1. Basic
    This deployment entails updating all nodes in a single environment simultaneously. It is the quickest and simplest method for app deployment.

Consider using basic deployments if:
– Your app is not revenue, business, or mission-critical
– You are experimenting with deployments, and the failure of the service or app is inconsequential
– You are deploying during off-hours when the app or service is not in use

  1. Rolling
    In this type of app deployment, all nodes within a single environment are updated one by one or in groups. This strategy is less risky than basic deployment and easier to roll back.

Rolling deployments are suitable for:
– Supporting both old and new deployments concurrently
– Load balancing scenarios requiring reduced downtime

  1. Multi-service
    Multi-service deployment involves updating all nodes simultaneously with multiple services. It is fast, straightforward, and less risky compared to basic deployment.

We recommend using it when:
– Your app has version or service dependencies
– You are deploying during off-hours when the service or app is not in use

Related: What Programming Languages Are Used to Make AI?

  1. Blue/Green Deployment
    This employs two identical environments—blue and green—that run concurrently. Only one environment is live at any given time, serving as the production server. For instance, if Blue is live, all production traffic will be directed to it, while Green remains idle.Upon completing the app, your team will begin testing and deploying it on the currently idle environment. After testing and deployment, the team will switch the router so that all requests are directed to this environment.

    Blue/Green testing can eliminate downtime and minimize risks associated with app deployment. For example, if something unexpected occurs with your new app on Green, you can revert to the previous version by switching to Blue.

  2. A/B Testing
    Also known as split testing, involves running different versions of the same app simultaneously as experiments within the same environment. User traffic is typically directed to specific experiments based on user demographics, such as age or location. Comparisons and measurements are then conducted across experiments to determine which yields the best results. Following the completion of the experiment, the environment is updated to the most successful version.

A/B testing is useful when you need to test front-end changes on your site or app. This strategy is particularly effective for determining whether new changes produce the desired outcomes, such as:
– Increased website traffic
– Lower bounce rates
– Higher conversion rates
– Lower cart abandonment rates

  1. Canary Testing
    This involves gradually pushing code changes to a small group of users who are unaware they are receiving new code. Since the update is provided to only a few users, any changes can be quickly rolled back if the new code is found to be faulty.Canary testing poses the lowest risk compared to other deployment strategies and allows for testing in production with real use cases and users. Consider using this method to verify that the new version of your app is functioning correctly in your production environment.Need to source and hire remote software developers? Get matched with vetted candidates within 3 days. Learn more about us

Introducing Microsoft Intune

Microsoft Intune is a cloud service for mobile application management (MAM) and mobile device management (MDM). It enables you to:

  • Control the usage of your company’s devices
  • Implement specific policies to manage apps
  • Allow employees to use their devices for work or school purposes
  • Protect and isolate company data from personal data
  • Ensure that apps and devices comply with your security requirements
  • Perform selective wipes by removing organizational data from apps only

As a component of Microsoft’s Enterprise Mobility + Security (EMS) suite, Intune integrates with Azure Information Protection to safeguard your data. It also works with Azure Active Directory (Azure AD) to control access to your systems and determine what users can access.

In summary, Microsoft Intune is a cloud-based tool that offers unified endpoint management for both personal and corporate devices. Organizations can use it to protect corporate data and meet compliance requirements.

Deploying Applications and Apps with Intune

In addition to managing apps, Microsoft Intune also allows you to deploy software and applications. This is because Intune supports a wide range of Windows 10 app types, including .MSI, Office CS2, Intune Win, MSFB Offline, Web Apps, Microsoft Edge, Web Apps, and Store Link.

Here’s how to deploy with Intune on Windows 10 devices:

  1. Log in to the Microsoft Endpoint Manager admin center.
  2. Navigate to Apps and click “All Apps.” Then, click “Add.”
  3. Select the app type you want to deploy. Choose “Windows 10 and later.”
  4. A wizard will prompt you to configure information shared with users about your app. The default settings should be acceptable for most organizations, but feel free to modify as needed. Then, click “Next.”
  5. Proceed to the “Configure app suite” to set up your app. Pay close attention to the following settings:
    – Use shared computer activation: This option allows you to deploy your app on machines used by multiple users and bypass the Microsoft 365 device limit.
    – Configuration settings format: If you want a user-friendly GUI in Intune for configuring your app, leave the default setting. The other option requires creating a unique XML file.
    – Install background service for Microsoft Search in Bing: Use this to deploy a Chrome extension that facilitates searching and speeds up file, user, and site searches.
  6. You have the option to use scope tags to determine which administrators can access a specific policy or configuration. To choose appropriate scope tags and limit access, you need to define and assign scope tags to different user groups. Click “Next” if you don’t want to use scope tags.
  7. You will then arrive on the “Assignments” page. Use this page to decide where your app will be installed, made available for installation, or removed. If you’re deploying to all users, choose the “Add all users” option under “Required” and click “Next.”
  8. Finally, you’ll reach the “Review + create” page, which allows you to review the entire configuration for your app. Click “Create” to deploy your app.

Tips and Suggestions for Deploying Applications with Intune

Deploying applications with Intune can be challenging, particularly for those new to the process. Here are our top tips for using Intune to deploy apps:

  1. Ensure You Have the Appropriate Operating System You must have the following operating system builds to deploy modern apps on Intune:
    – May 23, 2018—KB4100403 (OS Build 17134.81) for Windows 10 1803
    – June 21, 2018—KB4284822 (OS Build 16299.522) for Windows 10 1709
  2. Make Certain Your Devices Only Have One MDM Provider Managed devices should only have one MDM provider. If you have another MDM provider, such as MaaS360 or MobileIron, you must unenroll your devices from their current MDM provider before enrolling in Intune.
  3. Transition from Legacy Tools to Mobile-Friendly CI/CD Tools A mobile CI/CD tool will simplify and accelerate the Intune deployment process. It will provide everything you need for mobile development and deployment, including:
    – Integration with third-party tools
    – Support for all mobile languages, environments, and frameworks, such as React Native, Java, Kotlin, and Dart
    – The ability to set up simulators for cloud device testing, parallel testing, beta testing, and actual device testing
  4. Deploy Experimental Updates or Features Using Feature Flags
    Feature flags are Boolean values that indicate whether a new feature is enabled. They create conditional feature branches so that only certain groups of users can see particular functions or logic.  Feature flags are an excellent way to reduce development risks. They are also ideal for deploying experimental updates or features because if something goes wrong during a release, you can use feature flags to turn off or roll back updates.