App provisioning and deprovisioning
Application provisioning revolves around mobile app lifecycle management, which mainly consists of wrapping, configuring, delivering, and managing mobile apps within a Endpoint Management environment. In some instances, developing or modifying application code may also be part of the provisioning process. Endpoint Management is equipped with various tools and processes that you can use for app provisioning.
Before you read this article on app provisioning, it is recommended that you read the articles on Apps and User communities. When you have finalized the type of apps your organization plans to deliver to users, you can then outline the process for managing the apps throughout their lifecycle.
Consider the following points when defining your app provisioning process:
App profiling: Your organization may start with a limited number of apps; however, the number of apps you manage could rapidly increase as user adoption rates increase and your environment grows. You should define specific app profiles right from the beginning in order to make app provisioning easy to manage. App profiling helps you categorize apps into logical groups from a nontechnical perspective. For example, you can create app profiles based on the following factors:
- Version: App version for tracking
- Instances: Multiple instances that are deployed for different set of users, for example, with different levels of access
- Platform: iOS, Android, or Windows
- Target Audience: Standard users, departments, C-level executives
- Ownership: Department that owns the app
- Type: MDX, Public, Web and SaaS, or Web links
- Upgrade Cycle: How often the app is upgraded
- Licensing: Licensing requirements and ownership
- MDX Policies: Wrapped or unwrapped with MDX security policies
- Network Access: Type of access, such as full VPN (Tunneled - Full VPN) or full VPN with single sign-on (Tunneled - Web SSO).
|Factor||Secure Mail||In-House||Epic Rover|
|Target Users||VIP Users||Physicians||Clinical Users||Clinical Users|
App versioning: Maintaining and tracking app versions is a critical part of the provisioning process. Versioning is usually transparent to users. They only receive notifications when a new version of the app is available for download. From your perspective, reviewing and testing each app version in a non-production capacity is also critical in order to avoid production impact.
It is also important to evaluate if a specific upgrade is actually required. App upgrades are usually of two types: One is a minor upgrade, such as a fix to a specific bug; the second is a major release, which introduces significant changes and improvements to the app. In either case, you should carefully review the release notes of the app to evaluate if the upgrade is necessary.
- App signing and wrapping: With Endpoint Management, you can use MDX policies with managed apps to secure the corporate data through app wrapping. For more information about app wrapping, see Endpoint Management MDX Service. The app provisioning process for a wrapped app is significantly different from the provisioning process for a standard non-wrapped app.
- App security: You define security requirements of individual apps or app profiles as part of the provisioning process. You can map security requirements to specific MDM or MAM policies prior to deploying the apps, which greatly simplifies and expedites app deployment. You may deploy certain apps differently, or you may need to make architectural changes to your Endpoint Management environment depending on the type of security compliance that the apps require. For example, you may want the device to be encrypted in order to allow the use of a critical business intelligence app, or a certain app may require end-to-end SSL encryption or geo-fencing.
- App delivery: Endpoint Management allows you to deliver apps as MDM apps or as MAM apps. The MDM apps appear in the app store. This store allows you to conveniently deliver public or native apps to users without controlling the app apart from enforcing device level restrictions. On the other hand, the MAM mode of delivering apps allows full control over app delivery and over the app itself. Delivering the apps in MAM mode is more suitable in most cases. When you deliver apps in MAM mode, the mobile device must be enrolled either into XME (MDM+MAM) or MAM-only mode.
- Perform an initial audit: You should keep track of the app version that is present in your production environment, as well as the last upgrade cycle. Make note of specific features or bug fixes that required the upgrade to take place.
- Establish baselines: You should maintain a list of the latest stable release of each app. This app version should be fall back in case unexpected issues occur post upgrade. You should also develop a rollback plan. You should test app upgrades in a test environment prior to your production deployment; if possible, you should deploy the upgrade to a subset of production users first and then to the entire user base.
- Subscribe to Citrix software update notifications and any third-party software vendor notifications: This is critical in order to keep up to date with the latest release of the apps. In some cases, an early access release (EAR) build may also be available for testing ahead of time.
- Devise a strategy to notify users: You should define a strategy to notify users when app upgrades are available. Prepare users with training prior to deployment. You may send multiple notifications prior to updating the apps. Depending on the app, the best notification method might be email notifications or web sites.
App lifecycle management represents the completed lifecycle of an app from its initial deployment through the retirement of the app. The lifecycle of an app can be broken down into these five phases:
- Requirements for specifications: Start with business case and user requirements.
- Development: Validate that the app meets business needs.
- Testing: Identify test users, issues, and bugs.
- Deployment: Deploy the app to production users.
- Maintenance: Update app version. Deploy the app in a test environment before updating the app in a production environment.