Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "DevOps Best Practices for Mobile Apps Sanjeev Sharma, as played by John Lanuti IBM Software Group."— 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: o DevOps o Enterprise Architecture o Agile Transformation o Mobile Development o Software Delivery Platforms o Software Supply Chains. Blog @ bit.ly/sdarchitect Twitter: @sd_architect Sanjeev Sharma sanjeev.sharma@us.ibm.com IBM Software Group

3 Me 15 years in the software industry 14 years with IBM, developer, PM, IT Specialist Areas of work: o Application Development o Agile Transformation o Mobile Development o Application Lifecycle Management Blog http://attaboyjohn.wordpress.com/ Twitter: @johnlanuti John Lanuti jlanuti@us.ibm.com IBM Rational

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

5 What is DevOps?

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

7 Key Concepts 1.Continuous Integration 2.Continuous Delivery 3.Continuous Test 4.Continuous Monitoring 5.Infrastructure as Code 6.Build and Delivery Pipeline

8 1. Continuous Integration http://bit.ly/PRQ4a7

9 2. Continuous Delivery http://bit.ly/PRQ4a7

10 3. Continuous Test http://bit.ly/PRQ9dQ

11 4. Continuous Monitoring http://bit.ly/PRQ9dQ

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 Mobile Apps are the front-end to a complex(enterprise) back-end system o Mobile Apps are rapidly becoming a critical user interface to enterprise systems

16 Mobile Application Architecture: LinkedIn http://engineering.linkedin.com/testing/co ntinuous-integration-mobile

17 DevOps for Mobile - Challenges Fragmented Platforms o 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 o Mobile Web is not an acceptable solution. Users want an App o Hybrid Apps are the optimal solution for Apps with non-native needs

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

20 Delivery Pipeline 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

21 IBMs Four DevOps Principles 1.Collaborate across Disciplines 2.Develop and test against a production-like system 3.Deploy frequently 4.Continuously validate operational quality characteristics

22 DevOps Best Practices for Mobile Apps

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

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

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

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

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

28 3.Maintain separate build areas for each SDK version... Continuous Integration and Continuous Delivery

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

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

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

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

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

34 9.Use a Private App store to test device deployment Mobile App Delivery

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

36 Implementing DevOps for Mobile Apps

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

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

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

40 IBMs DevOps for Mobile Solution – Continuous Integration and Test

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

42 Compatible with prominent HTML5 libraries and tools: App development using native and/or familiar web technologies: HTML5 CSS3 JavaScript App delivery in variety of forms: Mobile Web app Hybrid app Native IBM Worklight Open, cost-effective, cross-platform app development

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

44 Mobile simulator to simplify unit test

45 Worklight Server Authentication JSON Translation Server-side Application Code Adapter Library Client-sideApp 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 Worklight runtime architecture

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 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 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 Test Development Business Open Lifecycle Integration Platform Traceability across the entire development lifecycle DesignCodeTestDeploy Construct, debug, and test mobile UIs IBM Worklight Rational Solution for Collaborative Lifecycle Management

48 Continuous Integration for Mobile

49 IBMs DevOps for Mobile Solution – Continuous Delivery

50 IBM SmartCloud Continuous Delivery https://jazz.net/products/smartcloud-continuous-delivery/ 50

51 IBM SmartCloud Continuous Delivery packaging Build -> Publish -> Deploy -> Test Extending Agile Development with Continuous Delivery Mobile ALM (Rational Team Concert) Agile Development IBM SmartCloud Provisioning Deployment to Virtual Systems 51

52 Design Management IBM Rational Software Architect Design Manager Extending IBM SmartCloud Continuous Delivery Performance Management IBM SmartCloud Application. Performance Management Incident Management IBM SmartCloud Control Desk.. IBM SmartCloud Provisioning IBM PureSystems IBM Workload Deployer Mobile ALM (Rational Team Concert) Continuous Delivery Deployment Automation IBM Rational Automation Framework Chef Continuous Integration IBM Rational Build Forge. Hudson…. Jenkins…. Test Automation IBM Rational... Quality Manager IBM Green Hat Extending CLM with Continuous delivery Deployment to Cloud & Virtual Systems 52 Optional and alternative Integrations

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

54 IBMs DevOps for Mobile Solution – Service Virtualization

55 55 What is Service Simulation and Test Virtualization? Test Virtualization enables to create virtual services : o Virtual Services simulate the behavior of an entire application or system during testing o Virtual Services can run on commodity hardware, private cloud, public cloud o Each developer, tester can easily have their own test environment o Developer and testers continue to use their testing tools (Manual, Web performance, UI test automation) Capture & Model 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 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 Databases Mainframe applications Mobile App Under Test Third-party Services Packaged apps, messaging services, etc. Virtual Services

56 Incremental Integration Testing Actual Service/App Virtual Service/App Test Virtualization is an enabler for continuous Integration Testing Services, applications, systems are introduced into the continuous integration cycle in a prioritized, controlled fashion. IBM Rational Test Virtualization Solution Mobile App under Test

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 Assets Product Increment Virtual Machines App Server Order Mgr Virtual Lab Manager Cloud Environment CRM VM Catalog Build Smoke Tests Sandboxes Self-provisionning Smoke Tests Sandboxes Self-provisionning

58 Wrap-up: DevOps Best Practices for Mobile Apps

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

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

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

62 Where to get more information? My Blog: o http://bit.ly/sdarchitect http://bit.ly/sdarchitect Leveraging DevOps in a water-SCRUM-fall World o http://ibm.co/PRQkWL http://ibm.co/PRQkWL IBM Enterprise DevOps blog o http://ibm.co/JrPVGR http://ibm.co/JrPVGR

63 The IBM Technical Summit Register by March 15 and save $300! 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. 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. 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! ibm.com/innovate


Download ppt "DevOps Best Practices for Mobile Apps Sanjeev Sharma, as played by John Lanuti IBM Software Group."

Similar presentations


Ads by Google