Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
Applying 3C DevOps approach in
Mobility World
Shrinathacharya L M- Principal Quality Engineer
Co – Author 1: Nandini GV - Expert Software Engineer
Co – Author 2: Ajay Gottivedu Suresh – Quality Engineer
Co – Author 3: Karthik Venugopal – Software Engineer
Allscripts
Abstract
DevOps plays a vital role in mobile projects to meet buzz word “faster time to the market” and “faster reaction to
the customer” before they ask. It’s a big challenge in mobility as there are multiple mobile operating systems vs
multiple OS version in mobile ecosystem.
How do we address below challenges?
▪ Every three days a new mobile manufacturing company brings new mobiles into market
▪ Building mobile apps as fast as with market expectation
▪ Testing mobile app on multiple OS vs multiple OS versions
▪ Distributing app and notification to stakeholders
▪ Monitoring the app statistics, performance and crash analytics
This paper talks about addressing the challenges with Mobile DevOps process which involves setting the
environment, development, testing, build, distributing app and monitoring the app with continuous integration,
continuous deployment and continuous delivery using Microsoft Technology.
Key findings
Let us see the state of DevOps Reports and key findings
➢ High-performing organizations decisively outperform their lower-performing peers
• 200 times faster
• 2555 faster lead time
• Recover 24 times faster
• 3 times lower failure change rate
➢ High-performing organizations spend 22 percent less time on unplanned work and rework
Here is the IDC Survey DEVOPS interesting data capture from 1000 fortune companies
What is DevOps?
➢ DevOps a clipped compound of development and operations
➢ DevOps treats Infrastructure as code
➢ DevOps is a culture, a practice, and an approach to operations
➢ DevOps is using Automation
Traditional vs DevOps -Pipeline Automation
Traditional steps/pipelines following like a waterfall method which involved analysis, design, code, test and
deployment. This process is very large and at the end we get the product got deployed.
Devops pipeline is cycle where in customer/client get the releases periodically with continuous deployment with
greater satisfaction. This process involves develop, code with config and check-in, build and test. The moment
code check, continuous integration runs the unit test/integration test. On successful completion of unit/integration
test pass build will be generated for continuous delivery and send it to test. Test will be running automation
regression test cases and on successful deploy the builds. All the process are cyclic and continuous with
automation.
DevOps Process – 3 C’s
Using DevOps approach – 3C’s,(Continuous Integration, Delivery, and Deployment) enabled us to deliver better
quality services as the issues can be identified in the initial stage.
➢ In Continuous Integration developers regularly merge their code changes into a central repository, after
which automated builds and tests are run. With continuous integration, developers frequently commit to a
shared repository using a version control system such as Git.
➢ Continuous Delivery (CD) is a practice in which continuous integration, automated testing, and
automated deployment capabilities allow high-quality software to be developed and deployed rapidly,
reliably and repeatedly with minimal manual overhead.
➢ Continuous Deployment is a strategy for software releases wherein any commit that passes the automated
testing phase is automatically released into the production deployment.
DevOps pipeline with Microsoft Technology
For mobile projects Microsoft is having complete solution with below tools and technologies
➢ Development – Visual Studio integrated with Xamarin
➢ Test – Xamarin.UITest and Xamarin Test Cloud
➢ Build – Visual Studio Team Foundation Server – vNext
➢ Distribute and Monitor – HockeyApp/Mobile Test Center
DevOps for Mobility Projects in 4 quadrant – Development, Test, Build and Distribute & Monitor
Development - Phase
Xamarin is integrated with Visual Studio
Now Xamarin is integration with Visual Studio. Create a new project by selecting “Cross-Platform”
blank xaml app project and start developing the project. All the front-end is with xaml and code behind is
with C#. With this you can develop the app for Android and iOS with shared code.
Test-Phase
Xamarin provides the automation/framework tool called Xamarin.UITest for automating mobile apps.
After developing automation scripts using Xamarin.UITest, we can upload these automation test cases to
run on Xamarin Test Cloud(XTC). XTC is having more than 2400 real devices of android and iOS on
cloud where we can upload automation test cases and execute parallelly on multiple devices with
multiple versions.
Current market share of devices running on multiple OS version for iOS and Android looks below
Test Approach
To address the challenge, how to test app with multiple OS vs Multiple OS versions vs Multiple devices, below
best practice to address
➢ Develop the more number of unit/integration tests to have tested for good code coverage
➢ Automate the feature workflows for the app.
➢ Automate the regression tests
➢ Keep minimum manual test cases wherever it’s not applicable.
Build – Continuous Integration
Visual studio – Team Foundation Server(TFS) providing gated-check-in where-in build will be generated if all
unit/integration tests passed. We can schedule builds (Nightly builds) for all checked-in code and also, we can
manual trigger the build. vNext template provides to configuring the builds.
Distribute & Monitor – Continuous Deployment
HockeyApp / Visual Studio Mobile Center tool provides distribute build
• Distribute iOS and Android App and alert for new builds.
It shows alert on launch of mobile app during development saying we have new build available
for testing.
• Download and upgrade to latest app
On just a tap, it upgrades the latest app on mobile.
We can also able to monitor with HockeyApp/visual studio mobile center below information on post deployment.
• Collect User Feedback
• Collect Crash reports and logs
• User Metrics
• Download information
• User engagement
Continuous - Integration, Deployment and Delivery
Visual studio with Xamarin provides continuous integration, deployment and delivery. We can easily automate
3’C process with Microsoft technology.
Key Takeaways
✓ Microsoft Technology Stack for Mobile Projects
▪ Develop - Visual Studio, Xamarin
▪ Build & Config -TFS vNext, PowerShell
▪ Test -Xamarin.UITest & Xamarin Test Cloud
▪ Distribute & Monitor -HockeyApp/Microsoft Mobile Center
✓ Enables to develop faster time to market and faster reaction to the field with Continuous – Integration,
Deployment and Delivery
✓ Better Quality Product deliverable with less cost and effort
✓ No large releases needed
References & Appendix
https://www.visualstudio.com/en-us/docs/build/define/triggers
https://shiningdragonsoftware.net/2015/06/09/tfs-build-vnext-build-definitions/
https://hockeyapp.net/features/
http://devopsdigest.com/idc-survey-appdynamics-devops-application-performance
https://puppet.com/resources/whitepaper/2016-state-of-devops-report
Author Biography
THANK YOU!