APIOps ile API dağıtımlarını otomatikleştirme

Azure API Management
Azure DevOps
Azure Pipelines
GitHub

APIOps, GitOps ve DevOps kavramlarını API dağıtımına uygulayan bir metodolojidir. DevOps gibi, APIOps ekip üyelerinin kolayca değişiklik yapmasına ve yinelemeli ve otomatik bir şekilde dağıtmalarına yardımcı olur. Bu mimari, APIOps kullanarak API yaşam döngüsünün ve API kalitesinin tamamını nasıl geliştirebileceğinizi gösterir.

Mimari

APIOps kullanarak Azure üzerinde otomatik API dağıtımları mimarisinin diyagramı.

Bu mimariye ait bir Visio dosyasını indirin.

İş Akışı

  1. API operatörleri, Git deposunu API Management örneğiyle eşitlemek ve Git deposunu gerekli biçimde API Management nesneleriyle doldurmak için ayıklayıcı işlem hattını çalıştırır.

  2. API Management örneğinde bir API değişikliği algılanırsa, işleçlerin gözden geçirmesi için bir çekme isteği (PR) oluşturulur. İşleçler değişiklikleri Git deposuyla birleştirir.

  3. API geliştiricileri Git deposunu klonlar, bir dal oluşturur ve OpenAPI Belirtimini veya tercih ettikleri araçları kullanarak API tanımları oluşturur.

  4. Bir geliştirici depoya değişiklik gönderdiğinde gözden geçirme için bir pull request oluşturulur.

  5. Çekme isteği (PR), gerekli kontrol düzeyine bağlı olarak otomatik şekilde onaylanabilir veya gözden geçirilebilir.

  6. Değişiklikler onaylandıktan ve birleştirildikten sonra yayımlama işlem hattı API Management örneğine en son değişiklikleri dağıtır.

  7. API operatörleri API Management ilkelerini, tanılamalarını, ürünlerini ve diğer ilgili nesneleri oluşturur ve değiştirir ve ardından değişiklikleri işler.

  8. Değişiklikler gözden geçirilir ve onaydan sonra birleştirilir.

  9. Değişiklikleri birleştirdikten sonra yayımlama işlem hattı, API tanımları işlemini kullanarak değişiklikleri dağıtır.

Bileşenler

  • Azure API Management arka uç hizmetleri için tutarlı API ağ geçitleri oluşturan yönetilen bir hizmettir. Bu mimaride API çağrılarını yönlendirir, kimlik bilgilerini doğrular, kullanım kotalarını zorlar ve meta verileri günlüğe kaydeder. API'leri yönetmek ve yayımlamak için merkezi platform görevi görür.

  • Azure DevOps geliştirme yaşam döngüsünü yöneten bir geliştirme araçları ve hizmet paketidir. Bu mimaride, ekiplerin işbirliği yapmasına ve API teslimini kolaylaştırmaya olanak tanıyan API'lerin planlanması, kod yönetimi ve otomatik dağıtımı desteklenir.

    • Azure Pipelines sürekli tümleştirme ve sürekli teslim (CI/CD) sağlayan bulut tabanlı bir hizmettir. Bu mimaride API değişikliklerini test etme, derleme ve API Management örneğine dağıtma işlemini otomatikleştirir.

    • Azure Repos, kodunuzu yönetmek için kullanabileceğiniz standart Git de dahil olmak üzere bir dizi sürüm denetimi aracıdır. Bu mimaride API tanımlarını, ilkelerini ve yapılandırmalarını depolar. Tüm değişiklikler için tek gerçek kaynak görevi görür ve pull request'ler aracılığıyla denetlenebilirlik ve iş birliği sağlar.

Alternatifler

Bu çözüm, Ci/CD iş akışları için Git işlevselliği ve Azure Pipelines sağlamak üzere Azure Repos destekler.

Ayrıca kaynak denetimi ve işbirliği için GitHub ve derleme, test ve dağıtım işlem hatlarını otomatikleştirmek için GitHub Actions destekler.

Benzer sürüm denetimi ve CI/CD özellikleri sağlayan benzer teknolojileri kullanabilirsiniz.

Senaryo ayrıntıları

APIOps, API'leri yönetmek ve API'ler, ilkeler ve işlemlerde yapılan değişikliklerin denetim kaydını oluşturmak için sürüm denetimini kullanır.

APIOps metodolojisi kullanan API geliştiricileri API'leri daha önce ve daha sık gözden geçirir ve denetler, belirtimleri ve API kalitesini geliştirmek için API standartlarından sapmaları daha hızlı yakalar ve çözer. APIOps yaklaşımıyla ne kadar çok API derleyip dağıtırsanız, API'ler arasındaki tutarlılık o kadar artar.

Olası kullanım örnekleri

  • API'leri geliştiren ve yöneten tüm kuruluşlar. APIOps'i API Management'ta kullanıma sunulan tek bir API ile bile kullanmaya başlayabilirsiniz.
  • Yüksek düzenlemeye sahip sektörler: sigorta, bankacılık, finans, kamu

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanabileceğiniz bir dizi yol gösteren ilke kümesi olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Well-Architected Framework.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik için tasarım gözden geçirme denetim listesi.

Bu çözüm, güvenlikle ilgili çeşitli avantajlar sağlar. Tek tek geliştiriciler ve hatta operatörler, değişiklikleri veya güncelleştirmeleri uygulamak için API Management örneğine doğrudan erişmez. Bunun yerine, kullanıcılar değişiklikleri bir Git deposuna gönderiyor ve ayıklayıcı ve yayımlama işlem hatları bunları okuyup API Management örneğine uyguluyor. Bu yaklaşım, ekiplere API Management hizmet örneği için yazma izinleri vermeyerek en düşük ayrıcalık için en iyi güvenlik uygulamasını izler. Tanılama veya sorun giderme senaryolarında, duruma göre sınırlı bir süre için yükseltilmiş izinler tanıyabilirsiniz.

API Management örneklerinin güvenlik için en iyi yöntemleri kullandığından emin olmak için, Microsoft olmayan araçları ve birim testini kullanarak API en iyi yöntemlerini zorlamak için bu çözümü genişletebilirsiniz. Bir API veya ilkede önerilen değişiklikler standartları ihlal ederse, Teams PR incelemesi aracılığıyla erken geri bildirim sağlayabilir.

Depo izinlerini ayarlama görevinin yanı sıra, API Management örnekleriyle eşitlenen Git depolarında aşağıdaki güvenlik önlemlerini uygulamayı göz önünde bulundurun:

  • Çekme İsteği (PR) Gözden Geçirmesi: Dalları kullanın ve API Management örneklerinin durumunu temsil eden dalları doğrudan bunlara gönderilen değişikliklerden koruyun. Pr'ların dört göz ilkesini uygulamak için en az bir gözden geçirene sahip olmasını zorunlu kılın.
  • Sabit geçmiş: Yalnızca mevcut değişikliklerin üzerinde yeni işlemelere izin verin. Sabit geçmiş özellikle denetim amaçları için önemlidir.
  • Çok faktörlü kimlik doğrulaması: Kullanıcılarınızın iki öğeli kimlik doğrulamasını etkinleştirmesini zorunlu kılar.
  • İmzalı Taahhütler: Yalnızca sonradan değiştirilemeyen imzalı taahhütlere izin verin.

Maliyet İyileştirme

Maliyet İyileştirme, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarına odaklanır. Daha fazla bilgi için bkz . Maliyet İyileştirme için tasarım gözden geçirme denetim listesi.

Operasyonel Mükemmellik

Operasyonel Mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel Mükemmellik için tasarım gözden geçirme denetim listesi.

APIOps, API geliştirme ve dağıtımları için DevOps üretkenliğini artırabilir. En kullanışlı özelliklerden biri, beklenmedik şekilde davranan değişiklikleri geri almak için Git işlemlerini kullanabilmektir. Taahhüt grafiği tüm taahhütleri içerdiğinden, sonrası değerlendirmenize yardımcı olabilir.

API işleçleri genellikle aynı API kümesi için birden çok ortamı yönetir. API'nin farklı API Management örneklerine veya paylaşılan bir API Management örneğine dağıtılan birkaç aşaması olması normaldir. Tek gerçeklik kaynağı olan Git deposu, şu anda bir kümeye dağıtılan uygulamaların sürümlerini gösterir.

Birisi Git deposunda PR yaptığında, API işleci gözden geçirmesi gereken yeni kod olduğunu bilir. Örneğin, bir geliştirici OpenAPI Belirtimini alıp API uygulamasını derlediğinde bu yeni kodu depoya ekler. Operatörler, pull isteğini gözden geçirebilir ve gözden geçirme için gönderilen API'nin en iyi uygulamalar ve standartları karşıladığını doğrulayabilir.

APIOps'un birçok avantajı vardır, ancak API Management alanları büyüdükçe bunları yönetmenin karmaşıklığı da artar. Bu çözüm aşağıdaki gibi zorlukların üstesinden gelir:

  • Tüm ortamlara ve API Management örneklerine genel bir bakış sağlama.
  • API'lerde ve ilkelerde yapılan kritik değişiklikleri izleme.
  • Dağıtılan tüm değişiklikler için denetim izi oluşturma.

Bu senaryoyu dağıtın

Azure API Management için APIOps belgelerinde ayıklayıcı ve yayımcı işlem hatlarını yapılandırma konusunda adım adım yönergeler bulun.

Dağıtım iş akışı şunları içerir:

  • API Management'tan API yapılandırmalarını ayıklama.
  • Gözden geçirme için pull istekleri oluşturma.
  • Onaylanan değişiklikleri CI/CD işlem hatları aracılığıyla yayımlama.

Katkıda Bulunanlar

Bu makale Microsoft tarafından korunur. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Ortak olmayan LinkedIn profillerini görmek için LinkedIn.

Sonraki adımlar