Mobile DevOps Playbook - Moataz Nabil - E-Book

Mobile DevOps Playbook E-Book

Moataz Nabil

0,0
32,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

To build mobile apps, you need to understand mobile-first features, tools, and processes that help you build, test, and release robust apps faster and more efficiently. The multitude of challenges stemming from mobile development's inherent complexities, including native iOS and Android app creation, cross-platform frameworks, and the implementation of scalable architectures within extensive teams, collectively contribute to a substantial number of obstacles that can significantly prolong the release process.
This book will help you understand and implement the best practices of mobile DevOps for continuous integration, testing, delivery, deployment, and monitoring. You’ll explore different challenges faced by developers due to varied OSs, the unforgiving nature of mobile applications, and continuous updates to mobile phones and learn how to maneuver through these challenges. You’ll also get to grips with the latest trends while discovering the potential future of mobile DevOps, with valuable insights and guidance about integrating mobile development teams into your organization.
By the end of this book, you’ll be well-equipped to successfully implement mobile DevOps and build fast, qualitative, and efficient mobile apps for your team or organization.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 417

Veröffentlichungsjahr: 2023

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Mobile DevOps Playbook

A practical guide for delivering high-quality mobile applications like a pro

Moataz Nabil

BIRMINGHAM—MUMBAI

Mobile DevOps Playbook

Copyright © 2023 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Group Product Manager: Preet Ahuja

Publishing Product Manager: Vidhi Vashisth

Book Project Manager: Ashwin Kharwa

Senior Editor: Divya Vijayan

Technical Editor: Arjun Varma

Copy Editor: Safis Editing

Proofreader: Safis Editing

Indexer: Subalakshmi Govindhan

Production Designer: Aparna Bhagat

DevRel Marketing Coordinator: Rohan Dobhal

First published: September 2023

Production reference: 2060923

Published by Packt Publishing Ltd.

Grosvenor House

11 St Paul’s Square

Birmingham

B3 1RB

ISBN 978-1-80324-255-2

www.packtpub.com

I want to express my heartfelt gratitude to my wonderful wife, Basma, who has been by my side throughout this long journey. Her unwavering support has meant the world to me, especially during the challenging moments. I am also immensely grateful to my beloved daughter, Malak, whose presence has constantly motivated me to strive and set a positive example.

Additionally, I would like to sincerely thank my parents, Mr. Nabil and Mrs. Hadaya, sincerely. They have been a source of inspiration, always encouraging me to pursue greatness and never give up, regardless of the obstacles that may come my way.

To Basma, Malak, Mr. Nabil, and Mrs. Hadaya, your love, support, and encouragement have been invaluable to me. I deeply appreciate all you have done and continue to do for me.

– Moataz Nabil

Contributors

About the author

Moataz Nabil is a highly skilled Developer Advocate and Test Automation Consultant who excels in cultivating meaningful connections with developers and clients. With over 12 years of experience in software development and testing, Moataz has successfully led and managed test automation teams, focusing on designing, developing, and maintaining automated testing solutions for various software products. As a respected speaker, Moataz has shared his expertise at numerous global developer events and conferences.

In the past, Moataz has held positions at prominent companies such as Bitrise, Delivery Hero, and Zalando SE. In addition to his primary role, Moataz is an AWS Community Builder and a valued member of the DevNetwork and Packt Advisory Board.

About the reviewer

Eslam Mohammed Anwar is a distinguished Staff DevOps Engineer boasting over a decade of experience. A fervent advocate for efficient practices and cost-effective solutions, he has redefined the art of building native mobile CI/CD pipelines.

I’d like to thank my family, who understand the time and commitment it takes to research and test data that is constantly changing.

Sergey Akentev began his journey in development as a backend engineer in 2016. With a profound passion for automation and mobile, he shifted his focus to Mobile DevOps in 2020, mastering build and release engineering and mobile-specific CI/CD for both apps and SDKs. He evaluates the whole process on a large scale, always with a keen focus on the customer, whether they are a teammate or an end user. Sergey is determined to deliver results, driving the highest standards and diving deep to innovate. His solutions have automated the workflows of hundreds of engineers and currently serve millions of end users.

Table of Contents

Preface

Part 1: Introduction to Mobile DevOps

1

Resolving Challenges in Mobile DevOps

The importance of mobile apps

Challenges lie ahead

Here’s an example

Let me tell you a story

Why does Mobile DevOps matter?

Understanding Mobile DevOps

DevOps versus Mobile DevOps

How does Agile work in Mobile DevOps?

The Waterfall model

Agile

Mobile DevOps stages

Transforming Mobile DevOps effectively

ROI of Mobile DevOps

How to accelerate Mobile DevOps in your organization

Team roles and responsibilities for Mobile DevOps

Large-scale mobile app development challenges

Super apps

White-label apps

Summary

2

Understanding the Mobile Ecosystem

Mobile apps are like icebergs

What makes mobile apps great?

Mobile platforms and frameworks available today

iOS

Configuring a multiplatform app

Android

Flutter

React Native

Ionic

Cordova

Xamarin

PWAs

Mobile apps’ most valuable features

Large screens and foldable devices

Deep links

Fragmentation

Localization

Accessibility

Push notifications

Offline capability

Monetization

Modularization

Performance optimization

Mobile app architecture

Summary

3

Mobile DevOps Fundamentals

The importance of Mobile DevOps

Mobile CI/CD fundamentals

Continuous planning

Continuous integration

Continuous testing

Continuous Delivery

Continuous deployment

Continuous monitoring

The benefits of CI/CD for mobile app development

The tools and infrastructure of Mobile DevOps

Choosing between self-hosted and cloud-based CI/CD

Mobile-specific CI/CD

Do we need a Mobile DevOps engineer?

Summary

Part 2: Implementing the Mobile DevOps Environment

4

Achieving Continuous Integration and Delivery with Mobile DevOps

Introduction

An overview of the six most popular CI/CD providers for mobile apps

Bitrise

Codemagic

GitHub Actions

Xcode Cloud

Visual Studio App Center

Ionic AppFlow

Summary

5

Implementing a Robust Mobile App Testing Strategy

Understanding mobile app testing

Testing levels

Types of mobile app testing

The importance of test automation for mobile apps

Mobile app testing challenges and pitfalls

The need for a robust testing strategy

What is a mobile app testing strategy?

Continuous testing

What is shift-left testing?

Testing tools, frameworks, and services for mobile apps

Mobile app UI and functionality testing

XCUITest

EarlGrey

Espresso

Open source project based on Espresso

Jetpack Compose

Appium

Detox

Flutter Driver

Maestro

Testing on cloud devices

Sauce Labs

BrowserStack

LambdaTest

AWS Device Farm

Firebase Test Lab

How AI and ML are changing mobile testing

Codeless and AI-based testing tools

Test case management

Achieving successful mobile test coverage

Tips for successful CI/CD pipelines and test automation

Skills for mobile testers

How to improve your mobile testing skills

Summary

6

Mobile App Release Management

Challenges in mobile app release management

The definition of releasing mobile applications

Defining a release strategy

Understanding the release management process for mobile apps

Before the release

Preparing a release version and tag

Preparing the release

Releasing the app

Launching the app

Post-release

Summary

Part 3: Monitoring, Optimizing, and Securing Mobile DevOps

7

Establishing Mobile App Monitoring, Observability, and Analytics

What is monitoring?

What is observability?

Benefits of implementing monitoring and observability for mobile apps

The differences between monitoring and observability

What is analytics?

Factors to consider in monitoring and observability

Steps to implement monitoring and observability for mobile apps

Monitoring, observability, and analytics tools for mobile apps

Monitoring and observability tools

Analytics tools

Key metrics for mobile app monitoring, analytics, and observability

Monitoring metrics

Observability metrics

Analytics metrics

Implementing continuous monitoring for mobile apps

Summary

8

Keeping Mobile Apps and DevOps Secure

Importance of security in mobile development

What is the GDPR?

Mobile app security threats

Architecting secure mobile apps

The traditional way of doing security testing

Introduction to mobile DevSecOps

Benefits of Mobile DevSecOps

Building a culture of security

Starting your DevSecOps journey

Automating mobile security testing with mobile CI/CD and DevOps

Tools to automate security testing

Tips for security automation for mobile DevOps

Summary

9

Mobile DevOps Best Practices

Best practices for CI/CD in mobile app development

Key metrics to track for CI/CD in mobile app development

Managing mobile app versions and releases

Monorepo

Multi-repo

Managing mobile app infrastructure

IaC for mobile apps

Configuration management for mobile apps

Remote and dependency caching

Execution of CI builds and tests in parallel

A/B testing and feature flags

A/B testing for mobile apps

Feature flags for mobile apps

Mock APIs

Building, testing, and releasing with fastlane

ChatOps for mobile DevOps collaboration

Slack

AWS Chatbot

Summary

Part 4: Moving Beyond Mobile DevOps and the Future of DevOps

10

Improving Productivity with Developer Experience and Platform Engineering

What is DX?

What does a DX team do?

Understanding developer needs

Creating user-centric solutions by organizing the workflow

Enhancing developer interactions with clear and standardized communication

DX and Mobile DevOps

What is an IDP?

The benefits of IDP engineering

What is PE?

Benefits of PE

The difference between platform engineers, Mobile DevOps engineers, and site reliability engineers for mobile

Platform engineers for mobile apps

DevOps engineers for mobile apps

Site reliability engineers for mobile apps

Is my company in need of DX, an IDP, or PE?

Summary

11

Predicting the Future of Mobile DevOps

Mobile app development trends

Cross-platform mobile development is on the rise

Developing mobile apps with low code

Security is getting more important

Increase in the impact of AI and ML

Increase in the usage of cloud computing

The growing importance of UX

The growing impact of AR and VR

Increasing use of voice apps

The growth of IoT integration

Mobile DevOps trends

Automating orchestrating of mobile releases will grow

The rise in cloud-based infrastructure

A growing need for automation

The shift-left will become more prevalent

Increasing the importance of security and data protection

Keeping an eye on the performance of mobile apps

The rise of AI testing and codeless testing tools

A rise in platform engineering and developer productivity

Summary

Index

Other Books You May Enjoy

Preface

Hello there! Mobile DevOps Playbook is a practical guide to building, testing, releasing, monitoring, and managing mobile applications. As you learn how companies use Mobile DevOps methodologies to improve collaboration between development, testing, releasing, and operations teams, you can deliver features, bug fixes, and updates to mobile applications more quickly and efficiently.

It’s a step-by-step guide to understanding mobile DevOps concepts, processes, and use cases from development to release, as well as predicting how mobile DevOps will evolve in the future, including new technologies and tools that are necessary.

This book is an invaluable resource for developers who want to stay up to date on the rapidly changing mobile app development landscape. This book provides a comprehensive overview of the mobile development process, covering the different architectures, platforms, and technologies available to developers. It also offers useful advice on how to manage the software development life cycle effectively and use DevOps to ensure successful, high-quality releases. Mobile DevOps is a must-have resource for developers looking to stay ahead of the curve.

By learning about mobile DevOps, developers can save time, reduce errors, and ensure applications are optimized for the best user experience. Additionally, understanding the principles of mobile DevOps can help developers create more efficient and effective mobile applications, as they will have greater insight into the process of developing, testing, and deploying applications.

The mobile DevOps book includes a comprehensive overview of mobile development and DevOps principles, an in-depth look at the tools and techniques used to manage mobile app development, practical advice on how to successfully deploy and maintain mobile applications, and tips for streamlining the mobile DevOps process. Additionally, the book includes a variety of case studies to illustrate best practices and provide real-world examples.

I will provide relevant information and guide you through some elements of mobile DevOps based on my experience and knowledge from the past few years in the mobile DevOps domain.

After reading this book, you will be able to implement mobile DevOps in your company and decide which tools or approaches are useful for your team. You will also learn how to use mobile DevOps to help your team when the business is scaling and growing.

Who this book is for

The book will focus on the stages of the mobile DevOps process and implementation and is intended for everyone involved in mobile development. The primary target audience is engineers and first-line engineering management who are interested in DevOps. Furthermore, the audience includes CTOs, DevOps engineers, mobile developers, IT enterprise architects, mobile release managers, mobile architects, mobile platform engineers, QA engineers, and release engineers at all levels who will be able to implement the prescribed solutions. A basic understanding of DevOps concepts and practices is necessary to gain maximum benefit from this book.

The reader of this book is likely to already have some familiarity with DevOps and mobile app challenges and know the pain of testing, releasing, and monitoring mobile apps, especially at scale.

What this book covers

Chapter 1, Resolving Challenges in Mobile DevOps, provides an introduction to mobile DevOps. We will delve into the world of mobile app development and explore how mobile-first features can contribute to the more efficient and faster testing, building, and releasing of mobile apps.

Chapter 2, Understanding the Mobile Ecosystem, explores the mobile ecosystem and its crucial role in developing successful mobile apps. It covers essential components such as hardware, software, operating systems, networks, and services. Topics include challenges, mobile DevOps, mobile OSes/frameworks/platforms, app functionalities, and mobile app architecture.

Chapter 3, Mobile DevOps Fundamentals, explores the fundamentals of Mobile DevOps and its role in enabling fast and effective mobile app development. Topics covered include Mobile DevOps principles, implementing mobile continuous integration/continuous delivery (CI/CD), the stages of Mobile DevOps, choosing between self-hosted and cloud-based CI/CD, the Mobile Release Train concept, a checklist for app releases, and the need for a Mobile DevOps engineer.

Chapter 4, Achieving Continuous Integration and Delivery with Mobile DevOps, explores the implementation of CD for mobile apps using Mobile DevOps. It covers selecting a CI/CD provider, establishing a tailored CI/CD pipeline, and setting up effective build and unit tests for mobile apps.

Chapter 5, Implementing a Robust Mobile App Testing Strategy, examines the implementation of a robust mobile app testing strategy to ensure high-quality apps. Topics covered include mobile app testing introduction, test automation, creating a testing strategy, different types of mobile testing, continuous testing with Mobile DevOps, testing tools and frameworks, using AI for app quality, achieving test coverage, and improving mobile testing skills.

Chapter 6, Mobile App Release Management, focuses on the essential stage of mobile app release management, covering challenges, CI/CD implementation, compliance with app store guidelines, release and distribution, beta testing, app store submission, ASO, and monitoring progress.

Chapter 7, Establishing Mobile App Monitoring, Observability, and Analytics, explains the significance of monitoring and observability for mobile apps. It covers establishing effective practices, key metrics for app monitoring, choosing the right tool, and implementing continuous monitoring.

Chapter 8, Keeping Mobile Apps and DevOps Secure, discusses the significance of mobile app security in the DevOps context. It covers topics such as the importance of security in mobile development, introducing mobile DevSecOps, mobile app security threats, secure app architecture, mobile security testing methods and tools, starting the mobile DevSecOps journey, and tips for security automation in mobile DevOps.

Chapter 9, Mobile DevOps Best Practices, focuses on leveraging mobile DevOps for faster and higher-quality app development. Topics covered include CI/CD best practices, version and release management, Infrastructure as Code (IaC), configuration management, A/B testing, caching, parallel execution, fastlane automation, API mocking, and ChatOps collaboration.

Chapter 10, Improving Productivity with Developer Experience and Platform Engineering, explores the concepts of Developer Experience (DX) and Internal Developer Productivity (IDP) teams, emphasizing their importance in mobile development. It highlights the relationship between Mobile DevOps and DX teams, introduces platform engineering principles, and distinguishes it from DevOps and SRE engineering.

Chapter 11,Predicting the Future of Mobile DevOps, discusses future trends in mobile app development and mobile DevOps. It provides insights into upcoming advancements and recaps Mobile DevOps Playbook.

To get the most out of this book

It is essential to have an understanding of mobile app development, including the development life cycle, coding practices, and mobile platform considerations. Familiarity with agile methodologies and CI/CD principles is also crucial. Additionally, a working knowledge of mobile app testing and release management processes will be beneficial.

I assume readers have a basic understanding of mobile development concepts, DevOps principles, and the tools and technologies commonly used in the field.

The best way to ensure an understanding of the process and the steps required is to implement the mobile DevOps framework in your company or team after reading this book.

Software/hardware covered in the book

Operating system requirements

Java +8

Windows, macOS, or Linux (Ubuntu)

Node.js and npm

Windows. macOS and Linux

Xcode

macOS

Android Studio

Windows, MacOS and Linux

Git

Windows, MacOS and Linux

React Native

Windows, MacOS and Linux

Flutter

Windows, MacOS and Linux

Apple Developer account

MacOS

Google Play Store account

Windows, MacOS and Linux

If you are using the digital version of this book, we advise you to type the code yourself or access the code from the book’s GitHub repository (a link is available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.

Download the example code files

You can download the example code files for this book from GitHub at https://github.com/PacktPublishing/Mobile-DevOps-Playbook. If there’s an update to the code, it will be updated in the GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: It is not necessary to call sleep() repeatedly in your tests. Maestro waits for the content to load automatically (but not too long) when this process takes a long time.

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

[default]exten => s,1,Dial(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,102,Voicemail(b100) exten => i,1,Voicemail(s0)

Any command-line input or output is written as follows:

wget --quiet https://github.com/TestArmada/flank/releases/download/ v22.05.0/flank.jar -O /usr/local/bin/flank.jar java -jar /usr/local/bin/flank.jar firebase test android run

Bold: Indicates a new term, an important word, or words that you see onscreen. For instance, words in menus or dialog boxes appear in bold. Here is an example: “Select System info from the Administration panel.”

Tips or important notes

Appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, email us at [email protected] and mention the book title in the subject of your message.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata and fill in the form.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Share Your Thoughts

Once you’ve read Mobile DevOps Playbook, we’d love to hear your thoughts! Please click here to go straight to the Amazon review page for this book and share your feedback.

Your review is important to us and the tech community and will help us make sure we’re delivering excellent quality content.

Download a free PDF copy of this book

Thanks for purchasing this book!

Do you like to read on the go but are unable to carry your print books everywhere? Is your eBook purchase not compatible with the device of your choice?

Don’t worry, now with every Packt book you get a DRM-free PDF version of that book at no cost.

Read anywhere, any place, on any device. Search, copy, and paste code from your favorite technical books directly into your application. 

The perks don’t stop there, you can get exclusive access to discounts, newsletters, and great free content in your inbox daily

Follow these simple steps to get the benefits:

Scan the QR code or visit the link below

https://packt.link/free-ebook/9781803242552

Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directly

Part 1: Introduction to Mobile DevOps

Building mobile apps at scale requires mobile-first features that help you build, test, and deploy apps faster and more efficiently. The challenges due to the nature of mobile, native iOS and Android development, cross-platform frameworks, and scaling architecture in large teams are numerous and can prolong the release process. In this part, we will learn about Mobile DevOps and why it’s important, as well as understanding the mobile ecosystem and how to set up a successful Mobile DevOps environment.

This part has the following chapters:

Chapter 1, Resolving Challenges in Mobile DevOpsChapter 2, Understanding the Mobile EcosystemChapter 3, Mobile DevOps Fundamentals