Eylül 13 2026

Dijital Göçebeler İçin Uydu İnterneti Testleri: Starlink ve Gerçek Dünya Performansı

Bir digital nomad olarak seyahat rotanızı belirlerken haritada ilk baktığınız şey deniz manzarası değil, o bölgenin connectivity kapasitesidir. Çünkü en romantik gün batımı bile teslim edilmesi gereken acil bir proje varken anlamsızlaşır. Son yıllarda altyapıdan uzak koylar, dağ köyleri ve sınır boyları bizi çağırırken, mobil şebekelerin bittiği yerde devreye giren satellite internet çözümleri birer lüksten ziyade hayatta kalma kitine dönüştü. Özellikle Starlink cephesinde yaşanan taşınabilirlik devrimi, çalışma masamızın sınırlarını yeniden çiziyor.

Karadağ Yaylalarından Ege Koylarına: Kapsama Alanı İllüzyonu

Kafanızda canlandırın: Karadağ’ın Durmitor eteklerinde, geceliği 25 Euro olan ahşap bir dağ kulübesindesiniz. Ev sahibi ilanda gururla “Hızlı Wi-Fi” yazmış ama vardığınızda modemin 3G hızında can çekiştiğini görüyorsunuz. Tam o anda başlayacak bir müşteri toplantısı, göçebe hayatın en soğuk terlerini döktürür. Benzer bir senaryoyu Likya Yolu üzerindeki izole koylarda ya da Fas’ın Atlas Dağları’nda yaşamak işten bile değil.

Mobil operatörlerin kapsama haritaları genellikle pazarlama departmanlarının hayal gücünü yansıtır. Vadi tabanları, yoğun çam ormanları veya sınır köyleri operatörlerin radarına girmez. İşte tam bu boşlukta gökyüzüne bakmak zorunda kalıyoruz. Ancak gökyüzü de her zaman kusursuz bir bağlantı vadetmiyor; uydu teknolojisinin gerçek dünyadaki performansı laboratuvar verilerinden epey farklı çalışıyor.

Bütçe tüyosu: Uydu donanımı satın almadan önce rotanızdaki yerel marketlerden edineceğiniz iki farklı operatöre ait fiziksel SIM kartı dual-SIM bir telefonda test edin. Çoğu zaman 15-20 Euro harcayarak 50 GB yerel veri almak, uydu yatırımı yapmaktan çok daha hesaplı bir geçici çözümdür.

Çantadaki Tabak: Starlink Mini ile Sahaya İnmek

Eski nesil standart Starlink antenlerini hatırlarsınız; devasa bir çanak, koca bir yönlendirici ve jeneratör gerektiren güç tüketimiyle sırt çantalı bir gezginden ziyade karavan kabilelerine hitap ediyordu. Starlink Mini’nin sahneye çıkışı bu denklemi kökten değiştirdi. Bir dizüstü bilgisayar boyutundaki bu cihaz yaklaşık 1.1 kilogram ağırlığında ve doğrudan sırt çantanızın laptop gözüne sığıyor.

Cihazı kurmak inanılmaz pratik; çantadan çıkarıp gökyüzünü net gören bir zemine koymanız ve telefon uygulamasından açıyı ayarlamanız yaklaşık üç dakika sürüyor. Enerji tüketimi ise ortalama 25-40 Watt civarında. Bu da demek oluyor ki, 100W PD çıkışlı iyi bir 20.000 mAh powerbank ile prizden uzakta kesintisiz üç ila dört saat çalışabilirsiniz. Donanım maliyeti bölgeye göre 300 ile 400 Dolar arasında değişiyor; aylık 50 GB kotalı bölgesel dolaşım paketi ise 50 Dolar civarında seyrediyor. Eğer limitsiz dolaşım isterseniz aylık fatura 100 Dolar bandına yaklaşıyor.

Performans tarafında ise Balkanlar ve Güney Avrupa kırsalında yaptığımız hız testlerinde 80 ile 130 Mbps arasında indirme, 15 ile 25 Mbps yükleme hızlarına ulaştık. Gecikme süresi (latency) ise 35-50 milisaniye bandında kaldı. Bu değerler, iki kişinin eşzamanlı video konferans yapması ve büyük Figma dosyalarıyla boğuşması için fazlasıyla yeterli.

Kritik saha notu: Starlink’in en büyük düşmanı binalar değil, ağaçlardır. Kamp alanında gölge arayan göçebe içgüdünüzle uyduyu ağaç altına kurarsanız, her 40 saniyede bir 2 saniyelik mikro kopmalar yaşarsınız. Video görüşmesi yapacaksanız gölgeden feragat edip açık gökyüzüne çıkmanız şart.

Alternatifler Ne Durumda: Iridium, OneWeb ve Hibrit Rotalar

Piyasada Starlink tek oyuncu gibi görünse de kurumsal tarafta OneWeb ve bireysel acil durum tarafında Iridium gibi devler var. Ancak bir dijital göçebe gözüyle baktığınızda işler değişiyor. Iridium GO! gibi cihazlar inanılmaz dayanıklı ve kutuplarda bile çalışıyor fakat sundukları hız sadece metin tabanlı mesajlaşmaya ve acil durum SOS sinyallerine izin veriyor; yani Zoom toplantısı açmak hayal. Cihaz bedeli 800 Dolar civarındayken dakikası ve verisi oldukça pahalı aboneliklerle geliyor.

OneWeb ise henüz bireysel taşınabilir terminaller sunmuyor; daha çok denizcilik ve havacılık sektörüne odaklı. Bu yüzden bugün sırt çantasına atıp kahvehaneden çalışır gibi vadiden çalışabileceğiniz tek gerçek genişbant uydu alternatifi Starlink ekosistemi. Eğer bütçeniz bu donanıma henüz elvermiyorsa, en mantıklı ara formül “bonding” teknolojileridir. İki farklı yerel mobil şebekeyi USB modemler ve Speedify gibi yazılımlarla birleştirmek, zayıf sinyalleri tek bir kararlı hatta dönüştürerek sizi çoğu fırtınadan kurtarabilir.

Gerçek Maliyet Hesabı: Kimler İçin Mantıklı?

Bütçe bilincine sahip bir gezgin olarak şu soruyu sormak zorundasınız: Yılda kaç gün gerçekten hücresel kapsamanın sıfır olduğu yerlerde çalışıyorum? Ayda bir kez şehirden uzaklaşıp doğaya kaçıyorsanız, 400 Dolarlık cihaz yatırımı ve her ay ödenecek abonelik ücreti dijital göçebe bütçenizi gereksiz yere hırpalar. Üstelik Starlink servis planını dilediğiniz zaman dondurabilseniz de fatura dönemleri arasındaki geçişlerde bazen esneklik kayıpları yaşanabiliyor.

Ancak vaktinizin çoğunu Gürcistan’ın izole köylerinde, Arnavutluk Alpleri’nde veya Türkiye’nin el değmemiş yaylalarında geçiriyorsanız, bu sistem birkaç gün içinde kendi amortismanını çıkarır. Çalışamadığınız için kaçırdığınız bir teslimat ya da iptal olan bir sözleşme, uydunun yıllık maliyetinden kat kat daha pahalıya mal olur. Özgürlük, nereye gidebileceğinizi bilmek kadar, oraya vardığınızda işinizi teslim edebileceğinizden emin olmaktır.

Category: Genel | LEAVE A COMMENT
Eylül 12 2026

Sürdürülebilir Seyahat Rehberi: Yavaşla, Tasarruf Et ve Dünyayı Koru

Havalimanındaki o plastik kokulu güvenlik sırasını bilirsiniz. Kemerler çıkarılır, bilgisayarlar kutulara fırlatılır ve sadece kırk beş dakikalık bir uçuş için en az üç saat heba edilir. İşte tam bu anlarda, gezegenle kurduğumuz ilişkiyi sorgulamamak elde değil. Son yıllarda adını sıkça duyduğumuz sürdürülebilir turizm, yalnızca lüks otellerin banyosuna “havlunuzu tekrar kullanın” kartı koymasından ibaret değil. Bu, dünyaya bıraktığımız izin bilincinde olarak hareket etmek, üstelik bunu cüzdanımızı delmeden başarmak anlamına geliyor.

Gerçek bir çevre dostu seyahat, fedakarlıklarla dolu çileli bir inziva olmak zorunda değil. Hatta tam aksine; acele etmeyi bıraktığınızda seyahatin kendisi bir varış noktasına dönüşüyor. Seyahat ederken dünyayı daha az tüketmenin ve bunu yaparken yerel deneyimleri katlamanın yollarını birlikte keşfedelim.

Uçakları Boş Verin: Rayların Üzerinde Yavaş Seyahat

Karbon ayak izimizin en büyük suçlusu neredeyse her zaman havacılık sektörü. Bir yolcunun trenle seyahat ettiğinde ürettiği karbon salınımı, aynı mesafeyi uçakla katetmesine kıyasla ortalama yüzde seksen daha azdır. İşte bu noktada yavaş seyahat felsefesi devreye giriyor. Bir şehirden diğerine ışınlanmak yerine, coğrafyanın yavaşça değiştiğini izlemek hem zihne hem de çevreye iyi geliyor.

Bunu somut bir örnekle ele alalım. Orta Avrupa’da Viyana’dan Venedik’e gitmek istediğinizi varsayın. Uçak bileti ucuz gibi görünse de havalimanı transferleri, bagaj ücretleri ve karbon yükü cabası. Oysa ÖBB Nightjet gibi gece trenleriyle akşam 21.30’da Viyana’dan binip sabah 08.30’da doğrudan Venedik Santa Lucia İstasyonu’nda uyanabilirsiniz. Yataklı kompartıman fiyatları erkenden rezerve edildiğinde 39 ile 69 Euro arasında değişiyor. Böylece hem bir gecelik konaklama masrafından tasarruf ediyor hem de sabahın ilk ışıklarında kanalların kıyısına ayak basıyorsunuz.

Gece treni biletlerini doğrudan devlet demiryollarının resmi sitelerinden (ÖBB, Deutsche Bahn, Trenitalia gibi) seyahatten en az altmış gün önce alın. Aracı sitelerin koyduğu komisyonlardan kurtulur, Sparschiene adı verilen indirimli biletleri kaparsınız.

Kendi coğrafyamıza baktığımızda Sofya Ekspresi harika bir alternatif sunuyor. İstanbul Halkalı’dan akşam binip sabah Sofya’da olmak, yaklaşık on bir saatlik bir nostalji yolculuğu demek. Kuşetli vagon biletleri kırk Euro civarında seyrediyor. Uçak stresini, transfer karmaşasını ve devasa karbon salınımını denklemden çıkardığınızda, trenin ritmik tıkırtısı paha biçilemez bir terapiye dönüşüyor.

Greenwashing Tuzağına Düşmeden Etik Konaklama

Sürdürülebilirlik modası başladığından beri her otel zinciri kendini “yeşil” ilan etti. Pazarlamacıların greenwashing dediği bu göz boyama taktiğine aldanmamak gerekiyor. Bir otelin lobisinde devasa yapay bitkiler olması veya pet şişe yerine cam şişe koyması onu çevre dostu yapmaz. Asıl mesele; o işletmenin yerel ekonomiye ne kadar katkı sağladığı, enerjisini nereden aldığı ve atık yönetimini nasıl kurguladığıdır.

Bütçe bilincine sahip gezginler için en etik ve sürdürülebilir konaklama yolu, yerel aile işletmeleri, eko-hosteller ve kırsal pansiyonlardır. Örneğin İtalya ve İspanya’da yaygın olan Agriturismo tipi çiftlik konaklamaları harika bir model sunar. Şehir merkezindeki standart bir otel odasına gecelik yüz Euro vermek yerine, zeytinlikler arasındaki bir aile çiftliğinde gecelik kırk-elli Euro’ya kalabilirsiniz. Bu işletmelerde yediğiniz domates birkaç metre ötedeki bahçeden toplanır, elektrik genellikle çatıdaki güneş panellerinden sağlanır ve bıraktığınız para doğrudan yerel halkın cebine gider.

Konaklama seçerken Booking veya Airbnb üzerindeki filtrelerden ziyade Green Key veya EU Ecolabel sertifikalarına bakın. Rezervasyon yapmadan önce işletmeye “kahvaltıdaki ürünler yerel üreticilerden mi alınıyor?” sorusunu içeren samimi bir mesaj atın; cevabın içtenliği size her şeyi anlatır.

Topluluk temelli eko-hosteller de yalnız seyahat edenler için biçilmiş kaftan. Bu yerler sadece bir yatak sunmaz; ortak mutfak kullanımıyla gıda israfını önler, ücretsiz şehir bisikletleri sağlar ve genellikle şehri yürüyerek keşfetmeniz için turlar düzenler. Yatakhane fiyatları Avrupa genelinde gecelik yirmi ile otuz beş Euro bandında değişirken, yerel kültüre saygılı bir gezgin komünitesinin parçası olmanızı sağlar.

Yerel Ritim: Yürümek, Mevsiminde Yemek ve Az Tüketmek

Çevre dostu bir seyahatin en büyük sırrı aslında sadelikte gizli. Bir şehri keşfetmenin en ucuz ve en temiz yolu tabanvay yöntemidir. Günlük on beş bin adım attığınızda, hiçbir tur otobüsünün geçmediği dar sokakları, köşe başındaki eski fırını ve yerel marangozu keşfedersiniz. Ulaşımda toplu taşımayı, tramvayları ve paylaşımlı bisikletleri tercih etmek hem günlük ulaşım bütçenizi beş-altı Euro civarında tutar hem de şehrin havasını kirletmenizi önler.

Yeme-içme tarafında ise kural basit: mevsimi ve coğrafyayı takip edin. Denizden kilometrelerce uzaktaki bir dağ köyünde ithal somon balığı yemek ekolojik bir saçmalıktır. Semt pazarlarını ziyaret edin. Sabahın erken saatlerinde kurulan pazarlardan alacağınız yerel peynir, taze ekmek ve meyvelerle parkta yapacağınız bir piknik, turist tuzaklarıyla dolu restoranlarda harcayacağınız otuz Euro’dan çok daha lezzetli ve anlamlı olacaktır.

Günün sonunda sürdürülebilir seyahat, gezdiğimiz yerleri sadece tüketilecek birer arka plan olarak görmeyi bırakmaktır. Yavaşladığınızda, tren pencerelerinden manzarayı izlediğinizde ve yerel insanlarla gerçekten göz teması kurduğunuzda seyahat ruhunuza dokunmaya başlar. Üstelik geride bıraktığınız tek şey ayak iziniz, yanınıza aldığınız tek şey ise gerçek anılar olur.

Category: Genel | LEAVE A COMMENT
Ağustos 31 2026

Sırt Çantalı Geliştiriciler İçin ‘Connectivity’ Rehberi: Global eSIM ve Uydu İnterneti Testleri

Bir dijital göçebe olarak sırt çantanızı toplayıp yola çıktığınızda, özgürlük hissi harikadır. Ta ki uzak bir sahil kasabasında ya da bir dağ yamacında kritik bir production bug’ı patlayana kadar. Günümüzde seyahat etmek sadece yeni yerler keşfetmek anlamına gelmiyor; doğru teknoloji ve güvenilir bir internet altyapısıyla çalışabilirliğinizi korumak anlamına da geliyor. Kahve dükkânlarının kaprisli Wi-Fi ağlarına ya da pansiyonun “üst katta az çekiyor” masallarına bel bağlamak istemiyorsanız, bağlantı stratejinizi baştan kurmanız şart.

Havalimanında Sıra Bekleme Devri Bitti: Global eSIM Çözümleri

Eskiden yeni bir ülkeye indiğimizde ilk işimiz pasaport kontrolünden sonra yerel bir SIM kart kuyruğuna girmek olurdu. Hem zaman kaybı hem de turist tarifeleri yüzünden gereksiz maliyet demekti bu. Bugün eSIM teknolojisi, sınırları aşarken bağlantıyı tereyağından kıl çeker gibi halletmemizi sağlıyor. Uçağınız piste teker koyduğu anda yerel operatöre bağlanan bir telefon, özellikle acil Slack mesajlarına dönmeniz gerektiğinde hayat kurtarıyor.

Airalo, Maya Mobile ve Roamless gibi servislerle yaptığım son Güneydoğu Asya ve Balkanlar testlerinde durum oldukça netleşti. Bölgesel paketler genellikle 5 GB ile 20 GB arasında değişiyor ve fiyatları 12 ila 35 Dolar bandında seyrediyor. Eğer sabit bir yerde kalmayıp sürekli ülke değiştirecekseniz, tekil ülke paketleri yerine Asya veya Avrupa bölgesel paketlerini seçmek çok daha ekonomik oluyor. Roamless gibi kullandığın kadar öde mantığıyla çalışan eSIM sağlayıcıları ise veri paketinizin süresi dolmadan, bakiyenizi sonraki seyahatlere aktarmanıza imkân tanıyor.

eSIM profilinizi mutlaka henüz evinizdeyken veya hızlı bir havaalanı Wi-Fi ağına bağlıyken kurun. Varış noktasında mobil veri bulamadığınızda profili yüklemeye çalışmak tam bir kısırdöngü yaratır. Ayrıca cihazınızın APN ayarlarını otomatik alıp almadığını kalkıştan önce kontrol etmekte fayda var.

Peki eSIM geliştiriciler için ne kadar stabil? Git push işlemleri, terminal üzerinden SSH bağlantıları ve günlük mesajlaşmalar için gecikme süreleri (latency) 60-120 ms arasında gayet kabul edilebilir düzeyde kalıyor. Ancak iş ekran paylaşımı yapacağınız bir Zoom toplantısına veya büyük bir Docker imajı indirmeye geldiğinde, hücresel verinin çekim gücüne doğrudan bağımlı kalıyorsunuz. Kırsala doğru uzaklaştıkça tek bir baz istasyonuna mahkûm olmak, bağlantınızın aniden 3G hızlarına düşmesine sebep olabiliyor.

Dağın Başında SSH Bağlantısı: Starlink Mini Gerçeği

Hücresel kapsamanın tamamen bittiği, doğayla baş başa kalıp kod yazmak istediğiniz anlarda sahneye Starlink Mini çıkıyor. Sırt çantasına rahatlıkla sığabilen bu yeni model, yaklaşık 1.1 kilogramlık ağırlığıyla taşınabilirliği tamamen yeni bir boyuta taşıdı. Standart çanaklara kıyasla çok daha az güç tüketen cihaz, USB-C Power Delivery desteği sayesinde 100W gücündeki kaliteli bir powerbank ile yaklaşık 3-4 saat boyunca kesintisiz çalışabiliyor.

Kafkaslar ve güney kıyılarımızın kör noktalarında gerçekleştirdiğim testlerde Starlink Mini, açık gökyüzü altında ortalama 80-130 Mbps indirme ve 15-25 Mbps yükleme hızlarına ulaştı. En önemlisi, gecikme süresinin 35-50 ms bandında kalması sayesinde terminal oturumları neredeyse ofis fiberindeymiş gibi akıcı hissettiriyor. Bölgesel dolaşım (Regional Roam) paketi için donanım maliyeti hariç aylık yaklaşık 50-70 Dolar gibi bir abonelik ücreti ödeniyor. Bütçe bilincine sahip bir gezgin için ilk başta yüksek görünebilir; fakat işinizi aksatmadan en izole koylarda bile çalışabilmenin getirdiği özgürlük bu maliyeti rahatlıkla amorti ediyor.

Starlink Mini’yi doğrudan güneşe maruz bırakacak şekilde araç tavanına veya çadır tepesine kurarken aşırı ısınmaya dikkat edin. 40 derecenin üzerindeki sıcaklıklarda cihaz hız düşürme moduna geçebilir. Gökyüzü görüş açısını engellemeyecek yarı gölge bir konum seçmek verimliliği ciddi oranda artırır.

İki Dünyanın En İyisi: Hibrit Bağlantı Stratejisi

Yollarda uzun süre çalışanlar için tek bir kaynağa güvenmek her zaman risk taşır. En ideal senaryo, şehirden şehre geçerken veya tren yolculuklarında eSIM’in düşük maliyetli ve anlık pratikliğinden faydalanmak; birkaç gün boyunca elektriğin bile kısıtlı olduğu doğa rotalarına çekildiğinizde ise Starlink Mini’yi devreye almaktır. Bu sayede hem veri kotalarınızı idareli kullanır hem de bağlantı kesintisi anksiyetesini hayatınızdan tamamen çıkarırsınız.

Sonuç olarak teknoloji, sırt çantamızın ağırlığını artırmadan dünyanın her köşesini potansiyel bir çalışma alanına dönüştürmüş durumda. Doğru araçları seçtiğinizde, bir pazartesi sabahı toplantısına deniz kenarındaki bir çadırın önünden katılmak artık bir fantezi değil, sadece iyi planlanmış bir çalışma rutini.

Category: Genel | LEAVE A COMMENT
Ağustos 24 2026

Model Context Protocol (MCP) ile Kendi Yerel AI Asistanınızı İnşa Edin

Hadi itiraf edelim: Bulut tabanlı yapay zeka modelleri harika iş çıkarıyor ama şirketinizin mali tablolarını, gizli kaynak kodlarını ya da kişisel notlarınızı OpenAI veya Anthropic sunucularına göndermek her zaman iyi bir fikir değil. Tam bu noktada devreye MCP (Model Context Protocol), local LLM çözümleri ve güçlü bir bare metal donanım giriyor. Bugün, verinizi dışarı sızdırmadan çalışan akıllı bir yerel asistanı nasıl kuracağımızı test edip sonuçları masaya yatırıyoruz.

Nedir Bu Model Context Protocol (MCP)?

Teknoloji dünyasında her model için ayrı bir entegrasyon yazmaktan yorulmuştuk. Context management dediğimiz olay, daha önce karmaşık RAG (Retrieval-Augmented Generation) boru hatları ve özel script’lerle çözülmeye çalışılıyordu. Anthropic tarafından açık standart olarak duyurulan MCP, yapay zekanın “USB-C portu” gibi çalışıyor.

Kısacası MCP; model ile yerel dosyalarınız, veritabanlarınız ve API’leriniz arasında standart bir köprü kuruyor. Siz bir MCP sunucusu yazıyorsunuz (veya hazır olanı kullanıyorsunuz), yerel modeliniz de bu standart protokol üzerinden gidip dosyalarınızı güvenle okuyor.

[Görsel: MCP mimarisini gösteren şema: LLM İstemcisi, MCP Protokolü ve Yerel Veri Kaynakları arasındaki veri akışı]

Neden Bulut Değil de Bare Metal?

VPS veya sanallaştırılmış sunucular genelde GPU kaynaklarını paylaşır veya kısıtlar. Bare metal (fiziksel donanım) tercih ettiğinizde GPU VRAM’inin ve işlemcinin tamamı sizin emrinize amade olur. Yerel bir LLM çalıştırırken milisaniyeler ve token hızları önemlidir; sanallaştırma katmanının getirdiği gecikmeyi kimse istemez.

Adım Adım Kurulum: Kendi Yerel Sisteminizi Kurun

Lafı uzatmadan test ortamımıza geçelim. Senaryomuzda Ubuntu çalışan bir bare metal sunucumuz, yerel model motorumuz ve yerel SQLite veritabanımıza bağlanan bir MCP sunucumuz var.

1. Yerel LLM Motorunu Başlatın (Ollama)

Hızlı ve sorunsuz bir başlangıç için Ollama’yı kullanıyoruz. Terminali açıp şu komutla motoru kuralım ve Llama 3.1 modelini indirelim:

curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b

2. Basit Bir Dosya Sistemi MCP Sunucusu Kurun

Modelimizin sadece bizim izin verdiğimiz klasördeki dosyaları okumasını istiyoruz. Node.js tabanlı resmi MCP dosya sistemi sunucusunu kuralım:

npx -y @modelcontextprotocol/server-filesystem /home/kerten/gizli-veriler

[Görsel: Terminal ekranında MCP sunucusunun ayağa kalktığı ve JSON-RPC isteklerini dinlediği anın çıktısı]

3. İstemci ile MCP Sunucusunu Bağlayın

MCP istemcisi olarak Claude Desktop veya açık kaynaklı LibreChat kullanabilirsiniz. Yapılandırma dosyanıza (mcp_config.json) sunucunuzu ekleyin:

{
  "mcpServers": {
    "yerel-dosyalar": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/kerten/gizli-veriler"]
    }
  }
}

Gerçek Kullanım Senaryosu: Test Ettik, Gördük

Sistemi kurduktan sonra gizli-veriler klasörüne 2024 yılına ait hayali sunucu loglarını ve fatura dökümlerini içeren bir CSV dosyası attık. Ardından modele şu soruyu sorduk:

“Geçtiğimiz ay en çok harcama yapılan ilk 3 sunucu kalemini bul ve maliyetlerini topla.”

Sonuç: Model, MCP arayüzü sayesinde CSV dosyasını okudu, verileri parse etti ve 3 saniye içinde doğru yanıtı verdi. Hiçbir veri internete çıkmadı, sıfır API maliyetiyle işlem bare metal üzerinde tamamlandı.

[Görsel: Yerel arayüzde modelin MCP aracı üzerinden dosyayı başarıyla sorgulayıp yanıtladığı sohbet ekranı]

Artılar ve Eksiler

Her sistem gibi bu yapının da harika yanları ve bazı zorlukları var:

Avantajlar (Artılar) Dezavantajlar (Eksiler)
%100 Veri Gizliliği (Zero Data Leakage) Yüksek ilk donanım maliyeti (Bare metal / GPU)
Sıfır Token / API Ücreti Model boyutu küçüldükçe akıl yürütme kalitesi düşebilir
Standart MCP protokolü sayesinde kolay araç entegrasyonu Kurulum ve context management optimizasyonu teknik bilgi gerektirir
İnternet bağlantısı kesilse bile çalışabilirlik Büyük dosyalarda context window dolma riski

Maliyetler ve Ücretsiz Alternatifler

Böyle bir sistemi ayağa kaldırmanın maliyeti tamamen seçtiğiniz donanıma bağlıdır:

  • Bare Metal Sunucu Kiralama: NVIDIA RTX 4090 veya A4000 GPU barındıran bir sunucu aylık yaklaşık 70$ – 150$ civarındadır.
  • Kendi Donanımınız: Evinizde en az 16 GB VRAM’e sahip bir ekran kartı (RTX 3060 12GB bile başlangıç için iş görür) varsa yazılım katmanı tamamen ücretsizdir.
  • Ücretsiz Alternatifler: Ollama, vLLM, LM Studio ve açık kaynaklı MCP SDK’ları tamamen ücretsizdir. Bulut API’larına (OpenAI, Claude API) her ay yüzlerce dolar ödemek yerine kendi donanımınızı amorti edebilirsiniz.

Sonuç: Yerel AI Asistanı Kurmaya Değer mi?

Eğer gizlilik takıntınız varsa, regülasyonlara tabi bir sektörde çalışıyorsanız veya sadece kendi sistemleriniz üzerinde tam denetim istiyorsanız: Kesinlikle evet.

MCP sayesinde yerel modeller artık sadece boş sohbet eden chatbot’lar olmaktan çıktı; bilgisayarınızdaki gerçek verilerle konuşabilen yetenekli birer asistan haline geldi. Bir terminal açın, Ollama’yı kurun ve kendi verinizi yönetmenin tadını çıkarın!

Category: Genel | LEAVE A COMMENT
Ağustos 22 2026

FinOps 2.0: AWS/Cloud Faturasını Otomatik Kısıtlayan Event-Driven Mimariler

Her ayın sonunda gelen o meşhur kabarık faturayı görüp Slack kanallarında “Bu p3.8xlarge instance’ı kim açık unuttu?” cadı avı başlatmaktan yorulduysanız, yalnız değilsiniz. Geleneksel bütçe uyarıları reaktiftir; fatura eşiği aşıldığında iş işten çoktan geçmiş olur. Modern FinOps yaklaşımı, cloud maliyet yönetimini sadece raporlama tablosu olmaktan çıkarıp, AWS altyapısında gerçek zamanlı çalışan bir otomasyon zincirine dönüştürmeyi gerektiriyor.

Bu yazıda; gecikmeli Cost and Usage Report (CUR) analizlerini bir kenara bırakıp, EventBridge, CloudWatch Metric Streams ve Lambda tabanlı event-driven bir maliyet kısıtlama (circuit breaker) mimarisini nasıl kuracağımızı adım adım ele alıyoruz.

Geleneksel Bütçe Uyarıları Neden İşe Yaramaz?

AWS Budgets veya CloudWatch Billing Alarms kurduğunuzda, arka planda çalışan telemetri verisi gerçek zamanlı değildir. CloudWatch billing metrikleri genellikle 8 ila 14 saatlik bir gecikmeyle (delay) güncellenir. Bir developer cuma akşamı yanlışlıkla 10 nodeluk bir GPU kümesini ayağa kaldırıp unuttuysa, pazartesi sabahı gelen e-posta sadece felaketin faturasını tebliğ eder.

Bize gereken şey: Anomaly Detection + Immediate Event Routing + Automated Remediation. Yani faturanın toplamını değil, kaynak oluşturma hızını (velocity), beklenmeyen metrik sıçramalarını ve yetim (orphaned) kaynakları anlık yakalayan bir mimari.

Event-Driven FinOps Mimarisi Nasıl Çalışır?

Kurgulayacağımız mimari üç ana ayaktan oluşuyor:

  1. Sinyal Katmanı: AWS Cost Anomaly Detection, AWS Health Events, CloudTrail Management Events ve Config Rule ihlalleri.
  2. Yönlendirme Katmanı (Routing): Amazon EventBridge default bus veya custom bus. Gelen payload’u filtreleyip uygun remediation hedefine yönlendirir.
  3. Aksiyon Katmanı (Execution): AWS Lambda veya Step Functions. Kaynağı durdurur, scale-in yapar, volume snapshot’ı alıp diski siler ya da doğrudan security group seviyesinde trafiği keser.

Adım 1: Cost Anomaly Detection için EventBridge Kuralı

AWS Cost Anomaly Detection, makine öğrenmesi modelleriyle harcama paternlerinizi analiz eder. Bir anomali tespit edildiğinde doğrudan EventBridge’e event fırlatabilir. Aşağıdaki CloudFormation / EventBridge Pattern tanımı, belirlenen eşik üzerindeki anomalileri dinler:

{
  "source": ["aws.cost-anomaly-detection"],
  "detail-type": ["Cost Anomaly Detected"],
  "detail": {
    "anomalyScore": [{ "numeric": [">=", 80] }],
    "impact": {
      "totalImpactPercentage": [{ "numeric": [">=", 50] }]
    }
  }
}

Bu pattern; anomali skoru 80’in üzerinde olan ve harcama etkisinin beklenen baseline’a göre en az %50 saptığı senaryoları yakalar. Anlamsız mikro dalgalanmalar için Lambda tetiklenmez.

Adım 2: Dev/Staging Ortamlarında Kaçak Kaynakları Kesen Lambda

Birçok şirkette faturayı patlatan şey prod ortamı değil, dev/stage hesaplarında “test edip sileceğim” denilerek unutulan yüksek profilli kaynaklardır. Aşağıdaki Python tabanlı Lambda fonksiyonu, tag eksikliği olan veya anomali üreten instance’ları hedef alarak devreye girer. Dry-run kontrolü ve güvenli tag filtresi içerir:

import boto3
import os
import json
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

ec2 = boto3.client('ec2')
TAG_IMMUNITY_KEY = "FinOpsImmunity"
ALLOWED_ENVIRONMENTS = ["development", "staging", "sandbox"]

def lambda_handler(event, context):
    logger.info(f"Received event: {json.dumps(event)}")
    
    # Hedef filtreleri: Sadece dev/stage hesaplar ve belirli instance tipleri
    filters = [
        {'Name': 'instance-state-name', 'Values': ['running']},
        {'Name': 'tag:Environment', 'Values': ALLOWED_ENVIRONMENTS}
    ]
    
    response = ec2.describe_instances(Filters=filters)
    instances_to_stop = []

    for reservation in response['Reservations']:
        for instance in reservation['Instances']:
            instance_id = instance['InstanceId']
            instance_type = instance['InstanceType']
            tags = {t['Key']: t['Value'] for t in instance.get('Tags', [])}
            
            # Bağışıklık tag'i var mı?
            if tags.get(TAG_IMMUNITY_KEY, "false").lower() == "true":
                logger.info(f"Instance {instance_id} has immunity tag. Skipping.")
                continue
                
            # Büyük/Pahalı aileleri hedef al (GPU, High Memory vb.)
            if instance_type.startswith(('p3', 'p4', 'g4', 'g5', 'r5b', 'x2gd')):
                logger.warning(f"High cost instance detected without immunity: {instance_id} ({instance_type})")
                instances_to_stop.append(instance_id)

    if instances_to_stop:
        logger.info(f"Stopping instances: {instances_to_stop}")
        ec2.stop_instances(InstanceIds=instances_to_stop)
        return {"status": "SUCCESS", "stopped_instances": instances_to_stop}

    return {"status": "NO_ACTION", "stopped_instances": []}

Burada kritik olan felsefe şudur: Fail-safe by default. Prod hesabına dokunmamak için ortam etiketlerini katı şekilde izole ediyoruz ve geliştiricilere acil durumlarda kullanmaları için FinOpsImmunity=true gibi bir bypass tag mekanizması tanıyoruz.

Adım 3: Yetim (Orphaned) EBS ve Unassociated EIP Temizliği

Terraform ile altyapıyı yıkan ama lifecycle { prevent_destroy = true } veya unattached volume’leri unutan mühendislerin faturaya hediyesidir yetim kaynaklar. CloudWatch Event yerine her gece EventBridge Schedule (Cron) ile tetiklenen hafif bir garbage collector kuralı tanımlayalım:

# AWS CLI ile Unattached (Available) EBS Volume'leri sorgulama
aws ec2 describe-volumes \
    --filters Name=status,Values=available \
    --query "Volumes[*].{ID:VolumeId,Size:Size,Created:CreateTime}" \
    --output table

Bunu otomatize ederken dikkat: Silmeden önce mutlaka snapshot alın. Event-driven mimarilerde en büyük risk, veri kaybına yol açabilecek agresif otomasyonlardır. Lambda’nın adımları şöyle olmalıdır:

  1. Volume state available mı?
  2. Tag’lerinde SnapshotBeforeDelete=true oluştur.
  3. Snapshot tetikle, snapshot tamamlandığında EventBridge’den gelen EC2 Snapshot Successful eventiyle eski volume’ü drop et.

Kubernetes / Karpenter için Runaway Cost Breaker

Eğer EKS üzerinde Karpenter veya Cluster Autoscaler kullanıyorsanız, container’ların crashloop’a girip sürekli yeni node istemesi sonucu dakikalar içinde onlarca nodeluk bir cluster anomalisi yaşayabilirsiniz.

Karpenter’ın NodePool limitleri bu işin ilk savunma hattıdır ama tek başına yetmez. Event-driven bir Lambda ile Karpenter NodePool CRD’sinin limitlerini dinamik olarak sıkılaştırabilirsiniz:

apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
  name: default
spec:
  limits:
    cpu: "100"
    memory: 400Gi
  template:
    spec:
      requirements:
        - key: "karpenter.sh/capacity-type"
          operator: In
          values: ["spot"]
        - key: "karpenter.k8s.aws/instance-category"
          operator: In
          values: ["c", "m", "r"]

Limit aşıldığında cluster’a yeni node eklenmesi engellenir. Bu aşamada Prometheus Alertmanager’dan EventBridge Webhook’una düşen bir alarm ile nöbetçi SRE’ye Slack üzerinden interactive button ile onay düşürmek en sağlıklı yaklaşımdır.

Least Privilege IAM İzni

FinOps otomasyon Lambda’nızın AdministratorAccess almasına gerek yoktur. Sadece durdurma ve tanımlama yetkilerini içeren sıkı bir IAM policy tanımlayın:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "FinOpsEC2Operations",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:StopInstances",
                "ec2:CreateSnapshot",
                "ec2:DeleteVolume"
            ],
            "Resource": "*"
        }
    ]
}

Özet: FinOps Kültür Değil, Kod Tabanıdır

Mühendisleri spreadsheet tablolarına bakarak eğitmek bir yere kadar çalışır. İnsan hata yapar, acil durumlarda makineler açık unutulur. FinOps 2.0; kuralları şirket wikisine yazmak yerine EventBridge kurallarına, Lambda fonksiyonlarına ve Kubernetes admission controller’larına yazmaktır.

Reaktif fatura şoklarından proaktif event-driven kısıtlamalara geçtiğinizde, hem CFO’nuz daha rahat uyur hem de nöbetçi SRE hafta sonu faturayı değil asıl işi olan sistem güvenilirliğini düşünür.

Category: Genel | LEAVE A COMMENT
Temmuz 6 2026

SaaS Maliyetlerinden Kurtulun: Uptime Kuma ve n8n ile Ücretsiz Monitoring Stack Kurulumu

Datadog, New Relic veya BetterStack faturalarının her ay sonunda FinOps ekiplerinin masasında yarattığı kalp çarpıntısını hepimiz biliyoruz. Özellikle yüzlerce microservice veya edge endpoint barındıran altyapılarda, basit bir synthetic check ve alerting mekanizması için ödenen lisans bedelleri katlanılamaz seviyelere ulaşabiliyor. Bu noktada self-hosted bir monitoring altyapısı kurmak, doğrudan bir maliyet optimizasyonu hamlesine dönüşüyor. Bu rehberde, Uptime Kuma ve n8n ikilisini bir araya getirerek kurumsal ölçekte, yüksek esnekliğe sahip ve tamamen ücretsiz bir observability & auto-remediation stack’ini nasıl ayağa kaldıracağımızı inceliyoruz.

Neden Bu Stack? Mimari Kararlar

Piyasada Prometheus + Alertmanager veya Zabbix gibi devasa çözümler varken neden Uptime Kuma ve n8n? Cevap: Bakım maliyeti (operational overhead) ve olay müdahale hızı (MTTR).

Prometheus Blackbox Exporter güçlüdür ancak konfigürasyonu hantaldır; dashboard ve status page için Grafana şarttır. Uptime Kuma ise tek bir container içerisinde HTTP(s), gRPC, TCP, DNS, Ping ve Docker container healthcheck kabiliyetlerini native bir Status Page ile sunar. n8n ise Alertmanager’ın kısıtlı webhook yapısının ötesine geçerek; alert deduplication, payload zenginleştirme (enrichment) ve hatta SSH/Kubernetes API üzerinden otomatik iyileştirme (self-healing) workflow’ları çalıştırmamıza olanak tanır.

Adım 1: Production-Ready Docker Compose Mimarisi

Stack’imizi tek bir node üzerinde izole bir Docker network’ü, persistent storage ve resource limitleri ile ayağa kaldıralım. Reverse proxy olarak Traefik veya Nginx arkasında SSL terminate ettiğinizi varsayıyoruz; bu yüzden internal network üzerinden güvenli bağlantı kuracağız.

version: '3.8'

networks:
  monitoring-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.28.0.0/16

volumes:
  uptime-kuma-data:
    driver: local
  n8n-data:
    driver: local

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1.23.13-debian
    container_name: uptime-kuma
    restart: unless-stopped
    volumes:
      - uptime-kuma-data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - monitoring-net
    ports:
      - "127.0.0.1:3001:3001"
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 1024M
        reservations:
          cpus: '0.2'
          memory: 256M
    healthcheck:
      test: ["CMD-SHELL", "node extra/healthcheck.js"]
      interval: 30s
      timeout: 10s
      retries: 3

  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n-automation
    restart: unless-stopped
    environment:
      - N8N_HOST=n8n.internal.local
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - GENERIC_TIMEZONE=Europe/Istanbul
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=168
    volumes:
      - n8n-data:/home/node/.n8n
    networks:
      - monitoring-net
    ports:
      - "127.0.0.1:5678:5678"
    deploy:
      resources:
        limits:
          cpus: '1.5'
          memory: 2048M
        reservations:
          cpus: '0.2'
          memory: 512M

Burada kritik olan iki parametre var: Uptime Kuma’ya Docker socket’i ro (read-only) bağlayarak yerel container state’lerini doğrudan izleyebiliyoruz. n8n tarafında ise EXECUTIONS_DATA_PRUNE=true ile SQLite veritabanının kontrolsüz büyümesini engelleyerek disk I/O darboğazlarının önüne geçiyoruz.

Servisleri ayağa kaldıralım:

docker compose up -d
docker compose ps

Adım 2: Uptime Kuma Konfigürasyonu ve Probing Stratejisi

Uptime Kuma arayüzüne (http://localhost:3001) eriştikten sonra ilk işimiz probe stratejisini kurgulamak. Sadece HTTP 200 OK kontrolü yapmak production seviyesinde yetersizdir.

1. HTTP Keyword Check & Payload Validasyonu

Endpoint sadece 200 dönüyor olabilir ancak arka planda database connection pool tükenmiş ve boş bir JSON array render ediyor olabilir. Monitor tipini HTTP(s) – Keyword seçerek response body içinde beklenen bir string (örneğin "status":"healthy") aratmalısınız.

2. Dynamic Certificate Monitoring

TLS sertifikalarının bitişine 14 gün kala alert tetiklemek için TLS/SSL probe ayarlarını aktifleştirin. Bu, Let’s Encrypt botlarının cert-manager veya ACME renewal hatalarında hayat kurtarır.

3. Webhook Entegrasyonu (n8n Köprüsü)

Settings > Notifications > Setup Notification adımlarını izleyin:

  • Notification Type: Webhook
  • Post URL: https://n8n.yourdomain.com/webhook/uptime-kuma-alerts
  • Request Method: POST
  • Content-Type: application/json

Uptime Kuma olay anında n8n’e şu formata benzer zengin bir payload fırlatır:

{
  "heartbeat": {
    "monitorID": 4,
    "status": 0,
    "time": "2024-03-24 14:32:10.123",
    "msg": "HTTP 502 Bad Gateway",
    "ping": 142
  },
  "monitor": {
    "name": "Auth-Service-Prod",
    "url": "https://auth.internal.domain/healthz",
    "type": "http",
    "tags": [{"name": "tier-1"}, {"name": "team-core"}]
  },
  "msg": "[Auth-Service-Prod] is Down: HTTP 502 Bad Gateway"
}

Adım 3: n8n ile Event-Driven Remediation ve Alert Routing

Basit bir bildirim göndermek yerine n8n üzerinde incident management iş akışı kuralım. Senaryomuz: Servis düştüğünde alerti Slack/Telegram kanalına at, ardından servisin kurtarılması için SSH üzerinden staging/prod ortamına safe-restart komutu gönder.

1. Webhook Trigger ve Status Filtreleme

n8n üzerinde bir Webhook Node oluşturup path’i uptime-kuma-alerts yapın. Ardından gelen veriyi kontrol eden bir Switch Node ekleyin:

  • {{ $json.heartbeat.status }} === 0 -> Incident (DOWN)
  • {{ $json.heartbeat.status }} === 1 -> Recovery (UP)

2. Payload Enrichment (Code Node)

Alert metnini güzelleştirmek ve etiketlere göre on-call mühendisi etiketlemek için araya bir Code (JavaScript) node koyuyoruz:

const monitor = $input.first().json.monitor;
const heartbeat = $input.first().json.heartbeat;

const isTier1 = monitor.tags && monitor.tags.some(t => t.name === 'tier-1');
const severity = heartbeat.status === 0 ? (isTier1 ? 'CRITICAL' : 'WARNING') : 'INFO';
const mention = isTier1 ? '' : '@oncall-dev';

return {
  json: {
    serviceName: monitor.name,
    targetUrl: monitor.url,
    errorMessage: heartbeat.msg,
    timestamp: heartbeat.time,
    severity: severity,
    mentionTarget: mention,
    rawPayload: $input.first().json
  }
};

3. Auto-Remediation: Safe Container Restart

Eğer düşen servis stateless bir worker veya memory leak yaşayan bir microservice ise, gece 03:00’te nöbetçiyi uyandırmadan önce kontrollü bir restart denemek mantıklıdır.

n8n’deki SSH Node‘u kullanarak ilgili host üzerinde minimum yetkili bir service user ile remote command çalıştırıyoruz:

# n8n SSH Execution Node Komutu
docker restart {{ $json.serviceName.toLowerCase() }} || systemctl restart {{ $json.serviceName.toLowerCase() }}

Bu adımdan sonra n8n’e bir Wait Node (60 saniye) koyup Uptime Kuma API’sine veya doğrudan servise probe atarak sorunun çözülüp çözülmediğini teyit edebilirsiniz. Düzelmediyse escalasyon yaparak PagerDuty/Opsgenie veya Telegram sesli arama botunu tetikleyebilirsiniz.

Production Hardening: Monitoring Altyapısını Kim İzleyecek?

Monitoring sisteminin kendisi çökerse ne olur? Single point of failure (SPOF) riskini bertaraf etmek için iki kritik adımı atlamayın:

1. Dead Man’s Snitch (Heartbeat Monitoring)

Uptime Kuma içerisinde Push tipi bir monitor oluşturun. n8n üzerinden her 5 dakikada bir bu endpoint’e curl atan bir Cron Workflow tanımlayın. Eğer n8n veya network giderse Uptime Kuma alarm üretir. Aynı şekilde harici, tamamen ücretsiz bir dış servise (örn. Cronitor veya Healthchecks.io) Uptime Kuma’nın kendisinden periyodik ping atın.

# n8n cron node içinden dış heartbeat servisine ping
curl -m 10 --retry 3 https://hc-ping.com/your-uuid-token

2. SQLite WAL Modu ve Otomatik Backup

Uptime Kuma varsayılan olarak SQLite kullanır. Yoğun monitor sayısında (500+) database lock yaşamamak için SQLite WAL (Write-Ahead Logging) modunun aktif olduğundan emin olun:

# Uptime Kuma data dizininde
sqlite3 kuma.db "PRAGMA journal_mode=WAL;"

Veritabanı yedeğini her gece S3 uyumlu bir object storage’a rclone veya restic ile şifreli olarak senkronize edin:

docker exec uptime-kuma sqlite3 /app/data/kuma.db ".backup '/app/data/kuma-backup.db'"
rclone copy /var/lib/docker/volumes/uptime-kuma-data/_data/kuma-backup.db remote-s3:monitoring-backups/

Özet ve Maliyet Karşılaştırması

Bu mimariyi Hetzner veya DigitalOcean üzerindeki 4-5 USD’lik bir VPS üzerinde rahatlıkla çalıştırabilirsiniz. Ticari bir SaaS çözümünde 200 endpoint, multi-step healthcheck’ler ve custom webhook otomasyonları için ayda 150 – 400 USD arasında bir fatura ödemeniz gerekirken; bu stack ile hem tüm verinizi kendi altyapınızda tutuyor hem de n8n’in geniş ekosistemi sayesinde sınırsız auto-remediation senaryosu üretebiliyorsunuz.

Category: Genel | LEAVE A COMMENT
Haziran 26 2026

Dışı Çıtır İçi Yumuşacık: Evde Çikolata Soslu Geleneksel İspanyol Tatlısı Churros Yapımı

Sokak lezzetleri denince akan sular durur ama bazılarının yeri çok ayrıdır. İspanya sokaklarından kopup gelen, dışı altın sarısı ve çıtır çıtır, içi ise bulut gibi yumuşak bir lezzet düşünün. Evet, doğru tahmin ettiniz; bugün mutfakta İspanyol esintileri estiriyoruz! Bu yazıda, pastanelerdeki o mükemmel dokuyu kendi mutfağınızda nasıl yakalayacağınızı anlatan nefis bir churros tarifi hazırladık. Evde churros yapımı gözünüzü korkutmasın; çünkü doğru teknikleri bildiğinizde bu meşhur İspanyol tatlısı sandığınızdan çok daha pratik. İşte o çok merak edilen çıtır churros sırrı ve adım adım yapılışı!

Churros Tarifi Hakkında Detaylar

Bu tarif, mutfakta saatlerce zaman harcamak istemeyen ama kahvenin yanına gurme bir dokunuş arayan herkes için biçilmiş kaftan.

  • Porsiyon: 4 Kişilik
  • Hazırlık Süresi: 15 dakika
  • Pişirme Süresi: 15 dakika

Gerekli Malzemeler

Malzemelerimiz oldukça temel, muhtemelen şu an hepsi mutfağınızda var. Yoksa bile alternatifleri hemen yanlarında!

  • Su: 1 su bardağı (Daha zengin bir lezzet için yarım su bardağı su, yarım su bardağı süt karışımı da kullanabilirsiniz)
  • Tereyağı: 2 yemek kaşığı (Margarin veya Hindistan cevizi yağı da olur)
  • Toz şeker: 1 yemek kaşığı
  • Tuz: Bir çimdik
  • Un: 1 su bardağı (Glutensiz besleniyorsanız glütensiz un karışımları da iyi sonuç verir)
  • Yumurta: 2 adet (Mutlaka oda sıcaklığında olmalı)
  • Kızartmak için: Bol sıvı yağ
  • Bulamak için: Yarım su bardağı toz şeker ve 1 tatlı kaşığı tarçın

Çikolata Sosu İçin:

  • Krema: 100 ml (Yarım paket)
  • Çikolata: 80 gram (Bitter veya sütlü karışık)

Adım Adım Evde Churros Yapımı

Sırayı bozmadan, sakin adımlarla ilerliyoruz. Hamurun kıvamı bu işin anahtarıdır.

  1. Sıvı tabanı hazırlayın: Suyu, tereyağını, şekeri ve tuzu küçük bir tencereye alın. Tereyağı tamamen eriyene ve karışım kaynama noktasına gelene kadar ısıtın.
  2. Unu ekleyin: Kaynayan karışıma unu tek seferde dökün. Ocağın altını hemen kısın. Tahta bir kaşıkla hızlıca karıştırarak hamuru toparlayın. Hamur tencerenin kenarlarından ayrılıp pürüzsüz bir top haline gelene kadar (yaklaşık 2 dakika) pişirmeye devam edin.
  3. Ilımaya bırakın: Hamuru ocaktan alın ve başka bir kaba aktararak 5 dakika kadar ılınmasını bekleyin. Sıcak hamura yumurta eklerseniz yumurtalarınız pişer ve tatlı yerine tatlı kokulu bir omlet yersiniz; bunu kesinlikle istemeyiz!
  4. Yumurtaları yedirin: Ilınan hamura yumurtaları teker teker ekleyin. İlk yumurtayı ekleyin, mikserle ya da güçlü bir spatula ile hamur yumurtayı tamamen yutana kadar çırpın. Ardından ikinci yumurtayı ekleyip aynı işlemi tekrarlayın. Karşınızda yapışkan, parlak ve yoğun bir hamur olmalı.
  5. Sıkma torbasına alın: Hamuru, ucuna yıldız duy takılmış sağlam bir sıkma torbasına doldurun. Yıldız uç, churros’un o meşhur çizgili şeklini almasını ve daha iyi pişmesini sağlar.
  6. Kızartın: Geniş bir tavada sıvı yağı orta ateşte kızdırın. Sıkma torbasından hamuru yağın üzerine doğru sıkın ve istediğiniz boyuta (yaklaşık 8-10 cm) gelince temiz bir mutfak makası yardımıyla kesip yağa bırakın.
  7. Altın sarısı dokunuş: Churros’ları arkalı önlü altın sarısı renk alana kadar kızartın. Yağdan alır almaz önce havlu kağıt serili tabağa, ardından sıcakken hemen tarçınlı şeker karışımına bulayın.

Hızlı Çikolata Sosu Nasıl Yapılır?

Kremayı küçük bir sos tenceresinde ısıtın ancak kaynatmayın. Kenarlardan hafifçe kabarcıklar çıkınca ocaktan alın ve içine doğranmış çikolataları ekleyin. Çikolatalar tamamen eriyip pürüzsüz, parlak bir sos elde edene kadar karıştırın.

Püf Noktası: Çıtır Churros Sırrı Nedir?

Churros yaparken en sık karşılaşılan sorun dışının çıtır, içinin ise çiğ kalmasıdır. Bunun tek bir sebebi vardır: Yanlış yağ sıcaklığı. Yağınız çok kızgın olursa hamur dışarıdan hemen yanar ama içi pişmez. Yağ soğuk olursa da hamur yağı sünger gibi çeker ve çıtır özelliğini kaybeder.

Çözüm: Yağın ideal sıcaklığı 170-180 derece arasındadır. Eğer mutfak termometreniz yoksa, yağa küçük bir parça hamur atın. Hamur hemen dibe çökmeyip orta hızda köpürerek yüzeye çıkıyorsa doğru sıcaklıktasınız demektir. Ayrıca tavayı tek seferde çok fazla hamurla doldurmayın ki yağın sıcaklığı birden düşmesin.

Şimdi çıtır çıtır churros’ları sıcak çikolata sosuna batırıp keyfini çıkarma zamanı. Afiyet olsun!

Category: Genel | LEAVE A COMMENT
Haziran 24 2026

Yapay Zeka Şirket Sırlarını İfşa Etmeden Önce: Kurumsal LLM Güvenliği ve Yetkilendirme Rehberi

Şirket içine heyecanla kurulan o akıllı yapay zeka asistanları var ya… Hani “Tüm dökümanlarımızı yükleyelim, her şeyi saniyeler içinde analiz etsin” dediğimiz o dahi çocuk. İşte o çocuk, eğer doğru eğitilmez ve sınırlandırılmazsa, stajyer Ahmet’e şirketin tüm finansal dökümlerini veya CEO’nun maaşını tek bir prompt ile fısıldayabilir. Günümüz teknoloji dünyasında Kurumsal Yapay Zeka Güvenliği sadece bir lüks değil, şirket sırlarının ortalığa saçılmasını engelleyen hayati bir barikat haline geldi. Bu yazıda, LLM’lere kimlik kazandırmayı ve “sen bunu göremezsin” demeyi (yani RBAC LLM sistemlerini) fantezi dünyasından çıkarıp pratik bir teste tabi tutuyoruz.

Neden Normal Güvenlik Önlemleri LLM’lerde İşe Yaramıyor?

Klasik sistemlerde veri güvenliği nispeten kolaydır. Bir veritabanınız vardır, kullanıcı rollerini tanımlarsınız (örneğin HR, Satış, IT) ve her rolün hangi tablolara erişebileceğini belirlersiniz. Ancak işin içine LLM (Büyük Dil Modeli) ve RAG (Retrieval-Augmented Generation) girdiğinde işler karmaşıklaşıyor. Çünkü LLM’ler statik veritabanları gibi davranmaz. Doğal dili anlar, sentezler ve bazen de tahmin edilemez şekilde “halüsinasyon” görerek yetkisiz bilgileri dışarı sızdırabilir.

Buradaki en büyük risk, modelin çıkarım (inference) aşamasında yaşanır. Eğer kullanıcının kimliğini doğrulamadan ve rol tabanlı erişim kontrolü (RBAC) uygulamadan doğrudan LLM API’sine erişim verirseniz, prompt injection saldırılarına veya veri sızıntılarına kapıyı sonuna kadar açmış olursunuz. İşte bu yüzden modern mimarilerde AI Governance (Yapay Zeka Yönetişimi) ve LLM Identity kavramları hayati önem taşıyor.

[Görsel: Geleneksel güvenlik mimarisi ile LLM Gateway güvenlik mimarisinin karşılaştırmalı şeması]

Uygulamalı Test: LiteLLM ile Yetki Katmanı Kuruyoruz

Boş vaatleri ve teorik slaytları bir kenara bırakalım; biz pratikte ne yapabiliyoruz ona bakalım. Bu test senaryomuzda, şirket içi LLM güvenliğini sağlamak amacıyla açık kaynaklı popüler bir LLM Gateway olan LiteLLM aracını kullandık. LiteLLM, tüm yapay zeka sağlayıcılarının (OpenAI, Anthropic, yerel LLaMA modelleri vb.) önüne konumlanan akıllı bir proxy gibi çalışıyor.

Adım 1: Gateway Kurulumu

İlk olarak LiteLLM’i docker üzerinde hızlıca ayağa kaldırdık. Bu sayede tüm LLM isteklerini tek bir noktadan yönetebileceğiz. Terminalde şu komutla proxy’yi başlattık:

docker run -gp 4000:4000 ghcr.io/berriai/litellm:main-latest --config /app/config.yaml

Adım 2: Rol Tabanlı Erişim (RBAC LLM) Kuralları Tanımlama

Testimizde iki farklı kullanıcı profili (LLM Identity) oluşturduk:

  • Pazarlama Ekibi: Sadece daha ucuz olan GPT-3.5 modeline erişebilir ve aylık 10 dolar bütçe sınırı vardır. Hassas dökümanlara erişimi yoktur.
  • Veri Analitiği Ekibi: En gelişmiş GPT-4o modeline erişebilir, bütçe sınırı yüksektir ve şirketin veri ambarındaki RAG dökümanlarını sorgulayabilir.

[Görsel: LiteLLM admin paneli üzerinde kullanıcı tanımlama, API anahtarı üretme ve bütçe sınırlandırma ekranı]

Yaptığımız denemede, Pazarlama ekibinden aldığımız bir API anahtarı ile GPT-4o modeline istek atmayı denedik. Sistem, isteği daha ana OpenAI sunucularına göndermeden, çıkarım (inference) öncesi aşamada yakaladı ve bize şu hatayı döndürdü:

{
  "error": "AccessDenied: User 'marketing_user' does not have permission to access model 'gpt-4o'."
}

Bu test bize gösterdi ki, LLM entegrasyonlarında güvenliği sağlamanın en temiz yolu, istekleri doğrudan modele göndermek yerine, araya kimlik doğrulama yapabilen ve prompt’ları filtreleyebilen bir “AI Gateway” katmanı koymaktır.

Yöntemlerin Karşılaştırılması: Gateway vs. Doğrudan API Entegrasyonu

Şirket içi yapay zeka projelerinde hangi yöntemi seçeceğiniz konusunda kararsız olabilirsiniz. Sizin için hazırladığımız karşılaştırma tablosu karar vermenizi kolaylaştırabilir:

Özellik Doğrudan API Kullanımı Yapay Zeka Gateway (LiteLLM/Portkey)
Kimlik Doğrulama (LLM Identity) Yok (Herkes aynı anahtarı kullanır) Var (Kullanıcı veya departman bazlı benzersiz anahtarlar)
Rol Tabanlı Yetki (RBAC LLM) Zor (Kodla tek tek yazılması gerekir) Kolay (Arayüzden veya config dosyasından yönetilir)
Maliyet ve Bütçe Kontrolü Sadece global limit konabilir Kullanıcı ve model bazlı bütçe limitleri atanabilir
Prompt Güvenliği (Guardrails) Geliştiriciye bağlı Merkezi olarak yönetilebilir ve filtrelenebilir

Maliyetler ve Ücretsiz Alternatifler

Kurumsal LLM güvenliği sağlamak için illa ki binlerce dolar harcamanıza gerek yok. İşte kullanabileceğiniz seçenekler:

  • LiteLLM (Açık Kaynak): Tamamen ücretsiz ve kendi sunucunuzda barındırabilirsiniz. Bizim de testte kullandığımız bu versiyon çoğu KOBİ ve orta ölçekli şirket için fazlasıyla yeterli. Kurumsal destek ve gelişmiş dashboard isterseniz Enterprise planlarına geçiş yapabiliyorsunuz.
  • Portkey.ai: SaaS olarak hizmet veren, gelişmiş bir AI Gateway. Aylık 10.000 isteğe kadar ücretsiz bir planı var. Sonrasında ise kullandıkça öde (pay-as-you-go) modeline geçiyor.
  • Langfuse: Özellikle açık kaynak kodlu LLM takibi ve güvenliği odaklı harika bir alternatif. Kendi sunucunuzda (self-hosted) ücretsiz çalıştırabilirsiniz.

Son Söz: Yapay Zekaya Güvenin Ama Sınırlarını Çizin

Yapay zeka modelleri kendilerine verilen verileri işlemek konusunda harikalar yaratıyor, ancak etik veya kurumsal güvenlik sınırlarını kendi kendilerine çizemezler. Kurumsal Yapay Zeka Güvenliği, teknoloji ekiplerinin bugünden alması gereken en kritik aksiyonlardan biri. Şirket içi dökümanlarınızı bir LLM ile buluşturmadan önce, araya mutlaka bir kimlik doğrulama ve yetkilendirme katmanı koyun. Aksi takdirde, dahi asistanınızın bir gün en büyük bilgi sızdırıcınız haline gelmesi işten bile değil!

Category: Genel | LEAVE A COMMENT
Haziran 23 2026

LLM Yanıtlarını Şansa Bırakmayın: Promptfoo ile Prompt Test Otomasyonu ve Güvenlik Analizi

Yapay zeka modelleriyle çalışan hemen herkes şu senaryoyu yaşamıştır: Promptunuza küçük bir kelime eklersiniz, her şey harika çalışır. Ertesi gün başka bir kelimeyi değiştirirsiniz ve tüm sistem çorba olur. İşte bu kaosu engellemek, sistemli bir prompt testi yapmak ve modern standartlarda yapay zeka guvenligi sağlamak için bugün radarımıza harika bir açık kaynaklı araç alıyoruz: Promptfoo. LLM çıktılarını şansa bırakmamak ve bilimsel bir llm evaluation (LLM değerlendirme) süreci işletmek için bu aracı tüm detaylarıyla inceliyoruz.

“Vibe-Driven Development” Devri Kapandı: Neden Promptfoo?

Yazılım dünyasında uzun yıllardır “Test Driven Development” (Test Odaklı Geliştirme) dediğimiz, kodun doğruluğunu otomatize testlerle ölçtüğümüz bir standart var. Ancak yapay zeka dünyasında işler hala biraz “hislere” göre yürüyor. Promptu değiştir, ChatGPT’ye üç kez sor, “Tamam, güzel cevap veriyor” de ve yayına al. Biz buna sektörde esprili bir şekilde “Vibe-driven development” (Hislere göre geliştirme) diyoruz.

Peki ya kullanıcı binlerce farklı girdi gönderdiğinde ne olacak? Promptunuzun halüsinasyon görmeyeceğini, hassas verileri sızdırmayacağını veya rakiplerinizi övmeyeceğini nasıl garanti edebilirsiniz? İşte Promptfoo tam olarak bu boşluğu dolduruyor. Promptlarınızı, modellerinizi ve parametrelerinizi tıpkı bir birim testi (unit test) yazar gibi otomatik olarak test etmenizi sağlıyor.

[Görsel: Promptfoo CLI arayüzünde yeşil ve kırmızı test sonuçlarının detaylı görünümü]

Promptfoo Nasıl Çalışır? Pratik Bir Senaryo

Promptfoo’nun mantığı oldukça basittir: Prompt şablonlarınızı, test etmek istediğiniz değişkenleri (inputs) ve testin başarılı sayılması için gereken kriterleri (asserts) bir YAML dosyasında tanımlarsınız. Gerisini Promptfoo halleder.

Gelin, teknik jargonla boğulmadan basit bir müşteri destek botu senaryosu üzerinden gidelim. Amacımız, botumuzun rakip firmaların isimlerini asla telaffuz etmemesini sağlamak.

1. Kurulum

Promptfoo, Node.js ortamında çalışan bir CLI (komut satırı) aracıdır. Terminalinizi açıp şu komutla hızlıca kurabilirsiniz:

npm install -g promptfoo

2. Test Yapılandırması (promptfooconfig.yaml)

Ardından projenizin kök dizininde bir yapılandırma dosyası oluşturuyoruz. Bu dosyada hangi modeli kullanacağımızı, promptumuzu ve test senaryolarımızı belirtiyoruz:

prompts:
  - "Sen bir müşteri destek asistanısın. Müşterinin sorusu: {{soru}}. Cevap verirken asla rakiplerimiz olan 'X-Kargo' veya 'Y-Lojistik' firmalarından bahsetme."

providers:
  - openai:gpt-4o-mini

tests:
  - vars:
      soru: "Kargom ne zaman ulaşır? X-Kargo sizden daha mı hızlı?"
    assert:
      - type: not-contains
        value: "X-Kargo"
      - type: contains
        value: "Kargo"

  - vars:
      soru: "Fiyat listeniz nedir?"
    assert:
      - type: llm-rubric
        value: "Cevap kurumsal ve nazik bir tonda olmalı."

3. Testi Çalıştırma

Yapılandırma dosyamızı hazırladıktan sonra tek yapmamız gereken terminale şu komutu yazmak:

promptfoo eval

Promptfoo belirlediğiniz LLM’e (örneğimizde GPT-4o-mini) istekleri gönderir, gelen yanıtları yazdığınız kurallarla (not-contains, llm-rubric vb.) karşılaştırır ve size detaylı bir rapor sunar. Eğer test sonuçlarını tarayıcıda görsel olarak incelemek isterseniz promptfoo view komutuyla harika bir web arayüzüne erişebilirsiniz.

Yapay Zeka Güvenliği (Red Teaming) ve Otomatik Açık Tarama

Promptfoo’yu sadece basit bir “girdi-çıktı kontrolcüsü” olarak görmek ona haksızlık olur. Aracın en güçlü yanlarından biri, yerleşik olarak gelen yapay zeka guvenligi ve “red teaming” (siber güvenlik saldırı simülasyonu) araçlarıdır.

Sistemlerinize yapılabilecek prompt injection (prompt sızması) saldırılarını, zararlı içerik üretme potansiyellerini veya sisteme hassas veri söyletme (PII leakage) çabalarını Promptfoo ile otomatik olarak simüle edebilirsiniz. Araç, kendi içerisinde barındırdığı hazır saldırı vektörlerini sisteminize göndererek promptunuzun bu saldırılara karşı ne kadar dirençli olduğunu raporlar.

[Görsel: Promptfoo kırmızı takım (red teaming) raporlama ekranı ve güvenlik açıklarının listesi]

Promptfoo Artıları ve Eksileri

Piyasada birçok llm evaluation aracı bulunuyor. Promptfoo’yu kendi testlerimizde deneyimledikten sonra çıkardığımız artı ve eksi tablosu şu şekilde:

Özellik Artıları (+) Eksileri (-)
Kurulum ve Kullanım YAML tabanlı, kod yazmadan test senaryoları oluşturulabiliyor. Çok hızlı. Node.js bağımlılığı var; saf Python geliştiricileri için ilk başta yabancı gelebilir.
Model Desteği OpenAI, Anthropic, Ollama, HuggingFace ve yerel API’lerin neredeyse tümünü destekliyor. Bazı yerel modellerde entegrasyon ayarları karmaşıklaşabiliyor.
Güvenlik Analizi Gelişmiş “red teaming” yetenekleri ücretsiz ve yerleşik olarak sunuluyor. Güvenlik testleri çok fazla token tükettiği için API maliyetlerini artırabiliyor.
Arayüz Yerel web arayüzü (CLI üzerinden açılan) oldukça başarılı ve anlaşılır. Çok büyük test setlerinde tarayıcı arayüzü bazen yavaşlayabiliyor.

Fiyatlandırma ve Ücretsiz Alternatifler

Promptfoo, tamamen **açık kaynak kodlu (open-source)** ve **ücretsiz** bir araçtır. Kendi bilgisayarınızda veya kendi sunucunuzda (self-hosted) tamamen ücretsiz olarak çalıştırabilirsiniz. Bu durum, özellikle veri gizliliğine önem veren kurumsal projeler için devasa bir avantajdır.

Ancak, kurumsal ekipler için iş birliği özelliklerinin ve gelişmiş analizlerin yer aldığı, bulut tabanlı ücretli bir “Promptfoo Enterprise” sürümü de mevcuttur.

Popüler Ücretsiz ve Açık Kaynaklı Alternatifler

  • DeepEval: Özellikle Python ekosisteminde çalışan geliştiriciler için harika bir alternatiftir. Birim testlerinizi popüler test kütüphanesi Pytest ile yazmanıza olanak tanır.
  • Ragas: Özellikle RAG (Retrieval-Augmented Generation – Bilgi Geri Getirme tabanlı) sistemleri optimize etmek ve test etmek için özelleşmiş mükemmel bir kütüphanedir.
  • LangSmith: LangChain ekosisteminin bir parçasıdır. Gelişmiş izleme (tracing) ve test özellikleri sunar. Belirli bir kota limitine kadar ücretsiz paketi (freemium) mevcuttur, sonrasında ücretlendirilir.

Son Söz: Promptlarınızı Şansa Bırakmayın

Günün sonunda, yapay zeka entegrasyonuna sahip bir uygulama geliştiriyorsanız, kullanıcılarınıza sunacağınız deneyimin kalitesi doğrudan promptlarınızın kararlılığına bağlıdır. Promptfoo, bu kararlılığı ölçülebilir rakamlara döken, geliştirme sürecinizi hızlandıran ve sizi beklenmedik LLM sürprizlerinden koruyan harika bir cankurtaran.

Eğer siz de “vibe-driven” yöntemlerden sıkıldıysanız ve projelerinize gerçek bir prompt testi disiplini getirmek istiyorsanız, Promptfoo’ya kesinlikle bir şans vermelisiniz.

Category: Genel | LEAVE A COMMENT
Haziran 22 2026

Kuzey Afrika Rüzgarları: Evde Geleneksel Fas Tajini (Tagine) Yapımı

Mutfağınızda yeni ve egzotik bir macera aramaya ne dersiniz? Bugün sizi, kokusuyla sokakları büyüleyen Fas’a götürüyoruz. Evde orijinal bir fas tajini tarifi denemek, sandığınızdan çok daha kolay. Üstelik bu yemek, yoğun bir günün ardından kendinizi şımartmanın en lezzetli ve zahmetsiz yolu. Kuzey afrika yemekleri arasında bir yıldız gibi parlayan bu tarifle, mutfakta usta olmasanız bile misafirlerinize adeta bir ziyafet çekeceksiniz.

Porsiyon: 4 Kişilik
Hazırlık Süresi: 20 Dakika
Pişirme Süresi: 2 Saat

Tagine Nasıl Yapılır? Bu Konik Kapağın Sırrı Ne?

Peki, geleneksel tagine nasıl yapılır ve bu yemeği bu kadar yumuşak yapan sır nedir? İşin aslı tamamen fizik kurallarında gizli. Tajin kabının o meşhur konik kapağı, buharın yukarı tırmanıp yoğunlaşarak tekrar yemeğin üzerine damlamasını sağlar. Yani etler kendi suyuyla sürekli yıkanır ve asla kurumaz.

Evinizde geleneksel toprak bir tajin kabı yoksa hiç üzülmeyin. Kalın tabanlı bir döküm tencere (Dutch oven) de aynı işi görür. Bu tarifte, geleneksel yavaş pişirme teknikleri ile modern mutfak pratiklerini bir araya getirerek en iyi sonucu alacağız.

Gerekli Malzemeler

Fas mutfağının en belirgin özelliği tatlı ve baharatlı aromaların dengesidir. İşte ihtiyacınız olan malzemeler ve evdeki duruma göre kullanabileceğiniz alternatifleri:

  • Et: 500 gram kuzu kuşbaşı (Bütçe dostu veya daha hafif bir alternatif arayanlar için tavuk but da harika olur).
  • Sebze & Temel: 1 büyük boy kuru soğan (piyazlık doğranmış), 2 diş sarımsak (ezilmiş).
  • Meyveler: 1 çay bardağı kuru kayısı ve çekirdeksiz kuru erik (Tatlı-tuzlu dengesini sevmiyorsanız yerine havuç ve patates ekleyebilirsiniz).
  • Bakliyat: 1 çay bardağı haşlanmış nohut (Yemeğe harika bir doku ve doyuruculuk katıyor).
  • Yağ: 1 yemek kaşığı tereyağı ve 2 yemek kaşığı zeytinyağı.
  • Baharatlar: 1’er çay kaşığı tarçın, zencefil, zerdeçal, kimyon, tuz ve karabiber.
  • Süslemek için: Kavrulmuş file badem ve taze kişniş.

Adım Adım Fas Tajini Tarifi

Hazırlık süreci oldukça basit. Malzemeleri tencereye koyacağız ve gerisini zamana bırakacağız. İşte izlemeniz gereken adımlar:

  1. Etleri Mühürleyin: Tencerenizi veya tajin kabınızı orta ateşte ısıtın. Zeytinyağı ve tereyağını ekleyin. Etleri tencereye alıp dış kısımları güzelce karamelize olana kadar yüksek ateşte mühürleyin.
  2. Aromaları Serbest Bırakın: Ocağın altını biraz kısın. Doğranmış soğanları ve sarımsakları ekleyin. Soğanlar yumuşayıp şeffaf bir kıvam alana kadar yaklaşık 5 dakika kavurun.
  3. Baharat Şöleni: Tarçın, zencefil, zerdeçal, kimyon, tuz ve karabiberi tencereye ekleyin. Baharatları yağla birlikte yaklaşık 1 dakika boyunca kokusu çıkana kadar kavurun. Bu aşama baharatların aromasını uyandırmak için çok önemlidir.
  4. Yavaş Pişirmeye Geçiş: Üzerine 1,5 su bardağı sıcak su ekleyin ve karıştırın. Tencerenin kapağını sıkıca kapatın. Ocağın en küçük gözünde, en kısık ateşte (veya 160 dereceye ısıtılmış fırında) etler yumuşayana kadar yaklaşık 1.5 saat pişmeye bırakın.
  5. Meyveleri ve Nohutu Ekleyin: Süre sonunda tencereyi açın. Kuru kayısıları, erikleri ve haşlanmış nohutları ekleyin. Hafifçe karıştırıp kapağı tekrar kapatın. Meyveler sosu çekip şişene kadar 20 dakika daha pişirin.
  6. Sunum: Yemeği ocaktan alın. Üzerine yağsız tavada hafifçe pembeleştirdiğiniz file bademleri ve taze kişniş yapraklarını serpiştirerek sıcak servis yapın.

Püf Noktası

Eğer orijinal bir toprak tajin kabı kullanıyorsanız, ısıyı doğrudan vermemelisiniz. Kabın altına mutlaka bir ısı dağıtıcı (nihale benzeri metal aparat) koyun. Ayrıca toprak kapları ani sıcaklık değişimlerinden korumalısınız; sıcak kaba asla soğuk su eklemeyin, aksi takdirde çatlama yapabilir. Döküm tencere kullanıyorsanız bu konuda endişelenmenize gerek yok!

Fas tajini geleneksel olarak kuskus veya taze ekmekle servis edilir. Suyu o kadar lezzetli olur ki, ekmeğinizi bana bana yemeye doyamayacaksınız. Şimdiden afiyet olsun!

Category: Genel | LEAVE A COMMENT