Mengotomatiskan penyebaran API dengan APIOps

Azure API Management
Azure DevOps
Azure Pipelines

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.

Sistem

Diagram arsitektur untuk penyebaran API otomatis menggunakan APIOps di 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 membuat gateway API modern yang konsisten untuk layanan back-end. Selain merutekan panggilan API ke ujung belakang, platform ini juga memverifikasi kredensial, memberlakukan kuota penggunaan, dan metadata log.

  • Azure DevOps adalah layanan untuk mengelola siklus hidup pengembangan Anda secara end-to-end, termasuk perencanaan dan manajemen proyek, manajemen kode, dan terus membangun dan merilis.

  • Azure Pipelines memungkinkan integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD) untuk menguji dan membangun kode Anda dan mengirimkannya ke target apa pun.

  • Azure Repos adalah sekumpulan alat kontrol versi, termasuk Git standar, yang dapat Anda gunakan untuk mengelola kode Anda.

Alternatif

Solusi ini menggunakan Azure Repos untuk menyediakan fungsionalitas Git dan Azure Pipelines menyediakan alur. Anda dapat menggunakan teknologi yang sebanding.

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.

Arsitektur APIOps ini menggunakan Azure API Management sebagai platform manajemen API. Azure DevOps mengatur manajemen API. Azure Repos menyediakan fungsionalitas Git, dan Azure Pipelines membuat alur CI/CD.

Kemungkinan kasus penggunaan

  • Setiap organisasi yang mengembangkan dan mengelola API
  • Industri yang sangat teregulasi: asuransi, perbankan, keuangan, pemerintah

Pertimbangan

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

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar 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 ekstraktor dan menerbitkan alur membaca dan menerapkannya ke instans API Management. 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 pihak ketiga dan pengujian unit. 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.
  • Penerapan yang Ditandatangani: Izinkan hanya penerapan yang ditandatangani yang tidak dapat diubah setelah fakta.

Pengoptimalan biaya

Pengoptimalan biaya adalah tentang mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

  • Gunakan kalkulator harga Azure untuk memperkirakan biaya.

  • API Management menawarkan tingkatan berikut: Konsumsi, Pengembang, Dasar, Standar, dan Premium.

  • GitHub menawarkan layanan gratis. Namun, untuk menggunakan fitur terkait keamanan tingkat lanjut, seperti pemilik kode atau peninjau yang diperlukan, Anda memerlukan paket Tim. Untuk informasi selengkapnya, lihat Harga GitHub.

Keunggulan operasional

Keunggulan operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Gambaran umum pilar 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 dengan cepat mengembalikan perubahan yang berperilaku tidak terduga. Grafik penerapan berisi semua penerapan, 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, menunjukkan versi aplikasi mana yang saat ini digunakan 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, mereka menambahkan kode baru ini ke repositori. Operator dapat meninjau PR dan memastikan bahwa API yang telah dikirimkan untuk ditinjau memenuhi praktik dan standar terbaik.

Efisiensi kinerja

Efisiensi performa adalah kemampuan beban kerja Anda untuk diskalakan agar memenuhi permintaan yang diberikan oleh pengguna dengan cara yang efisien. Untuk informasi selengkapnya, lihat Gambaran umum pilar efisiensi performa.

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 jejak audit untuk semua perubahan yang disebarkan.

Menyebarkan skenario ini

Menyebarkan solusi ini melibatkan langkah-langkah berikut:

  • Kembangkan API di portal atau buat perubahan pada spesifikasi OpenAPI dengan menggunakan alat pilihan Anda.

    • Jika Anda membuat perubahan di portal, Anda dapat menjalankan ekstraktor untuk secara otomatis mengekstrak semua API dan kebijakan, operasi, dan konfigurasi lain yang relevan dari API Management. Anda dapat menyinkronkan informasi ini ke repositori git.

    • Secara opsional, gunakan Azure DevOps CLI untuk membuat permintaan pull baru.

  • Alur kerja ekstraktor mencakup langkah-langkah berikut yang Anda ambil:

  • Dalam skenario kami, alur yang mengunduh perubahan di portal ke instans API Management memiliki tahap berikut: Ekstraktor build, Membuat artefak dari portal, dan Membuat cabang templat.

    • Ekstraktor build

      Tahap ini membangun kode ekstraktor.

    • Membuat artefak dari portal

      Tahap ini menjalankan ekstraktor dan membuat artefak yang menyerupai struktur repositori Git seperti yang ditunjukkan pada cuplikan layar berikut:

      Cuplikan layar 'APIM-automation' yang menunjukkan 'apim-instances' dan hierarki folder.

      • Membuat cabang templat

        Setelah menghasilkan artefak, tahap ini membuat PR dengan perubahan yang diekstrak untuk ditinjau oleh tim platform.

        Pertama kali Anda menjalankan ekstraktor, ia menarik semuanya dari repositori Git. PR yang dibuat akan memiliki semua API, kebijakan, artefak, dan sebagainya.

        Ekstraksi selanjutnya hanya memiliki perubahan yang dilakukan sebelum ekstraksi dalam PR. Terkadang perubahan mungkin hanya pada spesifikasi API, yang terjadi dalam contoh PR berikut.

        Cuplikan layar contoh permintaan pull setelah ekstraksi yang menunjukkan usulan perubahan pada file bernama 'specification.yml'.

  • Peninjau masuk ke Permintaan Pull untuk melihat permintaan pull yang diperbarui. Anda juga dapat mengonfigurasi persetujuan otomatis untuk mengotomatiskan langkah ini.

    Cuplikan layar contoh permintaan pull yang memperlihatkan perubahan pada konten di 'policy.xml' dan perubahan hanya pada spasi kosong di file lain.

  • Setelah menyetujui PR, PR memicu alur lain yang menerbitkan dari API Management ke portal. Dalam contoh kami, ia memiliki tahapan berikut: membuat pembuat, membangun terminator, dan menerbitkan instans APIM.

    Cuplikan layar tahapan di APIM-publish-to-portal, alur.

    • Tahap pembuat build menangani pembuatan API baru.
    • Tahap terminator build menangani penghapusan apa pun.
    • Tahap terbitkan instans APIM menerbitkan perubahan pada instans API Management.

    Cuplikan layar yang memperlihatkan pekerjaan dalam contoh eksekusi APIM-publish-to-portal, alur.

    Setelah alur ini berhasil dijalankan, alur menerbitkan perubahan dalam instans API Management.

Kontributor

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

Penulis utama:

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

Langkah berikutnya