Kitap 05
DevOps ve Bulut
Yazılımı derlemek, test etmek, paketlemek ve canlı ortama göndermek için kullanılan araçlar ve pratikler.
İçindekiler
- 01Ansible1Ansible, YAML playbook'larını ajan kurmadan SSH üzerinden çalıştırarak sunucuları yapılandıran ve uygulama dağıtan açık kaynaklı bir otomasyon aracıdır.
- 02AWSAmazon Web Services2AWS (Amazon Web Services), Amazon'un bulut platformudur; sunucu, depolama, veritabanı ve çok daha fazlası için kullandıkça ödenen 200'den fazla servis sunar.
- 03AzureMicrosoft Azure3Microsoft Azure, sanal makineler, veritabanları ve yapay zekâ modelleri gibi yüzlerce isteğe bağlı servis sunan, Microsoft'un küresel bulut platformudur.
- 04Blue-Green Deployment4Blue-green deployment, iki özdeş canlı ortam kullanan ve tüm trafiği eski sürümden yeni sürüme tek seferde geçiren bir yayın stratejisidir.
- 05Bulut Bilişim5Bulut bilişim, sunucu, depolama ve veritabanı gibi bilişim kaynaklarının internet üzerinden, kullandığın kadar öde modeliyle talep üzerine sunulmasıdır.
- 06Canary Deployment6Canary deployment, yeni bir yazılım sürümünü önce kullanıcıların küçük bir bölümüne sunar, sağlığını kontrol eder ve ardından kademeli olarak herkese yayar.
- 07CDNİçerik Dağıtım Ağı7CDN, dünyanın dört bir yanına yayılmış ve web sitesi içeriğinin kopyalarını saklayıp her kullanıcıya en yakın konumdan sunan bir sunucu ağıdır.
- 08Chaos Engineering8Chaos engineering, bir sisteme sunucu çökertmek gibi kasıtlı arızalar enjekte ederek sistemin beklendiği gibi çalışmaya devam ettiğini doğrulama pratiğidir.
- 09CI/CDSürekli Entegrasyon / Sürekli Teslimat9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- 10Container Registry10Container registry, konteyner imajları için bir depolama ve dağıtım hizmetidir; ekipler derlenmiş imajları push eder, onları çalıştıran her sunucuya pull eder.
- 11Dağıtık İzleme11Dağıtık izleme, tek bir isteği birçok servis boyunca takip eden; her adımın ne kadar sürdüğünü ve nerede başarısız olduğunu kaydeden bir tekniktir.
- 12Değiştirilemez Altyapı12Değiştirilemez altyapı, sunucuların dağıtımdan sonra hiç değiştirilmediği, her güncellemede yerlerine sıfırdan kurulan yenilerinin geldiği bir yaklaşımdır.
- 13DevOpsGeliştirme ve Operasyon13DevOps, yazılım geliştirme ile BT operasyonlarını birleştirerek yazılımın daha hızlı ve güvenilir sunulmasını sağlayan bir kültür ve pratikler bütünüdür.
- 14DNSAlan Adı Sistemi14DNS, internetin adlandırma sistemidir; example.com gibi insanın okuyabileceği alan adlarını bilgisayarların kullandığı sayısal IP adreslerine çevirir.
- 15Docker15Docker, bir uygulamayı ve ihtiyaç duyduğu her şeyi, her makinede aynı şekilde çalışan bir konteyner içinde paketlemeye yarayan açık kaynaklı bir platformdur.
- 16Docker Compose16Docker Compose, web sunucusu ve veritabanı gibi birkaç container'dan oluşan uygulamaları tek bir YAML dosyası ve tek komutla tanımlayıp çalıştıran araçtır.
- 17Edge Computing17Edge computing, gecikmeyi azaltmak için kodu ve veriyi uzak bir merkezi veri merkezi yerine kullanıcıların ya da cihazların yakınında çalıştırıp işlemektir.
- 18Feature Flag18Feature flag, koddaki bir özelliği çalışma zamanında açıp kapatan bir anahtardır; ekipler kodu herkese aynı anda yayınlamadan dağıtabilir.
- 19GitHub Actions19GitHub Actions, GitHub'ın yerleşik otomasyon platformudur; depodaki YAML iş akışları push ya da pull request olduğunda test, derleme ve dağıtım çalıştırır.
- 20GitOps20GitOps, sistemin istenen durumunu Git'te tutan ve otomatik bir ajanın canlı sistemi bununla senkronize ettiği bir altyapı ve dağıtım yönetimi yöntemidir.
- 21Google CloudGoogle Cloud Platform21Google Cloud, Google'ın kendi ürünlerini çalıştıran küresel altyapıda hesaplama, depolama, veri ve yapay zekâ servisleri sunan genel bulut platformudur.
- 22Gözlemlenebilirlik22Gözlemlenebilirlik, çalışan bir yazılım sisteminin içinde olup biteni log, metrik ve trace verilerini toplayıp analiz ederek anlayabilme yeteneğidir.
- 23Grafana23Grafana; birçok veri kaynağındaki metrik, log ve izleri tek yerde canlı grafiklere ve uyarılara dönüştüren panolar kurmaya yarayan açık kaynaklı bir araçtır.
- 24Helm24Helm, Kubernetes'in paket yöneticisidir; uygulamanın yapılandırma dosyalarını tek komutla kurulup güncellenebilen ve geri alınabilen bir chart'ta paketler.
- 25IaaSHizmet Olarak Altyapı25IaaS (infrastructure as a service), sanal makine, depolama ve ağı isteğe bağlı kiralayıp işletim sistemini ve üstünü kendiniz yönettiğiniz bulut modelidir.
- 26Jenkins26Jenkins, yazılımı pipeline'larla derleyen, test eden ve dağıtan açık kaynaklı bir otomasyon sunucusudur; en eski ve en yaygın CI/CD araçlarından biridir.
- 27Kod Olarak Altyapı27Kod olarak altyapı, sunucuları, ağları ve diğer altyapıyı araçların otomatik uyguladığı, sürüm kontrolündeki dosyalarda tanımlama pratiğidir.
- 28Konteyner28Konteyner, bir uygulamayı bağımlılıklarıyla paketleyip ana makinenin paylaşılan işletim sistemi çekirdeği üzerinde çalıştıran hafif, yalıtılmış bir pakettir.
- 29kubectl29kubectl, Kubernetes'in komut satırı aracıdır: uygulamaları dağıtmak, incelemek ve değiştirmek için bir cluster'ın API sunucusuna istek gönderir.
- 30Kubernetes30Kubernetes, konteynerli uygulamaların bir makine kümesi üzerinde dağıtılmasını, ölçeklenmesini ve yönetilmesini otomatikleştiren açık kaynaklı bir sistemdir.
- 31Linux31Linux, çoğu sunucuyu, bulutu, konteyneri ve Android telefonu çalıştıran, genellikle dağıtım olarak paketlenen açık kaynaklı bir işletim sistemi çekirdeğidir.
- 32Loglama32Loglama, çalışan bir programdaki hata ve istek gibi olaylar hakkında zaman damgalı mesajlar kaydetme pratiğidir; insanlar bunları sonradan inceleyebilir.
- 33Metrikler33Metrikler, bir sistemden zamanla toplanan istek oranı, hata oranı ve CPU kullanımı gibi sayısal ölçümlerdir; panolar, uyarılar ve planlama için kullanılır.
- 34Nesne Depolama34Nesne depolama, veriyi benzersiz anahtarlı ve meta verili bütün nesneler olarak, HTTP üzerinden çok sayıda dosyaya ölçeklenen düz bucket'larda saklar.
- 35OpenTelemetry35OpenTelemetry, yazılımdan trace, metrik ve log toplayıp bunları herhangi bir izleme backend'ine göndermek için açık bir standart ve araç takımıdır.
- 36Ortam Değişkeni36Ortam değişkeni, programın dışında işletim sistemi ya da çalışma zamanınca ayarlanan, programın davranışını yapılandırmak için okuduğu adlandırılmış değerdir.
- 37Otomatik Ölçekleme37Otomatik ölçekleme, sunucu ya da konteyner gibi bilişim kaynaklarının talebe göre otomatik eklenip çıkarılmasıdır; performans sabit, maliyet düşük kalır.
- 38PaaSHizmet Olarak Platform38PaaS (platform as a service), kodunuzu dağıttığınız, altındaki sunucuları, işletim sistemlerini ve ölçeklemeyi sağlayıcının çalıştırdığı bir bulut modelidir.
- 39Pod39Pod, Kubernetes'te dağıtılabilen en küçük birimdir: ağ adresini ve depolamayı paylaşan, tek bir node'da birlikte zamanlanan bir ya da daha çok konteynerdir.
- 40Postmortem40Postmortem, bir olaydan sonra yazılan; ne olduğunu, neden olduğunu ve tekrarlanmaması için ekibin neyi değiştireceğini açıklayan yazılı bir incelemedir.
- 41Prometheus41Prometheus, uygulama ve sunuculardan metrik toplayıp zaman serisi olarak saklayan ve değerler sınırı aşınca uyarı tetikleyen açık kaynaklı izleme sistemidir.
- 42Reverse Proxy42Reverse proxy, web sunucularının önünde durup istemci isteklerini onlar adına kabul eden ve her isteği doğru arka uç sunucuya ileten bir sunucudur.
- 43Rollback43Rollback, yeni bir dağıtım hatalara, kesintilere ya da beklenmedik başka sorunlara yol açtığında yazılımı önceki, sorunsuz sürüme döndürme işlemidir.
- 44SaaSHizmet Olarak Yazılım44SaaS (software as a service), internet üzerinden abonelikle sunulan yazılımdır; kullanıcı giriş yapar, sağlayıcı ise her şeyi çalıştırır, günceller ve korur.
- 45Sanal Makine45Sanal makine, paylaşılan fiziksel donanımda kendi işletim sistemini çalıştıran, aynı ana makinedeki diğerlerinden yalıtılmış yazılım tabanlı bilgisayardır.
- 46Serverless46Serverless, sağlayıcının kodu talep üzerine çalıştırıp sunucuları yönettiği, otomatik ölçeklediği ve yalnızca gerçek kullanıma ücret aldığı bulut modelidir.
- 47Service Mesh47Service mesh, mikroservisler arası trafiği yöneten; kod değiştirmeden şifreleme, yeniden deneme, yönlendirme ve izleme ekleyen bir altyapı katmanıdır.
- 48Site Reliability Engineering48Site reliability engineering, operasyona yazılım mühendisliğini uygulayan ve hizmetleri otomasyon ile ölçülebilir hedeflerle güvenilir tutan bir disiplindir.
- 49SLAHizmet Seviyesi Anlaşması49SLA (service level agreement), sağlayıcının müşterilerine %99,9 erişilebilirlik gibi hizmet seviyesi ve karşılanmazsa ne olacağına dair verdiği taahhüttür.
- 50SLOHizmet Seviyesi Hedefi50SLO, bir hizmetin ölçülebilir güvenilirlik hedefidir (örneğin 30 günde isteklerin %99,9'unun başarılı olması) ve yeterince güvenilirin ne olduğunu belirler.
- 51Terraform51Terraform, kod olarak altyapı aracıdır; bulut kaynaklarını yapılandırma dosyalarında tarif edersiniz, tek komut onları buna göre oluşturur ya da günceller.
- 52YAMLYAML Ain't Markup Language52YAML, parantez yerine girinti kullanan, insanın okuyabileceği bir veri biçimidir; DevOps araçlarında ve CI/CD pipeline'larında yapılandırma için yaygındır.
- 53Yapılandırma Yönetimi53Yapılandırma yönetimi, sunucuların ve yazılımın istenen durumunu kodla tanımlama ve araçlarla bunu otomatik olarak uygulayıp koruma pratiğidir.
- 54Yük Dengeleyici54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.