AWS Bulut
AWS Bulut
AWS'yi Kullanmaya Başlayın

DevOps, kurumların uygulama ve hizmetleri yüksek hızda sunmanın yanı sıra ürünleri geleneksel yazılım geliştirme ve altyapı yönetimi süreçlerini kullanan kurumlara göre daha hızlı geliştirme becerisini artıran kültürel felsefelerin, uygulamaların ve araçların birleşimidir. Bu hız, kurumların müşterilerine daha iyi hizmet sunmasına ve piyasada daha etkili bir şekilde rekabet etmesine imkan tanır.

DevOps nedir?

Bir DevOps modelinde geliştirme ve operasyon ekipleri artık “silolu” değildir. Bazen bu iki ekip tek bir ekip altında birleştirilir ve ekipteki mühendisler geliştirme ve testten dağıtım ve operasyona kadar bir uygulamanın yaşam döngüsünün tamamında çalışır ve tek bir işlevle kısıtlı olmayan bir dizi beceri edinir.

Bazı DevOps modellerinde kalite güvencesi ve güvenlik ekipleri de uygulamanın yaşam döngüsü boyunca geliştirme ve operasyon ekibiyle sıkı bir entegrasyon içinde olur. Bir DevOps ekibindeki herkes güvenliğe odaklanıyorsa buna bazen DevSecOps denir.

Bu ekipler, süreçleri kullanarak eskiden el ile gerçekleştirilen ve yavaş olan süreçleri otomatikleştirir. Uygulamaları hızla ve güvenilir bir şekilde çalıştırıp geliştirmelerine yardımcı olan bir teknoloji yığınını ve araçları kullanırlar. Ayrıca, bu araçlar mühendislerin normalde diğer ekiplerden yardım almasını gerektirecek görevleri (örneğin, kod dağıtma veya altyapı tedarik etme) bağımsız olarak yapmasına yardımcı olarak ekiplerin hızını daha da artırır.

DevOps-What-is_scale

Yüksek bir hızda hareket ederek müşterileriniz için daha hızlı yenilik yapın, değişen pazarlara daha iyi uyum sağlayın ve daha verimli bir şekilde çalışarak daha başarılı sonuçlar elde edin. DevOps modeli, geliştiricilerinizin ve operasyon ekiplerinizin bu sonuçları elde etmesine imkan tanır. Örneğin, mikro hizmetler ve sürekli teslim, hizmetlerin sahipliğini ekiplerin üstlenmesine ve bunlara yönelik güncellemeleri daha hızlı sağlamasına imkan tanır.

DevOps-What-is_delivery

Daha hızlı yenilik yaparak ürününüzü geliştirebilmeniz için yayın sıklığını ve hızını artırın. Yeni özellikleri ve hata düzeltmelerini ne kadar hızlı yayınlayabilirseniz müşterilerinizin gereksinimlerine de o kadar hızlı yanıt verebilir ve rakiplerinizin önüne geçebilirsiniz. Sürekli entegrasyon ve sürekli teslim, derlemeden dağıtıma kadar yazılım yayınlama sürecinin tamamını otomatikleştiren uygulamalardır.

DevOps-What-is_reliability

Uygulama güncellemelerinin ve altyapı değişikliklerinin doğru kalitede olduğundan emin olarak hem daha yüksek hızda güvenilir bir şekilde teslimat gerçekleştirebilir hem de son kullanıcı deneyiminin olumlu kalmasını sağlayabilirsiniz. Sürekli entegrasyon ve sürekli teslim gibi uygulamalar aracılığıyla her bir değişikliğin işlevsel ve güvenli olduğunu test edin. İzleme ve günlüğe kaydetme uygulamaları, performansı gerçek zamanlı olarak takip etmenize yardımcı olur.

DevOps-What-is_scale

Altyapınızı ve geliştirme süreçlerinizi uygun ölçekte çalıştırın ve yönetin. Otomasyon ve tutarlılık, karmaşık ya da değişen sistemlerinizi verimli bir şekilde, daha az riskle yönetmenize yardımcı olur. Örneğin kod olarak altyapı modeli, geliştirme, test ve üretim ortamlarınızı yinelenebilir ve daha verimli bir şekilde yönetmenize yardımcı olur.

DevOps-What-is_collaboration

Sahiplik ve sorumluluk gibi değerleri vurgulayan DevOps'a dayalı bir kültürel model kapsamında daha etkili ekipler kurun. Bu modelde geliştiriciler ve operasyon ekipleri daha yakın bir şekilde işbirliği yapar, birçok sorumluluğu ortak olarak üstlenir ve iş akışlarını birleştirir. Bu da verimsizliği azaltır ve zaman tasarrufu sağlar (örn. geliştiriciler ile operasyon arasındaki devir dönemlerinin kısalması, kod yazarken kodun çalıştırılacağı ortamın göz önünde bulundurulması).

DevOps-What-is_security

Denetim ve uyumluluktan ödün vermeden daha hızlı hareket edin. Otomatik uyumluluk politikaları, ayrıntılı denetimler ve yapılandırma yönetimi teknikleri sayesinde güvenlikten taviz vermenize gerek kalmadan bir DevOps modelini benimseyebilirsiniz. Örneğin, kod olarak altyapı ve kod olarak politika ile uyumluluğu doğru ölçekte tanımlayabilir, daha sonra da izleyebilirsiniz.

Yazılımlar ve İnternet, alışveriş ve eğlenceden bankacılığa kadar tüm sektörler dahil olmak üzere dünyayı dönüşüme uğratmıştır. Bir işletme için destek işlevinin çok daha ötesine geçen yazılımlar, artık her birimin olmazsa olmaz bileşenleri haline gelmiştir. Şirketler müşterileriyle çevrimiçi hizmetler veya uygulamalar olarak sunulan ve her tür cihazda kullanılabilen yazılımlar aracılığıyla etkileşim kuruyor. Ayrıca, değer zincirinin lojistik, iletişim ve operasyon gibi her bir halkasını dönüştürerek operasyonel verimliliği artırmak için de yazılımları kullanıyorlar. Fiziksel ürünler üreten şirketlerin 20. yüzyıl boyunca tasarım, üretim ve teslimat süreçlerini otomasyon aracılığıyla dönüşüme uğratmasına benzer şekilde, günümüz dünyasındaki şirketlerin de yazılım oluşturma ve teslim etme süreçlerini dönüştürmesi gerekiyor.

DevOps'a geçiş için hem kültür hem de zihniyet değişikliği gerekir. DevOps, en basit biçimiyle geleneksel olarak silolu olan geliştirme ve operasyon ekipleri arasındaki bariyerlerin kaldırılmasını amaçlar. Bazı kurumlarda geliştirme ve operasyon ekipleri ayrı olmayabilir ve her ikisini de mühendisler yapıyor olabilir. DevOps modelinde hem geliştiricilerin üretkenliğinin hem de operasyonların güvenilirliğinin iyileştirilmesi için iki ekip birlikte çalışır. Sık iletişim kurmak, verimliliği artırmak ve müşterilere sağladıkları hizmetlerin kalitesini geliştirmek için çabalarlar. Müşterilerin gereksinimlerini ve bu gereksinimlerin karşılanmasına nasıl katkıda bulunacaklarını düşünerek, çoğunlukla da geleneksel olarak tanımlanan rollerinin ya da unvanlarının kapsamını aşarak hizmetleri konusunda tüm sorumluluğu üstlenirler. Kalite güvencesi ve güvenlik ekiplerinin de bu ekiplere sıkı bir şekilde entegre olması sağlanabilir. DevOps modelini kullanan kurumlar, kurumsal yapılarından bağımsız olarak geliştirme ve altyapı yaşam döngüsünün tamamını kendi sorumluluğu kapsamında gören ekiplere sahiptir.

Kurumların yazılım geliştirme ve altyapı yönetimi süreçlerini otomatikleştirme ve modernleştirme yoluyla daha hızlı yenilik yapmasına yardımcı olan birkaç önemli uygulama vardır. Bu uygulamaların çoğu, doğru araçların kullanılmasıyla mümkün olur.

En temel uygulamalardan biri, çok sık ancak küçük güncellemeler yapmaktır. Kurumların müşterileri için daha hızlı yenilik yapmak için kullandığı yol budur. Geleneksel yayın modellerinde seyrek olarak gerçekleştirilen güncellemelerle karşılaştırıldığında bu güncellemeler genellikle doğası gereği daha küçük değişikliklerden oluşur. Güncellemelerin sık ve küçük olması, her dağıtımın daha az riskli olmasını sağlar. Ekipler hataya yol açan en son dağıtımı belirleyebildiğinden, bu güncellemeler ekiplerin hataları daha hızlı gidermesine yardımcı olur. Güncellemelerin temposu ve boyutu değişiklik gösterse de DevOps modelini kullanan kurumlar, geleneksel yazılım geliştirme modellerini kullanan kurumlardan çok daha fazla güncelleme dağıtır.

Kurumlar uygulamalarını daha esnek hale getirmek ve daha hızlı yenilik yapmayı mümkün kılmak için bir mikro hizmet mimarisi de kullanabilir. Mikro hizmet mimarisi büyük, karmaşık sistemleri bileşenlerine ayırarak basit, bağımsız projelere dönüştürür. Uygulamalar birçok tekil bileşene (hizmet) ayrıştırılırken her bir hizmet tek bir amacı veya işlevi kapsayacak şekilde ayarlanmasının yanı sıra uygulamadaki diğer hizmetlerden ve bir bütün olarak uygulamadan bağımsız bir şekilde çalıştırılır. Bu mimari, uygulamaların güncellenmesine ilişkin koordinasyon yükünü hafifletir ve her hizmetin sahipliğini tamamen üstlenebilecek küçük, çevik takımlarla eşleştirilmesi sayesinde kurumlar daha hızlı hareket edebilir.

Bununla birlikte, mikro hizmetler ile yayın sıklığındaki artış birlikte ele alındığında, dağıtım sayısı önemli ölçüde artar ve bu da operasyonel zorluklara yol açabilir. Buna karşılık olarak, sürekli entegrasyon ve sürekli teslim gibi DevOps uygulamaları bu sorunları çözmesinin yanı sıra kurumların güvenli ve güvenilir bir şekilde teslimat yapmasını mümkün kılar. Kod olarak altyapı ve yapılandırma yönetimi gibi altyapı otomasyon uygulamaları, sık değişiklikler karşısında işlem kaynaklarının esnek olmasına ve hızla uyum sağlamasına yardımcı olur. Ayrıca, izleme ve günlük kaydı kullanımı, mühendislerin uygulama ve altyapı performansını izleyerek sorunlara daha hızlı yanıt vermesine yardımcı olur.

Bu uygulamalar bir araya geldiğinde kurumların müşterilerine daha hızlı, daha güvenilir güncellemeler sunmasına yardımcı olur. Aşağıda, önemli DevOps uygulamalarına genel bir bakış sağlanmıştır.


En iyi DevOps uygulamaları şunlardır: 

Aşağıdan bu uygulamaların her biriyle ilgili daha fazla bilgi edinebilirsiniz.
Sürekli Entegrasyon

Sürekli entegrasyon, geliştiricilerin kod değişikliklerini düzenli aralıklarla merkezi bir depoyla birleştirdiği, bunun üzerine de otomatik derleme ve test işlemlerinin gerçekleştirildiği bir yazılım geliştirme uygulamasıdır. Sürekli entegrasyonun ana hedefleri, hataları daha hızlı bulup gidermek, yazılım kalitesini geliştirmek ve yeni yazılım güncellemelerinin doğrulanması ve yayınlanması için gereken süreyi azaltmaktır.

Sürekli entegrasyon hakkında daha fazla bilgi edinin »


Sürekli Teslim

Sürekli teslim, kod değişikliklerinin otomatik olarak derlendiği, test edildiği ve üretime yönelik olarak yayınlanmaya hazırlandığı bir yazılım geliştirme uygulamasıdır. Tüm kod değişikliklerinin derleme aşamasından sonra bir test ortamına ve/veya üretim ortamına dağıtılması açısından sürekli entegrasyonun kapsamını genişletir. Sürekli teslim doğru uygulanırsa geliştiricilerin her zaman standart bir test sürecinden başarıyla geçmiş, dağıtıma hazır bir derleme yapıtı olur.

Sürekli teslim ve AWS CodePipeline hakkında daha fazla bilgi edinin »


Mikro Hizmetler

Mikro hizmet mimarisi, tek bir uygulamanın bir dizi küçük hizmet şeklinde oluşturulduğu bir tasarım yaklaşımıdır. Her hizmet kendi işleminde çalışır ve diğer hizmetlerle basit bir mekanizma kullanan iyi tanımlanmış bir arabirim (genellikle HTTP tabanlı bir uygulama programlama arabirimi (API) kullanılır) üzerinden iletişim kurar. Mikro hizmetler iş gereksinimleri temelinde oluşturulur ve her hizmetin kapsamı tek bir amaçla sınırlıdır. Çeşitli framework'leri veya programlama dillerini kullanarak mikro hizmetler yazabilir ve bunları bağımsız olarak, tek bir hizmet olarak ya da bir hizmet grubu olarak dağıtabilirsiniz.

Amazon Container Service (Amazon ECS) hakkında daha fazla bilgi edinin »

AWS Lambda Hakkında Daha Fazla Bilgi Edinin »


Kod Olarak Altyapı

Kod olarak altyapı, altyapının sürüm denetimi ve sürekli entegrasyon gibi kod ve yazılım geliştirme teknikleri kullanılarak tedarik edildiği ve yönetildiği bir uygulamadır. Kaynakların el ile ayarlanıp yapılandırılmasını gerektirmeyen API destekli bulut modeli, geliştiricilerin ve sistem yöneticilerinin altyapı ile programlama yoluyla etkileşim kurmasına imkan tanır. Bu sayede, mühendisler altyapıyla kod tabanlı araçlar kullanarak etkileşim kurabilir ve altyapıya uygulama koduna benzer şekilde yaklaşabilir. Altyapı ve sunucular kodla tanımlandığından, standart desenler kullanılarak hızla dağıtılabilir, en son yamalar ve sürümlerle güncellenebilir ya da yinelenebilir yöntemlerle çoğaltılabilir.

AWS CloudFormation ile altyapınızı kod olarak yönetmeyi öğrenin »

Geliştiriciler ve sistem yöneticileri kod kullanarak işletim sistemi ve konak yapılandırmasını, operasyonel görevleri ve daha fazlasını otomatikleştirebilir. Kod kullanımı, yapılandırma değişikliklerinin yinelenebilir ve standart olmasını sağlar. Geliştiricilerin ve sistem yöneticilerinin işletim sistemlerini, sistem uygulamalarını veya sunucu yazılımlarını el ile yapılandırma yükünden kurtulmasını sağlar.

Amazon EC2 Systems Manager ile hem Amazon EC2'deki hem de şirket içindeki sistemleri nasıl yapılandırabileceğinizi ve yönetebileceğinizi öğrenin »

AWS OpsWorks ile yapılandırma yönetimini kullanmayı öğrenin »

Altyapının ve yapılandırmasının bulut ile koda dönüştürülmesi sayesinde kurumlar uyumluluğu dinamik olarak ve uygun ölçekte izleyip uygulayabilir. Böylece, kodla tanımlanan altyapı otomatik bir şekilde izlenebilir, doğrulanabilir ve yeniden yapılandırılabilir. Bu, kurumların kaynaklardaki değişiklikleri yönetmesini ve güvenlik önlemlerinin dağıtılmış bir şekilde, doğru olarak uygulandığından emin olmasını kolaylaştırır (örn. bilgi güvenliği veya PCI-DSS ya da HIPAA ile uyumluluk). Uyumluluk gereksinimlerini karşılamayan kaynaklar otomatik olarak daha yakından incelenmek üzere işaretlenebileceğinden, hatta otomatik olarak uyumlu hale getirilebileceğinden, kurum içindeki ekipler daha yüksek bir hızda hareket edebilir.

AWS Config ve Config Rules ile altyapınız için uyumluluğu nasıl izleyip uygulayabileceğinizi öğrenin » 


İzleme ve Günlük Kaydı

Kurumlar uygulama ve altyapı performansının son kullanıcı deneyimini nasıl etkilediğini görmek için ölçümleri ve günlükleri izler. Kurumlar, sahip oldukları uygulamalar ve altyapı tarafından oluşturulan verileri ve günlükleri yakalayıp kategorilere ayırdıktan sonra analiz ederek değişikliklerin veya güncellemelerin kullanıcıları nasıl etkilediğini anlamasının yanı sıra sorunların ya da beklenmedik değişikliklerin kök nedenlerini açığa çıkarır. Hizmetlerin 7/24 erişilebilir olması gereksinimine ek olarak uygulama ve altyapı güncelleme sıklığının artması nedeniyle etkin izlemenin önemi gittikçe artmaktadır. Uyarıların oluşturulması veya bu verilerin gerçek zamanlı olarak analiz edilmesi, kurumların hizmetlerini daha proaktif olarak izlemesine yardımcı olur.

Amazon CloudWatch hizmetini kullanarak altyapı ölçümlerinizi ve günlüklerinizi nasıl izleyebileceğinizi öğrenin »

AWS CloudTrail hizmetini kullanarak AWS API çağrılarını nasıl günlüğe kaydedebileceğinizi öğrenin »


İletişim ve İşbirliği

DevOps'un temel kültürel boyutlarından biri, bir kurumdaki iletişim ve işbirliğinin artmasıdır. DevOps araçlarının kullanılması ve yazılım teslim sürecinin otomatikleştirilmesi, geliştirme ve operasyon ekiplerinin iş akışlarını ve sorumluluklarını fiziksel olarak birleştirerek bir işbirliği kültürü oluşmasını sağlar. Bu kültürden güç alan ekipler, bilgi paylaşımının yanı sıra iletişimi kolaylaştıran sohbet uygulamaları, sorun veya proje izleme sistemleri ve wiki'ler aracılığıyla güçlü kültürel normlar belirler. Geliştiriciler, operasyon ekipleri, hatta pazarlama ya da satış gibi diğer ekipler arasındaki iletişimin hızlanmasına yardımcı olan bu kültür, kurumdaki tüm birimlerin hedeflere ve projelere daha iyi odaklanmasını mümkün kılar.

DevOps modeli, ekiplerin müşterileri için hızlı ve güvenilir bir şekilde dağıtım ve yenilik yapmasına yardımcı olan etkili araçlar gerektirir. El ile gerçekleştirilen görevleri otomatikleştiren bu araçlar, ekiplerin karmaşık ortamları uygun ölçekte yönetmesine ve mühendislerin DevOps sayesinde mümkün olan yüksek hızı denetim altında tutmasına imkan tanır. AWS, DevOps için tasarlanmış ve öncelikli olarak AWS Bulut ile kullanılmak üzere oluşturulmuş hizmetler sunar. Bu hizmetler, yukarıda açıklanan DevOps yöntemlerini kullanmanıza yardımcı olur.

AWS DevOps hizmetleri hakkında bilgi edinin »

AWS çözüm ortakları tarafından sunulan çözümler hakkında bilgi edinin »