DevOps

Docker Compose diyagramı: docker-compose.yml'den saniyeler içinde temiz bir mimariye

Kimse yığını her değiştiğinde onu elle yeniden çizmekten hoşlanmaz. Bir dosya yapıştırıp gerçekten güncel bir Docker Compose diyagramı nasıl alacağın burada.

Her ekibin o bir tane mimari diyagramı vardır. Biri onu yaptığı gün harikaydı, yaklaşık bir hafta sonra da yanlıştı. Bir servis taşındı, bir önbellek belirdi, bir kuyruk eklendi ve kimse çizim aracını açıp kutuları yeniden itip kakmak istemedi.

Böylece diyagram sessizce çürür ve yeni mühendisler sistemi YAML okuyarak öğrenir. İyi haber şu: aynı YAML, resmi senin yerine çizmek için fazlasıyla yeterli. LetDraw Compose ya da Kubernetes dosyanı okur ve mimariyi yerleştirir; böylece diyagram doğruluk kaynağından uzaklaşmak yerine doğrudan ondan gelir.

Docker Compose'u görselleştir: on saniyelik versiyon

Koddan Oluştur penceresini aç, dosyanı yapıştır ve gerçek, düzenlenebilir şekillerden oluşan, yerleşimi yapılmış bir diyagram al. Kutu sürüklemek yok, okları elle bağlamak yok. İşte çoğu kişinin tanıyacağı bir Compose dosyası:

docker-compose.yml
services:
  web:
    image: nginx
    depends_on: [api]
  api:
    image: app:latest
    depends_on: [db, redis]
  db:
    image: postgres:16
  redis:
    image: redis:7

Bunu yapıştır, LetDraw onu şuna dönüştürsün:

web api postgres redis
Her biri dört satır YAML'dan gelen dört servis; yerleşimi yapılmış ve ikonları basılmış.

Veritabanı bir silindire dönüştü, önbellek kendi ikonunu aldı ve depends_on bağlantıları kutularının içinden değil, etrafından dolaşan oklara dönüştü. Bu bir yapılandırmanın ekran görüntüsü değil, bir diyagram.

Aslında ne yapıyor

Pencere, altını çizmeye değer üç şey yapıyor:

  • Formatı otomatik algılar. Bir menüden "Compose" ya da "Kubernetes" seçmezsin. Yapıştırırsın, LetDraw ne olduğunu tanır.
  • İlişkili parçaları kümeler. Kubernetes manifest'leri gruplanır; böylece yerleşim düz bir düğüm çorbası değil, namespace'lerinin aynası olur.
  • Doğru ikonları basar. Servisler, veritabanları ve kuyruklar tanınır ürün ikonları alır; böylece diyagram bir bakışta okunur.

Diyagram artık doğruluk kaynağından geliyor; yani disiplinle değil, yapısı gereği doğru.

YAML'dan mimari diyagram: yalnızca Compose değil

Aynı pencere tek bir formattan çok daha fazlasını kabul eder; işin özü de bu. Altyapıyı ya da bir sistemi anlatıyorsa büyük ihtimalle çizer:

  • Namespace'e göre gruplanmış Kubernetes manifest'leri
  • Altyapı ve sürümler için Terraform ve Helm
  • Graphviz DOT, SQL DDL, bir OpenAPI spesifikasyonu, hatta bir git log
  • Diyagramları zaten kod olarak tutuyorsan Mermaid ve D2
İpucu. Bir diyagramı deponda Mermaid ya da D2 olarak tut ve değiştiğinde görseli yeniden oluştur. Kodun incelenebilirliğini, ekip arkadaşlarının gerçekten açacağı bir resimle birlikte elde edersin.

Sonra onu kendine göre şekillendir

Otomatik yerleşim seni yolun yüzde 90'ına götürür; değer ise son yüzde 10'dadır. Sonuç gerçek şekillerden oluştuğu için şunları yapabilirsin:

  • Bir kutuyu itebilir, bir not ekleyebilir ya da riskli yolu vurgulayabilirsin
  • Bir ekibe ya da bir bounded context'e ait parçaları gruplayabilirsin
  • Bir doküman için PNG, SVG ya da PDF olarak dışa aktarabilir veya doğrudan panoya kopyalayabilirsin
  • Yeniden koda ihtiyaç duyduğunda çizimi Mermaid ya da D2'ye geri çevirebilirsin

O resmin dokümanlarında yaşamasını istiyorsan bir README'ye ya da wiki'ye bir embed kodu bırak; canlı, salt okunur bir görünüm olarak kalır. Birinin yeniden dışa aktarmayı hatırlaması gereken eskimiş PNG'ler artık yok.

Bu DevOps için neden önemli

Mimari diyagramların ortak bir zihinsel model olması beklenir. Gerçeğin gerisinde kaldıkları anda bir tuzağa dönüşürler: yeni insanlara yanlış şeyi öğretir ve inceleyicilere sahte bir güven verirler. Onları zaten bakımını yaptığın dosyalardan oluşturmak bu boşluğu kapatır. Diyagramı yapmak ucuzdur, dolayısıyla güncel tutmak da ucuzdur ve sahip olmaya değer tek diyagram güncel olanıdır.

docker-compose.yml dosyanı yapıştır ve yığınının kendini çizişini izle. Bu cümleyi okumak kadar sürer.

Mimarini zaten elinde olan dosyadan çiz

Bir tuval aç, Compose ya da Kubernetes yapılandırmanı yapıştır ve saniyeler içinde düzenlenebilir bir diyagram al.

LetDraw'u ücretsiz aç