{"id":3785,"date":"2025-12-30T23:11:49","date_gmt":"2025-12-30T20:11:49","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/self-hosted-gitlab-jira-ve-devops-araclarini-vpste-barindirmak-kaynak-planlama-ve-guvenlik-rehberi\/"},"modified":"2025-12-30T23:11:49","modified_gmt":"2025-12-30T20:11:49","slug":"self-hosted-gitlab-jira-ve-devops-araclarini-vpste-barindirmak-kaynak-planlama-ve-guvenlik-rehberi","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/self-hosted-gitlab-jira-ve-devops-araclarini-vpste-barindirmak-kaynak-planlama-ve-guvenlik-rehberi\/","title":{"rendered":"Self-Hosted GitLab, Jira ve DevOps Ara\u00e7lar\u0131n\u0131 VPS\u2019te Bar\u0131nd\u0131rmak: Kaynak Planlama ve G\u00fcvenlik Rehberi"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Self-hosted_DevOps_araclarini_neden_VPSte_toplamalisiniz\"><span class=\"toc_number toc_depth_1\">1<\/span> Self-hosted DevOps ara\u00e7lar\u0131n\u0131 neden VPS\u2019te toplamal\u0131s\u0131n\u0131z?<\/a><\/li><li><a href=\"#Hangi_DevOps_araclarini_VPSte_self-host_etmek_mantikli\"><span class=\"toc_number toc_depth_1\">2<\/span> Hangi DevOps ara\u00e7lar\u0131n\u0131 VPS\u2019te self-host etmek mant\u0131kl\u0131?<\/a><\/li><li><a href=\"#Kaynak_planlama_GitLab_Jira_ve_arkadaslari_kac_vCPU_ne_kadar_RAM_ister\"><span class=\"toc_number toc_depth_1\">3<\/span> Kaynak planlama: GitLab, Jira ve arkada\u015flar\u0131 ka\u00e7 vCPU, ne kadar RAM ister?<\/a><ul><li><a href=\"#Senaryo_1_Kucuk_urun_ekibi_510_gelistirici\"><span class=\"toc_number toc_depth_2\">3.1<\/span> Senaryo 1: K\u00fc\u00e7\u00fck \u00fcr\u00fcn ekibi (5\u201310 geli\u015ftirici)<\/a><\/li><li><a href=\"#Senaryo_2_Orta_olcekli_ekip_2050_gelistirici\"><span class=\"toc_number toc_depth_2\">3.2<\/span> Senaryo 2: Orta \u00f6l\u00e7ekli ekip (20\u201350 geli\u015ftirici)<\/a><\/li><li><a href=\"#Senaryo_3_Buyuyen_SaaS_ekibi_50_gelistirici_coklu_proje\"><span class=\"toc_number toc_depth_2\">3.3<\/span> Senaryo 3: B\u00fcy\u00fcyen SaaS ekibi (50+ geli\u015ftirici, \u00e7oklu proje)<\/a><\/li><li><a href=\"#Disk_kapasitesi_ve_IOPS_hesaplama\"><span class=\"toc_number toc_depth_2\">3.4<\/span> Disk kapasitesi ve IOPS hesaplama<\/a><\/li><\/ul><\/li><li><a href=\"#Mimari_tasarim_Hepsi_tek_VPSte_mi_yoksa_mikro_mimari_mi\"><span class=\"toc_number toc_depth_1\">4<\/span> Mimari tasar\u0131m: Hepsi tek VPS\u2019te mi, yoksa mikro mimari mi?<\/a><ul><li><a href=\"#Monolit_VPS_Ne_zaman_mantikli\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Monolit VPS: Ne zaman mant\u0131kl\u0131?<\/a><\/li><li><a href=\"#Rollere_gore_ayrilmis_mimari_Neden_daha_saglikli\"><span class=\"toc_number toc_depth_2\">4.2<\/span> Rollere g\u00f6re ayr\u0131lm\u0131\u015f mimari: Neden daha sa\u011fl\u0131kl\u0131?<\/a><\/li><li><a href=\"#Container_ve_Docker_kullanimi\"><span class=\"toc_number toc_depth_2\">4.3<\/span> Container ve Docker kullan\u0131m\u0131<\/a><\/li><\/ul><\/li><li><a href=\"#Guvenlik_mimarisi_DevOps_altyapisini_kale_gibi_yapmak\"><span class=\"toc_number toc_depth_1\">5<\/span> G\u00fcvenlik mimarisi: DevOps altyap\u0131s\u0131n\u0131 kale gibi yapmak<\/a><ul><li><a href=\"#Ag_katmani_Firewall_sadece_gerekli_portlar_ve_yonetim_agi\"><span class=\"toc_number toc_depth_2\">5.1<\/span> A\u011f katman\u0131: Firewall, sadece gerekli portlar ve y\u00f6netim a\u011f\u0131<\/a><\/li><li><a href=\"#SSH_erisimi_ve_yetki_yonetimi\"><span class=\"toc_number toc_depth_2\">5.2<\/span> SSH eri\u015fimi ve yetki y\u00f6netimi<\/a><\/li><li><a href=\"#HTTPS_TLS_ve_guvenlik_basliklari\"><span class=\"toc_number toc_depth_2\">5.3<\/span> HTTPS, TLS ve g\u00fcvenlik ba\u015fl\u0131klar\u0131<\/a><\/li><li><a href=\"#Secrets_ve_erisim_anahtarlari_yonetimi\"><span class=\"toc_number toc_depth_2\">5.4<\/span> Secrets ve eri\u015fim anahtarlar\u0131 y\u00f6netimi<\/a><\/li><li><a href=\"#Yedekleme_ve_felaket_kurtarma\"><span class=\"toc_number toc_depth_2\">5.5<\/span> Yedekleme ve felaket kurtarma<\/a><\/li><\/ul><\/li><li><a href=\"#Operasyon_tarafi_Otomasyon_CICD_ve_izleme\"><span class=\"toc_number toc_depth_1\">6<\/span> Operasyon taraf\u0131: Otomasyon, CI\/CD ve izleme<\/a><ul><li><a href=\"#Altyapiyi_kodla_yonetmek_Terraform_ve_Ansible\"><span class=\"toc_number toc_depth_2\">6.1<\/span> Altyap\u0131y\u0131 kodla y\u00f6netmek: Terraform ve Ansible<\/a><\/li><li><a href=\"#CICDden_VPSe_dagitim_Otomatik_ve_sifir_kesintiye_yakin\"><span class=\"toc_number toc_depth_2\">6.2<\/span> CI\/CD\u2019den VPS\u2019e da\u011f\u0131t\u0131m: Otomatik ve s\u0131f\u0131r kesintiye yak\u0131n<\/a><\/li><li><a href=\"#Izleme_log_ve_alarm_Sorunlari_kullanicidan_once_gormek\"><span class=\"toc_number toc_depth_2\">6.3<\/span> \u0130zleme, log ve alarm: Sorunlar\u0131 kullan\u0131c\u0131dan \u00f6nce g\u00f6rmek<\/a><\/li><\/ul><\/li><li><a href=\"#DCHost_uzerinde_self-hosted_DevOps_icin_pratik_yol_haritasi\"><span class=\"toc_number toc_depth_1\">7<\/span> DCHost \u00fczerinde self-hosted DevOps i\u00e7in pratik yol haritas\u0131<\/a><\/li><\/ul><\/div>\n<h2><span id=\"Self-hosted_DevOps_araclarini_neden_VPSte_toplamalisiniz\">Self-hosted DevOps ara\u00e7lar\u0131n\u0131 neden <a href=\"https:\/\/www.dchost.com\/tr\/vps\">VPS<\/a>\u2019te toplamal\u0131s\u0131n\u0131z?<\/span><\/h2>\n<p>Bir yaz\u0131l\u0131m ekibinin kalbi art\u0131k sadece uygulama sunucusunda de\u011fil; kaynak kodunun tutuldu\u011fu Git sunucusunda, i\u015flerin takip edildi\u011fi proje y\u00f6netim arac\u0131nda ve CI\/CD boru hatlar\u0131nda at\u0131yor. GitLab, Jira, Jenkins, SonarQube, container registry, artifact depolar\u0131\u2026 T\u00fcm bu DevOps ekosistemini d\u0131\u015f servislere yaymak yerine, kontroll\u00fc bir \u015fekilde kendi VPS altyap\u0131n\u0131zda toplamak ciddi avantajlar getiriyor: veri egemenli\u011fi, KVKK\/GDPR uyumu, maliyeti \u00f6ng\u00f6r\u00fclebilir k\u0131lma, \u015firket i\u00e7i entegrasyon \u00f6zg\u00fcrl\u00fc\u011f\u00fc ve geli\u015fmi\u015f g\u00fcvenlik mimarileri.<\/p>\n<p>Bu yaz\u0131da DCHost ekibi olarak, GitLab, Jira ve benzeri DevOps ara\u00e7lar\u0131n\u0131 <strong>self-hosted<\/strong> olarak bir veya birden fazla VPS \u00fczerinde bar\u0131nd\u0131r\u0131rken neleri planlaman\u0131z gerekti\u011fini konu\u015faca\u011f\u0131z. Odak noktam\u0131z iki ba\u015fl\u0131k olacak: <strong>kaynak planlama<\/strong> (CPU, RAM, disk, a\u011f) ve <strong>g\u00fcvenlik<\/strong> (a\u011f katman\u0131, eri\u015fim kontrol\u00fc, yedek ve izleme). Ger\u00e7ek\u00e7i ekip b\u00fcy\u00fckl\u00fcklerine g\u00f6re \u00f6rnek senaryolar, mimari karar noktalar\u0131 ve pratik \u00f6nerilerle ilerleyece\u011fiz. Ama\u00e7, \u201cbir VPS al\u0131p GitLab\u2019\u0131 kurdum, gerisi gelir\u201d seviyesinden, <strong>\u00fcretim ortam\u0131na yak\u0131\u015f\u0131r<\/strong> bir DevOps platformuna ge\u00e7menize yard\u0131mc\u0131 olmak.<\/p>\n<h2><span id=\"Hangi_DevOps_araclarini_VPSte_self-host_etmek_mantikli\">Hangi DevOps ara\u00e7lar\u0131n\u0131 VPS\u2019te self-host etmek mant\u0131kl\u0131?<\/span><\/h2>\n<p>\u00d6nce hangi bile\u015fenleri ger\u00e7ekten kendi altyap\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131rmak istedi\u011finizi netle\u015ftirelim. Tipik bir ekip i\u00e7in self-host edilen DevOps ara\u00e7lar\u0131 \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<ul>\n<li><strong>Kaynak kod y\u00f6netimi:<\/strong> GitLab, Gitea, Bitbucket Server vb.<\/li>\n<li><strong>Proje ve issue takibi:<\/strong> Jira, YouTrack, Redmine vb.<\/li>\n<li><strong>CI\/CD:<\/strong> GitLab CI, Jenkins, GitHub Actions runner\u2019lar\u0131, di\u011fer self-host runner\u2019lar.<\/li>\n<li><strong>Container\/artefact:<\/strong> Docker registry, Maven\/NPM\/Composer repository, artifact depolar\u0131.<\/li>\n<li><strong>Kalite ve g\u00fcvenlik:<\/strong> SonarQube, SAST\/DAST ara\u00e7lar\u0131, dependency check platformlar\u0131.<\/li>\n<li><strong>G\u00f6zlemlenebilirlik:<\/strong> Log ve metrik toplama, dashboard ve alarm sistemleri.<\/li>\n<\/ul>\n<p>Bu listedeki her arac\u0131 ayn\u0131 VPS\u2019e y\u0131\u011fmak zorunda de\u011filsiniz. \u00d6rne\u011fin sadece GitLab + GitLab Runner ile ba\u015flay\u0131p, Jira\u2019y\u0131 ikinci bir VPS\u2019e, monitoring\u2019i \u00fc\u00e7\u00fcnc\u00fc bir VPS\u2019e ta\u015f\u0131yabilirsiniz. Benzer kapasite planlama mant\u0131\u011f\u0131, y\u00fcksek trafikli web projeleri i\u00e7in de ge\u00e7erli; \u00f6rne\u011fin <a href='https:\/\/www.dchost.com\/blog\/woocommerce-laravel-ve-node-jsde-dogru-vps-kaynaklarini-nasil-secersin-cpu-ram-nvme-ve-bant-genisligi-rehberi\/'>WooCommerce, Laravel ve Node.js\u2019de do\u011fru VPS kaynaklar\u0131n\u0131 se\u00e7me rehberi<\/a>nde kulland\u0131\u011f\u0131m\u0131z yakla\u015f\u0131m\u0131n ayn\u0131s\u0131n\u0131 burada DevOps ara\u00e7lar\u0131 i\u00e7in uygulayaca\u011f\u0131z.<\/p>\n<h2><span id=\"Kaynak_planlama_GitLab_Jira_ve_arkadaslari_kac_vCPU_ne_kadar_RAM_ister\">Kaynak planlama: GitLab, Jira ve arkada\u015flar\u0131 ka\u00e7 vCPU, ne kadar RAM ister?<\/span><\/h2>\n<p>Self-host DevOps platformlar\u0131n\u0131n en s\u0131k yap\u0131lan hatas\u0131, \u201cnas\u0131l olsa i\u00e7 ekip kullan\u0131yor\u201d diyerek <strong>k\u0131s\u0131tl\u0131 kaynakl\u0131 VPS\u2019te bo\u011fmak<\/strong>. \u00d6zellikle GitLab ve Jira, veritaban\u0131 ve arka plan i\u015f\u00e7ileriyle birlikte <strong>hafif<\/strong> uygulamalar de\u011fildir. Kabaca \u00fc\u00e7 senaryo \u00fczerinden ilerleyelim.<\/p>\n<h3><span id=\"Senaryo_1_Kucuk_urun_ekibi_510_gelistirici\">Senaryo 1: K\u00fc\u00e7\u00fck \u00fcr\u00fcn ekibi (5\u201310 geli\u015ftirici)<\/span><\/h3>\n<p>Bu senaryoda elinizde \u015fu bile\u015fenler oldu\u011funu d\u00fc\u015f\u00fcnelim:<\/p>\n<ul>\n<li>GitLab (kaynak kod, basic CI)<\/li>\n<li>1\u20132 GitLab Runner (CI i\u015fleri)<\/li>\n<li>Jira (issue ve proje takibi)<\/li>\n<\/ul>\n<p>Temel ve g\u00fcvenli bir ba\u015flang\u0131\u00e7 i\u00e7in pratik yakla\u015f\u0131m:<\/p>\n<ul>\n<li><strong>Uygulama VPS\u2019i:<\/strong> GitLab + Jira<\/li>\n<li><strong>Runner VPS\u2019i:<\/strong> GitLab Runner (ve gerekirse ba\u015fka CI ajanlar\u0131)<\/li>\n<\/ul>\n<p>Kaba kaynak \u00f6nerisi:<\/p>\n<ul>\n<li><strong>Uygulama VPS\u2019i:<\/strong> 4 vCPU, 8\u201312 GB RAM, en az 200 GB NVMe SSD<\/li>\n<li><strong>Runner VPS\u2019i:<\/strong> 4 vCPU, 8 GB RAM (e\u015fzamanl\u0131 pipeline say\u0131s\u0131na g\u00f6re artar)<\/li>\n<\/ul>\n<p>Runner\u2019lar\u0131n CPU kullan\u0131m\u0131, CI a\u015famalar\u0131nda derleme, test, docker build gibi i\u015flere ba\u011fl\u0131 oldu\u011fundan, burada sabit bir say\u0131dan \u00e7ok <strong>e\u015fzamanl\u0131 job say\u0131s\u0131n\u0131<\/strong> hesaba katmal\u0131s\u0131n\u0131z. \u00d6rne\u011fin ayn\u0131 anda en fazla 3 pipeline ko\u015fuyorsa, her biri i\u00e7in ortalama 1\u20131.5 vCPU d\u00fc\u015fecek \u015fekilde hesap yapabilirsiniz.<\/p>\n<h3><span id=\"Senaryo_2_Orta_olcekli_ekip_2050_gelistirici\">Senaryo 2: Orta \u00f6l\u00e7ekli ekip (20\u201350 geli\u015ftirici)<\/span><\/h3>\n<p>Bu seviyede kullan\u0131c\u0131 say\u0131s\u0131yla beraber, pipeline yo\u011funlu\u011fu da ciddi \u015fekilde artar. Bile\u015fenleriniz a\u015fa\u011f\u0131daki gibi olabilir:<\/p>\n<ul>\n<li>GitLab (yo\u011fun kullan\u0131m, merge request review s\u00fcre\u00e7leri)<\/li>\n<li>Jira (\u00e7oklu proje, board ve raporlama)<\/li>\n<li>Container registry (CI \u00e7\u0131kt\u0131lar\u0131n\u0131n sakland\u0131\u011f\u0131 Docker registry)<\/li>\n<li>SonarQube veya benzeri kod kalite arac\u0131<\/li>\n<\/ul>\n<p>Bu noktada hem kaynak hem de g\u00fcvenlik a\u00e7\u0131s\u0131ndan a\u015fa\u011f\u0131daki ayr\u0131m mant\u0131kl\u0131d\u0131r:<\/p>\n<ul>\n<li><strong>VPS-1:<\/strong> GitLab ana uygulama<\/li>\n<li><strong>VPS-2:<\/strong> PostgreSQL (GitLab + Jira veritabanlar\u0131), Redis vb. ortak servisler<\/li>\n<li><strong>VPS-3:<\/strong> Jira uygulamas\u0131<\/li>\n<li><strong>VPS-4:<\/strong> CI Runner\u2019lar, Docker registry, SonarQube gibi a\u011f\u0131r CI bile\u015fenleri<\/li>\n<\/ul>\n<p>Kaba kaynak \u00f6nerisi (ger\u00e7ek sahadan g\u00f6rd\u00fcklerimize dayal\u0131 bir ba\u015flang\u0131\u00e7 noktas\u0131):<\/p>\n<ul>\n<li><strong>VPS-1 (GitLab):<\/strong> 6\u20138 vCPU, 16 GB RAM, 300+ GB NVMe SSD<\/li>\n<li><strong>VPS-2 (DB + Redis):<\/strong> 4\u20136 vCPU, 16\u201324 GB RAM, NVMe + g\u00fc\u00e7l\u00fc IOPS<\/li>\n<li><strong>VPS-3 (Jira):<\/strong> 4\u20136 vCPU, 12\u201316 GB RAM, 100\u2013200 GB NVMe<\/li>\n<li><strong>VPS-4 (CI + registry):<\/strong> 8+ vCPU, 16+ GB RAM, 300+ GB NVMe<\/li>\n<\/ul>\n<p>\u00d6zellikle veritaban\u0131 VPS\u2019inin disk IOPS kapasitesi kritik. Y\u00fcksek yazma\/okuma yo\u011funlu\u011fu, yanl\u0131\u015f boyutland\u0131r\u0131lm\u0131\u015f bir diskte t\u00fcm sistemi yava\u015flatabilir. NVMe tabanl\u0131 VPS paketlerinin fark\u0131n\u0131 detayl\u0131ca anlatt\u0131\u011f\u0131m\u0131z <a href='https:\/\/www.dchost.com\/blog\/nvme-vps-hosting-rehberi-hizin-nereden-geldigini-nasil-olculdugunu-ve-gercek-sonuclari-beraber-gorelim\/'>NVMe VPS hosting rehberi<\/a>nde bu konunun pratik testlerini g\u00f6rebilirsiniz.<\/p>\n<h3><span id=\"Senaryo_3_Buyuyen_SaaS_ekibi_50_gelistirici_coklu_proje\">Senaryo 3: B\u00fcy\u00fcyen SaaS ekibi (50+ geli\u015ftirici, \u00e7oklu proje)<\/span><\/h3>\n<p>Bu \u00f6l\u00e7ekte art\u0131k tek VPS\u2019ler yerine <strong>\u00e7oklu VPS ve gerekti\u011finde <a href=\"https:\/\/www.dchost.com\/tr\/fiziksel-sunucu\">dedicated sunucu<\/a>lar<\/strong> d\u00fc\u015f\u00fcnmek mant\u0131kl\u0131 hale gelir. Burada mant\u0131k, \u201cher rol i\u00e7in ayr\u0131 kaynak havuzu\u201d yakla\u015f\u0131m\u0131d\u0131r:<\/p>\n<ul>\n<li>GitLab uygulama d\u00fc\u011f\u00fcmleri (\u00f6l\u00e7eklenebilir say\u0131da)<\/li>\n<li>Veritaban\u0131 replikasyon (PostgreSQL primary-replica veya cluster)<\/li>\n<li>CI\/Runner filosu (\u00e7ok say\u0131da g\u00f6reli k\u00fc\u00e7\u00fck VPS, gerekti\u011finde otomatik scale)<\/li>\n<li>Monitoring ve loglama (ayr\u0131 bir g\u00f6zlemlenebilirlik k\u00fcmesi)<\/li>\n<\/ul>\n<p>DCHost taraf\u0131nda bu tipi y\u00fckler i\u00e7in genellikle <strong>NVMe VPS + gerekti\u011finde dedicated sunucu<\/strong> kombinasyonu \u00f6neriyoruz. Karar noktas\u0131nda, <a href='https:\/\/www.dchost.com\/blog\/dedicated-sunucu-mu-vps-mi-hangisi-isinize-daha-uygun\/'>Dedicated sunucu mu VPS mi, hangisi i\u015finize daha uygun?<\/a> yaz\u0131s\u0131nda anlatt\u0131\u011f\u0131m\u0131z yakla\u015f\u0131m\u0131 DevOps y\u00fcklerinize de birebir uygulayabilirsiniz.<\/p>\n<h3><span id=\"Disk_kapasitesi_ve_IOPS_hesaplama\">Disk kapasitesi ve IOPS hesaplama<\/span><\/h3>\n<p>GitLab ve Jira i\u00e7in disk planlarken sadece \u201c\u015fu an ka\u00e7 GB repo var?\u201d sorusunu de\u011fil, a\u015fa\u011f\u0131dakileri de d\u00fc\u015f\u00fcnmelisiniz:<\/p>\n<ul>\n<li>Ortalama repo boyutu ve b\u00fcy\u00fcme h\u0131z\u0131<\/li>\n<li>Binary dosyalar, attachment\u2019ler (Jira issue ekleri, GitLab LFS dosyalar\u0131)<\/li>\n<li>Container registry ve artefact depolar\u0131n\u0131n b\u00fcy\u00fcme trendi<\/li>\n<li>Yedeklerin tutuldu\u011fu lokal disk alan\u0131 (snapshot + full backup)<\/li>\n<\/ul>\n<p>Pratik bir ba\u015flang\u0131\u00e7 form\u00fcl\u00fc: <strong>bug\u00fcnk\u00fc toplam depolama ihtiyac\u0131n\u0131z\u0131 3 ile \u00e7arp\u0131n<\/strong>. 1x canl\u0131 veri, 1x yedek, 1x b\u00fcy\u00fcme pay\u0131. Uzun vadede object storage gibi \u00e7\u00f6z\u00fcmlere ge\u00e7erken, medya ve artefact verisini d\u0131\u015far\u0131 ta\u015f\u0131mak da m\u00fcmk\u00fcn; bu yakla\u015f\u0131m\u0131 <a href='https:\/\/www.dchost.com\/blog\/object-storage-ile-medya-offload-stratejisi\/'>object storage ile medya offload stratejisi<\/a> yaz\u0131m\u0131zda detayl\u0131 anlatt\u0131k, ayn\u0131 mant\u0131\u011f\u0131 container image ve artefact\u2019lar i\u00e7in de uyarlayabilirsiniz.<\/p>\n<h2><span id=\"Mimari_tasarim_Hepsi_tek_VPSte_mi_yoksa_mikro_mimari_mi\">Mimari tasar\u0131m: Hepsi tek VPS\u2019te mi, yoksa mikro mimari mi?<\/span><\/h2>\n<p>\u0130\u015f sadece \u201cka\u00e7 vCPU, ka\u00e7 GB RAM\u201d meselesi de\u011fil; bu kaynaklar\u0131 <strong>nas\u0131l b\u00f6ld\u00fc\u011f\u00fcn\u00fcz<\/strong> de en az o kadar \u00f6nemli. \u0130ki temel yakla\u015f\u0131m var:<\/p>\n<ul>\n<li><strong>Monolit VPS:<\/strong> T\u00fcm DevOps ara\u00e7lar\u0131 tek g\u00fc\u00e7l\u00fc VPS\u2019te.<\/li>\n<li><strong>Rollere g\u00f6re ayr\u0131lm\u0131\u015f VPS\u2019ler:<\/strong> Uygulama, veritaban\u0131, CI runner, registry ve monitoring i\u00e7in ayr\u0131 sunucular.<\/li>\n<\/ul>\n<h3><span id=\"Monolit_VPS_Ne_zaman_mantikli\">Monolit VPS: Ne zaman mant\u0131kl\u0131?<\/span><\/h3>\n<p>A\u015fa\u011f\u0131daki ko\u015fullar sa\u011flan\u0131yorsa monolit bir VPS ile ba\u015flayabilirsiniz:<\/p>\n<ul>\n<li>10 ki\u015fiden k\u00fc\u00e7\u00fck ekip<\/li>\n<li>CI y\u00fck\u00fc s\u0131n\u0131rl\u0131 (g\u00fcnde birka\u00e7 pipeline, a\u011f\u0131r docker build yok)<\/li>\n<li>Jira kullan\u0131m\u0131 hafif, raporlama yo\u011fun de\u011fil<\/li>\n<\/ul>\n<p>B\u00f6yle bir durumda 8 vCPU, 16 GB RAM, 300\u2013400 GB NVMe SSD\u2019li g\u00fc\u00e7l\u00fc bir VPS, t\u00fcm y\u00fck\u00fc bir s\u00fcre ta\u015f\u0131yabilir. Ama tasar\u0131m\u0131n\u0131z\u0131 <strong>daha sonra bile\u015fenleri ay\u0131rabilece\u011finiz \u015fekilde<\/strong> yapmak \u00f6nemli: \u00f6rne\u011fin veritaban\u0131n\u0131 Docker i\u00e7inde de\u011fil, do\u011frudan ayr\u0131 bir diskte, dizin yap\u0131s\u0131 ve yedekleme senaryolar\u0131 belli olacak bi\u00e7imde planlamak.<\/p>\n<h3><span id=\"Rollere_gore_ayrilmis_mimari_Neden_daha_saglikli\">Rollere g\u00f6re ayr\u0131lm\u0131\u015f mimari: Neden daha sa\u011fl\u0131kl\u0131?<\/span><\/h3>\n<p>Ger\u00e7ek hayatta t\u0131kanma noktalar\u0131 genellikle:<\/p>\n<ul>\n<li>CI runner\u2019lar CPU ve disk I\/O\u2019yu s\u00f6m\u00fcr\u00fcrken GitLab aray\u00fcz\u00fcn\u00fcn yava\u015flamas\u0131<\/li>\n<li>Jira raporlar\u0131n\u0131n veritaban\u0131n\u0131 kilitleyip GitLab performans\u0131n\u0131 etkilemesi<\/li>\n<li>Container registry disk t\u00fcketiminin kontrols\u00fcz b\u00fcy\u00fcmesi<\/li>\n<\/ul>\n<p>Bunlar\u0131 \u00f6nlemenin en pratik yolu, en az\u0131ndan \u015fu \u00fc\u00e7 rol\u00fc ay\u0131rmakt\u0131r:<\/p>\n<ul>\n<li><strong>Uygulama VPS\u2019i:<\/strong> GitLab ve\/veya Jira<\/li>\n<li><strong>Veritaban\u0131 VPS\u2019i:<\/strong> PostgreSQL (ve gerekirse Redis, RabbitMQ vb.)<\/li>\n<li><strong>CI\/Runner VPS\u2019i:<\/strong> GitLab Runner, Jenkins ajanlar\u0131, docker builder\u2019lar<\/li>\n<\/ul>\n<p>B\u00f6ylece CI y\u00fck\u00fc artt\u0131\u011f\u0131nda sadece runner VPS\u2019lerini b\u00fcy\u00fct\u00fcr veya say\u0131s\u0131n\u0131 art\u0131r\u0131rs\u0131n\u0131z; GitLab ve Jira kullan\u0131c\u0131 deneyimi daha \u00f6ng\u00f6r\u00fclebilir kal\u0131r.<\/p>\n<h3><span id=\"Container_ve_Docker_kullanimi\">Container ve Docker kullan\u0131m\u0131<\/span><\/h3>\n<p>GitLab, Jira ve benzeri ara\u00e7lar\u0131 <strong>Docker ile izole<\/strong> etmek, g\u00fcncelleme ve rollback s\u00fcre\u00e7lerini \u00e7ok kolayla\u015ft\u0131r\u0131r. Tek VPS \u00fczerinde bile container kullanarak her servisi izole etmek, g\u00fcvenlik ve y\u00f6netilebilirlik a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck kazan\u00e7 sa\u011flar. Bu konuyu ad\u0131m ad\u0131m anlatt\u0131\u011f\u0131m\u0131z <a href='https:\/\/www.dchost.com\/blog\/docker-ile-vpste-izole-uygulama-barindirma-adim-adim-rehber\/'>Docker ile VPS\u2019te izole uygulama bar\u0131nd\u0131rma rehberi<\/a>nde anlatt\u0131\u011f\u0131m\u0131z prensipleri, DevOps ara\u00e7lar\u0131n\u0131za birebir uygulayabilirsiniz.<\/p>\n<h2><span id=\"Guvenlik_mimarisi_DevOps_altyapisini_kale_gibi_yapmak\">G\u00fcvenlik mimarisi: DevOps altyap\u0131s\u0131n\u0131 kale gibi yapmak<\/span><\/h2>\n<p>Self-host DevOps platformu, firman\u0131z\u0131n <strong>en kritik s\u0131rlar\u0131n\u0131n<\/strong> durdu\u011fu yer: kaynak kod, eri\u015fim anahtarlar\u0131, CI pipeline\u2019lar\u0131nda kullan\u0131lan API token\u2019lar\u0131\u2026 Dolay\u0131s\u0131yla buraya yap\u0131lacak bir s\u0131z\u0131nt\u0131, \u00e7o\u011fu zaman ana uygulama sunucunuzdan bile daha riskli.<\/p>\n<h3><span id=\"Ag_katmani_Firewall_sadece_gerekli_portlar_ve_yonetim_agi\">A\u011f katman\u0131: Firewall, sadece gerekli portlar ve y\u00f6netim a\u011f\u0131<\/span><\/h3>\n<p>\u0130lk kural basit: <strong>Gereksiz her port kapal\u0131 olacak<\/strong>. En temel a\u00e7\u0131l\u0131mlar:<\/p>\n<ul>\n<li>GitLab\/Jira HTTP(S): 80\/443 (m\u00fcmk\u00fcnse sadece 443)<\/li>\n<li>SSH y\u00f6netimi: 22 (veya farkl\u0131 port) \u2013 sadece y\u00f6netici IP\u2019lerine k\u0131s\u0131tlama<\/li>\n<li>Veritaban\u0131 portlar\u0131 (5432 vb.): Sadece ilgili uygulama VPS\u2019lerinin eri\u015febilece\u011fi <strong>\u00f6zel a\u011f<\/strong> segmentinde a\u00e7\u0131k<\/li>\n<\/ul>\n<p>G\u00fcvenlik duvar\u0131n\u0131 do\u011fru kurgulamak i\u00e7in ufw, firewalld veya do\u011frudan iptables\/nftables kullanabilirsiniz. Detayl\u0131 kurulum ve iyi pratikler i\u00e7in <a href='https:\/\/www.dchost.com\/blog\/vps-sunucularda-guvenlik-duvari-yapilandirma-ufw-firewalld-ve-iptables\/'>VPS sunucularda g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rma rehberi<\/a>ne g\u00f6z atman\u0131z\u0131 \u00f6neririm.<\/p>\n<h3><span id=\"SSH_erisimi_ve_yetki_yonetimi\">SSH eri\u015fimi ve yetki y\u00f6netimi<\/span><\/h3>\n<p>DevOps ara\u00e7lar\u0131n\u0131 y\u00f6neten ekip genellikle sistem y\u00f6neticileri ve lead geli\u015ftiricilerden olu\u015fur. Bu ki\u015filere SSH eri\u015fimi verilirken:<\/p>\n<ul>\n<li>Parola ile giri\u015f <strong>tamamen kapat\u0131lmal\u0131<\/strong><\/li>\n<li>Yaln\u0131zca SSH anahtar\u0131 (public key) ile giri\u015fe izin verilmeli<\/li>\n<li>Her kullan\u0131c\u0131 i\u00e7in ayr\u0131 sistem hesab\u0131 tan\u0131mlanmal\u0131<\/li>\n<li>sudo yetkileri hassas \u015fekilde s\u0131n\u0131rland\u0131r\u0131lmal\u0131<\/li>\n<\/ul>\n<p>\u00c7oklu proje ve ekipler i\u00e7in <strong>kullan\u0131c\u0131, grup ve sudo mimarisi<\/strong>ni nas\u0131l tasarlayaca\u011f\u0131n\u0131z\u0131, <a href='https:\/\/www.dchost.com\/blog\/linux-vpste-kullanici-grup-ve-sudo-mimarisi-coklu-proje-ve-ekipler-icin-yetki-tasarimi\/'>Linux VPS\u2019te kullan\u0131c\u0131, grup ve sudo mimarisi<\/a> yaz\u0131m\u0131zda ayr\u0131nt\u0131l\u0131 anlatt\u0131k. DevOps VPS\u2019leriniz i\u00e7in de birebir ayn\u0131 yakla\u015f\u0131m\u0131 kullanabilirsiniz.<\/p>\n<h3><span id=\"HTTPS_TLS_ve_guvenlik_basliklari\">HTTPS, TLS ve g\u00fcvenlik ba\u015fl\u0131klar\u0131<\/span><\/h3>\n<p>GitLab ve Jira, varsay\u0131lan olarak HTTPS destekler; ancak <strong>sertifika y\u00f6netimi<\/strong> ve <strong>modern TLS ayarlar\u0131<\/strong>n\u0131 do\u011fru yapmak sizin sorumlulu\u011funuzdad\u0131r. \u00d6nerimiz:<\/p>\n<ul>\n<li>Let\u2019s Encrypt veya kurumsal <a href=\"https:\/\/www.dchost.com\/tr\/ssl\">SSL sertifikas\u0131<\/a> ile t\u00fcm trafi\u011fi 443 \u00fczerinden zorunlu hale getirin<\/li>\n<li>Nginx veya Caddy gibi bir reverse proxy ile SSL terminasyonu ve HSTS\/CSP gibi HTTP g\u00fcvenlik ba\u015fl\u0131klar\u0131n\u0131 y\u00f6netin<\/li>\n<li>Eski ve g\u00fcvensiz TLS s\u00fcr\u00fcmlerini kapat\u0131n, TLS 1.2+ ve m\u00fcmk\u00fcnse TLS 1.3 kullan\u0131n<\/li>\n<\/ul>\n<p>HTTP g\u00fcvenlik ba\u015fl\u0131klar\u0131n\u0131 (HSTS, CSP, X-Frame-Options vb.) nas\u0131l kurman\u0131z gerekti\u011fini ayr\u0131nt\u0131l\u0131 bi\u00e7imde anlatt\u0131\u011f\u0131m\u0131z <a href='https:\/\/www.dchost.com\/blog\/http-guvenlik-basliklari-rehberi-hsts-csp-x-frame-options-ve-referrer-policy-dogru-nasil-kurulur\/'>HTTP g\u00fcvenlik ba\u015fl\u0131klar\u0131 rehberi<\/a>, GitLab ve Jira gibi panelleri internete a\u00e7arken elinizin alt\u0131nda olmas\u0131 gereken bir kontrol listesi sunuyor.<\/p>\n<h3><span id=\"Secrets_ve_erisim_anahtarlari_yonetimi\">Secrets ve eri\u015fim anahtarlar\u0131 y\u00f6netimi<\/span><\/h3>\n<p>En s\u0131k yap\u0131lan hata, CI pipeline\u2019lar\u0131nda kullan\u0131lan access token, SSH private key, API anahtarlar\u0131 gibi bilgileri <strong>.env dosyalar\u0131nda veya Git repo i\u00e7inde<\/strong> tutmak. DevOps altyap\u0131n\u0131zda mutlaka \u015funlar\u0131 d\u00fc\u015f\u00fcnmelisiniz:<\/p>\n<ul>\n<li>Secrets\u2019lar\u0131 \u015fifreli bir kasa veya secrets manager i\u00e7inde saklamak<\/li>\n<li>CI runner\u2019lara environment variable ile ge\u00e7erken minimum yetki prensibine uymak<\/li>\n<li>D\u00fczenli anahtar rotasyonu yapmak ve eski anahtarlar\u0131 iptal etmek<\/li>\n<\/ul>\n<p>Bu konuda daha ileri seviyede bir yakla\u015f\u0131m\u0131 <a href='https:\/\/www.dchost.com\/blog\/vpste-secrets-yonetimi-nasil-tatli-tatli-cozulur-sops-age-gitops-akisi-systemd-ve-rotasyon\/'>VPS\u2019te secrets y\u00f6netimi rehberi<\/a>nde anlatt\u0131k; orada anlatt\u0131\u011f\u0131m\u0131z prensipleri GitLab, Jira ve CI boru hatlar\u0131n\u0131za uyarlamak, g\u00fcvenlik seviyenizi bir anda yukar\u0131 \u00e7eker.<\/p>\n<h3><span id=\"Yedekleme_ve_felaket_kurtarma\">Yedekleme ve felaket kurtarma<\/span><\/h3>\n<p>DevOps altyap\u0131s\u0131nda kaybetmeyi g\u00f6ze alamayaca\u011f\u0131n\u0131z iki temel veri tipi var:<\/p>\n<ul>\n<li>Git reposu ve issue\u2019lar (GitLab + Jira verileri)<\/li>\n<li>CI\/CD konfig\u00fcrasyonlar\u0131, pipeline tan\u0131mlar\u0131, secrets referanslar\u0131<\/li>\n<\/ul>\n<p>Yedek plan\u0131n\u0131z\u0131 kurgularken \u015fu ba\u015fl\u0131klar\u0131 netle\u015ftirin:<\/p>\n<ul>\n<li>G\u00fcnl\u00fck veritaban\u0131 dump + haftal\u0131k tam snapshot<\/li>\n<li>Repo ve dosya sisteminin periyodik rsync\/backup ar\u015fivleri<\/li>\n<li>Yedeklerin farkl\u0131 bir DCHost veri merkezinde veya object storage \u00fczerinde saklanmas\u0131<\/li>\n<li>3-2-1 kural\u0131 (3 kopya, 2 farkl\u0131 ortam, 1 kopya farkl\u0131 lokasyon) ve periyodik geri y\u00fckleme testleri<\/li>\n<\/ul>\n<p>Bu konuyu uygulamaya d\u00f6kmek i\u00e7in, <a href='https:\/\/www.dchost.com\/blog\/3-2-1-yedekleme-stratejisi-neden-ise-yariyor-cpanel-plesk-ve-vpste-otomatik-yedekleri-nasil-kurarsin\/'>3-2-1 yedekleme stratejisi<\/a> yaz\u0131m\u0131z\u0131 DevOps ortam\u0131n\u0131za uyarlayabilirsiniz.<\/p>\n<h2><span id=\"Operasyon_tarafi_Otomasyon_CICD_ve_izleme\">Operasyon taraf\u0131: Otomasyon, CI\/CD ve izleme<\/span><\/h2>\n<p>Self-host DevOps platformunun en b\u00fcy\u00fck avantajlar\u0131ndan biri, <strong>tam kontrol<\/strong>. Bu kontrol\u00fc her ad\u0131m\u0131 elle yaparak de\u011fil, olabildi\u011fince otomasyonla kullanmak gerekiyor.<\/p>\n<h3><span id=\"Altyapiyi_kodla_yonetmek_Terraform_ve_Ansible\">Altyap\u0131y\u0131 kodla y\u00f6netmek: Terraform ve Ansible<\/span><\/h3>\n<p>GitLab ve Jira gibi kritik sistemlerde, ayn\u0131 ortam\u0131 tekrar kurabilmek (disaster an\u0131nda veya staging ortam\u0131 i\u00e7in) \u00e7ok de\u011ferlidir. Bunun i\u00e7in:<\/p>\n<ul>\n<li>VPS olu\u015fturma, a\u011f ve g\u00fcvenlik kurallar\u0131n\u0131 Terraform benzeri ara\u00e7larla tan\u0131mlay\u0131n<\/li>\n<li>Sunucu i\u00e7i konfig\u00fcrasyonlar\u0131 (Nginx, PostgreSQL, GitLab\/Jira config) Ansible playbook\u2019lar\u0131yla y\u00f6netin<\/li>\n<\/ul>\n<p>Bu yakla\u015f\u0131m\u0131 pratik \u00f6rneklerle anlatt\u0131\u011f\u0131m\u0131z <a href='https:\/\/www.dchost.com\/blog\/terraform-ve-ansible-ile-vps-otomasyonu-ayni-sunucuyu-tek-tusla-kurmak\/'>Terraform ve Ansible ile VPS otomasyonu<\/a> yaz\u0131m\u0131z, DevOps altyap\u0131n\u0131z\u0131 da \u201ctek tu\u015fla tekrar \u00fcretilebilir\u201d hale getirmenin g\u00fczel bir referans\u0131.<\/p>\n<h3><span id=\"CICDden_VPSe_dagitim_Otomatik_ve_sifir_kesintiye_yakin\">CI\/CD\u2019den VPS\u2019e da\u011f\u0131t\u0131m: Otomatik ve s\u0131f\u0131r kesintiye yak\u0131n<\/span><\/h3>\n<p>GitLab Runner veya ba\u015fka CI ara\u00e7lar\u0131yla build etti\u011finiz uygulamalar\u0131, yine self-host VPS\u2019lerinize otomatik \u015fekilde da\u011f\u0131tmak istiyorsunuz. Burada:<\/p>\n<ul>\n<li>Blue-Green veya canary deployment gibi stratejilerle s\u0131f\u0131ra yak\u0131n kesinti hedefleyebilirsiniz<\/li>\n<li>rsync, sembolik s\u00fcr\u00fcmler ve systemd servisleriyle basit ama sa\u011flam bir da\u011f\u0131t\u0131m boru hatt\u0131 kurabilirsiniz<\/li>\n<\/ul>\n<p>Bu konuda pratik bir yol haritas\u0131n\u0131, <a href='https:\/\/www.dchost.com\/blog\/github-actions-ile-vpse-otomatik-deploy-ve-zero-downtime-yayin\/'>GitHub Actions ile VPS\u2019e otomatik deploy<\/a> yaz\u0131m\u0131zda anlatt\u0131k; GitHub Actions yerine GitLab CI veya ba\u015fka bir CI arac\u0131 kullansan\u0131z bile yakla\u015f\u0131m ayn\u0131.<\/p>\n<h3><span id=\"Izleme_log_ve_alarm_Sorunlari_kullanicidan_once_gormek\">\u0130zleme, log ve alarm: Sorunlar\u0131 kullan\u0131c\u0131dan \u00f6nce g\u00f6rmek<\/span><\/h3>\n<p>GitLab ve Jira gibi ara\u00e7lar yava\u015flad\u0131\u011f\u0131nda, geli\u015ftirici ekibin verimlili\u011fi an\u0131nda d\u00fc\u015fer. Bu y\u00fczden:<\/p>\n<ul>\n<li>CPU, RAM, disk I\/O ve a\u011f kullan\u0131m\u0131n\u0131 metrik bazl\u0131 izleyin<\/li>\n<li>Uygulama loglar\u0131n\u0131 merkezi bir yerde toplay\u0131n (\u00f6r. Loki, ELK, benzeri \u00e7\u00f6z\u00fcmler)<\/li>\n<li>Uptime ve response time i\u00e7in harici bir izleme arac\u0131yla endpoint\u2019leri takip edin<\/li>\n<\/ul>\n<p>Temel metrikleri ve ara\u00e7lar\u0131 tan\u0131tt\u0131\u011f\u0131m\u0131z <a href='https:\/\/www.dchost.com\/blog\/vps-kaynak-kullanimi-izleme-rehberi-htop-iotop-netdata-ve-prometheus\/'>VPS kaynak kullan\u0131m\u0131 izleme rehberi<\/a>, DevOps VPS\u2019leriniz i\u00e7in hangi sinyallere bakman\u0131z gerekti\u011fini netle\u015ftirmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2><span id=\"DCHost_uzerinde_self-hosted_DevOps_icin_pratik_yol_haritasi\">DCHost \u00fczerinde self-hosted DevOps i\u00e7in pratik yol haritas\u0131<\/span><\/h2>\n<p>Toparlayal\u0131m; GitLab, Jira ve di\u011fer DevOps ara\u00e7lar\u0131n\u0131 DCHost VPS altyap\u0131s\u0131nda self-host etmek istiyorsan\u0131z, ad\u0131m ad\u0131m \u015f\u00f6yle ilerleyebilirsiniz:<\/p>\n<ol>\n<li><strong>Ekip profilini \u00e7\u0131kar\u0131n:<\/strong> Geli\u015ftirici say\u0131s\u0131, g\u00fcnl\u00fck commit\/pipeline say\u0131s\u0131, repo boyutlar\u0131.<\/li>\n<li><strong>Mimariyi se\u00e7in:<\/strong> K\u00fc\u00e7\u00fck ekipler i\u00e7in monolit g\u00fc\u00e7l\u00fc VPS, orta ve \u00fcst \u00f6l\u00e7ek i\u00e7in rol bazl\u0131 \u00e7oklu VPS.<\/li>\n<li><strong>Kaynaklar\u0131 boyutland\u0131r\u0131n:<\/strong> GitLab\/Jira i\u00e7in CPU\/RAM\u2019i, veritaban\u0131 i\u00e7in IOPS\u2019i ciddiye al\u0131n; NVMe diskleri tercih edin.<\/li>\n<li><strong>G\u00fcvenlik temelini kurun:<\/strong> Firewall, SSH anahtarlar\u0131, TLS\/SSL, kullan\u0131c\u0131 ve sudo mimarisi.<\/li>\n<li><strong>Yedek ve DR plan\u0131 olu\u015fturun:<\/strong> 3-2-1 kural\u0131, periyodik restore testleri, farkl\u0131 lokasyonda saklanan yedekler.<\/li>\n<li><strong>Otomasyon ve izleme ekleyin:<\/strong> Terraform\/Ansible ile tekrar \u00fcretilebilir altyap\u0131, Prometheus\/Grafana veya benzeri ile metrik ve alarm.<\/li>\n<\/ol>\n<p>DCHost olarak, ister <strong>NVMe VPS<\/strong>, ister <strong>dedicated sunucu<\/strong>, isterseniz de <strong>colocation<\/strong> \u00fczerinden kendi fiziksel sunucular\u0131n\u0131z\u0131 bar\u0131nd\u0131r\u0131n; DevOps altyap\u0131n\u0131z\u0131 planlarken do\u011fru kaynak ve mimariyi se\u00e7meniz i\u00e7in teknik ekibimizle birlikte \u00e7al\u0131\u015fabilirsiniz. \u0130sterseniz k\u00fc\u00e7\u00fck bir pilot ortamla ba\u015flay\u0131p, ger\u00e7ek kullan\u0131m metriklerine g\u00f6re b\u00fcy\u00fcyen bir mimariye do\u011fru evrimle\u015ftirmek de m\u00fcmk\u00fcn. \u00d6nemli olan, ilk g\u00fcnden \u201cnas\u0131l olsa i\u00e7 kullan\u0131m\u201d diye bakmay\u0131p, <strong>kritik bir \u00fcretim altyap\u0131s\u0131<\/strong> kurdu\u011funuz ger\u00e7e\u011fini g\u00f6zden ka\u00e7\u0131rmaman\u0131z.<\/p>\n<p>Bir sonraki ad\u0131mda, mevcut ekip b\u00fcy\u00fckl\u00fc\u011f\u00fcn\u00fcz\u00fc ve ara\u00e7 listenizi \u00e7\u0131kar\u0131n; bu yaz\u0131daki senaryolar\u0131 temel alarak kabaca CPU, RAM ve disk ihtiyac\u0131n\u0131z\u0131 hesaplay\u0131n. Sonras\u0131nda bunu DCHost VPS veya dedicated se\u00e7enekleriyle e\u015fle\u015ftirerek, y\u0131llarca g\u00fcvenle \u00fczerinde \u00e7al\u0131\u015fabilece\u011finiz, s\u00fcrd\u00fcr\u00fclebilir bir self-hosted DevOps platformu in\u015fa edebilirsiniz.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0130&ccedil;indekiler1 Self-hosted DevOps ara\u00e7lar\u0131n\u0131 neden VPS\u2019te toplamal\u0131s\u0131n\u0131z?2 Hangi DevOps ara\u00e7lar\u0131n\u0131 VPS\u2019te self-host etmek mant\u0131kl\u0131?3 Kaynak planlama: GitLab, Jira ve arkada\u015flar\u0131 ka\u00e7 vCPU, ne kadar RAM ister?3.1 Senaryo 1: K\u00fc\u00e7\u00fck \u00fcr\u00fcn ekibi (5\u201310 geli\u015ftirici)3.2 Senaryo 2: Orta \u00f6l\u00e7ekli ekip (20\u201350 geli\u015ftirici)3.3 Senaryo 3: B\u00fcy\u00fcyen SaaS ekibi (50+ geli\u015ftirici, \u00e7oklu proje)3.4 Disk kapasitesi ve IOPS hesaplama4 Mimari [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3786,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-3785","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/3785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=3785"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/3785\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/3786"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=3785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=3785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=3785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}