applying 3c devops approach in mobility worldqaistc.com/2017/wp-content/uploads/2017/09/stc... ·...

13
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

Upload: others

Post on 27-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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

Page 2: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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.

Page 3: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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

Page 4: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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.

Page 5: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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.

Page 6: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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

Page 7: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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

Page 8: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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.

Page 9: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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.

Page 10: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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

Page 11: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

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

Page 12: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

Author Biography

Page 13: Applying 3C DevOps approach in Mobility Worldqaistc.com/2017/wp-content/uploads/2017/09/stc... · Build – Continuous Integration Visual studio – Team Foundation Server(TFS) providing

THANK YOU!