Bagikan melalui


Mengotomatiskan penyebaran API dengan APIOps

Azure API Management
Azure DevOps
Azure Pipelines
GitHub

APIOps adalah metodologi yang menerapkan konsep GitOps dan DevOps ke penyebaran API. Seperti DevOps, APIOps membantu anggota tim dengan mudah membuat perubahan dan menyebarkannya dengan cara berulang dan otomatis. Arsitektur ini menunjukkan bagaimana Anda dapat meningkatkan seluruh siklus hidup API dan kualitas API dengan menggunakan APIOps.

Arsitektur

Diagram arsitektur untuk penyebaran API otomatis menggunakan APIOps pada Azure.

Unduh file Visio arsitektur ini.

Alur kerja

  1. Operator API menjalankan alur ekstraktor untuk menyinkronkan repositori Git dengan instans API Management dan mengisi repositori Git dengan objek API Management dalam format yang diperlukan.

  2. Jika perubahan API terdeteksi dalam instans API Management, permintaan pull (PR) dibuat untuk ditinjau oleh operator. Operator menggabungkan perubahan ke dalam repositori Git.

  3. Pengembang API mengkloning repositori Git, membuat cabang, dan membuat definisi API dengan menggunakan Spesifikasi OpenAPI atau alat pilihan mereka.

  4. Jika pengembang mendorong perubahan ke repositori, PR dibuat untuk ditinjau.

  5. PR dapat disetujui atau ditinjau secara otomatis, tergantung pada tingkat kontrol yang diperlukan.

  6. Setelah perubahan disetujui dan digabungkan, alur penerbitan menyebarkan perubahan terbaru ke instans API Management.

  7. Operator API membuat dan memodifikasi kebijakan API Management, diagnostik, produk, dan objek relevan lainnya, lalu menerapkan perubahan.

  8. Perubahan ditinjau, dan digabungkan setelah disetujui.

  9. Setelah menggabungkan perubahan, alur penerbitan menyebarkan perubahan dengan menggunakan proses definisi API.

Komponen

  • Azure API Management adalah layanan terkelola yang membuat gateway API yang konsisten untuk layanan back-end. Dalam arsitektur ini, ia merutekan panggilan API, memverifikasi kredensial, memberlakukan kuota penggunaan, dan metadata log. Ini berfungsi sebagai platform pusat untuk mengelola dan menerbitkan API.

  • Azure DevOps adalah serangkaian alat pengembangan dan layanan yang mengelola siklus hidup pengembangan. Dalam arsitektur ini, ia mendukung perencanaan, manajemen kode, dan penyebaran API otomatis, yang memungkinkan tim untuk berkolaborasi dan menyederhanakan pengiriman API.

    • Azure Pipelines adalah layanan berbasis cloud yang memungkinkan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Dalam arsitektur ini, ia mengotomatiskan pengujian, membangun, dan menyebarkan perubahan API ke instans API Management.

    • Azure Repos adalah sekumpulan alat kontrol versi, termasuk Git standar, yang dapat Anda gunakan untuk mengelola kode Anda. Dalam arsitektur ini, ia menyimpan definisi, kebijakan, dan konfigurasi API. Ini berfungsi sebagai sumber kebenaran tunggal untuk semua perubahan dan memungkinkan auditabilitas dan kolaborasi melalui permintaan pull.

Alternatif

Solusi ini mendukung Azure Repos untuk menyediakan fungsionalitas Git dan Azure Pipelines untuk alur kerja CI/CD.

Ini juga mendukung GitHub untuk kontrol sumber dan kolaborasi, bersama dengan GitHub Actions untuk mengotomatiskan alur build, pengujian, dan penyebaran.

Anda dapat menggunakan teknologi sebanding yang menyediakan kontrol versi serupa dan kemampuan CI/CD.

Detail skenario

APIOps menggunakan kontrol versi untuk mengelola API dan membuat jejak audit perubahan pada API, kebijakan, dan operasi.

Pengembang API yang menggunakan APIOps metodologi meninjau dan mengaudit API lebih awal dan lebih sering, menangkap dan menyelesaikan penyimpangan dari standar API lebih cepat untuk meningkatkan spesifikasi dan kualitas API. Semakin banyak API yang Anda bangun dan sebarkan dengan pendekatan APIOps, semakin besar konsistensi antara API.

Kemungkinan kasus penggunaan

  • Setiap organisasi yang mengembangkan dan mengelola API. Anda dapat mulai menggunakan APIOps bahkan dengan satu API yang diekspos di API Management.
  • Industri yang sangat teregulasi: asuransi, perbankan, keuangan, pemerintah

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat Anda gunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Well-Architected Framework.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disengaja dan penyalahgunaan data dan sistem Anda yang berharga. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keamanan.

Solusi ini memberikan beberapa manfaat terkait keamanan. Pengembang individu—dan bahkan operator—tidak secara langsung mengakses instans API Management untuk menerapkan perubahan atau pembaruan. Sebagai gantinya, pengguna mendorong perubahan ke repositori Git, dan aliran ekstraksi dan penerbitan membaca dan menerapkannya ke instans Manajemen API. Pendekatan ini mengikuti praktik terbaik keamanan dengan hak istimewa paling sedikit dengan tidak memberikan izin tulis kepada tim ke instans layanan API Management. Dalam skenario diagnostik atau pemecahan masalah, Anda dapat memberikan izin yang ditingkatkan untuk waktu terbatas berdasarkan kasus per kasus.

Untuk memastikan instans API Management menggunakan praktik terbaik untuk keamanan, Anda dapat memperluas solusi ini untuk menerapkan praktik terbaik API dengan menggunakan alat dan pengujian unit yang tidak Microsoft. Teams dapat memberikan umpan balik awal melalui ulasan PR jika usulan perubahan pada API atau kebijakan melanggar standar.

Selain tugas menyiapkan izin repositori, pertimbangkan untuk menerapkan langkah-langkah keamanan berikut di repositori Git yang disinkronkan ke instans API Management:

  • Peninjauan Permintaan Pull (PR): Gunakan cabang dan lindungi cabang yang mewakili status instans API Management agar tidak memiliki perubahan yang didorong kepada mereka secara langsung. Mengharuskan PR untuk memiliki setidaknya satu peninjau untuk menegakkan prinsip empat mata.
  • Riwayat yang tidak dapat diubah: Hanya izinkan penerapan baru di atas perubahan yang ada. Riwayat yang tidak dapat diubah sangat penting untuk tujuan audit.
  • Autentikasi multifaktor: Mengharuskan pengguna Anda mengaktifkan autentikasi dua faktor.
  • Commit yang Ditandatangani: Izinkan hanya commit yang ditandatangani yang tidak dapat diubah setelah dibuat.

Pengoptimalan Biaya

Pengoptimalan Biaya berfokus pada cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Pengoptimalan Biaya.

  • Gunakan kalkulator harga Azure untuk memperkirakan biaya komponen Azure dalam arsitektur ini.

  • Biaya lisensi Azure DevOps harus dipertimbangkan oleh tim yang menerapkan APIOps. Semua pengguna yang berpartisipasi dalam proses APIOps harus memiliki lisensi Azure DevOps yang sesuai. Untuk detailnya, lihat harga Azure DevOps.

    Untuk detail harga dan lisensi saat menggunakan GitHub, lihat harga GitHub dan lisensi GitHub Enterprise.

Keunggulan Operasi

Keunggulan Operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keunggulan Operasional.

APIOps dapat meningkatkan produktivitas DevOps untuk pengembangan dan penyebaran API. Salah satu fitur yang paling berguna adalah kemampuan untuk menggunakan operasi Git untuk mengembalikan perubahan yang berperilaku tidak terduga. Graf komit berisi semua komit, sehingga dapat membantu analisis pasca-mortem.

Operator API sering mengelola beberapa lingkungan untuk kumpulan API yang sama. Biasanya memiliki beberapa tahap API yang disebarkan ke instans API Management yang berbeda atau dalam instans API Management bersama. Repositori Git, yang merupakan sumber tunggal kebenaran, menunjukkan versi aplikasi mana yang saat ini diterapkan ke kluster.

Ketika seseorang membuat PR di repositori Git, operator API tahu bahwa mereka memiliki kode baru untuk ditinjau. Misalnya, ketika pengembang mengambil Spesifikasi OpenAPI dan membangun implementasi API, pengembang menambahkan kode baru ini ke repositori. Operator dapat meninjau PR dan memastikan bahwa API yang telah dikirimkan untuk ditinjau memenuhi praktik dan standar terbaik.

APIOps memiliki banyak manfaat, tetapi seiring berkembangnya lanskap API Management, begitu juga kompleksitas mengelolanya. Solusi ini membantu memenuhi tantangan seperti:

  • Menyimpan gambaran umum semua lingkungan dan instans API Management.
  • Melacak perubahan penting pada API dan kebijakan.
  • Membuat rekaman audit untuk semua perubahan yang disebarkan.

Menyebarkan skenario ini

Untuk panduan langkah demi langkah tentang mengonfigurasi alur ekstraktor dan penerbit, lihat dokumentasi APIOps untuk Azure API Management.

Alur kerja penyebaran meliputi:

  • Mengekstrak konfigurasi API dari API Management.
  • Membuat permintaan penarikan untuk ditinjau.
  • Menerbitkan perubahan yang disetujui melalui pipeline CI/CD.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Untukan melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya