How Majic enables true Mobile DevOps
Continuous integration or continuous deployment – commonly referred to as ‘DevOps’ – is a methodology by which the traditionally disparate worlds of development and integration are brought together into one smooth process, closing the logistics gap that has traditionally separated the two worlds.
Tools built to support this process enable software to be rigorously tested before deployment, thereby assuring software quality, while in the server world other tools – such as Ansible, Chef and Salt – enable application software and their associated configurations to be deployed directly to the target servers and verified for configurational integrity.
However, in the mobile world things are a little different. While tools exist for the very same rigorous testing alluded to in the previous paragraph – tools such as Robolectric, Robotium, and XCode – the deployment ‘last mile’ is by and large still very much dependent upon each iteration of a given mobile application being uploaded to a mobile app store or MDM (Mobile Device Management) portal, and the end user making a conscious decision to install/update/uninstall said application. There are no guarantees that all users of the application will do this, unless forced to by some technical means.
Majic provides an elegant solution to this problem by embodying mobile DevOps. The search-based, dynamic component/container application model inherent in Majic closes the logistics gap of the deployment ‘last mile’ by enabling business logic to be added, updated or removed from a Majic-powered application – over the air and in real time.
This model of continuous deployment (“mobile DevOps” or “AppOps”) enables Majic-powered mobile applications to transparently evolve – even after going into production including post-deployment. Business logic can be updated immediately, while in the eventuality of static code in the container (the on-device ‘framework’ of the app) needing an update, this can be applied either directly from the MajicServer itself or by more traditional means, such as the respective mobile app stores.