The nature of agile software development is such that it produces real, working code for applications, written in collaboration with the customer (or internal stakeholders), by smart people who are led, not by an overarching, dictatorial plan, but by real-world, up-to-the-minute requirements.
That, of course, sounds simple and sensible enough, and since the early noughties, it’s the way that small teams and enterprise-level divisions have worked.
In time, DevOps has in itself become a concept that’s underpinned by continuous processes of integration & development. For some (perhaps those who like to live a little “out there”), the rolling development model continues as low as the OS itself on the developer’s individual workstation in the form of Arch/Manjaro, openSUSE Tumbleweed and so on.
But more generally, we see the small, step-wise gains that a CI/CD method produces as being the most effective way to develop and get working solutions out to end-users. The latest vogue (perhaps it’s more than that) for containerization and micro-services is that approach writ large.
Why trip over mobile?
Over the so-called “history” of mobile (it was only in 2008 that the Apple iPhone 3G and the App Store were released — unbelievably), there have been a few attempts at spreading the idea of write-once-deploy-many to the mobile platform.
Apple themselves sung the gospel of HTML apps, for a while, and effectively killed Adobe Flash as a platform. Microsoft tested the water with its own Windows Mobile OS, which was an attempt to create a seamless port from desktop to smartphone, buying the world’s best-known phone company along the way to what turned out to be a rather expensive failure.
Google’s Android is, in theory, the answer: on the surface open-source, ubiquitous, and like the Linux core on which it’s built, easily portable. But coming as it does with its structural issues (running in a virtualized environment among them), it’s a victim of its own success in many ways. Developers have struggled with the multiplicity of screen sizes, resolutions, OS versions, Play API integration, differing vendor OS release cadences, and so on.
Conversely, Apple’s walled garden approach means synchronizing products between OSes (even Apple’s own desktop OS) is hugely troublesome, and comes with its limitations in terms of what apps are allowed to be capable of, and a few thorny issues such as iCloud’s “eccentricities.”
It’s commonplace, therefore, for even the largest enterprises to outsource mobile development to specialist shops, effectively turning their development functions into the customer, and to varying degrees, taking a hands-off approach to the whole mobile app development process.
It’s accepted, perhaps in IT managers’ hearts, that the results may never be as good as keeping all DevOps in-house, but the overhead and resources required are too costly to take on.
There’s a fully thriving specialist toolset, too, for mobile development that may or may not cross over into “mainstream” development, which though might not require arcane knowledge, has its quirks, workarounds, and, therefore, specialists.
Swift, for example, will not be an unknown country for most developers, to take a single example, but to develop an expert knowledge sufficient to produce secure, effective apps for large enterprises takes a significant time (and cost) investment — an investment that could probably also yield results when channeled elsewhere.
What’s become apparent in the last five years is that the majority of internet interactions now take place on mobile. Dinosaurs (such as this author) who spend time reading and interacting on the web are increasingly in the minority. The younger demographics, especially, use their smartphones as (often) their single device. And typing URLs into a smartphone browser just isn’t “2020” — nor indeed is filling out website forms and other ways that “traditionally” we’ve worked online.
Step forward, therefore, the new generation of CI/CD platforms designed for, or created with, mobile in mind. The companies’ products we feature below will integrate easily into DevOps practices, and use the same platforms, the same methodologies and the same concepts as broader application & service development. The difference is the outcome for the end-user or customer: well-designed, mobile-first apps that are built using the same rigorous, business-centric development processes that are practiced every day in enterprises across the globe.
The differences between the realities of mobile app development and those of mainstream DevOps are a significant concern for IT managers, as the variations in workflows create a disjoint between different teams that are often striving to present the same product. Until now, the complexities of mobile app development meant that CI/CD in this “niche” area operated to schedules dictated by the need for manual processing at many stages.
The Bitrise platform is designed to work with specialist mobile development, orchestration, testing, and production tools to align mobile DevOps with the rest of the development activities in the enterprise.
It achieves this by significantly deep integration with third-party tools, and the proprietary systems & structures that the leading app platforms insist on. By creating a framework in which configurations are represented in code (as yaml), Bitrise allows the iterative CI/CD methodologies of “general” DevOps to be applied in mobile. This significantly improves the speed of time to production, an element of mobile app development that always seems to have existed in its own timescales.
With as much automation as possible throughout, from GUI design, through library & dependency management, to testing and production, the whole mobile app creation and revision process are streamlined, so it runs in step with the rest of your IT organisation.
This means faster results in the mobile space, without the need to outsource unnecessarily, allowing for better oversight and control over the whole brand. You can learn more about Bitrise’s Mobile DevOps and what it can mean to your organization here on the pages of TechHQ.
Occupying the space that might be reduced to “open source PLUS,” CloudBees is an adjunct to the Jenkins CI/CD engine, which is probably one of the most common application and development orchestration engines in use today. Jenkins is massively extensible by means of plugins (numbering over 1,700 at present), which help the platform integrate with just about every language, framework, and orchestration method out there (there are also plugins that “skin” Jenkins, too).
However, navigating those plugins, and the Jenkins “core” can be a time-drain, especially given that many plugins were written to solve a specific problem — one that may not necessarily be the same problem replicated elsewhere.
But as a product, CloudBees undertakes much of the manual graft that’s necessary to get Jenkins working efficiently and responding to the type of need for agility and scalability that teams need today.
Its extensible nature makes Jenkins, and therefore CloudBees, an excellent fit for mobile app development, as plugins and APIs already exist for mobile-specialism software and frameworks, from Swift to VCS, down to PowerShell scripts and simple cron jobs. Given that your developers are either using or have used Jenkins in the past, the CloudBees platform may be your best shortcut to rapid mobile app development & deployment.
Read more on the CloudBees website, here.
Unlike CloudBees, CircleCI advertises itself as the best way to move away from the Java-based Jenkins, with a fully-featured, highly integrate-able CI/CD development platform that’s available either as a standalone cloud instance, or hosted locally on an enterprise’s infrastructure.
Like Jenkins, developers may well be acquainted with the CircleCI platform; it’s available as a free download and can be used to run the full life-cycle development of open-source applications gratis. For enterprise and commercial users, organizations buy packs of credits, which can be spent on server cores, memory, storage, and even GPU capabilities, rather like leasing a VPS cluster on a pay-as-you-use basis.
That means that this extensible platform can be rolled out with little or no significant outlay, and the waters tested to see if CircleCI is the solution for mobile app development that’s been sought.
With a host of plugins and extensions that allow apps to be spun up to hosts from AWS instances down to container pods and everything conceivable in between, the CircleCI platform may well fit your CI/CD methodology on day one. Click here to read more.
*Some of the companies featured in this article are commercial partners of TechHQ
26 October 2020
26 October 2020
26 October 2020