All pages
Powered by GitBook
1 of 6

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Terragrunt

Kod Yapısı Örnekleri

Terraform Kod Yapıları

Bu örnekler, AWS sağlayıcısını göstermektedir, ancak örneklerde gösterilen ilkelerin çoğu, diğer genel bulut sağlayıcılarının yanı sıra diğer sağlayıcı türlerine de (DNS, DB, İzleme, vb.) uygulanabilir.

Tip
Açıklama
Kullanılabilirlik

Terragrunt kod yapıları

Tip
Açıklama
Kullanılabilirlik

small

Az kaynak, dış bağımlılık yok. Tek AWS hesabı. Tek bölge. Tek ortam.

Evet

medium

Birkaç AWS hesabı ve ortamı, Terraform kullanan hazır altyapı modülleri.

Evet

large

Birçok AWS hesabı, birçok bölge, kopyala-yapıştır, özel altyapı modülleri, yoğun kompozisyon kullanımı azaltma acil ihtiyacı. Terraform'u kullanma.

Geliştirme Aşamasında

very-large

Birkaç sağlayıcı (AWS, GCP, Azure). Çoklu bulut dağıtımları. Terraform'u kullanma.

Hayır

medium

Birkaç AWS hesabı ve ortamı, kullanıma hazır altyapı modülleri, Terragrunt kullanan kompozisyon kalıbı.

Hayır

large

Birçok AWS hesabı, birçok bölge, kopyala-yapıştır, özel altyapı modülleri, yoğun kompozisyon kullanımı azaltma acil ihtiyacı. Terragrunt'u kullanma.

Hayır

very-large

Birkaç sağlayıcı (AWS, GCP, Azure). Çoklu bulut dağıtımları. Terragrunt'u kullanma.

Hayır

Terraform

Terraform ile küçük ölçekli altyapı yönetimi

Kaynak: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/small-terraform

Bu örnek, hiçbir harici bağımlılığın kullanılmadığı küçük boyutlu bir altyapı için Terraform konfigürasyonları yapılandırılmasına yönelik örnek kodları içerir.

  • Başlamak ve geriye yönelik güncelleme yapmak için mükemmel.

  • Küçük kaynak modülleri için harika

  • Küçük ve doğrusal altyapı modülleri için iyi (ör. terraform-aws-atlantis).

  • Az sayıda kaynak için iyi (20-30'dan az)

Tüm kaynaklar için tek durum dosyası, kaynak sayısı artıyorsa Terraform ile çalışma sürecini yavaşlatabilir (kaynak sayısını sınırlamak için -target argümanını kullanmayı düşününebilirsiniz)

Terraform ile büyük ölçekli altyapı yönetimi

Kaynak: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform

Bu örnek, büyük boyutlu bir altyapı için Terraform konfigürasyonları yapılandırılmasına yönelik örnek kodları içerir.

  • 2 AWS hesabı

  • 2 bölge

  • 2 ayrı ortam (tamamen birbirlerinden izole prod ve stage). Her ortam ayrı bir AWS hesabında bulunur ve kaynakları 2 bölge arasında dağıtır

  • Her ortam, Terraform Registry kaynaklı hazır altyapı modülünün (alb) farklı bir sürümünü kullanır.

  • Her ortam, dahili modüllerin aynı versiyonu kullanır.

Burada açıklanan gibi büyük bir projede Terragrunt kullanmanın faydaları çok görünür hale gelir. örneklerine gözatabilirsiniz.

  • Altyapının mantıksal olarak ayrıldığı projeler için mükemmel (ayrı AWS hesapları)

  • AWS hesapları arasında paylaşılan kaynakları yönetmeye gerek olmadığında iyidir (bir ortam = bir AWS hesabı = bir durum dosyası)

Proje büyüdükçe bu ortamları birbirleriyle güncel tutmak zorlaşacaktır. Tekrarlanabilir görevler(task) için altyapı modüllerini (kullanıma hazır veya dahili) kullanmayı düşünebilirsiniz.

Terraform ile orta ölçekli altyapı yönetimi

Kaynak:

Bu örnek, aşağıdakileri kullanan orta ölçekli bir altyapı için Terraform konfigürasyonlarının yapılandırılmasına örnek kodları içerir:

  • 2 AWS hesabı

  • 2 ayrı ortam (tamamen birbirlerinden izole prod ve stage). Her ortam ayrı bir AWS hesabında yaşar

Ortamlar arasındaki değişikliklerin yönetilmesine gerek olmadığında iyi
  • Altyapı kaynakları ortam başına farklı olduğunda ve genelleştirilemediğinde iyidir (örneğin, bazı kaynaklar bir ortamda veya bazı bölgelerde yoktur)

  • Terragrunt ile Kod Yapıları

    Her ortam, Terraform Registry kaynaklı hazır altyapı modülünün (alb) farklı bir sürümünü kullanır.

  • Her ortam, dahili modüllerin aynı versiyonu kullanır.

    • Altyapının mantıksal olarak ayrıldığı projeler için mükemmel (ayrı AWS hesapları)

    • AWS hesapları arasında paylaşılan kaynakları değiştirmeye gerek olmadığında iyidir (bir ortam = bir AWS hesabı = bir durum dosyası)

    • Ortamlar arasındaki değişikliklerin yönetilmesine gerek olmadığında iyidir

    • Altyapı kaynakları ortam başına farklı olduğunda ve genelleştirilemediğinde iyidir (örneğin, bazı kaynaklar bir ortamda veya bazı bölgelerde yoktur)

    Proje büyüdükçe bu ortamları birbirleriyle güncel tutmak zorlaşacaktır. Tekrarlanabilir görevler(task) için altyapı modüllerini (kullanıma hazır veya dahili) kullanmayı düşünün.

    https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/medium-terraform