Yazılım Mimarileri ve Tasarım Desenleri Üzerine

AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk İle Deploy Etme

AWS CodePipeline Kullanarak Asp.NET Core WEB API Uygulamasını AWS Elastic Beanstalk’a Deploy Etme

Merhaba,

Bu içeriğimizde AWS CodePipeline aracını kullanarak Asp.NET Core WEB API uygulamasını AWS Elastic Beanstalk servisi üzerinden deploy edecek ve böylece AWS CodePipeline’ın, AWS CodeBuild’in ve AWS Elastic Beanstalk’ın temellerini öğrenmiş ve tecrübe etmiş olacağız. O halde vakit kaybetmeksizin buyurun başlayalım…

AWS Elastic Beanstalk Nedir?

AWS Elastic Beanstalk, uygulama geliştiricilerin ve ekiplerin web uygulamalarını ve servislerini hızlı bir şekilde deploy etmesine ve bir yandan da ölçeklendirmesine olanak tanıyan bir AWS servisidir.

Temel olarak, Elastic Beanstalk uygulamanızı çalıştırmanız için gerekli olan altyapı ve kaynakları otomatik olarak yönetmenizi ve böylece sunucu yönetimi gibi detaylara odaklanmaksızın uygulamanızı AWS’de hızla çalıştırmanızı sağlamaktadır.

Elastic Beanstalk servisinin avantajlarını ele almamız gerekirse eğer;

şeklinde özetleyebiliriz.

Ayrıca şunu da bilmenizde fayda vardır ki; Elastic Beanstalk, uygulamanızı desteklemek için birden fazla AWS servisinden istifade edebilmekte ve bunu yaparken de sizin için bu servislerin yönetimini büyük ölçüde otomatize edebilmektedir. Bu sayede hızlı bir şekilde uygulamanızı geliştirebilecek, deploy edebilecek ve ölçeklendirebileceksiniz.

AWS CodePipeline Nedir?

AWS CodePipeline, sürekli entegrasyon ve sürekli dağıtım(CI/CD) süreçlerini otomatikleştirmek için kullanılan bir servistir. AWS CodePipeline, yazılımın geliştirilme aşamalarını otomatikleştirmek ve farklı servisler ve bileşenler arasında sorunsuz bir şekilde taşıma yapmak için tasarlanmıştır. Bu servis sayesinde, kod değişiklikleri sürekli olarak test edilebilmekte, otomatik olarak merge işlemleri gerçekleştirilmekte ve hedef sunuculara hızlıca deploy yapılabilmektedir.

AWS CodePipeline’ın oluştuğu aşamalar şunlardan ibarettir;

AWS CodeBuild Nedir?

AWS CodeBuild, yazılım projelerinin otomatik olarak derlenmesi(build) ve test edilmesi için kullanılan, sürekli entegrasyon ve sürekli dağıtım(CI/CD) süreçlerini desteklemek için tasarlanmış bir servistir. Böylece CodeBuild sayesinde, yazılım geliştirme sürecinin bir parçası olan kod derleme ve test aşamaları otomatikleştirilebilmektedir.

AWS CodeBuild’in temel özelliklerine değinmemiz gerekirse eğer;

AWS İle CI/CD’yi Anlamak

Sürekli Entegrasyon(Continuous Integration) ve Sürekli Dağıtım(Continuous Deployment/Delivery) kısaltmaları olarak kullanılan CI/CD kavramları, yazılım geliştirme süreçlerinde önemli yaklaşımları ifade etmektedirler. AWS gibi cloud service provider’ları, bu süreçleri desteklemek için bir dizi hizmet sunmaktadırlar.

CI/CD kavramlarına, AWS açısından göz attığımızda aşağıdaki bazı temel noktaları gözlemlemekteyiz;

Sürekli Entegrasyon(Continuous Integration/CI)

Sürekli entegrasyon, geliştiricilerin farklı ekipler veya bireyler olarak yaptığı kod değişikliklerini düzenli olarak bir araya getirme sürecini ifade eder. Amacı, bu değişikliklerin kod tabanına sorunsuz bir şekilde entegre edilmesini sağlamaktır.

CI süreçlerinde genellikle aşağıdaki işlemler gerçekleştirilmektedir;

Sürekli Dağıtım(Continuous Deployment/Delivery/CD)

Sürekli dağıtım, CI sürecinin bir adım ötesidir. Bu aşamada, kod değişiklikleri başarılı bir şekilde birleştirildikten ve otomatik test edildikten sonra, üretim ortamına otomatik dağıtım süreci başlar.

AWS İle CI/CD

AWS, yazılım geliştirme süreçlerinizi desteklemek için aşağıdaki hizmetleri sunmaktadır;

Tüm bu hizmetler; kodu otomatik olarak derlemek, test etmek, birleştirmek ve dağıtmak için kullanılmaktadırlar.

İçerikte Seyredeceğimiz Noktalara Hızlıca Değinirsek…!

Mevzu bahis içeriğimizde ele alacağımız AWS servislerini ve uygulayacağımız terminolojik davranışları özet mahiyetinde masaya yatırdığımıza göre, yazı sürecinde seyredeceğimiz adımları da hızlıca değerlendirmekte fayda görmekteyim.

  1. İçeriğimizde örnek amaçlı geliştireceğimiz bir Asp.NET Core Web API uygulamasını CI/CD davranışları eşliğinde AWS CodePipeline’ı kullanarak AWS Elastic Beanstalk aracılığıyla nasıl deploy edeceğimizi inceliyor olacağız.
  2. Süreçte uygulamayı GitHub Repository’sine atacak ve sonrasında da AWS üzerinden Elastic Beanstalk’ı yapılandıracak ve bu yapılandırmada GitHub Repository’sine erişim izni veriyor olacağız.
  3. Uygulamayı derlemek için ise AWS CodeBuild’den istifade edeceğiz.
  4. Eğer her şey yolunda giderse, nihai olarak uygulamaya herkesin erişebileceği bir endpoint eşliğinde cloud’a deploy etmiş olacağız.

AWS CodePipeline kullanarak Asp.NET Core Web API Uygulamasını AWS Elastic Beanstalk’a Deploy Etme

Yapılan bu çalışmalar neticesinde; ne zaman ki uygulamanın GitHub reposunda yeni bir commit gelir o zaman AWS CodePipeline servisi yeni sürümü çekerek, build edecek ve ardından da deploy işlemlerini başlatacaktır. Yani anlayacağınız pipeline’daki tüm süreçler otomatik olarak baştan başlatılacaktır. Böylece, basit düzeyde bir uygulama üzerinden CI/CD pipeline’ını örneklendirmiş ve bununla beraber AWS CodePipeLine, AWS CodeBuild ve AWS Elastic Beanstalk olmak üzere üç adet AWS servisini tanımış ve tecrübe etmiş olduk. Özellikle AWS CodePipeLine servisi ile Asp.NET Core uygulamalarını bir kaç saniye içinde production’a hazır hale otomatik olarak getirmeyi ve AWS Elastic Beanstalk servisi ile de oldukça basit bir süreç eşliğinde deploy etmeyi öğrenmiş olduk.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Not : Örnek projeyi aşağıdaki github adresinden edinebilirsiniz.
https://github.com/gncyyldz/AWS.CodePipeline.And.AWS.Elastic.Beanstalk.Example

Exit mobile version