AWS'de Sunucusuz veya Kubernetes

Seçim yapmanıza yardım eder

Amazon Web Services (AWS), müşterilerine iş gereksinimlerini karşılayan modern uygulamalar oluşturmaları için bir strateji seçme esnekliği sağlar. AWS'de modern uygulamalar oluşturmak için bir strateji geliştiren müşteriler genellikle iki üst düzey yaklaşımdan birini benimser: AWS Lambda'yı ve container'ları kullanan AWS ile Sunucusuz strateji modeli veya AWS'de Kubernetes.

AWS, iş yükleriniz için doğru işlem hizmetlerine ve destekleyici hizmetlere (veritabanı, mesajlaşma ve düzenleme gibi) erişim sağlamanız için tasarlanmıştır. AWS, AWS Lambda gibi olay odaklı bir işlem hizmeti ve AWS Fargate ve AWS App Runner gibi sunucusuz container seçenekleri kullanarak sunucusuz uygulamalar oluşturma imkanı sağlar. AWS, şunları kullanarak container uygulamaları oluşturmanızın yollarını sunar: Amazon Esnek Container Hizmeti (Amazon ECS); Amazon Esnek Kubernetes Hizmeti (Amazon EKS) ve AWS'de Red Hat OpenShift Hizmeti (ROSA) gibi Kubernetes seçenekleri; Amazon Esnek İşlem Bulutu (Amazon EC2) üzerinde kendi kendini yöneten Kubernetes.

Aşağıdaki içerik, ortamınıza en uygun yaklaşımı seçmenizi ve yaklaşımınızı AWS'de uygulamaya başlamanızı sağlayacaktır.

Modern uygulamaların sağladığı avantajlar

Modüler mimari modellerle oluşturun ve yönetilen hizmetler işletim modellerinden yararlanın.

Çevresel açıdan daha sürdürülebilir, ölçeklenebilir ve esnek uygulamalar oluşturun.

İnovasyonu hızlandırın, riski azaltın, pazara sunma süresini hızlandırın ve toplam sahip olma maliyetinizi (TCO) azaltın.

Açıkça tanımlanmış sonraki adımlarla üretim iş yüklerini bulutta dağıtmaya hazır olun.

Adım 1: Kriterlerinizi belirleyin

Modern uygulamalar modüler mimari modellerle inşa edilir ve daha sürdürülebilir, ölçeklenebilir ve esnek uygulamalar oluşturmak için sunucusuz işletim modellerinden yararlanabilir. Daha hızlı yenilik yapmanızı, riski azaltmanızı, pazara sunma süresini hızlandırmanızı ve sahip olma maliyetinizi azaltmanızı sağlar. Yeni modern uygulamalar oluştururken veya mevcut uygulamaları modernize ederken, mimarlar ve geliştiriciler çok sayıda yapı taşına sahiptir ve bunların en önemlilerinden biri de işlem hizmetlerinin seçimidir. AWS, iş yükleri için doğru işlem hizmetine yani ihtiyaçlarınızı karşılamak için mantıklı olduğuna karar verdiğiniz modern uygulama geliştirme stratejisini destekleyen seçeneğe, erişim sağlamak üzere tasarlanmıştır.

Hangi modern uygulama geliştirme stratejisini yürürlüğe koymanız gerektiğini belirlemeden önce iş yüklerinizin boyutuna göre kriterlerinizi belirlemeniz gerekir.

  • Kuruluşlar, operasyonel yükü AWS'ye kaydıran yönetilen hizmetleri standartlaştırarak operasyonel maliyeti düşürmek için bulutu seçebilir. Daha yüksek soyutlama seviyeleri, geliştiricilerin ve operatörlerin farklılaşmamış görevler yerine kendi benzersiz katma değerli etkinliklerine odaklanmalarını sağlar.

    AWS Sunucusuz ile oluşturma, altyapıyı korumanın operasyonel yükünü AWS'ye kaydırmak için daha yüksek soyutlama seviyelerine sahip hizmetleri kullanır.

    AWS ayrıca Kubernetes için çeşitli yönetilen teklifler de sunar. Bu teklifler, bir kuruluşun yönetmesi gereken teknoloji katmanına göre farklılık gösterir. AWS yapılandırmayı hızlandırmak için eklentiler ve EKS Ayrıntılı Planları gibi hızlandırıcılar da sağlar.

  • Birçok AWS müşterisi, geniş çapta desteklenen açık kaynak teknolojilerini standartlaştırır. Açık kaynak, bir kuruluşun doğru becerileri bulmasını ve kilitlenme riskinden kaçınmasını sağlayabilir. Açık kaynaklı bir ekosistemde yanlış seçimler yapmak, soyutlamalara ve yerel entegrasyonlara kilitlenmeye yol açabilir. Ayrıca farklı açık kaynak bileşenlerinin birlikte çalışmasını sağlama sorumluluğu genellikle seçimi yapan kuruluşa aittir. Kuruluşların açık kaynak entegrasyonlarını sürdürmek için çok fazla zaman harcaması yaygın bir durumdur.

    Notlar:

    • Bu yatırımları yaparken topluluk kaynaklarını ve işletme ya da vakıfların verebileceği destekleri göz önünde bulundurun. Bu projelere yapılan yatırım sadece finansal değildir. Ayrıca ekibinizi kullanılan teknolojiler konusunda eğitmek ve yetiştirmek için de yatırım yapmanız gerekir. 
    • Bu bileşenler ve ilgili entegrasyonların tipik olarak güncellenmesi gerekeceğinden (bu entegrasyonların sürdürülmesiyle ilgili çalışmalar nedeniyle) bir miktar teknik borç altına da girebilirsiniz.
    • Açık kaynak uygulamalarına ilişkin fikirler için AWS Açık Kaynak blogunu ziyaret edin.
  • Modern bir uygulama geliştirme stratejisi seçerken stratejinizin çeşitli iş yükü modellerini barındırması önemlidir. İş yükü modellerinizi anlayarak kolayca mimari seçimler yapabilirsiniz. Örneğin; Web Uygulamaları, API tabanlı mikro hizmetler, Olay Temelli Uygulamalar, Akış ve Mesajlaşma, Veri İşlem Hatları, BT Otomasyonları ve daha fazlası. Bazı iş yükleri, bir işlem ortamında başka bir türe kıyasla daha iyi performans gösterir veya daha uygun maliyetli olur.

    AWS Sunucusuz ile oluştururken App Runner ve AWS Toplu İşlem gibi hizmetler, belirli bir iş yükü türünün taleplerini kolayca destekleyecek şekilde tasarlanmıştır. Bu yaklaşımı kullanan iş yüklerinin oluşturulması esneklik pahasına da olsa daha kolay olacak, bunlar daha iyi performans gösterecek veya daha uygun maliyetli olacaktır.

    Kubernetes, kuruluşunuzun ihtiyaç duyması halinde bulutlar ve şirket içi ortamlar arasında tutarlılık sağlar.

  • İş yükleri izole bir şekilde durmaz. Veritabanları, mesajlaşma, akış, düzenleme gibi teknolojiler ve diğer hizmetler iş yüklerini destekler. Etkili bir modern uygulama geliştirme stratejisi, bu hizmetlerle entegrasyonu gerektirir. Yönetilen entegrasyonlar, temel altyapının yönetimi kadar ek işletim yükünü de basitleştirir.

    AWS Sunucusuz seçenekleri, AWS ekosistemine derinlemesine entegre edilmiştir. AWS Lambda, 200'den fazla diğer hizmetten gelen olaylara abone olabilir. Örneğin AWS Lambda uzantıları izleme, gözlemlenebilirlik, güvenlik ve yönetişim araçlarıyla entegrasyonu mümkün kılar. Lambda, işlev kodunun çalıştırıldığı güvenli ve yalıtılmış bir çalışma zamanı sağlayan bir çalışma ortamında belirli bir işlevi çağırır. 

    Kubernetes için AWS tarafından yönetilen teklifler, yönetilen tekliflerle entegrasyonlar sağlar. Kubernetes'in kendisi çok sayıda başka teknolojiyle entegrasyon sunan zengin bir çözüm ortağı ekosistemine sahiptir.

  • Birçok müşterinin fikirleri doğrulamak için deneyler oluşturması gerekir. Bu prototipler yeni bir uygulama fikrine dönüşebilir ve/veya başarısız olursa çöpe atılabilir. Fikirleri hızlı bir şekilde yazabileceğiniz, dağıtabileceğiniz ve doğrulayabileceğiniz bir ortam sağlama imkanı, sağlıklı bir ortam için çok önemlidir. Modern bir uygulama geliştirme stratejisi geliştirirken bu ortam genellikle göz ardı edilir ancak şirket içinde yenilik yapma yeteneği buna bağlı olabilir. Ekiplerin hızlı bir şekilde oluşturmak, test etmek ve yinelemek için kullanılabilecek hizmetlerden yararlanmasını sağlamak, yeni iş fırsatlarının keşfedilmesinde çok değerlidir.

  • Birçok müşteri, uygulamalarının farklı bir ortamda çalışabilmesini ve kolayca taşınmasını sağlamak ister. Bulut sağlayıcılarını taşıma veya bir uygulamayı hem şirket içinde hem de bulutta çalıştırma seçeneklerine sahip olmak isterler. Bu durum, genellikle popüler dil çerçevelerini ve geliştirme senaryolarını destekleme ihtiyacını içerir. Örneğin Java geliştiricileri Spring veya Python, Veri Mühendisleri de PyTorch kullanmak isteyebilir. Modern bir geliştirme uygulaması yaklaşımı seçmek tek başına yeterli olmayacaktır. Uygulama taşınabilirliğini sağlamak için en iyi uygulamalar ve mimari gerekecektir. Yazılım mimarilerinde yetkinlik oluşturmanızı ve bilgi işlem hizmetleri arasındaki farklılaşan iş mantıkları arasında daha kolay bir şekilde bağlantı kurmanızı sağlayan bir paketleme oluşturmanızı öneririz.

    Bazı teknolojiler kullanılarak oluşturulan uygulamalar, bazı bilgi işlem hizmetlerinde diğerlerinden daha etkili bir şekilde çalışabilir. Container hizmetleri genellikle eski uygulamalar için mimaride değişiklik gerektirecek olan Lambda'dan daha iyi bir geçiş hedefidir.

  • Uygulama ve otomasyon taşınabilirliği arasında net bir fark olmalıdır. Çoğu zaman AWS Sunucusuz veya AWS Kubernetes arasındaki seçimin aslında bir uygulamanın taşınabilir olup olmadığıyla pek ilgisi yoktur. Bunun yerine, önemli bir faktör olan Altyapı ekipleri ve DevOps ekipleri tarafından kullanılan araçlardır. AWS'de Kubernetes yaklaşımını seçen müşteriler genellikle altyapı ve dağıtım araçlarının taşınabilirliğini ararlar.

  • Modern uygulama geliştirmede sunucusuz mu yoksa container tabanlı bir yaklaşım mı benimseyeceğinize karar verirken kuruluşunuzun becerileri önemli bir faktördür. Hem sunucusuz hem de container'lar, DevOps ve Saha Güvenilirlik Mühendisi (SRE) takımlarına biraz yatırım gerekir. Uygulamaları dağıtmak için otomatik bir işlem hattı oluşturmak, çoğu modern uygulamalarda yaygındır.

    Bazı seçenekler yönetim miktarını yükseltir. Örneğin, bazı kuruluşlar Kubernetes uygulamasını yürütmek ve yönetmek için gerekli becerilere ve kaynaklara sahiptir çünkü Kubernetes Kümelerini yönetmek için güçlü SRE ekiplerine yatırım yaparlar. Bu ekipler sık sık küme yükseltmelerini işler (örneğin, Kubernetes yılda üç büyük sürümü yayınlar ve eski sürümleri kullanımdan kaldırır).

    Kuruluşun büyüklüğü önemli bir faktördür. Daha küçük startuplarda birden fazla rolü yerine getiren insanlardan oluşan küçük bir BT personeli olabilir. Daha büyük işletmelerse üretimde aynı anda yüzlerce iş yükünü destekleyebilir.

  • Mimari kararlarda tavizler söz konusudur ve bunlardan biri de genellikle maliyettir. İlgili bileşenlerin dinamik yapısı nedeniyle modern uygulamaların maliyetini tahmin etmekte zorlanmak yaygın bir durumdur. Sabit bir sunucu kümesinin maliyetini tahmin etmek daha kolay olsa da iş değeri katmadıkları zamanlarda bile bu sunucular için ödeme yaparsınız.

    Her iki yaklaşım da iş yüklerinize yönelik maliyet hedeflerini karşılamak için birden fazla araç sunar. Yaklaşımlar arasındaki üst düzey seçim, sadece kaynakların değil aynı zamanda bu stratejinin oluşturulması ve sürdürülmesi için harcanan çabanın maliyetini de dikkate almalıdır. AWS Fiyatlandırma Hesaplama Aracı, belirli bir iş yükünün maliyetlerini anlamada yararlı olabilir.

  • Güvenlik ve uyumluluk gereksinimlerini karşılamak her iş yükünün temel unsurlarından biridir. Her iki stratejide de AWS hizmetleri, sıkı uyumluluk gereksinimlerini karşılamanızı sağlayabilir.
     
    AWS Sunucusuz ile oluşturmak erişimi kontrol etmek üzere AWS Kimlik ve Erişim Yönetimi (IAM) ile entegrasyondan, yerel AWS ağ yapılarından ve AWS yönetişim araçlarının desteğinden faydalanmanıza olanak tanır.
     
    AWS'de Kubernetes , hem Kubernetes hem de AWS güvenlik modellerinin anlaşılmasını gerektirir ve güvenlik politikaları arasında eşleme yapılmasını gerektirebilir. Amazon EKS gibi yönetilen AWS teklifleri, uygulamaları EKS üzerinde güvenli bir şekilde çalıştırmak için hızlandırıcılar sağlar.
  • Hem AWS Sunucusuz hem de AWS'de Kubernetes ile oluşturmak performanslı, ölçeklenebilir ve dayanıklı iş yükleri oluşturmanızı sağlar. İhtiyacınız olan teknik gereklilikleri karşılayabilirsiniz. En yüksek soyutlama seviyelerine sahip hizmetler, AWS Erişebilirlik Alanları genelinde yerleşimi ve ortamın ölçeklendirilmesini yöneterek performansı ve dayanıklılığı artırır. Daha düşük soyutlama seviyeleri, iş yükünüzün nasıl ölçekleneceği konusunda daha fazla kontrol sahibi olmanızı sağlar. Birincil ödünleşimler maliyet ve yönetim karmaşıklığıdır.

Adım 2: Ne kadar yönetmek istediğinizi belirleyin

Modernizasyonun en önemli faydalarından biri, operasyonel sorumlulukları değiştirme yeteneğiyle daha fazla katma değerli ve inovasyon odaklı faaliyetler yapmak üzere kaynakları serbest bırakmanıza olanak tanımasıdır. Modernizasyon seviyeleri farklılaştıkça paylaşılan sorumluluk seçenekleri de farklılaşır. Örneğin Amazon EC2'de kodunuzu oluşturup çalıştırırken entegrasyonları, ölçeklendirmeyi, güvenlik yapılandırmalarını, provizyonu, düzeltme ekini ve daha fazlasını yönetirsiniz, ancak AWS Lambda gibi sunucusuz işlevlerde yönetmeniz gereken tek şey uygulama kodunuzdur.

Adım 3: Kullanım senaryonuzu belirleyin

En uygun işlem seçeneğini varsayılan stratejiniz dahilinde iş yükü bazında değerlendirmenizi öneririz: AWS Sunucusuz veya AWS'de Kubernetes.

Bir AWS Sunucusuz stratejisi için kullanım senaryosu örnekleri arasında bir belge işleme sistemi oluşturmak veya web sitesi iş yüklerini yönetmek yer alabilir. Bu strateji kapsamında öncelikle olay odaklı belge işleme iş yükünü oluşturmak için AWS Lambda'yı ve işlemsel bir web sitesinin ihtiyaç duyduğu düşük gecikme süresi ve ölçeklenebilirlik için AWS AppRunner'ı seçebilirsiniz.

Diğer yandan container'lar ve AWS'de Kubernetes  için örnek kullanım senaryosu, mevcut uygulamaları mikro hizmetlere taşımaya yönelik aşamalı bir yaklaşımın parçası olabilir. Birçok eski ara yazılım uygulaması, minimum çabayla container'lara uygun olacak şekilde değiştirilebilir.

Not: Bazı kuruluşlar, iş yükü veya geliştirici seçimine izin vermek için birden fazla seçeneği veya iş yükü modelini destekler.

Aşağıdaki tabloda, işlem hizmetlerinizi seçerken göz önünde bulundurmak isteyebileceğiniz bir dizi başka kullanım senaryosu yer almaktadır.

4. Adım: Karşılaştırın ve iş yükleriniz için doğru seçimi yapın

AWS, farklı container seçenekleri sunar; Amazon ECS, AWS Fargate ile Sunucusuz Container'lar, AWS App Runner, ayrıca Amazon EKS, ROSA ve Amazon EC2 üzerinde kendi kendini yöneten Kubernetes gibi farklı Kubernetes seçenekleri.

Aşağıdaki karşılaştırma tablosu, iş yükü gereksinimlerinize göre yaklaşımınızı belirlemenizi sağlar. Her iki yaklaşımın unsurlarını veya bir uzlaşmayı seçebilir ve farklı yaklaşımları kullanan farklı ekiplere sahip olabilirsiniz. Çok büyük bir işletmenin farklı stratejilere sahip departmanlarının olduğunu görmek alışılmadık bir durum değildir.

 

  AWS ile Sunucusuz AWS'de Kubernetes
İş yükleri Belirli iş yükleri için optimize edilmiş belirli hizmetlerle bir dizi iş yükü modelini destekler. AWS Lambda'yı eşzamansız iş yükleri için kullanırken aynı anda eşzamanlı iş yükleri için AWS Fargate'i kullanabilirsiniz. Bulutlar veya şirket içi veri merkezlerinde tutarlı dağıtım modellerinin tercih edildiği çok çeşitli iş yükü modellerini destekler.
Mimari Özellikler Performans, ölçeklenebilirlik, güvenilirlik ve maliyet için optimizasyonlar sağlayan spesifik hizmetlerle çoğu mimariyi ve modeli destekler. Teknoloji yığını genelinde tutarlılığın tercih edildiği çoğu mimariyi destekler. Optimizasyon bir seviyeye kadar mevcuttur ancak daha fazla entegrasyon ve yönetim çabası gerektirir.
Entegrasyonlar AWS Sunucusuz, birçok yönetilen hizmetle entegrasyonlar sunar. AWS Lambda gibi bazı seçenekler 200'den fazla hizmete abone olabilir ve olayları yönetilen bir şekilde alabilir.  Birçok çözüm ortağı AWS entegrasyonları sağlar. Kubernetes için AWS tarafından yönetilen teklifler, AWS Hizmetleri ile entegrasyonlar sağlar. Kubernetes için çözüm ortağı ekosistemi zengindir ve diğer açık kaynak teknolojileriyle entegrasyon sağlar. Birçok teknoloji çözüm ortağı, Kubernetes entegrasyonlarını doğrulamak için ilk tercih olarak EKS'yi kullanır.
Prototipleme AWS Sunucusuz, müşterilerin hızlı bir şekilde kod yazmasını, dağıtmasını ve değiştirmesini sağlayacak şekilde optimize edilmiştir. Bu sayede önceden çok fazla seçim yapmayı gerektirmeyen hızlı prototipleme çalışmaları için kullanışlı bir seçenek haline gelir. Kubernetes stratejisine sahip müşterilerin genellikle prototipleme için ayrılmış özel kümeler kurmaları ve tıpkı diğer ortamlarda olduğu gibi bunların bakımını yapmaları gerekir.
İşletim yükü AWS Sunucusuz, yönetilen hizmetlerden en iyi şekilde yararlanmak üzere tasarlanmıştır ve sunucular, ağ iletişimleri ve entegrasyonlar için yalnızca minimum miktarda yönetim çabası gerektirir. AWS, Kubernetes için çeşitli modeller sunar. AWS, eklentiler ve EKS Ayrıntılı Planları gibi hızlandırıcılar sağlıyor olsa da bu durum birden fazla teknoloji katmanını (küme ve bulut ağı gibi) veya Kubernetes ve AWS güvenlik rollerini yönetme ihtiyacı olduğu anlamına gelebilir.
Ekosistem AWS, AWS Hizmetlerinin üzerine inşa edilip çözümler ve entegrasyonlar sağlayan geniş bir çözüm ortağı ekosistemine sahiptir. AWS, çeşitli alanlarda birçok açık kaynak teknolojisini temel alır ve bunlarla çalışır. Kubernetes, her bulutta büyük bir desteğe ve çok sayıda topluluk desteğine sahip büyük bir ekosistemdir.  CNCF ortamı, geniş ekosisteme bir örnektir. AWS, müşterilerin bu popüler araçlardan bazılarını benimsemelerini sağlamak adına eklentiler ve ayrıntılı planlar sağlar.
Uygulama Taşınabilirliği Uygulama mimarisi (yönetilen bir hizmeti veya hizmetleri kullanan uygulamalar için), iş mantığının Lambda, App Mesh veya ECS'den diğer işlem ortamlarına kolayca taşınabileceği şekilde tasarlanabilir. Kubernetes, çoğu bulutta ve şirket içinde kullanılabilir. İş yükleri de çoğunlukla taşınabilirdir. Koddaki hizmet ağına dayanan belirli Kubernetes modelleri (örneğin KNative gibi programlama modelleri veya Istio), uygulamanızın Kubernetes gerektirdiği ve Kubernetes dışında bir şey için taşınabilir olmadığı anlamına gelir. Bazı özellikler sizi belirli bir sürüme kilitleyebilir. Çeşitli Linux yapılarını veya belirli donanımları (ARM veya AMD) desteklemek için görüntüleri yeniden oluşturmanız gerekebilir.
Otomasyon Açık teknolojiye dayalı nitelikler kullanan AWS'ye özgü otomasyon desteği. AWS CloudFormation, AWS Sunucusuz Uygulama Modeli (AWS SAM) ve bazı AWS Bulut Geliştirme Seti (AWS CDK) kütüphaneleri bunlara örnektir. Müşteriler Terraform gibi açık kaynak seçeneklerini kullanabilir. Birçok AWS müşterisi Jenkins gibi açık kaynaklı DevOps araçlarını kullanır. Kubernetes üzerinde strateji geliştiren müşteriler genellikle Kubernetes'i otomatikleştiren araçları kullanmayı tercih eder. Küme oluşturma için otomasyon gereklidir ve AWS API'lerini, AWS CloudFormation gibi AWS araçlarını veya CDK'yi kullanabilirsiniz. Birçok müşteri Terraform gibi teknolojiler kullanır. Terraform ve CDK için kümelerin ve eklentilerin oluşturulmasına yönelik hızlandırıcı örneklerinden biri AWS EKS Ayrıntılı Planlarıdır. Birçok müşteri, bir Kubernetes API ile dağıtım yapmak için Flux veya ArgoCD gibi GitOps araçlarını benimsemeye ve yerel bulut kaynaklarını sağlamak için AWS Controllers veya Crossplane gibi araçları kullanmaya başlamıştır.
Kuruluşun Büyüklüğü ve Becerileri Bazı kuruluşlar birincil bulutta standartlaşır ve ilk olarak AWS Sunucusuz'u seçerler çünkü SRE ekipleri oluşturmak için paraları/kaynakları olsa da AWS ile çevikliği optimize etmeyi ve operasyon maliyetlerini azaltmayı tercih ederler. Orta ve büyük ölçekli işletmeler (veya farklı bulutlarda veya şirket içi veri merkezlerinde çalışması amaçlanan ürünleri satan yazılım satıcıları) genellikle Kubernetes'e öncelik veren bir yaklaşım kullanır. Başarılı olan müşteriler genellikle çok sayıda kümeyi yöneten, çalıştıran ve bunların bakımını yapan altyapı ve SRE ekiplerine çok daha fazla yatırım yapar.
Ölçeklenebilirlik/Dayanıklılık AWS Lambda müşterileri yalnızca bir işlev çağrıldığında ödeme yapar. Lambda sizin için uygun değilse, Fargate veya ECS kullanabilirsiniz. Donanım mimarilerinde ve işlem fiyatlandırmalarında daha fazla seçenek sunar (AWS EC2 Spot Bulut Sunucuları gibi). AWS'de Kubernetes yaklaşımı performans, ölçeklenebilirlik ve dayanıklılık gereksinimlerinizi karşılamak için Well-Architected olabilir. EKS ayrıca AWS EC2 Spot ve Graviton gibi seçenekleri kullanma imkanı da sağlar.
Güvenlik AWS Sunucusuz yaklaşımı; AWS güvenliğinden, ağ iletişiminden ve uygulamalarından faydalanır. Kubernetes yaklaşımı hem Kubernetes Güvenliği hem de AWS Güvenliğine dair bir anlayış gerektirir. Bunun yanında AWS İlkelerini Kubernetes Güvenlik İlkelerine eşleme, container görüntülerinin ve çalışma zamanlarının güvenliğinin sağlanması, üçüncü taraf container araçlarının doğrulanması gibi işletimsel ek yüklerin anlaşılmasını da gerektirir.  

Yeni modern uygulamalar oluştururken veya mevcut uygulamaları modernize ederken, mimarlar ve geliştiriciler çok sayıda yapı taşına sahiptir ve bunların en önemlilerinden biri de işlem hizmetlerinin seçimidir.

Kuruluşunuzun ne tür iş yükleri ve uygulamalar oluşturduğunu ve dağıttığını bilmek, modern uygulama geliştirme stratejisi seçiminizde önemli bir faktördür. Her iş yükünün farklı özellikleri ve gereksinimleri vardır. Örneğin bir belge işleme iş yükü, işlemsel bir web sitesinden çok farklı gecikme ve çalışma süresi gereksinimlerine sahiptir.

Adım 5: Sık karşılaşılan tuzaklardan kaçının

Ortamınızdaki standardizasyonu anlayın

Birden çok iş yükü modeli çalıştıran birçok kuruluş, etkili bir şekilde destekleyebilecekleri ve çalıştırabilecekleri bir dizi modeli standartlaştırmak ister. Bazı büyük kuruluşlar işlem seçeneklerini standartlaştırmaya çalışır ve çoğu iş yükünü çalıştırmak için varsayılan bir platform seçerek gerektiğinde istisnalar sağlar.

Standartlaştırma, tutarlılık sağlamaya ve bir kuruluşun işe alması gereken uzmanlık becerilerine sahip kişi sayısını en aza indirmeyi sağlar. Bunlar tercih edilen hesaplama seçenekleri haline gelebilir ve diğer seçenekler yalnızca tercih edilen seçenekler işe yaramadığında dikkate alınır. Genellikle standart seçim, bir dizi iş yükünü etkili bir şekilde destekler ancak diğerlerinde zorluk yaşar. Bu nedenle bazı kuruluşlar, iş yükü veya geliştirici seçimine izin vermek için birden fazla seçeneği veya iş yükü modelini destekler.

Ortamınızdaki entegrasyonu anlayın

Bazı kuruluşların açık kaynak entegrasyonlarını sürdürmek için arzu ettiklerinden daha fazla zaman harcamaları yaygın bir durumdur.

Bu yatırımları yaparken topluluk kaynaklarını ve/veya işletme ya da vakıfların verebileceği destekleri göz önünde bulundurmanızı öneririz. Bu projelere yapılan yatırım sadece finansal değil, aynı zamanda bilgi sermayesine ve potansiyel olarak teknik borca yapılan bir yatırımdır. Çünkü bu bileşenler ve ilgili entegrasyonlar genellikle güncellenmeye ihtiyaç duyar. Daha fazla bilgi için bkz. AWS Açık Kaynak blogu.

Mimari özelliklerinizi anlayın

Çok çeşitli mimarileri destekleme yeteneği önemlidir. AWS'de sistem oluştururken aldığınız kararların artılarını ve eksilerini anlamanızı sağlayacak bir kılavuz olarak AWS Well-Architected Çerçevesinden faydalanmanızı öneririz. Ek olarak Çerçeveyi kullanmak; Bulutta güvenilir, ölçeklenebilir, emniyetli, verimli ve uygun maliyetli sistemler tasarlamak ve çalıştırmak için mimari en iyi uygulamaları öğrenmenizi sağlar.

Adım 6: Yaklaşımınızı belirleyin

Kuruluşunuza ve iş yükü boyutunuza, modellerinize ve iş gereksinimlerinize bağlı olarak her iki yaklaşımın belirli unsurlarını seçmeniz veya farklı ekiplerin farklı yaklaşımlar kullanmasını sağlamanız gerekebilir. Ekiplerin farklı stratejiler kullanması alışılmadık bir durum değildir.

AWS ile AWS Sunucusuz

  • İlk tercihiniz olarak AWS Lambda, AWS App Runner, Amazon ECS ve AWS Fargate gibi AWS tarafından yönetilen hizmet ve araçları kullanın. 
  • Tedarik, DevOps, altyapı otomasyonu, güvenlik, ağ oluşturma ve gözlemlenebilirlik/işlemler dahil olmak üzere AWS alanında disiplin geliştirmeye yatırım yapın.
  • Üretkenliği artırın ve işletim yükünü en aza indirin.

AWS'de Kubernetes

  • Kubernetes'i birincil işlem platformu arabiriminiz olarak kullanın.
  • Birkaç Kubernetes kümesini ve bunlar üzerindeki iş yükünü ve araçları, GitOps gibi gelişmiş modelleri çalıştırma ve yönetme konusunda disiplinli olun.
  • Farklı ekosistemler ve çözüm ortağı araçlarıyla entegre olun.
  • Kubernetes müşterileri, belirli kullanım durumları için yönetilen AWS hizmetlerini ve AWS Lambda gibi diğer işlem seçeneklerini kullanabilir.

Yaklaşımınızı uygulamaya koyun

Ortamınız için hangi yaklaşımın iş yükünüze en uygun olduğunu belirlediğinize göre yaklaşımınızı uygulamaya başlamanızı sağlaması için aşağıdaki kaynakları incelemenizi öneririz.

  • AWS'de Sunucusuz Genel Bakış
    Uygulama yığınınızın tamamında çevikliği artıracak şekilde modern uygulamalar oluşturmak için sunucusuz öncelikli bir strateji kullanın. Bu kılavuzda yığınınızın üç katmanı için de sunucusuz hizmetler bulunur. Bu katmanlar bilişim, entegrasyon ve veri depolarıdır.
    Sunucusuz Web Uygulaması Oluşturma
    Bu öğreticide AWS Lambda, Amazon API Ağ Geçidi, AWS Amplify, Amazon DynamoDB ve Amazon Cognito kullanarak basit bir sunucusuz web uygulaması oluşturmayı öğreneceksiniz.
    Sunucusuz Bilişim için Uygulamalı Atölyeler
    Bu ücretsiz ve rehberli atölye çalışmaları AWS Lambda, AWS Step Functions, Amazon API Ağ Geçidi, Amazon DynamoDB, Amazon Kinesis ve Amazon S3 gibi hizmetleri kullanarak sunucusuz uygulamalar ve mikro hizmetler oluşturmanın temellerini sunar.
    AWS Fargate: Container'lar için sunucusuz işlem
    AWS Fargate, uygulamaları sunucu yönetimi olmadan oluşturmanızı sağlayan, sunucusuz, kullandıkça öde modelindeki bir işlem altyapısıdır. AWS Fargate, hem Amazon Esnek Container Hizmeti (Amazon ECS) hem de Amazon Esnek Kubernetes Hizmeti (Amazon EKS) ile uyumludur.
    AWS App Runner'a Genel Bakış
    Önceden altyapı veya container deneyimi olmadan container'lı web uygulamaları ve API hizmetleri oluşturmak, dağıtmak ve çalıştırmak için AWS App Runner'ı kullanın.
  • Bir Kubernetes yaklaşımı seçin
    Kubernetes'i AWS bulutunda ve şirket içi veri merkezlerinde çalıştırmak için Amazon Esnek Kubernetes Hizmeti (EKS) ile yönetilen Kubernetes hizmetini kullanma seçeneklerinizi gözden geçirin.
    Amazon EKS'yi kullanmaya başlama
    Amazon EKS'yi kullanmaya başlamak için faydalı bloglara, videolara ve ayrıntılı bir öğreticiye bağlantılar içeren ve adım adım ilerleyen bir kılavuz sağlar.
    Amazon EKS Atölyesi
    Amazon EKS'den en iyi şekilde yararlanmak için adım adım talimatlarla pratik yapın.
    Karşınızda AWS Controllers for Kubernetes (ACK)
    ACK, AWS hizmetlerini doğrudan Kubernetes'ten yönetmenizi sağlayan bir araçtır. ACK, AWS hizmetlerini kullanan ölçeklenebilir ve yüksek derecede erişilebilir Kubernetes uygulamaları oluşturmayı kolaylaştırır.
    AWS'de Red Hat OpenShift Hizmeti nedir?
    ROSA API'lerini ve araçlarını kullanarak Kubernetes kümeleri oluşturmak için ROSA'yı kullanmayı keşfedin ve AWS hizmetlerinin tüm kapsamına ve derinliğine erişin.

    En İyi Uygulamalar

    Güvenlik

    Güvenlik, Kubernetes kümelerini ve uygulamalarını yapılandırmanın ve sürdürmenin önemli bir bileşenidir. Amazon EKS varsayılan olarak güvenli ve yönetilen Kubernetes kümeleri sağlasa da güvenli bir uygulama temin etmek için kümenin bir parçası olarak çalıştırdığınız düğümleri ve uygulamaları yapılandırdığınızdan emin olmanız gerekir. Daha fazla bilgi için bkz. Amazon EKS Güvenlik için En İyi Uygulamalar Kılavuzu.

    Ana Sunucu Güvenliği

    AWS iş yüklerini yazılım güvenlik açıklarına ve istenmeyen ağ maruz kalmalarına karşı sürekli olarak tarayan otomatik bir güvenlik açığı yönetim hizmeti olan Amazon Inspector'ı kullanın.

Bu sayfa size yardımcı oldu mu?