top aws devops tools
En İyi Amazon AWS DevOps Araçları: Bir ardışık düzen , kaynak kod deposu, derleme ve dağıtım Amazon Web Services ile
Yazılım kariyerime yaklaşık 20 yıl önce başladığımda, her türlü geliştirme ve dağıtım için altyapının (Yazılım ve Donanım) tedarik edilmesi gerekiyordu.
Bu, sunucular için satıcıya sipariş vermek, aynısını almak için belirli bir süre beklemek, teslim edilen sunucu alanının rezerve edilmesi gerektiğinde, sunucunun kurulumu, işletim sistemi, depolama yapılandırması vb. Dahil. Ayrıca endişelenmemiz gerekiyordu. performans, kullanılabilirlik (24 * 7), bakım, ağ vb.
Bu, uygulamaların geliştirilmesi ve konuşlandırılması faaliyetleri için bir sunucu oluşturmak için çok fazla çaba gerektiriyordu.
Ne öğreneceksin:
- Bulut Bilişimin Evrimi
- AWS Araçlarını Kullanarak Derleme ve Dağıtım
- AWS Hizmetleriyle Jenkins Entegrasyonu
- Önerilen Kaynaklar
Bulut Bilişimin Evrimi
Bulut Bilişimin evrimiyle birlikte işler değişmek zorunda kaldı, bu da tüm uygulamalarınıza ve veritabanlarınıza internet üzerinden erişebileceğiniz anlamına geliyor. Böylece Bulut Bilişim sağlayıcıları, web uygulamanızı çalıştırmak için gereken tüm donanımı korur.
Uygulamanızı barındırmak için ihtiyaç duyduğunuz uygun yapılandırmaya sahip tüm kaynaklar bir tıklama ile kullanılabilir. Kaynakları geliştiricilere sağlamak için zaman büyük ölçüde azaltılır. En önemlisi, yalnızca kullanmanız gerekenler için ödeme yaparsınız.
Bulut tabanlı hizmetleri kullanan geliştiricilerin odak noktası, altyapı kullanılabilirliği konusunda endişelenmemeleri için yalnızca projelerimiz üzerinde çalışmaları için ihtiyaç duydukları şeydir. Bulut bilişim türlerine (IaaS, PaaS, SaaS) girmiyorum, ne olduklarını açıklamak için internette mevcut tonlarca bilgi var.
Birçok bulut sağlayıcısı var. Ama birlikte çalıştığım en popüler 3 tanesi:
- Amazon Web Hizmetleri
- Microsoft Azure
- Google Cloud
Bu bölümde, odak noktamı aşağıdaki araçlara vereceğim: bir boru hattı , kaynak kod deposu, derleme ve dağıtım ile Amazon Web Hizmetleri . Ekiplerin hala Jenkins, Git, Maven ve diğerleri gibi DevOps araçlarını kullandığını unutmamak gerekir.
Bu nedenle, ekipler varlıklarını ve eserlerini bulut altyapısına taşımak isterken, araçlara ve verilere yönelik mevcut yatırımlarını da entegrasyonlar / geçişlerle mümkün olduğunca en üst düzeye çıkarmamız zorunludur.
Tıklayın İşte AWS ve Mimarlar, Geliştiriciler ve SysOPS için çeşitli hizmetler hakkında bilgi edinin. Bahsedilen araçlar için ücretsiz hesabı kullanacağız, ancak elbette bir üretim ortamında, kullanım için hizmetleri tedarik etmeniz gerekecek.
AWS Araçlarını Kullanarak Derleme ve Dağıtım
Derleme ve Dağıtım açısından aşağıdaki AWS hizmetlerine bakacağız
eps dosyası ne açabilir
- AWS CodePipeline
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
1. AWS CodePipeline
AWS CodePipeline, uçtan uca teslim sürecinin görsel bir görünümüne sahip olmaya yardımcı olan Jenkins Pipeline'a benzer.
Dolayısıyla, bir CodePipeline'da, genellikle aşağıdakileri yapılandırırsınız
- Kaynak Kod Deposu - Yani kaynak kodunuzun AWS CodeCommit veya GitHub deposunda olması gerekir.
- Hizmet Oluştur - AWS CodeBuild ayrıntıları, ardışık düzen kapsamında yapılandırılacaktır.
- Dağıtmak - AWS CodeDeploy, ardışık düzen içinde yapılandırılacaktır.
- Farklı ortamlara dağıtım işlemi sırasında herhangi bir onay gerekirse, bunlar da yapılandırılabilir.
Bu nedenle, geliştirici tarafından bir kod değişikliği varsa, Build ve Deploy'un görsel temsili otomatik olarak görülebilir.
AWS CodePipeline'da kaynak kod havuzu yapılandırması
Maven derlemesini kullanan AWS CodePipeline'da yapılandırma oluşturun
AWS CodePipeline'da dağıtım yapılandırması
Tam Yürütme, AWS CodePipeline'da görülür
2. AWS CodeCommit
AWS CodeCommit, özel Git depolarını barındıran güvenli bir çevrimiçi sürüm kontrol hizmetidir. Bir ekibin kendi sürüm kontrol havuzunu korumasına gerek yoktur, bunun yerine kaynak kodunu depolamak için AWS CodeCommit'i ve hatta derlemeden oluşturulan WAR / JAR / EAR dosyaları gibi ikili dosyaları kullanırlar.
AWS CodeCommit ile bir havuz oluşturursunuz ve her geliştirici bunu yerel makinelerine klonlar, dosyalar ekler ve onu AWS CodeCommit havuzuna geri gönderir. AWS CodeCommit deposu ile standart GIT komutları kullanılır.
İçin Örneğin. AWS CodeCommit deposu yerel makineye klonlandıktan sonra, 'git pull', 'git add', 'git commit', 'git push' vb. komutları kullanırsınız.
Örnek AWS CodeCommit boş kod deposu oluşturuldu
Depoyu yerel makineye klonlayın
AWS CodeCommit havuzuna eklenen dosyalar
3. AWS CodeBuild
Gördüğümüz gibi kaynak kodu ve diğer proje yapıları AWS CodeCommit deposunda saklanıyor.
Sürekli Entegrasyonu uygulamak için Jenkins gibi AWS CodeBuild, yapılandırılmış ve derleme belirtimine göre AWS CodeCommit veya GitHub deposundan kaynak kodundaki en son değişiklikleri alır YAML dosyası (buildspec.yml olarak oluşturulur) komutlar Kurulum, Ön Oluşturma, Oluşturma ve Oluşturma Sonrası gibi dört aşamaya göre çalıştırılır.
Derleme tamamlandığında yapılar (WAR / ZIP / JAR / EAR), bir S3 paketi olan AWS Storage'da depolanır.
Örnek buildspec.yml dosyası
version: 0.2 phases: install: commands: - echo Nothing in the install phase... pre_build: commands: - echo Nothing in the pre_build phase... build: commands: - echo Build started on `date` - mvn clean install post_build: commands: - echo Build completed on `date` artifacts: files: - target/HelloWorld-Maven.war
Örnek AWS Codebuild projesi
Başarı Oluşturun
Yapı (WAR dosyası) S3 klasörüne kopyalandı
4. AWS CodeDeploy
Adından da anlaşılacağı gibi AWS Codedeploy, uygulamanın (bu durumda WAR dosyası) Amazon EC2 Linux veya Windows bulut sunucularına dağıtımını otomatikleştiren dağıtım hizmetidir.
Artık S3 klasöründe depolanan ve AWS CodeBuild kullanılarak tamamlanan yapılara sahip olduğumuzdan, yapılar daha sonra S3 klasöründen alınır ve AWS EC2 bulut sunucusu sağlama işleminde Tomcat veya JBoss vb. Uygulama sunucusuna uygun şekilde dağıtılır.
AWS CodeDeploy, EC2 bulut sunucularına dağıtımla ilgili talimatlar içeren appspec.yml adlı bir YAML dosyasına bağlıdır.
İndex.html dosyasının kopyalandığı ve Apache sunucusuna dağıtıldığı örnek appspec.yml dosyası
version:10.0 os:linux files: -source: /opt/deploy/index.html destination:/var/www/html/ hooks: BeforeInstall: -location:scripts/before_install runas:niranjan AfterInstall: -location:scripts/restart_server runas:niranjan
before_install senaryo
restart_server senaryo
AWS CodeDeploy'u çalıştırmak için gereken tüm dosyaların GitHub deposu
AWS CodeDeploy'da dağıtım yürütme
AWS Hizmetleriyle Jenkins Entegrasyonu
Daha önce de belirtildiği gibi, günümüzde ekipler Jenkins'i fiilen CI aracı olarak kullanıyor ve çoğu durumda ondan gerçekten uzaklaşmak istemiyorlar, tartıştığımız AWS hizmetleriyle entegre olmak istiyorlar. İlgili belirli prosedürler varken, entegrasyonun ekran görüntülerini gösterdim.
1. AWS CodeCommit ile Jenkins entegrasyonu
2. AWS CodeBuild ile Jenkins entegrasyonu
3. AWS CodeDeploy ile Jenkins entegrasyonu
AWS DevOps Stack İçin Her Şeyi Bir Araya Getirmek:
Yığın, yukarıda tartışılan AWS hizmetleri için aşağıya bakar.
Umarım bu öğretici için araçlar bir boru hattı , kaynak kod deposu, derleme ve dağıtım Amazon Web Services ile size yardımcı oldu.
Önerilen Kaynaklar
- Bulutta DevOps Uygulaması için AWS CodeCommit Eğiticisi
- Otomatik Dağıtım için AWS CodeDeploy DevOps Aracı Üzerinde Çalışma
- DevOps'ta Sürekli Dağıtım
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- AWS CodeBuild Eğitimi: Maven Build'tan Kod Çıkarma
- DevOps'ta Sürekli Teslimat
- Mükemmel Bulut Yönetimi İçin EN İYİ 10 Bulut İzleme Aracı
- DevOps'ta Sürekli Test