Düzenle

Aracılığıyla paylaş


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

Azure API Management
Azure DevOps
Azure Pipelines

APIOps, GitOps ve DevOps kavramlarını API dağıtımına uygulayan bir metodolojidir. DevOps gibi APIOps da ekip üyelerinin kolayca değişiklik yapmasına ve bunları 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

Azure'da APIOps kullanarak otomatik API dağıtımlarına yönelik mimarinin diyagramı.

Bu mimarinin 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 kendi seçtikleri OpenAPI belirtimini veya araçlarını kullanarak API tanımları oluşturur.

  4. Bir geliştirici değişiklikleri depoya gönderiyorsa gözden geçirme için bir çekme isteği oluşturulur.

  5. Çekme isteği, gerekli denetim düzeyine bağlı olarak otomatik olarak 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ı ve modern API ağ geçitleri oluşturur. Bu platform, API çağrılarını arka uçlara yönlendirmenin yanı sıra kimlik bilgilerini doğrular, kullanım kotalarını zorlar ve meta verileri günlüğe kaydeder.

  • Azure DevOps , planlama ve proje yönetimi, kod yönetimi dahil olmak üzere geliştirme yaşam döngüsünüzü uçtan uca yönetmeye ve derlemeye ve yayınlamaya devam etmeye yönelik bir hizmettir.

  • Azure Pipelines , kodunuzu test edip derlemek ve herhangi bir hedefe göndermek için sürekli tümleştirme (CI) ve sürekli teslim (CD) sağlar.

  • Azure Repos , kodunuzu yönetmek için kullanabileceğiniz standart Git de dahil olmak üzere bir dizi sürüm denetimi aracıdır.

Alternatifler

Bu çözüm, Git işlevselliği sağlamak için Azure Repos'ı, işlem hatlarını ise Azure Pipelines sağlar. Karşılaştırılabilir 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.

Bu APIOps mimarisi, API management platformu olarak Azure API Management'ı kullanır. Azure DevOps , API yönetimini düzenler. Azure Repos Git işlevselliği sağlar ve Azure Pipelines , CI/CD işlem hattını oluşturur.

Olası kullanım örnekleri

  • API'leri geliştiren ve yöneten tüm kuruluşlar
  • 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 olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.

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, büyük/küçük harf temelinde sınırlı bir süre için yükseltilmiş izinler vekleyebilirsiniz.

API Management örneklerinin güvenlik için en iyi yöntemleri kullandığından emin olmak için, üçüncü taraf araçları ve birim testlerini kullanarak bu çözümü EN iyi API uygulamalarını zorunlu kılmak üzere 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ı İşlemeler: Yalnızca olgudan sonra değiştirilmeyecek imzalı işlemelere izin verin.

Maliyet iyileştirme

Maliyet iyileştirmesi gereksiz giderleri azaltmak ve operasyonel verimlilikleri iyileştirmektir. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

  • Maliyetleri tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın.

  • API Management şu katmanları sunar: Tüketim, Geliştirici, Temel, Standart ve Premium.

  • GitHub ücretsiz bir hizmet sunar. Ancak, kod sahipleri veya gerekli gözden geçirenler gibi güvenlikle ilgili gelişmiş özellikleri kullanmak için Ekip planına ihtiyacınız vardır. Daha fazla bilgi için bkz . GitHub fiyatlandırması.

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 sütununa genel bakış.

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 hızla geri almak için Git işlemlerini kullanabilmektir. İşleme grafı tüm işlemeleri içerdiğinden, son işlem analizine 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 çekme isteği yaptığında, API işleci gözden geçirecek yeni kodu olduğunu bilir. Örneğin, bir geliştirici OpenAPI belirtimini alıp API uygulamasını derlediğinde bu yeni kodu depoya ekler. Operatörler çekme isteğini gözden geçirebilir ve gözden geçirme için gönderilen API'nin en iyi yöntemleri ve standartları karşıladığından emin olabilir.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

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

Bu çözümün dağıtılması şu adımları içerir:

  • Portalda API'yi geliştirin veya istediğiniz bir aracı kullanarak OpenAPI belirtiminde değişiklikler yapın.

    • Portalda değişiklik yaparsanız ayıklayıcıyı çalıştırarak API Management'tan tüm API'leri ve diğer ilgili ilkeleri, işlemleri ve yapılandırmaları otomatik olarak ayıklayabilirsiniz. Bu bilgileri git deposuyla eşitleyebilirsiniz.

    • İsteğe bağlı olarak, yeni bir çekme isteği oluşturmak için Azure DevOps CLI'yi kullanın.

  • Ayıklayıcı iş akışı aşağıdaki adımları içerir:

  • Senaryomuzda portaldaki değişiklikleri API Management örneğine indiren işlem hattı şu aşamalara sahiptir: Derleme ayıklayıcısı, Portaldan yapıt oluşturma ve Şablon dalı oluşturma.

    • Ayıklayıcı oluşturma

      Bu aşama ayıklayıcı kodunu oluşturur.

    • Portaldan yapıt oluşturma

      Bu aşama ayıklayıcıyı çalıştırır ve aşağıdaki ekran görüntüsünde gösterildiği gibi Git deposu yapısına benzeyen yapıtlar oluşturur:

      'apim-instances' ve bir klasör hiyerarşisi gösteren 'APIM-automation' ekran görüntüsü.

      • Şablon dalı oluşturma

        Yapıt oluşturulduktan sonra bu aşama, platform ekibinin gözden geçirmesi için ayıklanan değişiklikleri içeren bir çekme isteği oluşturur.

        Ayıklayıcıyı ilk kez çalıştırdığınızda Git deposundaki her şeyi çeker. Oluşturulan çekme isteğinde tüm API'ler, ilkeler, yapıtlar vb. bulunur.

        Daha sonra yapılan ayıklamalar, çekme isteğinde çıkarma işleminden önce yalnızca değişiklik yapılmıştır. Bazen değişiklikler yalnızca bir API'nin belirtiminde olabilir ve bu durum aşağıdaki çekme isteği örneğinde de geçerlidir.

        'specification.yml' adlı bir dosyada önerilen değişiklikleri gösteren bir ayıklama işleminden sonraki örnek çekme isteğinin ekran görüntüsü.

  • Gözden geçiren, güncelleştirilmiş çekme isteklerini görüntülemek için Çekme İstekleri'ne gider. Bu adımı otomatikleştirmek için otomatik onayları da yapılandırabilirsiniz.

    'policy.xml' içindeki içerikte yapılan değişiklikleri ve diğer dosyalarda yalnızca boşlukta yapılan değişiklikleri gösteren örnek çekme isteğinin ekran görüntüsü.

  • Çekme isteğini onayladıktan sonra API Management'tan portala yayımlayan başka bir işlem hattını tetikler. Örneğimizde şu aşamalar vardır: derleme oluşturucusu, derleme sonlandırıcısı ve APIM örneklerini yayımlama.

    İşlem hattı olan APIM-publish-to-portal aşamalarının ekran görüntüsü.

    • Derleme oluşturucu aşaması yeni API'lerin oluşturulmasını işler.
    • Derleme sonlandırıcı aşaması tüm silme işlemlerini işler.
    • YAYıMLAMA APIM örnekleri aşaması, DEĞIŞIKLIKLERI API Management örneğinde yayımlar.

    İşlem hattı olan APIM-publish-to-portal örnek çalıştırmasında işleri gösteren ekran görüntüsü.

    Bu işlem hattı başarıyla çalıştırıldıktan sonra API Management örneğindeki değişiklikleri yayımlar.

Katkıda Bulunanlar

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

Asıl yazar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar