(AWS CodePipeline kullanarak)

Bu öğreticide canlı bir örnek uygulama dağıtan otomatik bir yazılım yayınlama işlem hattının nasıl oluşturulacağını öğreneceksiniz. İşlem hattını her kod değişikliği olduğunda kodunuzu oluşturan, test eden ve dağıtan bir hizmet olan AWS CodePipeline'ı kullanarak oluşturacaksınız. GitHub hesabınızı, Amazon Simple Storage Service (S3) klasörünü veya örnek uygulama kodunun kaynak konumu olarak bir AWS CodeCommit deposunu kullanacaksınız. Aynı zamanda örnek uygulama için dağıtım hedefi olarakAWS Elastic Beanstalk'u kullanacaksınız. Tamamlanan işlem hattınız örnek uygulamayı içeren kaynak havuzda yapılan değişiklikleri algılayabilir ve daha sonra canlı örnek uygulamanızı otomatik olarak güncelleyebilir.

Sürekli dağıtım, geliştiricinin açık onayı olmadan revizyonları bir üretim ortamına otomatik olarak dağıtmanızı sağlar ve tüm yazılım yayınlama sürecini otomatikleştirir.

Bu öğreticide gerçekleştirilen tüm işlemler ücretsiz kullanım için uygundur.

AWS Kaynaklarınızı Yönetme

Konsolda Oturum Açın

Sürekli dağıtım işlem hattınız sanal sunucular veya örnek kod dağıtacağı Amazon EC2 örnekleri içeren bir hedef ortama ihtiyaç duyacaktır. İşlem hattını oluşturmadan önce bu ortamı hazırlayacaksınız.


a. Bu öğretici için EC2 örneklerini kurma ve yapılandırma işlemini basitleştirmek için AWS Elastic Beanstalk kullanarak örnek bir ortam oluşturacaksınız. Elastic Beanstalk web uygulamalarını başlatmanıza, yapılandırmanıza veya sanal sunucuları kendi başınıza çalıştırmanıza gerek kalmadan kolayca barındırmanızı sağlar. O sizin için altyapıyı (ör. sanal sunucular, yük dengeleyiciler, vb.) otomatik olarak sağlar ve çalıştırır; uygulama yığınını (ör. işletim sistemi, dil ve çerçeve, web ve uygulama sunucusu vb.) sağlar.


b. Açılır menüden PHP 'yi seçin ve ardından Şimdi Başlat'a tıklayın.

Not: Daha önce bir Elastik Beanstalk uygulaması oluşturduysanız, sağ üst köşedeki Yeni Uygulama Oluştur'a tıklayın. Uygulamanızı adlandırın ve yeni bir web sunucusu ortamıoluşturun. Platformunuz olarak PHP'yi, ortam türünüz olarak Tek Bulut Sunucusu’nu seçin. Bulut sunucularınıza uzaktan giriş yapmayı planlıyorsanız bir anahtar çifti seçin. Aksi takdirde, kalan seçenekler için varsayılan değerleri olduğu gibi bırakın ve sürekli dağıtım işlem hattınız için ortam oluşturun.

(yakınlaştırmak için tıklayın)


c. Elastic Beanstalk, uygulamanızı dağıtmanız için örnek bir ortam oluşturmaya başlayacaktır. Aynı zamanda bir Amazon EC2 bulut sunucusu, güvenlik grubu, Auto Scaling grubu, Amazon S3 klasörü, Amazon CloudWatch alarmları ve uygulamanız için bir etki alanı adı oluşturacaktır.

Not: Bu işlemin tamamlanması birkaç dakika sürebilir.

(yakınlaştırmak için tıklayın)

Bu adımda örnek uygulamanın kodunun bir kopyasını alacak ve kodu barındırmak için bir kaynak seçeceksiniz. İşlem hattı kaynaktan kod alır ve ardından eylemleri gerçekleştirir.

Kaynağınız olarak üç seçenekten birini kullanabilirsiniz: bir GitHub deposu, bir Amazon S3 klasörü veya bir AWS CodeCommit deposu. Tercihinizi seçin ve aşağıdaki adımları izleyin:

 

  • GitHub

    a. GitHub hesabınızı kullanmak istiyorsanız:

    (yakınlaştırmak için tıklayın)

  • Amazon S3

    a. Amazon S3'ü kaynak olarak kullanmayı planlıyorsanız örnek kodu AWS GitHub deposundan alır, bilgisayarınıza kaydeder ve bir Amazon S3 klasörüne yüklersiniz.

    (yakınlaştırmak için tıklayın)


    b. Kaynak dosyaları bilgisayarınıza kaydedin:

    • aws-codepipeline-s3-aws-codedeploy_linux.zip adlı dosyaya tıklayın.
    • Ham Görüntüle’ye tıklayın.
    • Örnek dosyayı yerel bilgisayarınıza kaydedin.

    (yakınlaştırmak için tıklayın)


    c. Amazon S3 konsolunu açmak ve Amazon S3 klasörünüzü oluşturmak için buraya tıklayın:

    • Klasör Oluştur’a tıklayın
    • Klasör Adı: klasörünüz için awscodepipeline-demobucket-variables gibi benzersiz bir ad yazın.  Amazon S3'teki tüm klasör adları benzersiz olmalıdır; bu nedenle örnekte gösterilen adı değil, kendi adınızı kullanın.
    • Bölge: açılır menüden işlem hattınızı oluşturacağınız bölgeyi seçin; örneğin ABD Standart
    • Oluştur’a tıklayın.

    (yakınlaştırmak için tıklayın)


    d. Konsol yeni oluşturulan klasörü görüntüler.

    • Özellikler’e tıklayın.
    • Sürüm Oluşturma'yı genişletin ve Sürüm Oluşturmayı Etkinleştir'i seçin. Sürüm oluşturma etkinleştirildiğinde Amazon S3 gruptaki her nesnenin her sürümünü kaydeder.

    (yakınlaştırmak için tıklayın)


    e. Şimdi örnek kodu Amazon S3 klasörüne yükleyeceksiniz: 

    • Yükle’ye tıklayın.
    • GitHub'dan indirdiğiniz örnek kodu içeren .zip dosyasını yüklemek için ekrandaki talimatları izleyin.

    (yakınlaştırmak için tıklayın)

  • AWS CodeCommit

    a. AWS CodeCommit'i kaynak olarak kullanmayı planlıyorsanız örnek kodu AWS GitHub veri deposundan alır, bilgisayarınıza kaydeder ve bir AWS CodeCommit veri havuzuna yüklersiniz.

    (yakınlaştırmak için tıklayın)


    b. Kaynak dosyaları bilgisayarınıza kaydedin:

    • aws-codepipeline-s3-aws-codedeploy_linux.zip adlı dosyayı seçin. 
    • Ham Görüntüle’yi seçin.
    • Örnek dosyayı yerel bilgisayarınıza kaydedin.

    (yakınlaştırmak için tıklayın)


    d. AWS CodeCommit konsolunu açmak için burayı tıklayın ve Kullanmaya Başla’yı seçin.

    (yakınlaştırmak için tıklayın)


    e. Yeni depo oluştur sayfasında:

    • Depo adı: PipelineRepo girin.
    • Depo oluştur’u seçin.

    (yakınlaştırmak için tıklayın)


    f. Deponuza bağlanın ve sonra örnek dosyanın bir kopyasını ona aktarın.  Talimatlar için bk. AWS CodeCommit Deposuna Bağlanın.

Bu adımda iki eylemle basit bir işlem hattı oluşturacak ve yapılandıracaksınız: kaynak ve dağıtma. Kaynak deponuzun ve dağıtım ortamınızın konumlarını CodePipeline'a sağlayacaksınız.


a. AWS CodePipeline konsolunu açmak için burayı tıklayın.

  • Hoş Geldiniz sayfasında İşlem hattı oluştur'u tıklayın. 
  • AWS CodePipeline'ı ilk kez kullanıyorsanız Hoş Geldiniz sayfası yerine bir tanıtım sayfası görünür. Kullanmaya başlayın’a tıklayın.

(yakınlaştırmak için tıklayın)


b. 1. Adım: Ad sayfasında:

  • İşlem hattı adı: işlem hattınız için adı girin, DemoPipeline. 
  • Sonraki Adım’a tıklayın.

Not: Bir işlem hattı oluşturduktan sonra adını değiştiremezsiniz.

(yakınlaştırmak için tıklayın)


c. 2. Adım: Kaynak sayfasında seçtiğiniz kaynağın konumunu seçin ve aşağıdaki adımları izleyin:

  • GitHub

    Kaynak Sağlayıcısı: GitHub

    • GitHub’a Bağlan bölümünde GitHub'a Bağlan'a tıklayın.
    • Sizi GitHub'a bağlamak için yeni bir tarayıcı penceresi açılacaktır. Oturum açmanız istenirse GitHub kimlik bilgilerinizi girin. 
    • Hesabınıza uygulama erişimini yetkilendirmeniz istenecektir. Uygulamayı yetkilendir'i seçin.

    (yakınlaştırmak için tıklayın)


    Depoyu ve dalı belirtin:

    • Depo: Açılır listede işlem hattınız için kaynak konum olarak kullanmak istediğiniz GitHub deposunu seçin. GitHub hesabınızda aws-codepipeline-s3-aws-codedeploy_linux adlı örnek kodu içeren çatallı depoyu tıklayın. 
    • Dal: Açılır listeden kullanmak istediğiniz dalı seçin, master.
    • Sonraki Adım’a tıklayın.

    (yakınlaştırmak için tıklayın)

  • Amazon S3

    Kaynak sağlayıcısı: Amazon S3.

    • Amazon S3 konumu: Oluşturduğunuz Amazon S3 klasörünün adını ve ardından bu klasöre kopyaladığınız örnek dosyayı (aws-codepipeline-s3-aws-codedeploy_linux.zip) yazın. Örneğin, klasörünüzü awscodepipeline-demobucket-variableşeklinde adlandırırsanız şu şekilde yazarsınız:s3://awscodepipeline-demobucket-variable/aws-codepipeline-s3-aws-codedeploy_linux.zip.
    • Sonraki Adım’a tıklayın.

    (yakınlaştırmak için tıklayın)

  • AWS CodeCommit

    Kaynak sağlayıcısı: AWS CodeCommit.

    • Depo adı: AWS CodeCommit veri deponuzun adını seçin. 
    • Dal adı: Örnek dosyayı içeren dalın adını seçin.
    • Sonraki Adım’a tıklayın.

    (yakınlaştırmak için tıklayın)


d. Gerçek bir sürekli dağıtım işlem hattı kodun derlendiği ve birim test edildiği bir oluşturma aşaması gerektirir. CodePipeline tercih ettiğiniz oluşturma sağlayıcısını işlem hattınıza bağlamanızı sağlar. Ancak bu öğreticide derleme aşamasını atlayacaksınız.

  • 3. Adım: Oluşturun sayfasında Oluşturma Yok'u seçin.
  • Sonraki Adım’a tıklayın.

 

(yakınlaştırmak için tıklayın)


e. 4. Adım: Beta sayfasında:

  • Dağıtım sağlayıcısı: AWS Elastic Beanstalk’a tıklayın.
  • Uygulama adı: İlk Elastik Beanstalk Uygulamam’a tıklayın.
  • Ortam adı: Varsayılan-Ortam’a tıklayın.
  • Sonraki Adım’a tıklayın.

Not: "Kaynak" adı işlem hattının ilk aşamasına verilen addı; aynı şekilde "Beta" adı da işlem hattının bu aşamasına varsayılan olarak verilen addır.

(yakınlaştırmak için tıklayın)


f. 5. Adım: Hizmet Rolü sayfasında:

  • Hizmet Rolü: Rol oluştur’a tıklayın.
  • Sizin için oluşturulacak AWS-CodePipeline-Service rolünü açıklayan bir IAM konsol sayfasına yönlendirileceksiniz. İzin ver’e tıklayın
  • Rolü oluşturduktan sonra Rol adında AWS-CodePipeline-Service'göründüğü 5. Adım: Hizmet Rolü sayfasına dönersiniz. Sonraki Adım’a tıklayın.

Not: Hizmet rolü oluşturmak yalnızca AWS CodePipeline uygulamasında ilk kez işlem hattı oluşturduğunuzda gereklidir. Bir hizmet rolü önceden oluşturulduysa açılır rol listesinden bu rolü seçebilirsiniz. Açılır listede hesabınızla ilişkili tüm IAM hizmet rolleri görüntüleneceği için varsayılandan farklı bir ad seçerseniz bu adın AWS CodePipeline hizmet rolü olarak tanınabildiğinden emin olun.

(yakınlaştırmak için tıklayın)

Bu adımda işlem hattınızı başlatacaksınız. İşlem hattınız oluşturulduktan sonra otomatik olarak çalışmaya başlar. İlk olarak kaynak konumunuzdaki örnek uygulama kodunu algılar, dosyaları paketler ve daha sonra onları tanımladığınız ikinci aşamaya taşır. Bu aşamada bu kodu, kodunuzu barındıracak olan EC2 bulut sunucusunu içeren Elastic Beanstalk'a aktarır. Elastic Beanstalk kodu EC2 bulut sunucusuna dağıtma görevini sağlar.


a. 6. Adım: Gözden Geçirin sayfasında bilgileri gözden geçirin ve İşlem hattı oluştur'a tıklayın.

(yakınlaştırmak için tıklayın)


b. İşlem hattınız oluşturulduktan sonra işlem hattı durum sayfası görünür ve işlem hattı otomatik olarak çalışmaya başlar. İşlem hattı her eylemi gerçekleştirirken siz ilerlemenin yanı sıra başarı ve hata iletilerini de görüntüleyebilirsiniz.

İşlem hattınızın başarıyla çalıştığını doğrulamak için her aşamada ilerlerken işlem hattının ilerlemesini izleyin. Her aşamanın durumu Henüz yürütme yok'dan Devam Ediyor'a ve ardından Başarılı veya Başarısız olarak değişir. İşlem hattının ilk çalışmayı birkaç dakika içinde tamamlaması beklenir.

(yakınlaştırmak için tıklayın)


c. Beta aşamasının durum alanında AWS Elastic Beanstalk'a tıklayın. 

(yakınlaştırmak için tıklayın)


d. AWS Elastic Beanstalk konsolu dağıtımın ayrıntılarıyla birlikte açılır.

  • Daha önce oluşturduğunuz Varsayılan-Ortam adlı ortamı tıklatın. 

(yakınlaştırmak için tıklayın)


e. Dağıttığınız örnek web sitesini görüntülemek için sayfanın sağ üst kısmında görünen URL'yi tıklayın.

(yakınlaştırmak için tıklayın)

Bu adımda örnek kodu gözden geçirecek ve değişikliği deponuzda gerçekleştireceksiniz. CodePipeline güncellenmiş örnek kodunuzu algılar ve ardından Elastik Beanstalk aracılığıyla EC2 bulut sunucunuza dağıtmayı otomatik olarak başlatır. 

Dağıttığınız örnek web sayfasının kod dağıtımlarını otomatikleştiren bir hizmet olan AWS CodeDeploy'u ifade ettiğini unutmayın. CodePipeline, CodeDeploy dağıtım eylemleri için Elastic Beanstalk kullanmaya bir alternatiftir. Elastic Beanstalk kullanarak örneği dağıttığınızı doğru bir şekilde belirtmesi için örnek kodu güncelleyelim.

  • GitHub

    a. GitHub'da çatalladığınız kendinizin oluşturduğu deponun kopyasını ziyaret edin.

    • index.html’i açın
    • Düzenlesimgesini seçin.

    (yakınlaştırmak için tıklayın)


    b. 30. satırdaki aşağıdaki metni kopyalayıp yapıştırarak web sayfasını güncelleyin: 

    Bu kaynak uygulamasını GitHub'dan alan ve AWS Elastic Beanstalk kullanarak bir Amazon EC2 bulut sunucusuna dağıtan bir işlem hattı oluşturdunuz. Sürekli dağıtım yapmaya bir adım daha yaklaştınız!

    (yakınlaştırmak için tıklayın)


    c. Değişikliği deponuza uygulayın.

    (yakınlaştırmak için tıklayın)

  • Amazon S3

    a. Masaüstünüzde indirdiğiniz aws-codepipeline-s3-aws-codedeploy_linux.zip adlı zip dosyasını ziyaret edin.


    b. Örnek web uygulaması kodunu düzenleyin:

    • index.html dosyasını zip dosyasından çıkarın ve tercih ettiğiniz metin düzenleyicisini kullanarak açın. 
    • "Tebrikler!" ifadesinin ardından gelen başlık metnini güncelleyin ve ekranda şu ifade olacaktır:

    “Bu kaynak uygulamasını Amazon S3'ten alan ve AWS Elastic Beanstalk kullanarak onu bir Amazon EC2 bulut sunucusuna dağıtan bir işlem hattını başarıyla oluşturdunuz. Sürekli dağıtım yapmaya bir adım daha yaklaştınız!”

    • Güncellenmiş index.html dosyasını tekrar aws-codepipeline-s3-aws-codedeploy_linux.zip dosyasına kopyalayın ve index.html dosyasının eski sürümünü değiştirin.

    (yakınlaştırmak için tıklayın)


    c. Düzenlenen dosyayı Amazon S3 klasörünüze tekrar yükleyin:

    • Daha önce oluşturduğunuz S3 klasörüne geri dönün. 
    • Güncellenmiş aws-codepipeline-s3-aws-codedeploy_linux.zip dosyasını klasöre yükleyin. 

    Not: S3 klasörünü ilk oluşturduğunuzda sürüm oluşturmayı etkinleştirdiğiniz için S3, dosyalarınızın her sürümünün bir kopyasını kaydedecektir.

    (yakınlaştırmak için tıklayın)

  • AWS CodeCommit

    a. İndirdiğiniz aws-codepipeline-s3-aws-codedeploy_linux.zip adlı örnek kodu içeren zip dosyasını ziyaret edin.


    b. Örnek web uygulaması kodunu düzenleyin:
     
    • index.html dosyasını zip dosyasından çıkarın ve tercih ettiğiniz metin düzenleyicisini kullanarak açın. 
    • Sonra "Tebrikler!" ifadesinin ardından gelen başlık metnini güncelleyin ve ekranda şu ifade olacaktır:

    Bu kaynak uygulamasını AWS CodeCommit'ten alan ve AWS Elastic Beanstalk kullanarak bir Amazon EC2 bulut sunucusuna dağıtan bir işlem hattını başarılı bir şekilde oluşturdunuz. Sürekli dağıtım yapmaya bir adım daha yaklaştınız!

    (yakınlaştırmak için tıklayın)


    c. Güncellenmiş zip dosyasını CodeCommit veri deposuna uygulayın ve gönderin.


d. CodePipeline konsolunda işlem hattınıza dönün. Birkaç dakika içinde Kaynağın maviye dönüştüğünü görmelisiniz. Bu işlem hattının kaynak deponuzda yaptığınız değişiklikleri algıladığının göstergesidir. Bu gerçekleştiğinde o, güncellenen kodu otomatik olarak Elastic Beanstalk'a taşır.

  • İşlem hattı durumu Başarılı olarak görüntülendikten sonra Beta aşamasının durum alanında AWS Elastic Beanstalk'a tıklayın.

(yakınlaştırmak için tıklayın)


e. AWS Elastic Beanstalk konsolu dağıtımın ayrıntılarıyla birlikte açılır. Daha önce oluşturduğunuz Varsayılan-Ortam adlı ortamı seçin.

(yakınlaştırmak için tıklayın)


f. Örnek web sitesini tekrar görüntülemek için sayfanın sağ üst kısmında görünen URL'ye tıklayın.  Metniniz sürekli dağıtım işlem kanalı üzerinden otomatik olarak güncellendi!

 

(yakınlaştırmak için tıklayın)

Gelecekte olabilecek ücretlendirmelerden kaçınmak için bu öğretici boyunca başlattığınız işlem hattı, Elastic Beanstalk Uygulaması ve kodu barındırmak için ayarladığınız kaynağı içeren tüm kaynakları sileceksiniz.  


a. İlk olarak işlem hattınızı sileceksiniz:

  • İşlem hattı görünümünde Düzenle'ye tıklayın. 
  • Sil’e tıklayın.
  • İşlem hattınızın adını yazın ve Sil'e tıklayın.

(yakınlaştırmak için tıklayın)


b. İkinci olarak Elastik Beanstalk uygulamanızı silin:

  • Elastik Beanstalk konsolunu ziyaret edin. 
  • Eylemler’e tıklayın
  • Ardından Ortamı Sonlandır'a tıklayın.

(yakınlaştırmak için tıklayın)

  • Amazon S3

    c. Bu öğretici için bir S3 klasörü oluşturduysanız oluşturduğunuz bu klasörü silin:

    • S3 konsolunu ziyaret edin. 
    • Klasör adına sağ tıklayın ve Klasörü Sil'i seçin. 
    • Onay mesajı görüntülendiğinde klasör adını girin ve ardından Sil'i tıklayın.

    (yakınlaştırmak için tıklayın)

  • AWS CodeCommit

    c. Bu öğretici için bir AWS CodeCommit deposu oluşturduysanız CodeCommit konsolunu ziyaret edin ve oluşturduğunuz depoyu silin:

    (yakınlaştırmak için tıklayın)


    c. Gezinme bölmesinde Ayarlar'ı seçin.

    • Depoyu Sil’e tıklayın.
    • Bir onay penceresi açılacaktır. Deponuzun adını yazın ve Sil'e tıklayın.

    (yakınlaştırmak için tıklayın)

AWS CodePipeline'ı kullanarak otomatik bir yazılım yayınlama işlem hattı oluşturdunuz! CodePipeline kullanarak uygulama kodu için kaynak konum olarak GitHub, Amazon S3 veya AWS CodeCommit kullanan ve daha sonra kodu AWS Elastic Beanstalk tarafından yönetilen bir Amazon EC2 bulut sunucusuna dağıtan bir işlem hattı oluşturdunuz. İşlem hattınız her kod değişikliği olduğunda kodunuzu otomatik olarak dağıtacaktır. Sürekli dağıtım yapmaya bir adım daha yaklaştınız!

Artık AWS CodePipeline kullanarak basit bir işlem hattı oluşturmayı öğrendiğinize göre aşağıdaki kaynakları ziyaret ederek daha fazla bilgi edinebilirsiniz.

  • Bu kılavuzu izleyerek daha gelişmiş, dört aşamalı bir işlem hattı oluşturun. Bu işlem hattı, kaynağınız için bir GitHub deposu, projeyi oluşturmak ve test etmek için bir Jenkins oluşturma sunucusu ve yerleşik kodu bir hazırlama sunucusuna dağıtmak için bir AWS CodeDeploy uygulaması kullanır.
  • Pipeline Starter Kiti’mizi kullanarak dört aşamalı bir işlem hattını Jenkins oluşturma sunucusuyla hızlıca döndürün.
  • Sürekli teslim hakkında daha fazla bilgi edinin.