Dağıtım işlem hattını tasarlama
Bu ünitede projenizin gereksinimlerini desteklemek için bir CI/CD işlem hattı tasarlaacaksınız. Contoso Video web sitesinin, üretime yayımlanmak üzere etiketlenmiş ana dala yapılan her başarılı gönderimden sonra Azure Kubernetes Service'te (AKS) yayımlanmasını istiyorsunuz. Etiketleme tasarımı, üretime giden her dağıtımın sürümünü denetlemeyi kolaylaştırır.
Ayrıca, gönderimin üretime yayın için etiketlenip etiketlenmediğine bakılmaksızın web sitesini ana dala yapılan her gönderimden sonra test için bir hazırlama ortamına dağıtmak istiyorsunuz. Farklı kapsayıcı görüntülerini Azure Container Registry'ye gönderirken yönlendirmek için etiketleri kullanabilirsiniz.
İşlem hattını tasarlama
İşlem hattını tasarlamak için görevleri ve tetikleyicileri göz önünde bulundurun.
Tetikleyiciler
İşlem hattınızın iki farklı olayda tetiklenmesi gerekir:
- Ana dala etiketli gönderim.
- Ana dala etiketlenmemiş bir gönderme.
etiketli gönderim eylemleri etiketlenmemiş gönderme eylemlerinden farklı olduğundan, iki olayı iki ayrı tetikleyiciye bölersiniz. Etiketli gönderim üretime dağıtılırken, etiketsiz gönderim hazırlama ortamına dağıtılır. Aşağıdaki diyagramda işlem hattı için iki tetikleyici gösterilmektedir:
Tetikleyicileri tanımladıktan sonra işlem hattı akışının kendisini planlayın.
1. Adım: Depoyu kopyalama
İlk adımlar , yapılandırmayı hazırladığınız ve görüntüyü AKS kümesine göndermeden önce derlediğiniz derleme adımlarıdır. Derleme adımlarında, dağıtım adımı için gereken tüm bilgileri ayarlarsınız. Bu durumda, tetikleyici sinyalini aldıktan sonraki ilk derleme adımı, depoyu kopyalamak için her iki tetikleyici için de aynıdır.
2. Adım: Görüntüyü oluşturma
Sonraki mantıksal adım bir görüntü oluşturmaktır. AKS ortamında çalıştırılabilmesi için web sitesinin bir Docker görüntüsü olması gerekir. Deponun kökündeki Dockerfile dosyasını kullanarak yeni görüntüyü oluşturmanız gerekir. Burada farklı tetikleyicileri hesaba dahil edebilirsiniz.
Etiketli işleme işlem hattı için görüntüyü derleyip gönderme ile aynı etiketi kullanarak etiketleyebilirsiniz. Örneğin, işleme ile v1.0.0
etiketlenmişse, görüntüyü olarak contoso/website:v1.0.0
oluşturursunuz. Ana dalda etiketlenmemiş bir işlemeniz varsa, görüntüyü etiketiyle latest
oluşturursunuz.
3. Adım: Görüntüyü kapsayıcı kayıt defterine gönderme
Görüntü oluşturulduktan sonra, bunu Contoso kapsayıcı kayıt defterine gönderirsiniz ve AKS kümesini kayıt defterine erişecek şekilde ayarlarsınız. Küme, Container Registry'den görüntüleri indirir ve çalıştırır.
İşlem hattı bu noktada tek bir adımda birleşir. Container Registry örneğinizde iç bölümler yoktur, bu nedenle her iki görüntüyü de aynı yere gönderirsiniz.
4. Adım: Uygulamayı dağıtma
Son dağıtım adımı web sitesini doğru konuma dağıtır. İşlem hattını etiketli bir işleme tetiklediyse, web sitesini AKS kümesinin production
ad alanına dağıtırsınız. İşlem hattı etiketlenmemiş bir işlemeyle tetiklendiyse, aynı kümenin staging
ad alanına gönderirsiniz.
İş akışı işlem hattını tasarladığınıza göre, proje ortamınızı ayarlamak ve AKS kümesinde kopyalamak, derlemek, göndermek ve dağıtmak için GitHub Actions oluşturmak için aşağıdaki birimlere geçin.