Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Praktik DevOps adalah integral untuk mengelola beban kerja di Azure, terutama untuk aplikasi software as a service (SaaS). Aspek utama dalam mengelola beban kerja termasuk onboarding, offboarding, dan memodifikasi instans pelanggan. Praktik ini menyederhanakan operasi dan meningkatkan skalabilitas dan keandalan, yang meminimalkan kemungkinan pemadaman.
Artikel ini menjelaskan pertimbangan desain untuk manajemen siklus hidup pelanggan yang efisien dan praktik penyebaran yang aman.
Mengelola siklus hidup pelanggan
Mengelola peristiwa siklus hidup pelanggan sangat penting untuk aplikasi SaaS apa pun. Biasanya, peristiwa ini meliputi:
- Onboarding: Saat pelanggan mendaftar.
- Mengubah: Ketika instansi pelanggan dimodifikasi, seperti perubahan tingkatan harga mereka.
- Offboarding: Ketika pelanggan membatalkan akun mereka.
Anda mungkin menemukan peristiwa siklus hidup lainnya. Misalnya, Anda mungkin mengizinkan pelanggan untuk menjeda langganan mereka sambil menyimpan data mereka untuk periode yang ditetapkan dan melanjutkan langganan mereka nanti. Setiap peristiwa dapat memiliki implikasi unik untuk aplikasi Anda.
Dalam beberapa solusi, manajemen siklus hidup pelanggan mungkin hanya memerlukan pembuatan atau pengelolaan data dalam tabel database. Untuk solusi lain, mungkin termasuk mengatur penyebaran infrastruktur Azure, kode aplikasi, dan konfigurasi yang lebih kompleks.
Manajemen siklus hidup adalah tanggung jawab utama dari sarana kontrol solusi SaaS. Awalnya, tim Anda mungkin menangani aktivitas ini secara manual. Tetapi seiring waktu, coba transisikan lebih banyak fungsionalitas ke dalam solusi atau aplikasi sarana kontrol yang diformalkan.
Pertimbangan Desain
Konsistensi. Saat Anda merencanakan strategi manajemen siklus hidup Anda, pertimbangkan kompleksitas tindakan yang diperlukan setiap peristiwa siklus hidup pelanggan. Tindakan ini mencakup ukuran solusi Anda, basis pelanggan, dan overhead organisasi. Memiliki pemahaman yang jelas tentang langkah-langkah yang diperlukan untuk setiap peristiwa dan berinvestasi dalam kontrol untuk menjaga konsistensi. Tinjau dan perbarui proses Anda secara teratur untuk membantu memastikan bahwa proses tersebut tetap valid seiring berkembangnya solusi Anda.
Model penyewaan. Pendekatan Anda untuk menangani peristiwa siklus hidup pelanggan tergantung pada model penyewaan Anda.
Solusi multitenansi yang sepenuhnya memiliki sumber daya infrastruktur. Onboarding atau offboarding pelanggan biasanya mencakup pembaruan daftar pelanggan dan data terkait di penyimpanan data aplikasi Anda.
Sumber daya khusus per pelanggan. Tugas-tugas biasanya mencakup memulai penyebaran ke Azure, memantau kemajuan, dan menangani kegagalan penyebaran, mungkin dengan intervensi manusia.
Sumber daya yang disebarkan pelanggan. Anda mungkin perlu berinteraksi langsung dengan tim teknik pelanggan untuk onboarding atau offboarding.
Tingkatan. Pertimbangkan model harga Anda dan berbagai kebutuhan infrastruktur dari setiap tingkatan, terutama jika Anda mengizinkan pelanggan untuk secara bebas mengubah SKU mereka kapan saja. Misalnya, jika solusi SaaS Anda menyertakan aplikasi inti dan beberapa modul add-on berbayar, pastikan sumber daya aplikasi inti disebarkan selama onboarding. Selain itu, izinkan penambahan dinamis dan penghapusan modul add-on. Saat modul dihapus, putuskan apakah akan menghapus data terkait atau menyimpannya untuk potensi aktivasi ulang.
Rekomendasi desain
| Rekomendasi | Keuntungan |
|---|---|
| Dokumentasikan setiap jenis peristiwa siklus hidup pelanggan. Pastikan Anda mengambil detail langkah demi langkah proses untuk setiap peristiwa. |
Anda dapat merencanakan cara menanggapi setiap peristiwa dalam desain solusi Anda. Instruksi yang jelas membantu operator manusia menjaga konsistensi dan berfungsi sebagai fondasi untuk otomatisasi di masa mendatang. |
| Komunikasikan tanggung jawab bersama antara Anda dan pelanggan Anda untuk setiap peristiwa siklus hidup. Berkomunikasi dengan jelas dan awal tentang tindakan apa yang Anda harapkan diambil pelanggan untuk menyelesaikan tahap siklus hidup. | Anda dapat mengurangi potensi kesalahan dan frustrasi pelanggan yang disebabkan oleh miskomunikasi. |
| Lakukan perencanaan kapasitas untuk setiap peristiwa siklus hidup. Misalnya, saat Anda melakukan onboarding pelanggan baru, rencanakan untuk menyebarkan instans baru aplikasi Anda jika instans yang ada tidak memiliki kapasitas yang memadai untuk menangani beban tambahan. Untuk informasi selengkapnya, lihat Manajemen penagihan dan biaya untuk beban kerja SaaS di Azure. |
Anda dapat menskalakan dengan lebih mudah dan mencegah kegagalan penyebaran. |
| Otomatisasikan peristiwa siklus hidup Anda saat memungkinkan. Untuk solusi volume rendah atau tahap awal, penyebaran dan konfigurasi manual mungkin cukup. Tetapi masih harus menggunakan skrip, bahkan jika teknisi menjalankannya setiap kali peristiwa siklus hidup terjadi. Saat solusi Anda matang, integrasikan tanggung jawab ini ke dalam sarana kontrol penuh untuk mengurangi kesalahan manusia dan mendukung skala yang lebih tinggi. |
Anda dapat mengurangi risiko kesalahan manusia yang signifikan dan mendukung skala yang lebih tinggi. |
Merencanakan strategi manajemen infrastruktur Anda
Kembangkan strategi untuk menyebarkan, memelihara, dan mengelola infrastruktur Azure sejak dini. Saat Anda menskalakan SaaS Anda, jumlah sumber daya bertambah. Lebih mudah untuk mengikuti strategi manajemen dari awal daripada mendamaikan infrastruktur nanti ketika menjadi terlalu kompleks untuk ditangani secara manual.
Pertimbangan Desain
Manajemen sumber daya pelanggan. Model penyewaan Anda memengaruhi penyebaran sumber daya dalam solusi SaaS. Anda dapat menyebarkan sumber daya Azure khusus untuk setiap pelanggan atau berbagi sumber daya di antara sejumlah pelanggan yang ditetapkan. Atau, Anda dapat menggunakan satu set sumber daya bersama dan mengonfigurasi ulang saat Anda onboarding pelanggan baru. Pertimbangkan pendekatan umum ini untuk mengelola siklus hidup sumber daya:
Perlakukan daftar pelanggan Anda sebagai konfigurasi sumber daya untuk disebarkan. Gunakan alur penyebaran terpusat untuk menyebarkan dan mengonfigurasi sumber daya tersebut.
Perlakukan daftar pelanggan Anda sebagai data. Gunakan aplikasi sarana kontrol untuk menyediakan dan mengonfigurasi infrastruktur.
Otomatisasi infrastruktur. Banyak organisasi mulai dengan menyebarkan infrastruktur cloud secara manual melalui portal Microsoft Azure. Strategi ini mudah pada awalnya tetapi tidak menskalakan dengan baik dari waktu ke waktu. Rencanakan untuk mengotomatiskan penyiapan infrastruktur Anda dengan menggunakan alat infrastruktur sebagai kode (IaC) seperti Bicep atau Terraform. Untuk persyaratan yang lebih kompleks, buat sarana kontrol yang menggunakan API Azure Resource Manager secara langsung.
Atribusi infrastruktur. Lacak pelanggan mana yang disebarkan di infrastruktur mana. Pelacakan penting untuk perencanaan kapasitas yang akurat dan atribusi biaya. Anda dapat melacak infrastruktur pelanggan secara terpusat dalam database pelanggan. Atau untuk infrastruktur khusus, gunakan metadata sumber daya Azure dengan grup sumber daya dan tag sumber daya khusus pelanggan. Untuk informasi selengkapnya, lihat Organisasi sumber daya untuk beban kerja SaaS.
Rekomendasi desain
| Rekomendasi | Keuntungan |
|---|---|
| Bangun otomatisasi infrastruktur dengan menggunakan alur penyebaran, skrip, atau templat dengan alat yang sudah terbiasa dengan tim Anda. | Alat yang akrab mengurangi risiko kesalahan karena otomatisasi infrastruktur dapat mengganggu jika alat tidak dipahami. |
| Sebarkan infrastruktur Anda dengan menggunakan IaC jika memungkinkan. | IaC membantu mengurangi pemeliharaan manual, yang menjadi lebih berisiko dan lebih membebani seiring bertambahnya jumlah infrastruktur. |
| Pisahkan infrastruktur inti dari infrastruktur tingkat pelanggan. | Berbagai jenis infrastruktur memiliki siklus hidup dan aktivitas manajemen yang berbeda. Dengan memisahkannya, Anda dapat mengelola setiap set secara independen pada jadwalnya sendiri. |
| Gunakan Azure Managed Applications untuk menyebarkan dan mengelola sumber daya yang disebarkan pelanggan. | Azure Managed Applications menyediakan berbagai kemampuan yang dapat Anda gunakan untuk menyebarkan dan mengelola sumber daya dalam langganan Azure pelanggan. |
Merencanakan penyebaran aplikasi
Untuk meningkatkan fungsionalitas, perbarui kode dan konfigurasi aplikasi secara teratur. Pelanggan mengharapkan waktu aktif yang konsisten selama pembaruan dan peluncuran yang aman untuk meminimalkan risiko pemadaman.
Pertimbangan Desain
Menstandarkan alat dan proses. Alat DevOps yang terbukti di industri membantu memastikan konsistensi di seluruh fungsi dan kematangan dalam proses untuk mengelola penyebaran aplikasi Anda. Dalam kebanyakan situasi, mengembangkan alat sendiri dianggap sebagai antipattern. Untuk informasi selengkapnya, lihat Praktik pengembangan perangkat lunak OE:03.
Tradeoff: Kompleksitas dan biaya. Alat DevOps yang sudah dikenal dapat menghemat biaya dan keterampilan. Namun, mereka menambahkan beban operasional untuk mengelola setiap alat secara terpisah. Penting untuk tetap terbuka untuk inovasi teknologi baru yang dapat menguntungkan beban kerja Anda.
Sebarkan pembaruan secara progresif. Merilis pembaruan untuk pelanggan secara bertahap. Bagi pengguna menjadi grup logis dan sebarkan perubahan ke satu grup sekaligus. Terapkan kekakuan yang sama pada perubahan konfigurasi karena dapat mengubah perilaku kode dan menyebabkan pemadaman. Ikuti proses penyebaran untuk perubahan ini.
Mengadopsi strategi penerapan versi. Ketika pelanggan dapat memilih versi aplikasi mereka, itu menambahkan fleksibilitas tetapi mempersulit operasi Anda. Tetapkan ekspektasi yang jelas untuk menghentikan versi lama dan menguraikan apa yang terjadi ketika tidak lagi didukung.
Menerapkan otomatisasi. Penyebaran manual rentan terhadap risiko karena kesalahan manusia dan kurangnya konsistensi. Bahkan jika penyebaran Anda dipicu secara manual, Anda harus mengotomatiskan proses penyebaran sebanyak mungkin dan memerlukan pengawasan manusia minimal. Pertimbangkan langkah-langkah proses penyebaran Anda dan cara terbaik mengotomatiskannya.
Integrasikan pengujian. Integrasikan pengujian ke dalam proses penyebaran Anda dengan menjalankan:
- Pengujian unit dalam proses build kode.
- Pengujian integrasi setelah penyebaran.
- Tes kinerja reguler.
- Tes keamanan dan penetrasi reguler.
Tentukan rencana tindakan jika ada pengujian yang gagal pada tahap apa pun.
Penyebaran yang gagal. Rencanakan kegagalan penyebaran dengan mempertimbangkan tindakan yang diperlukan dan menyiapkan strategi putar kembali.
Akses ke lingkungan pelanggan. Jika Anda menyebarkan sumber daya ke lingkungan pelanggan, pahami bagaimana Anda dapat menerapkan pembaruan dalam lingkungan tersebut. Pertimbangkan kemampuan yang disediakan Azure Managed Applications, seperti penyebaran pembaruan untuk aplikasi.
Rekomendasi desain
| Rekomendasi | Keuntungan |
|---|---|
| Gunakan alat dan proses DevOps yang mapan dan terbukti di industri untuk mengelola penyebaran aplikasi Anda. Dalam kebanyakan situasi, mengembangkan alat sendiri dianggap sebagai antipattern. Untuk informasi selengkapnya, lihat Praktik pengembangan perangkat lunak OE:03. |
Strategi ini dapat membantu memastikan bahwa tim teknik Anda menyebarkan aplikasi secara efektif dengan tidak harus mempelajari alat yang dibuat khusus. |
| Secara proaktif memberi tahu pelanggan tentang penyebaran yang akan datang atau selesai. | Strategi ini dapat membantu memastikan bahwa harapan yang tepat ditetapkan dengan pelanggan Anda tentang perubahan yang akan datang pada aplikasi Anda. |
| Mengadopsi praktik penyebaran aman yang menyebarkan pembaruan ke grup pelanggan melalui strategi seperti paparan progresif dan model kesehatan. Mulailah dengan pelanggan yang kurang sensitif atau adopsi awal sebelum Anda pindah ke basis pelanggan yang lebih luas. Untuk informasi selengkapnya, lihat Rekomendasi untuk praktik penyebaran yang aman. |
Strategi ini dapat membantu Anda mengidentifikasi masalah sebelum memengaruhi semua pelanggan. |
| Memperlakukan konfigurasi sebagai kode. | Anda dapat mengurangi kemungkinan waktu henti dan mengadopsi proses yang konsisten untuk perubahan produksi. Pendekatan ini mempusatkan tanggung jawab operasional, seperti menguji perubahan dan secara progresif meluncurkan pembaruan untuk konfigurasi dan kode. |
| Tentukan proses manajemen perubahan dan komunikasikan kebijakan pembaruan versi untuk memastikan bahwa pelanggan tahu siapa yang memicu pembaruan, frekuensi, dan kondisi mereka. Jika pelanggan dapat memilih versi aplikasi mereka, tetapkan panduan yang jelas tentang cara menghentikan versi lama. Minimalkan jumlah versi aplikasi yang berjalan dalam produksi. |
Mempertahankan versi lama menyebabkan inefisiensi operasional. Berikan kontrol yang diperlukan untuk pelanggan Anda dan hindari overburdening tim Anda dengan menetapkan ekspektasi dan kebijakan yang jelas. |
| Hindari menyesuaikan aplikasi untuk satu pelanggan. Untuk mendukung kebutuhan pelanggan yang berbeda, Anda dapat membuat berbagai tingkatan solusi Anda atau menggunakan bendera fitur untuk mengaktifkan fungsionalitas tertentu untuk pengguna tertentu. |
Hindari ambiguitas tentang fitur mana yang disebarkan ke versi mana, dan kurangi beban pemeliharaan Anda. |
| Memiliki rencana putar kembali untuk penyebaran yang gagal, termasuk kriteria untuk pemicu dan persetujuan yang diperlukan. | Rencana pembatalan membantu memastikan bahwa Anda dapat pulih dari kesalahan penyebaran bahkan dalam keadaan yang tidak terduga. |
| Uji aplikasi Anda secara teratur dan pada beberapa tahap dalam proses pengembangan perangkat lunak. Terapkan pola pikir shift-left dan deteksi bug serta penyimpangan sejak awal siklus hidup. | Membantu mencegah kesalahan penting memengaruhi pelanggan Anda. |
Sumber daya lainnya
Multitenancy adalah metodologi bisnis inti untuk merancang beban kerja SaaS. Artikel berikut ini memberikan informasi selengkapnya tentang cara mengadopsi praktik DevOps:
- Pendekatan arsitektural untuk penyebaran dan konfigurasi solusi multi-penyewa
- Pertimbangan untuk memperbarui solusi multipenyewa
- Pertimbangan untuk sarana kontrol multipenyewa
- Pendekatan arsitektur untuk sarana kontrol dalam solusi multipenyewa
Langkah selanjutnya
Pelajari tentang pertimbangan manajemen insiden untuk menerapkan proses dan alat yang mendukung solusi SaaS di Azure.