{"id":33568,"date":"2025-11-04T13:41:18","date_gmt":"2025-11-04T10:41:18","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33568"},"modified":"2025-11-04T13:41:18","modified_gmt":"2025-11-04T10:41:18","slug":"kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/","title":{"rendered":"Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz"},"content":{"rendered":"<p><body><\/p>\n<h2>Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz<\/h2>\n<p>Mikroservis mimarileri, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde esneklik, \u00f6l\u00e7eklenebilirlik ve ba\u011f\u0131ms\u0131z da\u011f\u0131t\u0131m imkanlar\u0131 sunarak b\u00fcy\u00fck pop\u00fclerlik kazanm\u0131\u015ft\u0131r. Ancak bu mimarilerin getirdi\u011fi avantajlar\u0131n yan\u0131 s\u0131ra, geli\u015ftirme s\u00fcre\u00e7lerinde kar\u015f\u0131la\u015f\u0131lan zorluklar da g\u00f6z ard\u0131 edilemez. \u00d6zellikle Kubernetes gibi konteyner orkestrasyon platformlar\u0131 \u00fczerinde \u00e7al\u0131\u015fan mikroservisleri yerel bir geli\u015ftirme ortam\u0131nda efektif bir \u015fekilde test etmek ve hata ay\u0131klamak, geleneksel y\u00f6ntemlerle olduk\u00e7a karma\u015f\u0131k ve zaman al\u0131c\u0131 olabilmektedir. MacOS \u00fczerinde geli\u015ftirme yapan m\u00fchendisler i\u00e7in bu durum, verimlili\u011fi ciddi \u00f6l\u00e7\u00fcde etkileyebilir. \u0130\u015fte tam bu noktada Telepresence gibi ara\u00e7lar, geli\u015ftirme deneyimini k\u00f6kten de\u011fi\u015ftiren bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h3>Giri\u015f: Telepresence Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>Telepresence, yerel geli\u015ftirme ortam\u0131n\u0131z\u0131 bir Kubernetes k\u00fcmesine ba\u011flayarak, sanki uygulaman\u0131z k\u00fcme i\u00e7inde \u00e7al\u0131\u015f\u0131yormu\u015f gibi hissetmenizi sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7t\u0131r. Geli\u015ftiricilerin, yerel makinelerinde \u00e7al\u0131\u015fan bir servisi, Kubernetes k\u00fcmesindeki di\u011fer servislerle do\u011frudan ileti\u015fim kurabilecek \u015fekilde yap\u0131land\u0131rmas\u0131na olanak tan\u0131r. Bu sayede, t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 k\u00fcmede bulunan bir mikroservis \u00fczerinde \u00e7al\u0131\u015f\u0131rken, kod de\u011fi\u015fikliklerini an\u0131nda test edebilir ve yerel IDE&#8217;lerinin g\u00fc\u00e7l\u00fc hata ay\u0131klama yeteneklerinden faydalanabilirler. MacOS kullan\u0131c\u0131lar\u0131 i\u00e7in bu, karma\u015f\u0131k Docker veya Kubernetes yerel kurulumlar\u0131na gerek kalmadan, h\u0131zl\u0131 ve ger\u00e7ek\u00e7i bir geli\u015ftirme ortam\u0131 demektir.<\/p>\n<p>Bu makalede, Telepresence&#8217;\u0131n ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu, MacOS \u00fczerinde nas\u0131l kurulup yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131, temel kullan\u0131m senaryolar\u0131n\u0131 ve pratik bir \u00f6rnek \u00fczerinden nas\u0131l h\u0131zl\u0131 geli\u015ftirme yapabilece\u011finizi detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Amac\u0131m\u0131z, Kubernetes tabanl\u0131 mikroservis geli\u015ftirme s\u00fcre\u00e7lerinizi Telepresence ile nas\u0131l optimize edebilece\u011finizi ad\u0131m ad\u0131m g\u00f6stermektir.<\/p>\n<h3>Yerel Geli\u015ftirme ve Kubernetes \u00c7\u0131kmaz\u0131<\/h3>\n<p>Geleneksel olarak, bir mikroservis mimarisinde geli\u015ftirme yaparken kar\u015f\u0131la\u015f\u0131lan en b\u00fcy\u00fck sorunlardan biri, geli\u015ftirilen servisin di\u011fer ba\u011f\u0131ml\u0131 servislerle nas\u0131l etkile\u015fime girece\u011fini test etmektir. Bir\u00e7ok senaryoda, geli\u015ftiriciler \u015fu yakla\u015f\u0131mlardan birini dener:<\/p>\n<p>*   <strong>Mocklama veya Stubbing:<\/strong> Ba\u011f\u0131ml\u0131 servislerin davran\u0131\u015flar\u0131n\u0131 taklit eden sahte nesneler (mocks) olu\u015fturmak. Bu y\u00f6ntem, birim testleri i\u00e7in uygun olsa da, ger\u00e7ek entegrasyon sorunlar\u0131n\u0131 ortaya \u00e7\u0131karmada yetersiz kalabilir ve mock&#8217;lar\u0131n g\u00fcncel kalmas\u0131 ek bir y\u00fck getirir.<br \/>\n*   <strong>Yerel K\u00fcmeler (Minikube, Kind, Docker Desktop Kubernetes):<\/strong> Yerel makinede hafif bir Kubernetes k\u00fcmesi \u00e7al\u0131\u015ft\u0131rmak. Bu, daha ger\u00e7ek\u00e7i bir ortam sunsa da, ciddi CPU ve RAM t\u00fcketimine neden olabilir, \u00f6zellikle de karma\u015f\u0131k bir mikroservis uygulamas\u0131 i\u00e7in. Ayr\u0131ca, yerel k\u00fcmelerin kurulumu ve y\u00f6netimi ek zaman ve \u00e7aba gerektirir.<br \/>\n*   <strong>Uzak Geli\u015ftirme K\u00fcmeleri:<\/strong> Geli\u015ftiricilerin her birinin veya bir ekibin ortak kulland\u0131\u011f\u0131 bir uzak Kubernetes k\u00fcmesi \u00fczerinde \u00e7al\u0131\u015fmas\u0131. Bu durumda, kod de\u011fi\u015fikliklerini test etmek i\u00e7in s\u00fcrekli olarak imaj olu\u015fturup k\u00fcme \u00fczerinde da\u011f\u0131tmak gerekir ki bu da yava\u015f bir geri bildirim d\u00f6ng\u00fcs\u00fc yarat\u0131r. Hata ay\u0131klama ise genellikle log takibi veya uzak kabuk eri\u015fimi ile s\u0131n\u0131rl\u0131 kal\u0131r.<\/p>\n<p>Bu yakla\u015f\u0131mlar\u0131n her birinin kendine g\u00f6re dezavantajlar\u0131 vard\u0131r: yava\u015f geri bildirim d\u00f6ng\u00fcleri, ger\u00e7ek ortam ko\u015fullar\u0131ndan sapmalar, y\u00fcksek kaynak t\u00fcketimi veya karma\u015f\u0131k hata ay\u0131klama s\u00fcre\u00e7leri. T\u00fcm bunlar, geli\u015ftiricilerin verimlili\u011fini d\u00fc\u015f\u00fcr\u00fcr ve &#8220;it works on my machine&#8221; sendromuna yol a\u00e7abilir. Telepresence, bu \u00e7\u0131kmaz\u0131 a\u015fmak i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h3>Telepresence Nedir ve Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p>Telepresence, yerel makineniz ile uzak Kubernetes k\u00fcmesi aras\u0131nda bir vekil (proxy) g\u00f6revi g\u00f6rerek \u00e7al\u0131\u015f\u0131r. Temel prensip, k\u00fcmedeki bir servise gelen trafi\u011fi yerel makinenizdeki bir porta y\u00f6nlendirmek ve yerel makinenizden k\u00fcmedeki di\u011fer servislere giden trafi\u011fi sanki k\u00fcme i\u00e7inden geliyormu\u015f gibi g\u00f6stermektir. Bu, &#8220;intercept&#8221; (kesme\/y\u00f6nlendirme) ad\u0131 verilen bir mekanizma ile ger\u00e7ekle\u015ftirilir.<\/p>\n<h4>Temel Bile\u015fenler:<\/h4>\n<p>*   <strong>Telepresence CLI (Client):<\/strong> Geli\u015ftiricinin yerel makinesinde \u00e7al\u0131\u015fan komut sat\u0131r\u0131 arac\u0131d\u0131r. Ba\u011flant\u0131y\u0131 y\u00f6netir, interceptleri olu\u015fturur ve trafi\u011fi y\u00f6nlendirir.<br \/>\n*   <strong>Traffic Manager:<\/strong> Kubernetes k\u00fcmesinde \u00e7al\u0131\u015fan bir kontrol d\u00fczlemi bile\u015fenidir. Telepresence CLI ile ileti\u015fim kurar ve k\u00fcmedeki servislerin trafi\u011fini y\u00f6netir. \u0130lk ba\u011flant\u0131da otomatik olarak k\u00fcme \u00fczerine da\u011f\u0131t\u0131l\u0131r.<br \/>\n*   <strong>Traffic Agent:<\/strong> Intercept edilmek istenen her bir pod&#8217;a &#8220;sidecar&#8221; olarak enjekte edilen bir bile\u015fendir. Gelen ve giden trafi\u011fi Traffic Manager arac\u0131l\u0131\u011f\u0131yla y\u00f6nlendirir.<\/p>\n<h4>\u00c7al\u0131\u015fma Mekanizmas\u0131:<\/h4>\n<p>1.  <strong>Ba\u011flant\u0131 Kurma (<code>telepresence connect<\/code>):<\/strong> Telepresence CLI, yerel makineniz ile Kubernetes k\u00fcmesi aras\u0131nda g\u00fcvenli bir VPN t\u00fcneli olu\u015fturur. Bu t\u00fcnel, yerel makinenizin a\u011f yap\u0131land\u0131rmas\u0131n\u0131 de\u011fi\u015ftirerek k\u00fcme i\u00e7indeki IP adreslerine do\u011frudan eri\u015fim sa\u011flar.<br \/>\n2.  <strong>Intercept Olu\u015fturma (<code>telepresence intercept<\/code>):<\/strong> Bir servisi intercept etti\u011finizde, Telepresence o servisin pod&#8217;lar\u0131na bir Traffic Agent sidecar&#8217;\u0131 enjekte eder (e\u011fer daha \u00f6nce yoksa) ve servise gelen trafi\u011fi kendi \u00fczerine al\u0131r.<br \/>\n    *   <strong>Global Intercept:<\/strong> T\u00fcm gelen trafi\u011fi yerel makinenize y\u00f6nlendirir. Bu, genellikle tek ba\u015f\u0131na \u00e7al\u0131\u015fan bir geli\u015ftirici i\u00e7in veya entegrasyon testlerinde kullan\u0131l\u0131r.<br \/>\n    *   <strong>Personal Intercept (Header-based Routing):<\/strong> Belirli bir HTTP ba\u015fl\u0131\u011f\u0131na (\u00f6rne\u011fin, <code>x-telepresence-dev-id: yourname<\/code>) sahip trafi\u011fi yerel makinenize y\u00f6nlendirirken, di\u011fer trafi\u011fi k\u00fcmedeki orijinal servise b\u0131rak\u0131r. Bu, birden fazla geli\u015ftiricinin ayn\u0131 k\u00fcme \u00fczerinde izole bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<br \/>\n3.  <strong>Trafik Y\u00f6nlendirme:<\/strong><br \/>\n    *   <strong>Gelen Trafik:<\/strong> Intercept edilen servise gelen trafik, Traffic Agent taraf\u0131ndan yakalan\u0131r ve VPN t\u00fcneli \u00fczerinden yerel makinenizdeki belirtilen porta y\u00f6nlendirilir. Yerel uygulaman\u0131z bu trafi\u011fi i\u015fler.<br \/>\n    *   <strong>Giden Trafik:<\/strong> Yerel uygulaman\u0131zdan k\u00fcmedeki di\u011fer servislere yap\u0131lan istekler, VPN t\u00fcneli \u00fczerinden Traffic Manager&#8217;a ula\u015f\u0131r ve buradan k\u00fcme i\u00e7indeki ilgili servislere y\u00f6nlendirilir. B\u00f6ylece yerel uygulaman\u0131z, di\u011fer k\u00fcme i\u00e7i servisleri sanki k\u00fcme i\u00e7inde \u00e7al\u0131\u015f\u0131yormu\u015f gibi \u00e7a\u011f\u0131rabilir.<br \/>\n4.  <strong>Ortam De\u011fi\u015fkenleri ve Dosya Sistemleri:<\/strong> Telepresence, k\u00fcmedeki intercept edilen servisin ortam de\u011fi\u015fkenlerini ve hatta baz\u0131 durumlarda dosya sistemini (ConfigMap, Secret) yerel makinenize aktarabilir. Bu, yerel uygulaman\u0131z\u0131n k\u00fcme i\u00e7indeki ko\u015fullara uygun \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Telepresence&#8217;\u0131n Sundu\u011fu Avantajlar<\/h3>\n<p>Telepresence, mikroservis geli\u015ftirme s\u00fcre\u00e7lerinde bir dizi \u00f6nemli avantaj sunar:<\/p>\n<h4>H\u0131zl\u0131 Geri Bildirim D\u00f6ng\u00fcs\u00fc<\/h4>\n<p>Kod de\u011fi\u015fikliklerinizi test etmek i\u00e7in art\u0131k imaj olu\u015fturup, Docker Registry&#8217;e push edip, Kubernetes&#8217;e deploy etmenize gerek kalmaz. De\u011fi\u015fikli\u011fi yerel IDE&#8217;nizde kaydetti\u011finiz anda, yerel uygulaman\u0131z g\u00fcncellenir ve gelen trafik an\u0131nda yeni kodu test etmenizi sa\u011flar. Bu, geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc dakikalardan saniyelere indirir.<\/p>\n<h4>Ger\u00e7ek Ortam Ko\u015fullar\u0131<\/h4>\n<p>Ba\u011f\u0131ml\u0131 servisleri mocklamak veya yerel bir k\u00fcme kurmak yerine, Telepresence size ger\u00e7ek Kubernetes k\u00fcmesindeki canl\u0131 servislerle etkile\u015fim kurma imkan\u0131 sunar. Bu, entegrasyon hatalar\u0131n\u0131 \u00e7ok daha erken a\u015famalarda tespit etmenizi ve uygulaman\u0131z\u0131n ger\u00e7ek \u00fcretim ortam\u0131nda nas\u0131l davranaca\u011f\u0131n\u0131 daha do\u011fru bir \u015fekilde \u00f6ng\u00f6rmenizi sa\u011flar.<\/p>\n<h4>Geli\u015fmi\u015f Hata Ay\u0131klama<\/h4>\n<p>Yerel IDE&#8217;nizin (VS Code, IntelliJ IDEA vb.) g\u00fc\u00e7l\u00fc hata ay\u0131klama yeteneklerini (breakpointler, ad\u0131m ad\u0131m ilerleme, de\u011fi\u015fken incelemesi) do\u011frudan Kubernetes k\u00fcmesindeki bir servisle \u00e7al\u0131\u015f\u0131rken kullanabilirsiniz. Bu, karma\u015f\u0131k hatalar\u0131 tespit etme ve d\u00fczeltme s\u00fcrecini dramatik bir \u015fekilde h\u0131zland\u0131r\u0131r.<\/p>\n<h4>Kaynak Verimlili\u011fi<\/h4>\n<p>Yerel makinenizde t\u00fcm mikroservis y\u0131\u011f\u0131n\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak yerine, yaln\u0131zca \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z servisi yerel olarak \u00e7al\u0131\u015ft\u0131r\u0131rs\u0131n\u0131z. Di\u011fer t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar Kubernetes k\u00fcmesinde kal\u0131r. Bu, MacOS&#8217;unuzun CPU ve RAM kaynaklar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde korur, b\u00f6ylece daha ak\u0131c\u0131 bir geli\u015ftirme deneyimi sunar.<\/p>\n<h4>Kolay Entegrasyon<\/h4>\n<p>Telepresence, mevcut geli\u015ftirme i\u015f ak\u0131\u015flar\u0131n\u0131za kolayca entegre edilebilir. CI\/CD s\u00fcre\u00e7lerinizi veya di\u011fer geli\u015ftirme ara\u00e7lar\u0131n\u0131z\u0131 de\u011fi\u015ftirmenize gerek kalmaz. Sadece geli\u015ftirme a\u015famas\u0131nda devreye girerek geli\u015ftirici verimlili\u011fini art\u0131r\u0131r.<\/p>\n<h4>\u0130zolasyon ve G\u00fcvenlik<\/h4>\n<p>Personal Intercept \u00f6zelli\u011fi sayesinde, ayn\u0131 geli\u015ftirme k\u00fcmesini kullanan di\u011fer geli\u015ftiricilerin \u00e7al\u0131\u015fmalar\u0131n\u0131 etkilemeden kendi kod de\u011fi\u015fikliklerinizi test edebilirsiniz. Belirli HTTP ba\u015fl\u0131klar\u0131na g\u00f6re trafi\u011fi y\u00f6nlendirerek, sadece sizin isteklerinizin yerel uygulaman\u0131za gelmesini sa\u011flars\u0131n\u0131z. Bu, ortak geli\u015ftirme ortamlar\u0131nda \u00e7ak\u0131\u015fmalar\u0131 ve istenmeyen yan etkileri \u00f6nler.<\/p>\n<h3>Telepresence&#8217;\u0131 MacOS&#8217;ta Kurulum ve Yap\u0131land\u0131rma<\/h3>\n<p>Telepresence&#8217;\u0131 MacOS \u00fczerinde kullanmaya ba\u015flamak olduk\u00e7a basittir. \u0130\u015fte ad\u0131m ad\u0131m kurulum ve ilk ba\u011flant\u0131 s\u00fcreci:<\/p>\n<h4>\u00d6n Ko\u015fullar<\/h4>\n<p>*   <strong>Kubernetes K\u00fcmesi Eri\u015fimi:<\/strong> <code>kubectl<\/code> komutunun do\u011fru bir Kubernetes k\u00fcmesine i\u015faret etti\u011finden ve kimlik do\u011frulama ayarlar\u0131n\u0131n (kubeconfig) yap\u0131l\u0131 oldu\u011fundan emin olun. Telepresence, <code>kubectl<\/code>&#8216;in eri\u015febildi\u011fi herhangi bir k\u00fcmeyle \u00e7al\u0131\u015fabilir.<br \/>\n*   <strong>Homebrew:<\/strong> MacOS i\u00e7in pop\u00fcler bir paket y\u00f6neticisidir. Telepresence CLI&#8217;yi y\u00fcklemek i\u00e7in kullan\u0131lacakt\u0131r. E\u011fer y\u00fckl\u00fc de\u011filse, <code> \/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"<\/code> komutu ile y\u00fckleyebilirsiniz.<br \/>\n*   <strong>Docker (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong> Baz\u0131 Telepresence \u00f6zellikleri (\u00f6rne\u011fin, Docker konteynerleri i\u00e7inde intercept etme) i\u00e7in Docker Desktop&#8217;\u0131n y\u00fckl\u00fc olmas\u0131 gerekebilir, ancak temel kullan\u0131m i\u00e7in zorunlu de\u011fildir.<\/p>\n<h4>Telepresence CLI Kurulumu<\/h4>\n<p>Homebrew kullanarak Telepresence CLI&#8217;yi y\u00fcklemek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">brew install datawire\/telepresence\/telepresence<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Telepresence&#8217;\u0131n do\u011fru \u015fekilde y\u00fcklendi\u011fini do\u011frulamak i\u00e7in s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">telepresence version<\/code><\/pre>\n<h4>Gerekli \u0130zinler ve \u0130lk Ba\u011flant\u0131<\/h4>\n<p>Telepresence, yerel makineniz ile Kubernetes k\u00fcmesi aras\u0131nda bir VPN t\u00fcneli olu\u015fturur. Bu t\u00fcneli kurmak i\u00e7in sistem d\u00fczeyinde a\u011f ayarlar\u0131n\u0131 de\u011fi\u015ftirmesi gerekir, bu nedenle genellikle <code>sudo<\/code> yetkisi ister.<\/p>\n<p>\u0130lk ba\u011flant\u0131y\u0131 kurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">telepresence connect<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda:<\/p>\n<p>1.  Telepresence, <code>sudo<\/code> \u015fifrenizi isteyecektir. Bu, yerel makinenizde bir VPN bile\u015feni kurmak ve a\u011f yap\u0131land\u0131rmas\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7indir.<br \/>\n2.  E\u011fer k\u00fcmede bir Traffic Manager yoksa, Telepresence otomatik olarak <code>telepresence<\/code> namespace&#8217;ine bir Traffic Manager da\u011f\u0131t\u0131r. Bu i\u015flem biraz zaman alabilir.<br \/>\n3.  Ba\u011flant\u0131 ba\u015far\u0131l\u0131 oldu\u011funda, terminalinizde &#8220;Connected to context [your-kubernetes-context]&#8221; gibi bir mesaj g\u00f6receksiniz.<\/p>\n<p>Art\u0131k yerel makineniz, Kubernetes k\u00fcmesindeki servisleri do\u011frudan isimleriyle \u00e7\u00f6zebilir ve onlarla ileti\u015fim kurabilir. \u00d6rne\u011fin, <code>kubectl get svc<\/code> gibi komutlar \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda k\u00fcmedeki servisleri g\u00f6rebilirsiniz.<\/p>\n<h3>Telepresence ile Temel Kullan\u0131m Senaryolar\u0131<\/h3>\n<p>Telepresence ba\u011fland\u0131ktan sonra, \u00e7e\u015fitli kullan\u0131m senaryolar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc yeteneklerini kullanmaya ba\u015flayabilirsiniz.<\/p>\n<h4>Kubernetes K\u00fcmesine Ba\u011flanma<\/h4>\n<p>Daha \u00f6nce belirtildi\u011fi gibi, <code>telepresence connect<\/code> komutuyla ba\u011flant\u0131 kurulur. Bu komut, yerel makinenizin DNS ve a\u011f trafi\u011fini Kubernetes k\u00fcmesine y\u00f6nlendirir. Ba\u011flant\u0131 aktifken, yerel terminalinizden <code>kubectl<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilir ve k\u00fcme i\u00e7indeki servislerin DNS adlar\u0131n\u0131 do\u011frudan kullanabilirsiniz.<\/p>\n<h4>Yerel Bir Servisi K\u00fcmedeki Di\u011fer Servislerle Konu\u015fturma (Global Intercept)<\/h4>\n<p>Bu, Telepresence&#8217;\u0131n en temel ve g\u00fc\u00e7l\u00fc kullan\u0131m senaryosudur. Diyelim ki <code>my-service<\/code> ad\u0131nda bir mikroservis \u00fczerinde \u00e7al\u0131\u015f\u0131yorsunuz ve bu servis k\u00fcmedeki <code>database-service<\/code> ve <code>auth-service<\/code> gibi di\u011fer servislere ba\u011f\u0131ml\u0131.<\/p>\n<p>Yerel olarak <code>my-service<\/code>&#8216;i \u00e7al\u0131\u015ft\u0131rmak ve k\u00fcmedeki di\u011fer servislerle ileti\u015fim kurmas\u0131n\u0131 sa\u011flamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">telepresence intercept my-service --port 8080 --env-file .env<\/code><\/pre>\n<p>*   <code>my-service<\/code>: Kubernetes k\u00fcmesindeki intercept etmek istedi\u011finiz servisin ad\u0131.<br \/>\n*   <code>--port 8080<\/code>: Yerel makinenizde <code>my-service<\/code>&#8216;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 port. Telepresence, k\u00fcmeden gelen trafi\u011fi bu porta y\u00f6nlendirecektir.<br \/>\n*   <code>--env-file .env<\/code>: (\u0130ste\u011fe ba\u011fl\u0131) K\u00fcmedeki <code>my-service<\/code> pod&#8217;unun ortam de\u011fi\u015fkenlerini al\u0131r ve bunlar\u0131 <code>.env<\/code> adl\u0131 bir dosyaya yazar. Bu dosyay\u0131 yerel uygulaman\u0131zda kullanabilirsiniz.<\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, <code>my-service<\/code>&#8216;e gelen t\u00fcm trafik art\u0131k yerel makinenizdeki 8080 portuna y\u00f6nlendirilecektir. Yerel olarak \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z <code>my-service<\/code> uygulaman\u0131z, k\u00fcmedeki <code>database-service<\/code> ve <code>auth-service<\/code> gibi di\u011fer servislere do\u011frudan DNS isimleriyle eri\u015febilir.<\/p>\n<p>\u0130\u015finiz bitti\u011finde intercept&#8217;i sonland\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">telepresence leave my-service<\/code><\/pre>\n<h4>Giden Trafi\u011fi Y\u00f6nlendirme (Outbound Traffic)<\/h4>\n<p>Telepresence, yerel makinenizden k\u00fcmedeki di\u011fer servislere yap\u0131lan t\u00fcm giden a\u011f \u00e7a\u011fr\u0131lar\u0131n\u0131 otomatik olarak Kubernetes a\u011f\u0131 \u00fczerinden y\u00f6nlendirir. Bu, yerel uygulaman\u0131z\u0131n k\u00fcmedeki servisleri sanki k\u00fcme i\u00e7inde \u00e7al\u0131\u015f\u0131yormu\u015f gibi \u00e7a\u011f\u0131rmas\u0131n\u0131 sa\u011flar. \u00d6rne\u011fin, yerel makinenizde \u00e7al\u0131\u015fan bir test beti\u011fi, k\u00fcmedeki bir veritaban\u0131 servisine veya ba\u015fka bir API&#8217;ye do\u011frudan eri\u015febilir.<\/p>\n<h4>Ki\u015fisel Intercept (Personal Intercept) ile \u0130zole Geli\u015ftirme<\/h4>\n<p>Birden fazla geli\u015ftiricinin ayn\u0131 geli\u015ftirme k\u00fcmesini kulland\u0131\u011f\u0131 senaryolarda, global bir intercept yapmak di\u011fer geli\u015ftiricilerin \u00e7al\u0131\u015fmalar\u0131n\u0131 bozabilir. Personal Intercept, bu sorunu \u00e7\u00f6zmek i\u00e7in tasarlanm\u0131\u015ft\u0131r. Belirli bir HTTP ba\u015fl\u0131\u011f\u0131na sahip istekleri yerel makinenize y\u00f6nlendirirken, di\u011fer istekleri k\u00fcmedeki orijinal servise b\u0131rak\u0131r.<\/p>\n<p>\u00d6rnek: <code>my-service<\/code> i\u00e7in ki\u015fisel bir intercept olu\u015fturma:<\/p>\n<pre><code class=\"language-bash\">telepresence intercept my-service --port 8080 --env-file .env --http-match 'x-developer: yourname'<\/code><\/pre>\n<p>*   <code>--http-match 'x-developer: yourname'<\/code>: Bu, <code>x-developer<\/code> ba\u015fl\u0131\u011f\u0131 <code>yourname<\/code> de\u011ferine sahip olan HTTP isteklerinin yerel makinenize y\u00f6nlendirilmesini sa\u011flar. Di\u011fer t\u00fcm istekler k\u00fcmedeki orijinal <code>my-service<\/code>&#8216;e gitmeye devam edecektir.<\/p>\n<p>Art\u0131k, Postman, cURL veya ba\u015fka bir istemci ile <code>x-developer: yourname<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 i\u00e7eren istekleri <code>my-service<\/code>&#8216;e g\u00f6nderdi\u011finizde, bu istekler yerel makinenizdeki 8080 portuna gelecektir. Di\u011fer geli\u015ftiriciler ayn\u0131 servise istek g\u00f6nderdi\u011finde, onlar\u0131n istekleri k\u00fcmedeki servise gitmeye devam edecektir.<\/p>\n<h4>Ortam De\u011fi\u015fkenleri ve Dosya Sistemleri<\/h4>\n<p>Telepresence, intercept etti\u011finiz servisin Kubernetes pod&#8217;undan ortam de\u011fi\u015fkenlerini yerel makinenize aktarabilir. Bu, uygulaman\u0131z\u0131n k\u00fcmedeki yap\u0131land\u0131rma ile uyumlu \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. <code>--env-file<\/code> arg\u00fcman\u0131 ile bu de\u011fi\u015fkenleri bir dosyaya yazabilir ve yerel uygulaman\u0131z\u0131n bu dosyay\u0131 okumas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>Ayr\u0131ca, Telepresence baz\u0131 durumlarda k\u00fcmedeki ConfigMap&#8217;leri veya Secret&#8217;lar\u0131 yerel dosya sisteminize mount etme yetene\u011fi de sunar, ancak bu daha geli\u015fmi\u015f bir kullan\u0131m olup genellikle <code>--mount<\/code> arg\u00fcman\u0131 ile kontrol edilir.<\/p>\n<h3>Pratik Bir \u00d6rnek: Mikroservis Uygulamas\u0131 Geli\u015ftirme<\/h3>\n<p>\u015eimdi, Telepresence&#8217;\u0131 MacOS \u00fczerinde ger\u00e7ek bir mikroservis geli\u015ftirme senaryosunda nas\u0131l kullanabilece\u011fimizi ad\u0131m ad\u0131m inceleyelim. Diyelim ki \u00fc\u00e7 mikroservisten olu\u015fan bir uygulamam\u0131z var: <code>frontend-service<\/code>, <code>backend-service<\/code> ve <code>database-service<\/code>. Biz <code>backend-service<\/code> \u00fczerinde yeni bir \u00f6zellik geli\u015ftiriyoruz ve bu servis <code>database-service<\/code>&#8216;e ba\u011f\u0131ml\u0131. <code>frontend-service<\/code> ise <code>backend-service<\/code>&#8216;i \u00e7a\u011f\u0131r\u0131yor.<\/p>\n<p><strong>Senaryo:<\/strong> <code>backend-service<\/code>&#8216;e yeni bir endpoint ekliyoruz ve bu endpoint&#8217;in <code>database-service<\/code> ile do\u011fru \u015fekilde ileti\u015fim kurdu\u011funu do\u011frulamak istiyoruz.<\/p>\n<p><strong>Ad\u0131m 1: Kubernetes K\u00fcmesi ve \u00d6rnek Uygulaman\u0131n Da\u011f\u0131t\u0131m\u0131<\/strong><\/p>\n<p>\u00d6ncelikle, uygulaman\u0131n t\u00fcm servislerinin (frontend, backend, database) Kubernetes k\u00fcmesinde da\u011f\u0131t\u0131lm\u0131\u015f ve \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu varsayal\u0131m. <code>kubectl get pods<\/code> ve <code>kubectl get svc<\/code> komutlar\u0131yla servislerinizi kontrol edin.<\/p>\n<p><strong>Ad\u0131m 2: Telepresence Ba\u011flant\u0131s\u0131 Kurma<\/strong><\/p>\n<p>Yerel MacOS terminalinizde Telepresence ba\u011flant\u0131s\u0131n\u0131 kurun:<\/p>\n<pre><code class=\"language-bash\">telepresence connect<\/code><\/pre>\n<p><code>sudo<\/code> \u015fifrenizi girin ve ba\u011flant\u0131n\u0131n ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulay\u0131n.<\/p>\n<p><strong>Ad\u0131m 3: <code>backend-service<\/code> i\u00e7in Ki\u015fisel Intercept Olu\u015fturma<\/strong><\/p>\n<p><code>backend-service<\/code> \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z i\u00e7in, bu servisi intercept edece\u011fiz. Geli\u015ftirme k\u00fcmesinde ba\u015fka geli\u015ftiriciler de olabilece\u011fi i\u00e7in ki\u015fisel intercept kullanmak en iyisidir. <code>backend-service<\/code>&#8216;in yerel olarak 8080 portunda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 varsayal\u0131m.<\/p>\n<pre><code class=\"language-bash\">telepresence intercept backend-service --port 8080 --env-file backend.env --http-match 'x-dev-id: myuser'<\/code><\/pre>\n<p>Bu komut:<br \/>\n*   <code>backend-service<\/code>&#8216;e gelen ve <code>x-dev-id: myuser<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 i\u00e7eren HTTP isteklerini yerel makinenizdeki 8080 portuna y\u00f6nlendirecektir.<br \/>\n*   <code>backend-service<\/code>&#8216;in ortam de\u011fi\u015fkenlerini <code>backend.env<\/code> dosyas\u0131na yazacakt\u0131r.<\/p>\n<p>Terminalinizde intercept&#8217;in ba\u015far\u0131l\u0131 oldu\u011funu belirten bir mesaj g\u00f6receksiniz.<\/p>\n<p><strong>Ad\u0131m 4: Yerel <code>backend-service<\/code> Kodunu \u00c7al\u0131\u015ft\u0131rma<\/strong><\/p>\n<p>\u015eimdi, yerel IDE&#8217;nizde (\u00f6rne\u011fin VS Code veya IntelliJ IDEA) <code>backend-service<\/code> projenizi a\u00e7\u0131n.<br \/>\n<code>backend.env<\/code> dosyas\u0131n\u0131 okuyarak ortam de\u011fi\u015fkenlerini uygulaman\u0131za y\u00fckleyin (\u00e7o\u011fu modern \u00e7er\u00e7eve ve dil bunu kolayca yapar).<br \/>\nUygulaman\u0131z\u0131 yerel olarak 8080 portunda \u00e7al\u0131\u015ft\u0131r\u0131n (\u00f6rne\u011fin, bir Spring Boot uygulamas\u0131 i\u00e7in <code>mvn spring-boot:run<\/code> veya bir Node.js uygulamas\u0131 i\u00e7in <code>npm start<\/code>).<br \/>\nArt\u0131k yerel <code>backend-service<\/code>&#8216;iniz \u00e7al\u0131\u015f\u0131yor ve <code>backend.env<\/code> dosyas\u0131ndaki yap\u0131land\u0131rma ile k\u00fcmedeki di\u011fer servislere (\u00f6rne\u011fin <code>database-service<\/code>) do\u011frudan eri\u015febilir durumda.<\/p>\n<p><strong>Ad\u0131m 5: Geli\u015ftirmeleri Test Etme<\/strong><\/p>\n<p><code>frontend-service<\/code>&#8216;ten veya Postman\/cURL gibi bir ara\u00e7tan <code>backend-service<\/code>&#8216;e istek g\u00f6nderirken, <code>x-dev-id: myuser<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 eklemeyi unutmay\u0131n.<\/p>\n<p>\u00d6rne\u011fin, <code>frontend-service<\/code>&#8216;in <code>backend-service<\/code>&#8216;e <code>\/api\/new-feature<\/code> endpoint&#8217;i \u00fczerinden istek g\u00f6nderdi\u011fini varsayal\u0131m. Siz bu iste\u011fi Postman ile sim\u00fcle edebilirsiniz:<\/p>\n<p>*   <strong>Metod:<\/strong> GET\/POST<br \/>\n*   <strong>URL:<\/strong> <code>http:\/\/<frontend-service-cluster-ip>:<frontend-service-port>\/api\/new-feature<\/code> (veya <code>frontend-service<\/code>&#8216;e eri\u015fim sa\u011flayan Ingress\/LoadBalancer URL&#8217;i)<br \/>\n*   <strong>Headers:<\/strong> <code>x-dev-id: myuser<\/code><\/p>\n<p>Bu iste\u011fi g\u00f6nderdi\u011finizde, <code>frontend-service<\/code>&#8216;ten gelen istek <code>backend-service<\/code>&#8216;e ula\u015f\u0131r. Telepresence, <code>x-dev-id: myuser<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fc\u011f\u00fc i\u00e7in bu iste\u011fi yerel makinenizdeki 8080 portunda \u00e7al\u0131\u015fan <code>backend-service<\/code>&#8216;inize y\u00f6nlendirir. Yerel <code>backend-service<\/code>&#8216;iniz bu iste\u011fi i\u015fler, <code>database-service<\/code> ile ileti\u015fim kurar (Telepresence sayesinde bu ileti\u015fim de k\u00fcme i\u00e7inde ger\u00e7ekle\u015fir) ve yan\u0131t\u0131 d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p><strong>Ad\u0131m 6: Hata Ay\u0131klama ve Geli\u015ftirme<\/strong><\/p>\n<p>Yerel IDE&#8217;nizde <code>backend-service<\/code> koduna breakpointler koyarak hata ay\u0131klama yapabilirsiniz. Gelen istekler do\u011frudan yerel uygulaman\u0131za geldi\u011fi i\u00e7in, kodunuzu ad\u0131m ad\u0131m \u00e7al\u0131\u015ft\u0131rabilir, de\u011fi\u015fken de\u011ferlerini inceleyebilir ve hatalar\u0131 h\u0131zl\u0131ca tespit edip d\u00fczeltebilirsiniz. Kodunuzu de\u011fi\u015ftirdi\u011finizde, yerel uygulaman\u0131z\u0131 yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zda (veya hot-reload destekliyorsa otomatik olarak), de\u011fi\u015fiklikler an\u0131nda test edilebilir hale gelir.<\/p>\n<p><strong>Ad\u0131m 7: \u0130\u015flem Bitince Temizleme<\/strong><\/p>\n<p>Geli\u015ftirme ve test i\u015flemleriniz bitti\u011finde, intercept&#8217;i ve Telepresence ba\u011flant\u0131s\u0131n\u0131 sonland\u0131rmak \u00f6nemlidir:<\/p>\n<pre><code class=\"language-bash\">telepresence leave backend-service\ntelepresence disconnect<\/code><\/pre>\n<p>Bu komutlar, intercept&#8217;i kald\u0131r\u0131r, Traffic Agent&#8217;\u0131 temizler ve yerel makinenizin a\u011f yap\u0131land\u0131rmas\u0131n\u0131 normale d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h3>Telepresence ve Geli\u015ftirme Ortamlar\u0131<\/h3>\n<p>Telepresence, pop\u00fcler geli\u015ftirme ortamlar\u0131 ve ara\u00e7lar\u0131yla sorunsuz bir \u015fekilde entegre olur.<\/p>\n<h4>IDE Entegrasyonu<\/h4>\n<p>VS Code, IntelliJ IDEA, Eclipse gibi modern IDE&#8217;ler, yerel uygulamalar\u0131n\u0131z\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken ve hata ay\u0131klarken Telepresence ile m\u00fckemmel bir uyum i\u00e7indedir. Uygulaman\u0131z\u0131 yerel IDE&#8217;nizden ba\u015flatt\u0131\u011f\u0131n\u0131zda, Telepresence&#8217;\u0131n y\u00f6nlendirdi\u011fi trafi\u011fi do\u011frudan al\u0131r ve t\u00fcm IDE \u00f6zelliklerini kullanarak hata ay\u0131klama yapabilirsiniz.<\/p>\n<h4>Debugging<\/h4>\n<p>Yerel breakpointler, ad\u0131m ad\u0131m kod y\u00fcr\u00fctme, de\u011fi\u015fken incelemesi gibi standart hata ay\u0131klama \u00f6zellikleri, Telepresence ile k\u00fcmedeki ger\u00e7ek servislerle etkile\u015fim halindeyken kullan\u0131labilir. Bu, \u00f6zellikle karma\u015f\u0131k entegrasyon sorunlar\u0131n\u0131 gidermek i\u00e7in paha bi\u00e7ilmezdir.<\/p>\n<h4>Test Otomasyonu<\/h4>\n<p>Yerel olarak \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z entegrasyon testlerini, Telepresence ba\u011flant\u0131s\u0131 aktifken k\u00fcmedeki ger\u00e7ek ba\u011f\u0131ml\u0131 servislerle birlikte \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131rabilirsiniz. Bu, testlerinizi daha ger\u00e7ek\u00e7i bir ortamda \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 ve \u00fcretim ortam\u0131na daha yak\u0131n sonu\u00e7lar elde etmenizi sa\u011flar.<\/p>\n<h3>Telepresence&#8217;\u0131n S\u0131n\u0131rlamalar\u0131 ve Dikkat Edilmesi Gerekenler<\/h3>\n<p>Telepresence bir\u00e7ok avantaj sunsa da, baz\u0131 s\u0131n\u0131rlamalar\u0131 ve dikkat edilmesi gereken noktalar\u0131 vard\u0131r:<\/p>\n<h4>A\u011f Gecikmesi<\/h4>\n<p>Yerel makineniz ile uzak Kubernetes k\u00fcmesi aras\u0131ndaki fiziksel mesafe ve a\u011f ko\u015fullar\u0131, Telepresence \u00fczerinden yap\u0131lan isteklerde bir miktar gecikmeye neden olabilir. \u00c7ok d\u00fc\u015f\u00fck gecikme gerektiren uygulamalar i\u00e7in bu durum fark edilebilir olabilir.<\/p>\n<h4>Kaynak T\u00fcketimi<\/h4>\n<p>Traffic Manager&#8217;\u0131n kendisi k\u00fcme \u00fczerinde bir miktar kaynak (CPU, RAM) t\u00fcketir. Ayr\u0131ca, her intercept edilen pod&#8217;a enjekte edilen Traffic Agent sidecar&#8217;lar\u0131 da ek kaynak t\u00fcketimine yol a\u00e7ar. B\u00fcy\u00fck k\u00fcmelerde \u00e7ok say\u0131da geli\u015ftirici ayn\u0131 anda intercept kulland\u0131\u011f\u0131nda, bu durum k\u00fcme kaynaklar\u0131 \u00fczerinde bir y\u00fck olu\u015fturabilir.<\/p>\n<h4>G\u00fcvenlik<\/h4>\n<p>Telepresence, yerel makineniz ile k\u00fcme aras\u0131nda bir t\u00fcnel a\u00e7ar. Bu, do\u011fru yap\u0131land\u0131r\u0131lmad\u0131\u011f\u0131nda g\u00fcvenlik riskleri olu\u015fturabilir. K\u00fcme eri\u015fim izinlerinin (RBAC) do\u011fru \u015fekilde ayarland\u0131\u011f\u0131ndan ve geli\u015ftiricilerin sadece ihtiya\u00e7 duyduklar\u0131 kaynaklara eri\u015fimlerinin oldu\u011fundan emin olun. Hassas verilerin yerel makineye aktar\u0131lmas\u0131 durumunda dikkatli olunmal\u0131d\u0131r.<\/p>\n<h4>Karma\u015f\u0131kl\u0131k<\/h4>\n<p>\u00c7ok say\u0131da servis ve karma\u015f\u0131k a\u011f yap\u0131land\u0131rmalar\u0131na sahip b\u00fcy\u00fck mikroservis uygulamalar\u0131nda, Telepresence&#8217;\u0131n y\u00f6netimi biraz karma\u015f\u0131k hale gelebilir. Hangi servisin ne zaman intercept edildi\u011fini takip etmek ve \u00e7ak\u0131\u015fmalar\u0131 \u00f6nlemek i\u00e7in iyi bir koordinasyon gerekebilir.<\/p>\n<h4>VPN \u00c7ak\u0131\u015fmalar\u0131<\/h4>\n<p>Telepresence, yerel makinenizde bir VPN t\u00fcneli olu\u015fturur. Baz\u0131 durumlarda, \u015firket VPN&#8217;leri veya di\u011fer a\u011f ara\u00e7lar\u0131yla \u00e7ak\u0131\u015fmalar ya\u015fayabilir. Bu t\u00fcr durumlarda, Telepresence&#8217;\u0131 kullanmadan \u00f6nce \u015firket VPN&#8217;ini devre d\u0131\u015f\u0131 b\u0131rakmak veya a\u011f yap\u0131land\u0131rmalar\u0131n\u0131 kontrol etmek gerekebilir.<\/p>\n<h3>Alternatif Yakla\u015f\u0131mlar ve Telepresence&#8217;\u0131n Yeri<\/h3>\n<p>Telepresence, geli\u015ftirme s\u00fcre\u00e7lerini h\u0131zland\u0131rmak i\u00e7in tek ara\u00e7 de\u011fildir. Di\u011fer pop\u00fcler ara\u00e7lar ve yakla\u015f\u0131mlar \u015funlard\u0131r:<\/p>\n<p>*   <strong>Skaffold \/ Tilt:<\/strong> Bu ara\u00e7lar, kod de\u011fi\u015fikliklerini alg\u0131lay\u0131p otomatik olarak Docker imajlar\u0131n\u0131 build eden, Kubernetes&#8217;e deploy eden ve de\u011fi\u015fiklikleri izleyen ara\u00e7lard\u0131r. Geri bildirim d\u00f6ng\u00fcs\u00fcn\u00fc h\u0131zland\u0131r\u0131rlar ancak yine de imaj olu\u015fturma ve da\u011f\u0131t\u0131m ad\u0131mlar\u0131n\u0131 i\u00e7erirler.<br \/>\n*   <strong><code>kubectl port-forward<\/code>:<\/strong> Basit senaryolar i\u00e7in, tek bir servisin portunu yerel makinenize y\u00f6nlendirmek i\u00e7in kullan\u0131labilir. Ancak, giden trafi\u011fi y\u00f6nlendirme veya birden fazla servisle etkile\u015fim kurma konusunda Telepresence kadar esnek de\u011fildir.<br \/>\n*   <strong>Geli\u015ftirme Konteynerleri (Codespaces, Gitpod):<\/strong> T\u00fcm geli\u015ftirme ortam\u0131n\u0131 bulut tabanl\u0131 bir konteynere ta\u015f\u0131r. Bu, yerel makineye ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 azalt\u0131r ve tutarl\u0131 ortamlar sa\u011flar. Ancak, yerel IDE&#8217;nin t\u00fcm \u00f6zelliklerini kullanma esnekli\u011fini s\u0131n\u0131rlayabilir ve maliyetli olabilir.<\/p>\n<p>Telepresence, bu yakla\u015f\u0131mlar aras\u0131nda benzersiz bir konuma sahiptir. Skaffold\/Tilt gibi ara\u00e7lar build\/deploy d\u00f6ng\u00fcs\u00fcn\u00fc h\u0131zland\u0131r\u0131rken, Telepresence <strong>yerel kodunuzu do\u011frudan k\u00fcmedeki di\u011fer servislerle entegre etmenize<\/strong> olanak tan\u0131r. <code>kubectl port-forward<\/code>&#8216;dan daha kapsaml\u0131d\u0131r ve bulut geli\u015ftirme ortamlar\u0131n\u0131n aksine, yerel IDE&#8217;nizin t\u00fcm g\u00fcc\u00fcn\u00fc koruman\u0131z\u0131 sa\u011flar. \u00d6zellikle MacOS \u00fczerinde \u00e7al\u0131\u015fan ve Kubernetes&#8217;in t\u00fcm avantajlar\u0131ndan yararlanmak isteyen geli\u015ftiriciler i\u00e7in Telepresence, h\u0131z ve ger\u00e7ek\u00e7ili\u011fi bir araya getiren ideal bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Kubernetes \u00fczerinde mikroservis geli\u015ftirme, modern yaz\u0131l\u0131m m\u00fchendisli\u011finin temel ta\u015flar\u0131ndan biridir. Ancak bu g\u00fc\u00e7l\u00fc platformun sundu\u011fu esneklik, geli\u015ftirme s\u00fcre\u00e7lerinde yeni zorluklar\u0131 da beraberinde getirir. Telepresence, MacOS \u00fczerinde geli\u015ftirme yapan m\u00fchendisler i\u00e7in bu zorluklar\u0131 a\u015fmada kritik bir rol oynar. Yerel geli\u015ftirme ortam\u0131n\u0131z ile uzak Kubernetes k\u00fcmesi aras\u0131nda kurdu\u011fu ak\u0131ll\u0131 k\u00f6pr\u00fc sayesinde, kod de\u011fi\u015fikliklerini an\u0131nda test etme, ger\u00e7ek ortam ko\u015fullar\u0131nda hata ay\u0131klama ve di\u011fer ba\u011f\u0131ml\u0131 servislerle sorunsuz etkile\u015fim kurma imkan\u0131 sunar.<\/p>\n<p>Bu makalede ele ald\u0131\u011f\u0131m\u0131z kurulum ad\u0131mlar\u0131, temel kullan\u0131m senaryolar\u0131 ve pratik \u00f6rnekler, Telepresence&#8217;\u0131n geli\u015ftirme verimlili\u011finizi nas\u0131l art\u0131rabilece\u011fine dair kapsaml\u0131 bir bak\u0131\u015f a\u00e7\u0131s\u0131 sunmaktad\u0131r. H\u0131zl\u0131 geri bildirim d\u00f6ng\u00fcleri, kaynak verimlili\u011fi ve geli\u015fmi\u015f hata ay\u0131klama yetenekleri sayesinde Telepresence, mikroservis geli\u015ftirme s\u00fcrecinizi modernize etmenize ve daha az zaman harcayarak daha kaliteli yaz\u0131l\u0131mlar \u00fcretmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p>E\u011fer Kubernetes tabanl\u0131 bir mikroservis mimarisinde \u00e7al\u0131\u015f\u0131yor ve geli\u015ftirme h\u0131z\u0131n\u0131z\u0131 art\u0131rmak istiyorsan\u0131z, Telepresence&#8217;\u0131 MacOS geli\u015ftirme ortam\u0131n\u0131za entegre etmek, atabilece\u011finiz en de\u011ferli ad\u0131mlardan biri olacakt\u0131r. Deneyin ve yerel geli\u015ftirme deneyiminizin nas\u0131l d\u00f6n\u00fc\u015ft\u00fc\u011f\u00fcn\u00fc kendiniz g\u00f6r\u00fcn.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz\nMikroservis mimarileri, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde esne","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1328],"tags":[],"class_list":{"0":"post-33568","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-bash","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kubernetes \u00dczerinde Telepresence ile MacOS&#039;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes \u00dczerinde Telepresence ile MacOS&#039;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz\" \/>\n<meta property=\"og:description\" content=\"Kubernetes \u00dczerinde Telepresence ile MacOS&#039;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz Mikroservis mimarileri, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde esne\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-04T10:41:18+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz\",\"datePublished\":\"2025-11-04T10:41:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\"},\"wordCount\":3905,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Bash\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\",\"name\":\"Kubernetes \u00dczerinde Telepresence ile MacOS'ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-04T10:41:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kubernetes \u00dczerinde Telepresence ile MacOS'ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/","og_locale":"tr_TR","og_type":"article","og_title":"Kubernetes \u00dczerinde Telepresence ile MacOS'ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz","og_description":"Kubernetes \u00dczerinde Telepresence ile MacOS'ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz Mikroservis mimarileri, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde esne","og_url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-04T10:41:18+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz","datePublished":"2025-11-04T10:41:18+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/"},"wordCount":3905,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Bash"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/","url":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/","name":"Kubernetes \u00dczerinde Telepresence ile MacOS'ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-04T10:41:18+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kubernetes-uzerinde-telepresence-ile-macosta-hizli-gelistirme-kilavuz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kubernetes \u00dczerinde Telepresence ile MacOS&#8217;ta H\u0131zl\u0131 Geli\u015ftirme: K\u0131lavuz"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33568"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33568\/revisions"}],"predecessor-version":[{"id":33569,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33568\/revisions\/33569"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}