AWS Copilot, Amazon ECS, Docker ve AWS Fargate ile Tek Parça Bir Uygulamayı Mikro Hizmetlere Ayırın
ÖĞRETİCİ
Giriş
Genel Bakış
Bu öğreticide bir Docker kapsayıcısına tek parça bir Node.js uygulaması dağıtacak, ardından herhangi bir kesinti süresi olmadan uygulamayı mikro hizmetlere ayıracaksınız. Node.js uygulaması, kullanıcılar arasında iş parçacıkları ve mesajlar olan basit bir mesaj panosu barındırır.
Bu neden önemlidir?
Geleneksel tek parça uygulama mimarilerinin ölçeklendirilmesi zordur. Bir uygulamanın kod tabanı büyüdükçe güncellemesi ve korunması karmaşık hale gelir. Yeni özellikler, diller, çerçeveler ve teknolojiler eklemek zorlaşır, yenilik ve yeni fikirler sınırlanır.
Bir mikro hizmet mimarisinde her bir uygulama bileşeni kendi hizmeti olarak çalışır ve diğer hizmetler ile iyi tanımlanmış API aracılığıyla iletişim kurar. Mikro hizmetler, işletme yetkinliklerine göre oluşturulur ve her hizmet tek bir işlev gerçekleştirir. Mikro hizmetler, çeşitli çerçeveler ve programlama dilleri kullanılarak yazılabilir ve bunları bağımsız olarak, tek bir hizmet şeklinde veya bir hizmet grubu biçiminde dağıtabilirsiniz.
Gerçekleştireceğiniz işlemler:
Bu öğretici sırasında bir Docker kapsayıcısında basit bir tek parça uygulamasını çalıştırmayı, aynı uygulamayı mikro hizmetler olarak dağıtmayı ve daha sonra kesinti süresi olmadan trafiği mikro hizmetlere geçirmeyi öğreteceğiz. Bu öğretici tamamladıktan sonra öğreticiyi ve içerisindeki kodu, AWS üzerinde kendi container’lı mikro hizmetlerinizi oluşturmak ve dağıtmak için şablon olarak kullanabilirsiniz.
Tek parça uygulama mimarisi
Node.js uygulamasının tamamı tek bir hizmet olarak bir container içerisinde çalışmaktadır ve her bir container diğer container’lar ile aynı özelliklere sahiptir. Bir uygulama özelliği talepte artış yaşarsa tüm mimari ölçeklendirilmelidir.
Mikro hizmetler mimarisi
Node.js uygulamasının her özelliği kendi container’ı içerisinde ayrı bir hizmet olarak çalışır. Hizmetler, diğerlerinden bağımsız olarak ölçeklendirilebilir ve güncellenebilir.
Ön koşullar
- AWS hesabı: Henüz bir hesabınız yoksa hızlı bir genel bakış için AWS Ortamınızı Ayarlama öğreticisini takip edin.
- AWS CLI’yi yükleyin ve yapılandırın
- AWS Copilot’u yükleyin ve yapılandırın
- Docker’ı yükleyin ve yapılandırın
- Bir metin düzenleyici. Bu öğretici için VS Kodunu kullanacağız ancak tercih ettiğiniz IDE'yi kullanabilirsiniz.
AWS deneyimi
Orta
Minimum tamamlama süresi
110 dakika
Tamamlama maliyeti
Ücretsiz Kullanım için uygun
Gerekenler
- AWS hesabı: Henüz bir hesabınız yoksa hızlı bir genel bakış için AWS Ortamınızı Ayarlama öğreticisini takip edin.
- AWS CLI’yi yükleyin ve yapılandırın.
- AWS Copilot’u yükleyin ve yapılandırın.
- Docker’ı yükleyin ve yapılandırın.
- Bir metin düzenleyici. Bu öğretici için VS Kodunu kullanacağız ancak tercih ettiğiniz IDE'yi kullanabilirsiniz.
Kullanılan hizmetler
Kod
Son güncelleme
Modüller
Bu öğretici, aşağıdaki modüllere bölünmüştür. Bir sonraki modüle geçmeden önce mevcut modülü tamamlamanız gerekir.
- Kurulum (20 dakika): Bu modülde AWS CLI'yi yükleyip yapılandıracak, AWS Copilot'u ve Docker'ı yükleyeceksiniz.
- Tek parça uygulamayı container’lı hale getirin ve dağıtın (30 dakika): Bu modülde uygulamayı container’lı hale getirecek, yönetilen bir EC2 işlem bulut sunucusu kümesini başlatmak için AWS Copilot'u kullanacak ve görselinizi kümede çalışan bir container olarak dağıtacaksınız.
- Tek parça uygulamayı ayırın (20 dakika): Bu modülde, Node.js uygulamasını birbirine bağlı birkaç hizmete ayıracak ve her hizmetin görselini bir Amazon Esnek Container Kayıt Defteri (Amazon ECR) deposuna göndereceksiniz.
- Mikro hizmetleri dağıtın (30 dakika): Bu modülde Node.js uygulamanızı, Uygulama Yük Dengeleyici’nin (ALB) birbirine bağlı bir dizi hizmeti olarak dağıtacaksınız. Daha sonra trafiği tek parça uygulamadan mikro hizmetlere sorunsuz bir şekilde taşımak için ALB’yi kullanacaksınız.
- Temizleyin (10 dakika): Bu modülde bu öğretici sırasında oluşturduğunuz kaynakları sonlandıracaksınız. Amazon ECS'de çalışan hizmetleri durduracak, ALB'yi silecek ve temeldeki tüm EC2 bulut sunucuları da dâhil olmak üzere Amazon ECS kümesini sonlandırmak için AWS CloudFormation yığınını sileceksiniz.