Bagikan melalui


Pola DevOps

Kode dari satu lokasi dan sebarkan ke beberapa target dalam lingkungan pengembangan, pengujian, dan produksi yang mungkin ada di pusat data lokal, cloud privat, atau cloud publik Anda.

Konteks dan masalah

Kelangsungan, keamanan, dan keandalan penyebaran aplikasi sangat penting bagi organisasi dan penting bagi tim pengembangan.

Aplikasi sering memerlukan kode refaktor untuk berjalan di setiap lingkungan target. Ini berarti bahwa aplikasi tidak sepenuhnya portabel. Ini harus diperbarui, diuji, dan divalidasi saat bergerak melalui setiap lingkungan. Misalnya, kode yang ditulis dalam lingkungan pengembangan kemudian harus ditulis ulang untuk bekerja di lingkungan pengujian dan ditulis ulang ketika akhirnya mendarat di lingkungan produksi. Selain itu, kode ini secara khusus terkait dengan host. Ini meningkatkan biaya dan kompleksitas mempertahankan aplikasi Anda. Setiap versi aplikasi terkait dengan setiap lingkungan. Peningkatan kompleksitas dan duplikasi meningkatkan risiko keamanan dan kualitas kode. Selain itu, kode tidak dapat dengan mudah disebarkan ulang ketika Anda menghapus host yang gagal pemulihan atau menyebarkan host tambahan untuk menangani peningkatan permintaan.

Solusi

Pola DevOps memungkinkan Anda membuat, menguji, dan menyebarkan aplikasi yang berjalan di beberapa cloud. Pola ini menyatukan praktik integrasi berkelanjutan dan pengiriman berkelanjutan. Dengan integrasi berkelanjutan, kode dibuat dan diuji setiap kali anggota tim melakukan perubahan pada kontrol versi. Pengiriman berkelanjutan mengotomatiskan setiap langkah dari build ke lingkungan produksi. Bersama-sama, proses ini membuat proses rilis yang mendukung penyebaran di berbagai lingkungan. Dengan pola ini, Anda dapat membuat draf kode Lalu menyebarkan kode yang sama ke lingkungan lokal, cloud privat yang berbeda, dan cloud publik. Perbedaan lingkungan memerlukan perubahan pada file konfigurasi daripada perubahan pada kode.

pola DevOps

Dengan serangkaian alat pengembangan yang konsisten di seluruh lingkungan cloud lokal, cloud privat, dan cloud publik, Anda dapat menerapkan praktik integrasi berkelanjutan dan pengiriman berkelanjutan. Aplikasi dan layanan yang disebarkan menggunakan Pola DevOps dapat dipertukarkan dan dapat berjalan di salah satu lokasi ini, memanfaatkan fitur dan kemampuan cloud lokal dan publik.

Menggunakan alur rilis DevOps membantu Anda:

  • Memulai build baru berdasarkan komit kode ke satu repositori.
  • Sebarkan kode yang baru dibuat secara otomatis ke cloud publik untuk pengujian penerimaan pengguna.
  • Sebarkan secara otomatis ke cloud privat setelah kode Anda lulus pengujian.

Masalah dan pertimbangan

Pola DevOps dimaksudkan untuk memastikan konsistensi di seluruh penyebaran terlepas dari lingkungan target. Namun, kemampuan bervariasi di seluruh lingkungan cloud dan lokal. Pertimbangkan poin-poin berikut:

  • Apakah fungsi, titik akhir, layanan, dan sumber daya lainnya dalam penyebaran Anda tersedia di lokasi penyebaran target?
  • Apakah artefak konfigurasi disimpan di lokasi yang dapat diakses di seluruh cloud?
  • Apakah parameter penyebaran akan berfungsi di semua lingkungan target?
  • Apakah properti khusus sumber daya tersedia di semua cloud target?

Untuk informasi selengkapnya, lihat Mengembangkan templat Azure Resource Manager untuk konsistensi cloud.

Selain itu, pertimbangkan poin-poin berikut saat memutuskan cara menerapkan pola ini:

Skalabilitas

Sistem otomatisasi penyebaran adalah titik kontrol utama dalam Pola DevOps. Implementasi dapat bervariasi. Pemilihan ukuran server yang benar tergantung pada ukuran beban kerja yang diharapkan. VM lebih mahal untuk diskalakan daripada kontainer. Namun, agar bisa menggunakan kontainer untuk penskalaan, proses pembangunan Anda harus berjalan dengan kontainer.

Ketersediaan

Ketersediaan dalam konteks DevPattern berarti dapat memulihkan informasi status apa pun yang terkait dengan alur kerja Anda, seperti hasil pengujian, dependensi kode, atau artefak lainnya. Untuk menilai persyaratan ketersediaan Anda, pertimbangkan dua metrik umum:

  • Tujuan Waktu Pemulihan (RTO) menentukan berapa lama Anda dapat pergi tanpa sistem.

  • Tujuan Titik Pemulihan (RPO) menunjukkan berapa banyak data yang dapat Anda hilangkan jika gangguan dalam layanan memengaruhi sistem.

Dalam praktiknya, RTO dan RPO menyiratkan redundansi dan pencadangan. Di cloud Azure global, ketersediaan bukan pertanyaan tentang pemulihan perangkat keras—yang merupakan bagian dari Azure—melainkan memastikan Anda mempertahankan status sistem DevOps Anda. Di Azure Stack Hub, pemulihan perangkat keras mungkin menjadi pertimbangan.

Pertimbangan utama lainnya saat merancang sistem yang digunakan untuk otomatisasi penyebaran adalah kontrol akses dan manajemen hak yang tepat yang diperlukan untuk menyebarkan layanan ke lingkungan cloud. Hak apa yang diperlukan untuk membuat, menghapus, atau mengubah penyebaran? Misalnya, satu set hak biasanya diperlukan untuk membuat grup sumber daya di Azure dan yang lain untuk menyebarkan layanan di grup sumber daya.

Pengelolaan

Desain sistem apa pun berdasarkan pola DevOps harus mempertimbangkan otomatisasi, pengelogan, dan pemberitahuan untuk setiap layanan di seluruh portofolio. Gunakan layanan bersama, tim aplikasi, atau keduanya, dan lacak kebijakan dan tata kelola keamanan juga.

Menyebarkan lingkungan produksi dan lingkungan pengembangan/pengujian dalam grup sumber daya terpisah di Azure atau Azure Stack Hub. Kemudian Anda dapat memantau sumber daya setiap lingkungan dan menggulung biaya penagihan berdasarkan grup sumber daya. Anda juga dapat menghapus sumber daya dalam satu set, yang berguna untuk penyebaran pengujian.

Kapan menggunakan pola ini

Gunakan pola ini jika:

  • Anda dapat mengembangkan kode di satu lingkungan yang memenuhi kebutuhan pengembang Anda, dan menyebarkan ke lingkungan khusus untuk solusi Anda di mana mungkin sulit untuk mengembangkan kode baru.
  • Anda dapat menggunakan kode dan alat yang diinginkan pengembang Anda, selama mereka dapat mengikuti integrasi berkelanjutan dan proses pengiriman berkelanjutan dalam Pola DevOps.

Pola ini tidak disarankan:

  • Jika Anda tidak dapat mengotomatiskan tugas infrastruktur, penyediaan sumber daya, konfigurasi, identitas, dan keamanan.
  • Jika tim tidak memiliki akses ke sumber daya cloud hibrid untuk menerapkan pendekatan Integrasi Berkelanjutan/Pengembangan Berkelanjutan (CI/CD).

Langkah berikutnya

Untuk mempelajari selengkapnya tentang topik yang diperkenalkan dalam artikel ini:

  • Lihat dokumentasi Azure DevOps untuk mempelajari selengkapnya tentang Azure DevOps dan alat terkait, termasuk Azure Repos, dan Azure Pipelines.
  • Lihat kumpulan produk dan solusi Azure Stack untuk mempelajari selengkapnya tentang seluruh portofolio produk dan solusi.

Ketika Anda siap untuk menguji contoh solusi, lanjutkan dengan panduan penyebaran solusi CI/CD hibrid DevOps . Panduan penyebaran menyediakan instruksi langkah demi langkah untuk menyebarkan dan menguji komponennya. Anda mempelajari cara menyebarkan aplikasi ke Azure dan Azure Stack Hub menggunakan alur integrasi berkelanjutan hibrid/pengiriman berkelanjutan (CI/CD).