Mobile DevOps dalam praktiknya

Halo, Habr! Hari ini kami membagikan kepada Anda panduan yang sederhana dan dapat dipahami tentang cara mempraktikkan Mobile DevOps. Selain manual kertas, di bawah potongan Anda juga dapat menemukan rekaman video dari lokakarya dengan nama yang sama, yang mencakup setiap aspek DevOps dalam kaitannya dengan pengembangan ponsel.



Saya memberikan lantai kepada penulis, Vyacheslav Chernikov.

Mobile DevOps: Panduan Beraksi


Salam untuk Anda, pembaca. Musim panas sekali lagi terbang dengan kecepatan komet, dan bersama dengan musim gugur, saatnya untuk kembali ke 150% dari produktivitas. Kembali di musim semi, Microsoft dan saya menyiapkan panduan "Mobile DevOps in Practice" tentang cara mengotomatiskan proses pengembangan aplikasi seluler secara maksimal. Berikut ini adalah lembar fakta dari panduan lengkap.

1. Tentang DevOps


1.1 Tentang Budaya DevOps


DevOps sendiri perlahan berjalan mengelilingi planet dalam pelukan dengan teknik manajemen yang fleksibel. Namun, jika Anda melihat sedikit lebih dalam, maka DevOps terutama adalah budaya di mana seluruh tim yang mengembangkan dan memelihara sistem TI bekerja secara keseluruhan. Ini adalah komunikasi dalam tim yang diperlukan untuk membangun interaksi yang sehat antara bisnis, programmer, administrator sistem dan penguji.

Elemen penting kedua dari setiap proses DevOps adalah pelatihan tim. Dalam dunia yang ideal, sebuah tim (dimulai dengan bisnis) harus belajar untuk lebih memenuhi kebutuhan pengguna akhir, menciptakan nilai bagi konsumen. Namun dalam praktiknya, "nilai" juga perlu dipelajari untuk menghitung dan menarik kesimpulan yang kompeten dari ini. Untuk pelatihan, dalam hal apa pun, umpan balik dari pengguna sungguhan diperlukan. Koneksi semacam itu adalah sistem pemantauan berkelanjutan untuk kelangsungan sistem TI dan berbagai sistem logging.

Dan agar DevOps ini ada tidak hanya dalam pikiran pengembang, ia harus dipraktikkan menggunakan alat yang cocok untuk kebutuhan tugas. Bagian dari budaya DevOps juga keinginan untuk mengotomatiskan kegiatan rutin. Ini membuat proses pengembangan dan pengembangan sistem TI menjadi lebih tidak menyakitkan dan lebih efisien.

1.2 Apa perbedaan antara DevOps vs Mobile DevOps


DevOps sendiri muncul sebagai pendekatan untuk tim dan perusahaan besar yang bekerja pada sistem IT besar yang terdiri dari sejumlah besar modul, sering ditulis dalam bahasa pemrograman yang berbeda dan dirancang untuk lingkungan runtime yang berbeda. Namun, ketika istilah dan pendekatan menjadi lebih populer, DevOps mulai diadaptasi oleh berbagai tim untuk memecahkan berbagai masalah.

Paling sering, DevOps dikaitkan dengan produk digital besar, pengembangan dan pemeliharaannya dilakukan oleh puluhan, ratusan, dan kadang-kadang ribuan spesialis. Banyak tim telah mengembangkan praktik mereka sendiri dan alat mereka sendiri untuk mendukung proses DevOps - sistem untuk perakitan, pengujian, penyebaran dan pemantauan otomatis. Biasanya, ini semua dibuat pada infrastruktur sendiri, tetapi alat cloud CI / CD juga aktif berkembang.



Gambar 1. Perbedaan antara Mobile DevOps dan Enterprise DevOps

Semua ini sedikit terkait dengan pengembangan aplikasi seluler. Mobile DevOps adalah versi "lebih kecil" dari DevOps biasa, karena aplikasi seluler terutama merupakan antarmuka yang nyaman untuk berinteraksi dengan sistem TI eksternal. Skala tim yang lebih kecil, dan masalah spesifiknya khusus untuk aplikasi seluler (lihat Gambar 1):

  • - berbagai platform;
  • - berbagai perangkat.

1.3 Dokumentasi terpadu dan satu bahasa


Agar DevOps bekerja dan ada interaksi nyata antara tim, Anda memerlukan satu bahasa dan satu dokumentasi yang berfungsi, dapat dimengerti oleh semua peserta. Di sini, tidak ada pendekatan yang memberikan panduan yang jelas, dan sistemnya berbeda. Namun, itu adalah dokumentasi yang hidup dengan proyek sepanjang siklus hidup dan merupakan alat untuk komunikasi dan interaksi tim.



Gambar 2. Dokumentasi kerja

Dokumentasi kerja yang kompeten dapat menyederhanakan dan mempercepat pengembangan proyek. Proses ini dijelaskan secara lebih rinci dalam Panduan kami # 2 " Desain teknis aplikasi seluler ."

Di sini kita akan mengidentifikasi dokumen utama (lihat Gambar 2):

- daftar layar;
- peta transisi dan negara;
- daftar layar.

Penggunaan penamaan dan penomoran ujung-ke-ujung dalam dokumen ini adalah penting. Inilah yang menyederhanakan dan mempercepat proses komunikasi dalam tim. Faktor penting lainnya adalah kepatuhan "kode dokumentasi", yang memperjelas komunikasi bisnis dengan pengembang.

2. Fitur Mobile CI / CD


Jadi, kami memutuskan pada budaya interaksi dan dokumentasi kerja dan sekarang kami dapat beralih ke dukungan instrumental dalam bentuk pipa CI / CD. Semakin banyak operasi yang dapat Anda lakukan secara otomatis, semakin baik.

2.1 Masalah Mobile Dev


Pengembangan seluler memiliki 3 bidang masalah yang berbeda:

  • Berbagai sistem operasi dan versinya. Aplikasi harus bekerja dengan benar pada berbagai OS yang berbeda, yang masing-masing memiliki karakteristik dan keterbatasannya sendiri.
  • Berbagai opsi untuk arsitektur prosesor pusat. Perangkat keras smartphone dan tablet terus membaik, tetapi jangan lupakan "orang tua" lima tahun lalu, yang mungkin ada di tangan pengguna Anda yang sebenarnya.
  • Resolusi layar perangkat yang berbeda. Terlepas dari jumlah piksel atau rasio aspek, antarmuka aplikasi seluler harus ditampilkan dengan benar di semua perangkat.

Secara umum, pengujian dan debugging pada armada besar perangkat nyata sangat diperlukan.

2.2 Apa yang dapat diuji secara otomatis


Dalam praktik nyata, tidak mungkin dilakukan tanpa pengujian manual pada ponsel cerdas atau tablet. Namun, bagian dari kode mudah ditutupi oleh tes otomatis berdasarkan Unit Testing (selanjutnya hanya unit test). Mari kita lihat arsitektur khas kebanyakan aplikasi - Gambar 3.



Gambar 3. Arsitektur tiga tingkat klasik

Tes cakupan penuh adalah bijaksana untuk melakukan tes dalam 2 arah:

  • unit test (fungsional, integrasi) untuk Lapisan Akses Data atau Repositori.
  • Tes UI (fungsional, regresi) untuk lapisan Logika Bisnis dan Antarmuka Pengguna.

Tidaklah mungkin untuk mencakup semuanya dengan uji unit dalam aplikasi seluler, plus ini mengurangi kecepatan pengembangan dan memperbarui sistem. Untuk fase pengujian unit otomatis dari pipa CI / CD, akan berguna untuk mencakup mekanisme lapisan DAL berikut:

  • Metode akses API Backend
  • metode akses data (Repositori);

Jika kita berbicara tentang tes UI otomatis, maka kita dapat menguji yang berikut:

  • pengoperasian aplikasi pada perangkat nyata dengan karakteristik yang diperlukan;
  • kemampuan untuk menjalankan skenario bisnis utama.

Berdasarkan hasil pengujian UI, tangkapan layar dikumpulkan dengan setiap langkah pada setiap perangkat, berdasarkan pada mereka, seorang insinyur QA dapat secara manual melihat tata letak aplikasi yang benar pada resolusi dan ukuran layar yang berbeda.

Kenyamanan, kelancaran animasi dan karakteristik khusus pengguna lainnya sulit untuk dikhususkan untuk autotest, lebih baik diserahkan kepada penguji langsung dan pengguna beta.

Akhir lembar fakta.



Bahan yang berguna


Pesan Mobile DevOps dalam praktiknya




Versi digital lengkap dari panduan kertas “Mobile DevOps in Practice” .

Materi video dari lokakarya “Mobile DevOps in Practice” (4 bagian selama 3,5 jam)


Bagian 1




Bagian 2




Bagian 3




Bagian 4




KTT DevOps


Saya ingin membahas Mobile DevOps secara langsung atau mengajukan pertanyaan - Saya akan senang melihat Anda di Microsoft DevOps Summit pada 13 September di Moskow ( pendaftaran ) atau pada DevOps Days pada 14-15 September di Kazan ( selengkapnya ).

Seperti biasa, saya akan berterima kasih atas umpan balik dan pertanyaan di komentar! Tetap berkomunikasi!

Tentang penulis


Vyacheslav Chernikov adalah kepala departemen pengembangan di Binwell , Microsoft MVP, dan Pengembang Bersertifikat Xamarin. Di masa lalu, salah satu dari Nokia Champion dan Qt Certified Specialist, saat ini menjadi spesialis dalam platform Xamarin dan Azure. Dia datang ke bidang ponsel pada tahun 2005, sejak 2008 dia telah mengembangkan aplikasi seluler: dia mulai dengan Symbian, Maemo, Meego, Windows Mobile, kemudian beralih ke iOS, Android, dan Windows Phone.

Anda juga dapat membaca artikel Vyacheslav di blog di Medium .

Source: https://habr.com/ru/post/id421465/


All Articles