Azure Stack Template Kullanımı ve Template Dağıtımı – Bölüm 1
Microsoft Azure templateleri Azure tarafındaki özelliklerden bir tanesi olarak karşımızda durmaktadır. Bu makalemizde hem azure tarafında hem de Azure Stack tarafında bu templatelerin nasıl oluşturulduğunu ve oluşturmuş olduğumuz bu templatelerin nasıl dağıtacağımızı inceleyeceğiz.
Neden Azure ya da Azure Stack tarafında bu şablonları kullanacağım?
Bu soruya bir kerede birden fazla kaynak dağıtımı yapabilmemize olanak sağlaması olarak cevaplayabiliriz. Çünkü uygulamalarımızın altyapısı sanal makinalar, depolama alanları, sanal network gibi birçok bileşenden oluşmaktadır. Biraz daha ilerisini düşünecek olursak bütün bu kaynakların yanında bu sanal sunucumuz üzerinde bir web uygulaması olduğunu düşündüğümüzde ise ihtiyaçlarımızı biraz daha genişletebiliriz. Yani Uygulamanın bağlı olduğu bir veritabanı ve bu veri tabanının koştuğu yine bir veritabanı sunucusuna ihtiyaç olacağını görebiliriz. Azure ya Azure Stack tarafında bu bileşenlerin her birini ayrı bir öğe olarak değil de tek bir öğe olarak düşünmek ve bu bileşenlerin birbirine bağlı parçalar olarak görmeliyiz. İşte bu noktada bu bileşenleri tek tek dağıtmak ve yönetmek yerine tek bir noktadan oluşturulmuş bileşenler olarak dağıtımını yapabilir ve/veya bu bileşenleri tek bir noktadan silinebilir, güncelleyebiliriz. Dağıtım için bu bahsettiğimiz şablonları kullanırsak uygulama ya da geliştirdiğimiz her ne ise öncesinde hazırlama, test etme ve production ortamlara almak için ciddi kolaylıklar sağlayabilmektedir. Bütün bunların yanında bu kaynaklar üzerinde yönetim, güvenlik özelliklerini de bizlere sağlamaktadır.
Bütün bu bahsettiklerimizden sonra kendi şablonlarımızı oluşturabilir ve oluşturmuş olduğumuz bu şablonları özelleştirebiliriz. Özelleştirilmiş ya da kendimizin oluşturacağı bu şablonları JSON, Javascript object kullanarak elde edeceğiz.
Azure ya da Azure Stack tarafında şablonları oluşturmak ve bu şablonları dağıtmak için birden fazla yol bulunmaktadır. Bu bahsedeceğimiz bütün yöntemlerin hepsi hem Azure hemde Azure Stack tarafından desteklenmektedir. Şayet kendimiz bu şablonları oluşturmak yerine hazır olanları kullanmak istiyorsak bu kez de Github üzerinde oluşturulmuş şablonları kullanabiliriz.
Bu şablonları oluşturmak istediğimiz ilk başlarda biraz karışık gelebilir fakat günün sonunda bu şablonlarla çalışmaya başladığımız ve şablonları anladığımızda operasyonel olacak bütün işlerden kurtulacağımızı hatta yazılım geliştiren ekiplere bunları sağladığınızda altyapı ekiplerine ulaşmadan ihtiyaç duydukları kaynakları şablonlar yardımı ile kolaylıkla ve hızlıca hazır edebileceklerdir.
Şimdi öncelikle şablonları incelemek için daha önce dağıtımını gerçekleştirdiğimiz herhangi bir kaynağın şablonunu inceleyelim. Ben burada Azure Stack üzerinden bu şablonları inceleyeceğiz ve dağıtımını yine Azure Stack üzerinde gerçekleştireceğiz.
Daha önce dağıtımları gerçekleştirdiğim YenalWebSrvRG isimli Resource Group seçimini yapıyorum ve buna bağlı bileşenleri incelediğimde sadece sanal bir makina olarak değil, bileşenlerin tamamını görüyorum. Sanal bir sunucu için depolama alanları, network bileşenleri ve network bu bileşenlerin kullanabilmek için bir ya da daha fazla interface ve yine bu interfacelere atadığım IP adreslerinden oluştuğunu gözlemliyoruz. İşte bu noktada bütün bu tanımları sadece basit bir sunucu için oluşan bileşenlerin tamamını tek tek yapılandırmak yerinde şablonlardan faydalanmak hatta daha kompleks yapılardan bahsettiğimizde bu iş için nasıl zaman ve operasyonel faydaları olacağını daha fazla anlatmaya çalışmak yanlış olur.
Şimdi mevcut dağıtımlardan elde edeceğimiz bir şablonun kullanımını inceleyerek devam edeceğiz. Bunun için ben yine Azure Stack tarafından faydalanacağım. Aynı şekilde daha önceki makalelerimizde de bahsettiğimiz gibi Microsoft Azure tarafında işlemler birebir aynı. Çünkü Azure Stack Microsoft Azure tarafının bir uzantısı ve aynı bileşenlere sahip olduğunu söylemiştik.
Azure Stack portalimizde Resource Group içerisinden daha önce dağıtımını gerçekleştirdiğimiz bir kaynaktan şablonu daha sonra kullanmak üzere çıkartacağız. Çünkü bu kaynak grubunu dağıtmak biraz zaman aldı ve zamanı kısaltmak ve dağıtımını yapmak için var dağıtımdan bir şablon çıkartacağız ve kullanmak üzere hazır edeceğiz.
Şablonunu çıkartacağım WebServerRG isimli daha önce dağıtımını yaptığım kaynağın seçimini yapıyorum ve ardında Deployment tabına geçiyoruz.
Bu ekranımızda dağıtımı daha önce yapılmış olan YenalWebSrvRG isimli paketin ekran görüntüsünde göreceğimiz gibi View Template seçimini yapıyoruz.
Daha önce dağıtımını gerçekleştirdiğimiz şablonumuzu download seçimini zip halinde şablonumuzu elde edeceğiz. Elde ettiğimiz bu şablon üzerinde de dataları da kullanmak istediğimizde muhtemelen manipülede edeceğiz.
Bunun için indirmiş olduğumuz zip dosyasını açarak içerisinde bulunan dosyaları göreceğiz.
Gördüğümüz gibi bütün kaynak şablonların hepsi mevcut. Hangi dilde kendinizi rahat hissediyorsanız şablon için onu kullanabilirsiniz. Ben burada Parameters.json dosyasını açarak parametreleri inceleyeceğiz.
Gördüğünüz gibi bütün parametreleri daha önce oluşturduğumuz ve dağıtımını yaptığımız kaynakları görüyoruz. Bu şablonu kullanarak aynı kaynaklara sahip yeni bir sanal sunucu oluşturduğumuzda birtakım bilgileri manipüle etmemiz gerekecek. Şayet bu dataları düzenlemeden devam edecek olursak script’i dağıtımında hata alacağız. Bunun nedeni aynı isimde sunucu olması, storage hesaplarının aynı olması sonrasında bizlere dağıtım sırasında var olan hesaplar ile dağıtım yapmaya çalıştığımızı ve bu hesapları düzenlememiz gerektiğini söyleyecek.
Şimdi indirmiş olduğumu şablonları dağıtmak için hem şablon dosyalarının düzenlenmesi ve bu düzenlemeler sonrasında dağıtım işlemine başlayacağız.
Şablonumuzun dağıtımını Microsoft Azure üzerinden yapacak isek portal üzerinden Template tabından bu işlemi gerçekleştireceğiz. Fakat ben burada dağıtım işlemini Azure Stack üzerinden gerçekleştireceğim.
Şablonları kullanarak dağıtım yapabilmek için iki yol mevcut. Bunlardan birincisi direk dağıtılmış şablon üzerinden Redeploy seçimini yaparak mevcut template üzerinden ilgili parametleri düzenleyerek gerçekleştirebiliriz.
Ekran görüntüsünde de göreceğiniz üzere mevcut dağıtılmış YenalWebSrvRG seçimi sonrasında ortadaki görev listesinde bulunan Deployment seçimini yapacağız. Sonrasında sağ tarafta bulunan Redeploy seçimini gerçekleştireceğiz.
Redeploy seçimi sonrasında Edit Parameters ile ilgili bilgiler üzerinde değişiklikleri yaparak dağıtım işlemini gerçekleştirebiliriz.
Bir başka seçeneğimiz ise yine aynı ekranda bulunan Edit Template seçeneğimizdir.
Bu ekranımızda Quickstart Template seçimi yaparak Github üzerinde bulunan ve daha öncesinde hazırlanmış olan şablonları kullanabiliriz. Burada birden fazla şablon bulunmakta ve ihtiyacımız olan şablonu kullanarak dağıtımları gerçekleştirebiliriz.
Şablon içerisinden mysql server seçimini yaparak dağıtım işlemini gerçekleştireceğiz.
Açılan şablon ekranımızda save seçimini yapıyoruz.
Kayıt işlemini gerçekleştirdikten sonra Edit parametre seçimini yapıyoruz ve kurulum işlemleri için gereken ilgili alanları kendimize göre düzenliyoruz işlemleri onaylıyoruz.
Bütün işlemler sonrasında şablonumuz artık dağıtım için hazır durumda. Bunun için Create seçimini yapıyoruz ve dağıtım işlemine başlıyoruz.
Ekran görüntüsünde görüldüğü üzere Windows Server 2016 üzerine MySQL Database uygulaması kurulmuş ve hazır olarak gelecektir.
Bütün bu işlemleri baştan sonra kadar kendimiz uygulamış olsa idik hem sunucu kurulumları ve uygulama kurulumları oldukça zamanımızı alacaktı. Böylelikle mevcut şablonlar ile kurulum işlemlerini kolaylıkla yapabiliriz. Bir sonraki makalemizde bu şablonları kendimiz nasıl oluşturacağı ve oluşturmuş olduğumuz bu şablonları kullanımını inceleyeceğiz.