Tüm yazılar
Genel

SCADA Artık Bir Web Uygulaması: git commit, Staging Ortamı, Saha Mühendisi Ne Kadar Etkileniyor?

SCADA web tabanlı platforma taşınıyor: git commit, CI/CD, staging ortamı. 15 yıllık TIA alışkanlığım bu geçişte ne değişti, ne değişmedi — ve sahada gerçek maliyeti saat cinsinden anlatıyorum.

SCADA Artık Bir Web Uygulaması: git commit, Staging Ortamı, Saha Mühendisi Ne Kadar Etkileniyor?

Geçen ay bir tesiste, SCADA sistemini yepyeni bir platforma taşıyan ekibin masasındaydım. Masada iki şey dikkatimi çekti: biri TIA’ya çok benzeyen bir editör, diğeri de ekranın köşesindeki yeşil yazı: “staging — commit 4121.”

Ben TIA’nın “yükle” butonuyla büyümüş biriyim. “Staging” kelimesi, ekranın köşesinde üç gün durdu, ben de üç gün “bu ne” dedim. Sonra anladım: SCADA, bir “program yüklüyorsunuz” mesleğinden, bir “sürüm yönetimi” mesleğine kaymaya başladı. Bu yazı o kaymanın sahadaki gerçek fiyatını anlatıyor.

TIA “Yükle” Butonu Neden Bir Düşündü?

Eski model şu: PLC’ye program yüklenir, HMI’ye ekran yüklenir, SCADA’ya grafik yüklenir. Her biri tekil bir dosyadır. Değişiklik = yeni dosya + yükleyin. Sürüm kontrolü? “SCADA_v3_final_final2.db” dosya adı. Git commit? “Eski dosyayı silme” diye bir not.

Yeni model şu: SCADA artık kodu gibi yönetiliyor. Bir ekran değişikliği = bir commit. Değişiklik, staging ortamına önce gidiyor. Test ediliyor. Sonra production’a gidiyor. Sürüm kontrolü = git. “Eski dosyayı silme” notu = commit message.

Benim TIA alışkanlığım, “yükle” butonuyla biter. Yeni modelde “yükle” butonu yok — “commit + deploy” var. Ve aradaki fark, sadece bir buton değil: geri alma maliyeti.

Geri Alma Maliyeti — Saat Cinsinden

Eski model: bir ekranı bozdunuz. Geri almak için, “SCADA_v3_final.db” dosyasını bulmak. Dosya yoksa — 4 saat. Dosya varsa — 40 dakika. Yani geri alma, 40 dakikanın 4 saati arası.

Yeni model: bir ekranı bozdunuz. Git’ten git revert, 90 saniye. Ama “commit 4120’ye dön” demek, commit 4120’nin ne olduğunu bilmek demek. Yani geri alma, 40 dakika değil, 90 saniye.

Fark büyük. Ama bir şartla: commit message’lar anlamlıysa. “Ekranda renk değişikliği” commit message’ı, “staging’de buton 4’ün pozisyonu değiştirildi — referans: ticket #2847” message’ından 40 dakika daha pahalı. Çünkü ilkinde, “ama neden?” sorusu 40 dakika sürer. İkincisinde, 40 saniye.

CI/CD Saha Mühendisine Ne Değiştirir?

Üç şey değişti, üçü de masada:

1. “Test ortamı” diye bir şeye ihtiyacınız var. Eski modelde, “test” = production ortamında dikkatli olun. Yeni modelde, “test” = staging ortamında dikkatli olun. Production’a giden şey, testing’den geçmiş şeydir. Bu, sahada “production’da deniyorum” ifadesini tarihe gömer. Ama staging ortamı kurmak, 2 günde 3 gün — ve her test ortamı, bir sunucu, bir lisans, bir bakım saati.

2. “Deploy” artık bir karar, bir buton değil. Eski modelde, “yükle” butonuna basıyorsunuz. Yeni modelde, “deploy” butonuna basmadan önce, kim basacak, hangi saat, hangi commit soruluyor. Bu, sahada “biri daha” demek. Ve “biri daha” = 5 saat onay, 2 saat toplantı, 1 saat “aslında bu commit’i kim yazdı.”

3. Git, TIA’nın “backup” butonuna benziyor, ama değil. Git, “yedek” değil, tarihtir. Git, “son yedek” der, “bu değişiklik neden yapıldı” demez. TIA’nın backup’ı “yedek” der, “neden yapıldı” demez. Aradaki fark: commit message. Ve commit message, sahada, dosya adından 40 dakika değerli.

Benim Masamda Ne Değişti?

İki şey değişti, biri değişmedi:

Değişen 1: Artık “yükle” demiyorum, “commit + deploy” diyorum. Ve commit message’ları, dosya adları kadar ben yazıyorum.

Değişen 2: Staging ortamında, production’da yapmayacağım bir şeyi yapıyorum. “Bu buton production’da çalışmayacak” cümlesini, production’da değil, staging’de kuruyorum.

Değişmeyen: PLC’nin içi. PLC hâlâ PLC. “Commit” kelimesi, PLC’ye girmiyor. PLC’ye giren şey, hâlâ “program dosyası.” Ve o dosyayı kimin, hangi saate, hangi commit ile değiştirdiği — hâlâ benim sorumluluğum.

Bir Sonraki Adım — ve Bir Uyarı

Web tabanlı SCADA, “yazılım” mesleğine kayıyor. Bu iyi. Ama “yazılım” mesleğinin ilk kuralı, “ilk commit’te commit message yazın.” SCADA’ya yeni giren ekip, ilk commit’ini “v1” diye yazıyor. İkinci commit’ini “v2”. 4121. commit’e geldiklerinde, “bu ne?” sorusu, 40 saat.

Benim kuralım şu: ilk commit’te, commit message’ı dosya adından uzun yaz. Çünkü dosya adı, 40 dakika. Commit message, 40 saniye.