Presentation is loading. Please wait.

Presentation is loading. Please wait.

DevOps Best Practices for Mobile Apps

Similar presentations


Presentation on theme: "DevOps Best Practices for Mobile Apps"— Presentation transcript:

1 DevOps Best Practices for Mobile Apps
Sanjeev Sharma, as played by John Lanuti IBM Software Group

2 Him 18 year in the software industry
15+ years he has been a solution architect with IBM Areas of work: DevOps Enterprise Architecture Agile Transformation Mobile Development Software Delivery Platforms Software Supply Chains. bit.ly/sdarchitect Sanjeev Sharma IBM Software Group

3 Me 15 years in the software industry
14 years with IBM, developer, PM, IT Specialist Areas of work: Application Development Agile Transformation Mobile Development Application Lifecycle Management Blog John Lanuti IBM Rational

4 Agenda What is DevOps? DevOps for Mobile – Challenges
DevOps for Mobile – Best Practices Implementing DevOps for Mobile Continuous Integration and Test Continuous Delivery Service Virtualization

5 What is DevOps?

6 Addressing delivery challenges
Water-SCRUM-Fall? Customers Desire for fast and continuous innovation Line of Business Requirements Dev & Test Teams Code & Tests Operations Team Business Services Gap Gap Addressed by... Addressed by... Dev Ops Agile Dev

7 Key Concepts Continuous Integration Continuous Delivery
Continuous Test Continuous Monitoring Infrastructure as Code Build and Delivery Pipeline

8 1. Continuous Integration

9 2. Continuous Delivery

10 3. Continuous Test

11 4. Continuous Monitoring

12 5. Infrastructure as Code
package "apache2" do   package_name node['apache']['package'] end service "apache2" do   case node['platform_family']   when "rhel", "fedora", "suse"     service_name "httpd"     # If restarted/reloaded too quickly httpd has a habit of failing.     # This may happen with multiple recipes notifying apache to restart - like     # during the initial bootstrap.     restart_command "/sbin/service httpd restart && sleep 1"     reload_command "/sbin/service httpd reload && sleep 1"   

13 6. Build & Delivery Pipeline

14 DevOps for Mobile - Challenges

15 DevOps for Mobile - Challenges
Mobile Apps are the front-end to a complex(enterprise) back-end system Mobile Apps are rapidly becoming a critical user interface to enterprise systems

16 Mobile Application Architecture: LinkedIn

17 DevOps for Mobile - Challenges
Fragmented Platforms iOS forked when iPad came out. Android forked multiple times with each vendor, Kindle Fire, Nook…

18 DevOps for Mobile - Challenges
HTML5, PhoneGap/ Cordova still cannot fully replace native Apps in every situation Mobile Web is not an acceptable solution. Users want an App Hybrid Apps are the optimal solution for Apps with non-native needs

19 DevOps for Mobile - Challenges
App stores add additional asynchronous deployment step Continuous Delivery become ‘deliver and wait’

20 Delivery Pipeline Library Source Control Management .jsp Deploy .java
Source Artifacts .jsp .java .html chef recipes .sh Deployable Artifacts Build, Package, & Unit Test Application Binaries & Platform Configuration Library Deploy Environment Running System

21 IBM’s Four DevOps Principles
Collaborate across Disciplines Develop and test against a production-like system Deploy frequently Continuously validate operational quality characteristics

22 DevOps Best Practices for Mobile Apps

23 Continuous Integration and Continuous Delivery
DevOps Best Practices for Mobile Apps Continuous Integration and Continuous Delivery Ensure end-to-end traceability across all assets Practice continuous integration Maintain separate streams for each mobile OS, SDK supported Use automated build and deploy scripts

24 Continuous Testing and Continuous Monitoring
DevOps Best Practices for Mobile Apps Continuous Testing and Continuous Monitoring Test each build on simulated and physical devices Virtualize and simulate back end services Monitor the deployed mobile app and back end services’ performance

25 DevOps Best Practices for Mobile Apps
Mobile App Delivery Governance of provisioning profiles, certificates and API keys Use a Private Development App Store to test device deployment Convert user feedback into user stories

26 Continuous Integration and Continuous Delivery
End-to-end Traceability, across all Components Build Deliver Back-end Services Deliver App Code Deliver App Code Automate Library Deployable Artifacts Source Artifacts Fetch Source Control iOS Developer Android Developer Enterprise Services Developer

27 Practice Continuous Integration
Continuous Integration and Continuous Delivery Practice Continuous Integration Mobile App Developent Teams Enterprise Services Developent Teams

28 Continuous Integration and Continuous Delivery
Maintain separate build areas for each SDK version <manifest xmlns:android=" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>

29 Continuous Integration and Continuous Delivery
Automated Build and Deploy scripts Automated Scripts

30 Continuous Testing and Continuous Monitoring
Test each build on each supported device

31 Continuous Testing and Continuous Monitoring
Simulate Back-end Services Heterogeneous Environments Mobile App Data Warehouse Mainframe Enterprise Service Bus Directory Identity App Under Test Third-party Services Portals Test Environments to Production Actual Service Simulated Service Mobile App

32 Continuous Testing and Continuous Monitoring
Monitor deployed apps and back end services performance

33 Governance of provisioning profiles, certificates and API keys
Mobile App Delivery Governance of provisioning profiles, certificates and API keys

34 Use a ‘Private’ App store to test device deployment
Mobile App Delivery Use a ‘Private’ App store to test device deployment

35 Convert App Store feedback into user stories
Mobile App Delivery Convert App Store feedback into user stories

36 Implementing DevOps for Mobile Apps

37 Mobile Delivery Pipeline
Mobile IDE API keys, Provisioning Profiles… Deploy Environment Running System Source Control Management Source Artifacts .jsp .java .html chef recipes .sh Deployable Artifacts Build, Package, & Unit Test Application Binaries & Platform Configuration Library Enterprise Services IDE

38 Enterprise Services IDE Cloud Provisioning System
Mobile Continuous Delivery Pipeline Backend Development Private Dev App Store Public App Store Common tools Publish Install Mobile Development Get Packages, Profiles, Keys Execute tests Mobile Device Op Engineer Media Library Get Packages Deployed Mobile Application Trigger build Publish packages, Profiles, Keys Automation Framework Publish packages SCM Repository Notify results Build Engine(s) Put configuration version Apply configurations to system Post results to build Virtual System Store changes Execute tests Application or Mobile Developer Enterprise Services IDE Mobile App IDE Provision pattern with build Provision system from pattern Cloud Provisioning System Install Mobile Device

39 DevOps Reference Architecture
Release Engineering Continuous Integration Continuous Delivery Deployment Library Development Operations Change Management Source Control Management Service Simulation Configuration Automation Incident Management Release Management Environment Provisioning Automation Application Monitoring Data Management Requirements Management Quality Management Test Automation Enterprise Services IDE Mobile App IDE

40 IBM’s DevOps for Mobile Solution – Continuous Integration and Test

41 IBM Mobile Foundation Enabling the development and delivery of mobile apps
Includes: IBM Worklight IBM WebSphere Cast Iron IBM Endpoint Manager for Mobile Devices Plus New Services Offering IBM Software Services for Mobile Foundation Build, connect, manage and secure your mobile enterprise 41

42 IBM Worklight Open, cost-effective, cross-platform app development
App development using native and/or familiar web technologies: HTML5 CSS3 JavaScript App delivery in variety of forms: Mobile Web app Hybrid app Native Compatible with prominent HTML5 libraries and tools: Worklight integrates development languages and best in class tools supporting application development using native and/or familiar web technologies including HTML5, CSS3 and JavaScript. Worklight supports multiple JavaScript frameworks: DOJO mobile, jQuery mobile, and Sencha. This gives developers choice to use the framework that's best for them.

43 Worklight mobile platform overview
Worklight Studio The most complete, extensible development environment with maximum code reuse and per-device optimization Worklight Server Mobile middleware offering unified push notifications, version management, security and integration Worklight Runtime Components Extensive libraries and client APIs that expose and interface with native device functionality and the Worklight Server Worklight Console A web-based console for real-time analytics and control of your mobile apps and infrastructure 43

44 Mobile simulator to simplify unit test

45 Worklight runtime architecture
Worklight Server Authentication JSON Translation Server-side Application Code Adapter Library Client-side App Resources Direct Update Mobile Web Apps Unified Push Notifications Stats Aggregation Device Runtime Application Code Cross Platform Technology Security and Authentication Back-end Data Integration Post-deployment control and Diagnostics

46 Application distribution (for development and test)
A cross platform private mobile application store similar to public app stores but focused on the needs of an organization or a team Key capabilities: delivers distribution and management of mobile applications within a company / teams easy distribution of iOS and Android apps within a team provides versioning and updates centralizes rating and feedback information controls who can modify or install an application easy to install and simple to run

47 Mobile Application Lifecycle Management
Rational Solution for Collaborative Lifecycle Management IBM Worklight Business Development Design Test Code Test Deploy Traceability across the entire development lifecycle Construct, debug, and test mobile UIs Open Lifecycle Integration Platform Mobile Application Platform Application Lifecycle Management IBM provides the only comprehensive mobile development solution currently in the market combining a mobile application platform, construction tools, and lifecycle management

48 Continuous Integration for Mobile

49 IBM’s DevOps for Mobile Solution – Continuous Delivery

50 IBM SmartCloud Continuous Delivery

51 IBM SmartCloud Continuous Delivery packaging
Extending Agile Development with Continuous Delivery Build -> Publish -> Deploy -> Test Mobile ALM (Rational Team Concert) Self-contained package: Automated delivery of workflow with built-in build, and cloud capabilities Easy to extend with open source and 3rd party solutions Adopt solution incrementally IBM SmartCloud Provisioning Agile Development Deployment to Virtual Systems

52 Extending IBM SmartCloud Continuous Delivery
Optional and alternative Integrations Extending CLM with Continuous delivery Deployment to Cloud & Virtual Systems IBM SmartCloud Provisioning IBM PureSystems IBM Workload Deployer Continuous Delivery Mobile ALM (Rational Team Concert) Design Management IBM Rational Software Architect Design Manager Continuous Integration IBM Rational Build Forge. Hudson…. Jenkins…. Test Automation IBM Rational Quality Manager IBM Green Hat Deployment Automation IBM Rational Automation Framework Chef Performance Management IBM SmartCloud Application. Performance Management Incident Management IBM SmartCloud Control Desk.. Key Benefits: Accelerated code-to-deploy from days to minutes through automation, standardization and repeatable processes Rapid scalable deployment designed to meet business growth with near-instant deployment of hundreds of virtual machines for development, test or production Reliable, non-stop cloud provides standardized, simplified platform for continuous delivery Save IT labor resources at scale by enableing self-service request and highly automated operations Reduce complexity though repeatable lifecycle artifacts.

53 2012 Product Implementations
Release Engineering Rational Build Forge Jenkins IBM SmartCloud Continuous Delivery Continuous Integration Continuous Delivery Deployment Library Rational Team Concert Development Operations IBM SmartCloud Control Desk Rational Green Hat Change Management Source Control Management Service Simulation Rational Automation Framework Configuration Automation Incident Management Release Management Chef Selenium Environment Provisioning Automation Application Monitoring Data Management Requirements Management Quality Management Test Automation IBM SmartCloud Provisioning IBM PureApplication System Rational Requirement Management Rational Quality Management Rational Performance Tester IBM SmartCloud Application Performance Management IBM Workload Deployer Rational Functional Tester Required product At least one is required

54 IBM’s DevOps for Mobile Solution – Service Virtualization

55 What is Service Simulation and Test Virtualization?
Heterogeneous Environments Public Cloud Private Cloud Data Warehouse Mainframe Enterprise Service Bus Directory Identity File systems Collaboration Mobile App Under Test Routing Service Third-party Services Portals Content Providers EJB Shared Services Archives Business Partners Messaging Services Mobile App Under Test Capture & Model Databases Mainframe applications Third-party Services Packaged apps, messaging services, etc. Virtual Services System dependencies are a key challenge in setting up test environments: Unavailable/inaccessible: Testing is constrained due to production schedules, security restrictions, contention between teams, or because they are still under development Costly 3rd party access fees: Developing or testing against Cloud-based or other shared services can result in costly usage fees Impractical hardware-based virtualization: Systems are either too difficult (mainframes) or remote (third-party services) to replicate via traditional hardware-based virtualization approaches Test Virtualization enables to create “virtual services”: Virtual Services simulate the behavior of an entire application or system during testing Virtual Services can run on commodity hardware, private cloud, public cloud Each developer, tester can easily have their own test environment Developer and testers continue to use their testing tools (Manual, Web performance, UI test automation)

56 IBM Rational Test Virtualization Solution
Test Virtualization is an enabler for continuous Integration Testing Services, applications, systems are introduced into the continuous integration cycle in a prioritized, controlled fashion. Actual Service/App Virtual Service/App Mobile App under Test We always want to be testing. Stub interfacing components out that are unavailable at the time and then re-introduce them when they are available. Continuous integration testing at a “system” level. When new components are introduced the automated test suite scan be run as regression tests. Thereby controlling the risk of extra functionality being deployed into the test environment by having mitigated the risk through earlier testing against stubs. This is an incremental and iterative approach to integration testing. Incremental Integration Testing 56

57 IBM Rational Test Virtualization Solution for continuous integration and testing
Avoid time spent installing and configuring software just to discover basic build issues Smoke tests can be integrated as part of the continuous integration process through deployment automation and test virtualization Smoke test results are made available to the entire team to shorten resolution Virtual Machines App Server Order Mgr Virtual Lab Manager Cloud Environment CRM VM Catalog Smoke Tests Sandboxes Self-provisionning Build Assets Product Increment

58 Wrap-up: DevOps Best Practices for Mobile Apps

59 Continuous Integration and Continuous Delivery
DevOps Best Practices for Mobile Apps Continuous Integration and Continuous Delivery Ensure end-to-end traceability across all assets Practice continuous integration Maintain separate streams for each mobile OS, SDK supported Use automated build and deploy scripts

60 Continuous Testing and Continuous Monitoring
DevOps Best Practices for Mobile Apps Continuous Testing and Continuous Monitoring Test each build on simulated and physical devices Virtualize and simulate back end services Monitor the deployed mobile app and back end services’ performance

61 DevOps Best Practices for Mobile Apps
Mobile App Delivery Governance of provisioning profiles, certificates and API keys Use a Private Development App Store to test device deployment Convert user feedback into user stories

62 Where to get more information?
My Blog: Leveraging DevOps in a water-SCRUM-fall World IBM Enterprise DevOps blog

63 Top Five Reasons to Attend
Learn how you can make the most of Agile, DevOps, Cloud, Mobile, Big Data, Social Business and other key trends to release products faster, improve processes, increase quality, and meet business objectives. Get detailed Rational technical training trough hundreds of breakouts, hands-on technical workshops, open labs and a wide variety of certification testing Explore Innovation Labs, observe interoperability in action and meet face to face with experts in a high-energy Exhibit Hall. In terms of activities – there is an entire week of great education, networking and entertainment! When most people think of Innovate, they think about the great technical education that takes place. This year – like every year – we plan on delivering over 400 technical break out sessions on all the topics that matter to you. From Requirements Management, through Agile Delivery, Quality Management and Systems Engineering to name a few – we have the best and brightest client, partner and IBM speakers delivering session after session of great technical education. We augment that with hands on labs – as it’s one thing to hear how something is done, it’s a whole other to do it! Every day we kick off with some great general sessions – with really inspirational speakers. In the past we’ve had the likes of William Shatner, Michio Kaku and the Mythbusters on hand – as well as key industry visionaries and some of our most interesting and insightful IBM leaders. Our partners are always a big part of the conference – and this year will be no exception. We plan on hosting the biggest Expo Hall we’ve ever had – where you can see what’s going on in the extended IBM family. And of course – networking – year after year, our client surveys show networking is one of the top reasons they come to Innovate. Networking with clients, industry experts and IBMers – building relationships and contacts that far outlast the one week of the event. But enough of me telling you what we do...I’ve brought a quick video, to give you a feel of how we do things at Innovate....Toni – can you roll the video for us? (90 second video) Innovate 2013: The IBM Technical Summit is the event for software practitioners and product developers. Attendees will learn to improve the practices, predictability and economics of software delivery through detailed Rational education and insights into key technical trends! Network with over 4000 attendees from around the world and collaborate with your peers from a wide variety of roles, industries and locations. Enjoy top-notch keynotes and entertainment, including strategic presentations, dynamic guest speakers and customer success stories. Register by March 15 and save $300! ibm.com/innovate


Download ppt "DevOps Best Practices for Mobile Apps"

Similar presentations


Ads by Google