Management covers a wide range of activities, from initial device provisioning to application management. When you design your application, you should consider the implications of your design in regards to application management, specifically in two key areas: componentization and data formats.
First, if you design a monolithic application, then the management system must distribute and install a complete new copy of the application to update nodes with the latest version of the application. Depending on the size of the application and the frequency of updates, this design might adversely affect network capacity and disrupt users. If you design and package the application as multiple installable components, then the management system distributes and installs only those components that require an update. You might also be able to reuse components in different applications that run on the same or different nodes. There is a trade-off between the granularity of the components and the complexity of administering the set of components that comprise an application.
Second, you must consider the effect on data when updating applications or components. If you design your components and data format so that local data is upwardly compatible, then users can continue to access their data after application and component updates. Otherwise, you must provide a mechanism to update the existing data to match a new or revised format and ensure that all installed components that consume this data can process this format.
Parent topic: Application design considerations: XPD622