Bir müşteri için Grafana ve Slack arasında özel bir uyarı / webhook entegrasyonu yazmam gerekti (belki kendi makalesi olabilir mi ?!). Python Flask uygulamasını yazdıktan sonra, onu nasıl yerleştirmek istediğimize karar vermiştim. AWS'yi epeyce kullandım , ancak müşterimin zaten bir Azure hesabı vardı . Azure'a pek aşina olmasam ve sınırlı Docker deneyimim olsa da, uygulamayı devreye alma deneyimim son derece keyifli ve anlaşılırdı. Aşağıda, iş akışının çok basit bir örneğini vereceğim.
Bu makalenin kapsamı bir Flask uygulaması yazmak veya bir uygulamayı nasıl “Dockerize” edeceğinizi öğretmek değildir. Gerekli bilgiyi edindikten sonra ve iş akışımı yeniden oluşturmak isterseniz, uygulamayı, dockerfile'ı klonlayabilir ve
requirements.txtbu örnekte GitHub depomdan kullanabilirsiniz .
Ayrıca bir Azure hesabı oluşturduğunuz varsayılır. İlk kaydolduğunuzda, oynayabileceğiniz 200 ABD doları tutarında ücretsiz kredi alırsınız ve yaygın olarak kullanılan birçok hizmet için ücretsiz bir katmanı vardır.
Çekirdek Flask uygulaması aşağıdadır. Oldukça basit. Bir
POSTisteği alır ve bu isteğin JSON gövdesini küçük bir mesajla gönderene geri gönderir.
Unutulmaması gereken bir şey, onu hizmet ettiğimizdir
Port 80. Azure Kapsayıcı Örnekleri, yerel Docker dağıtımının yaptığı gibi bağlantı noktası eşlemesine izin vermediğinden, bu daha sonra devreye girecektir.
Azure Container Registry (ACR), kapsayıcı görüntülerinizi barındıran bir hizmettir. Giriş yaphttps://portal.azure.com. Ardından, Azure Container Registry'yi arayın veya bir kayıt defteri oluşturmak için bu bağlantıya gidin .
Oradayken, aşağıdaki resimde gördüğüm gibi bilgileri doldurun ve
Review + Createdüğmeyi seçin .
Teksas'ta olduğum için Orta Güney Bölgesini seçtim, ancak mevcut herhangi bir bölge yeterli olacaktır. Ağ Oluşturma / Şifreleme / Etiketler bölümlerine gitmeyi seçebilirsiniz, ancak benim abonelik düzeyimde, eski 2'deki seçenekler gri renkte görünüyor ve basitlik için herhangi bir etiket eklemeyeceğim (bu en iyi uygulama olsa da).
Kayıt defteri dağıtıldıktan ve Azure tamamlandığını onayladıktan sonra, kaynak ana sayfasına gidebilirsiniz. Sol panelde, Ayarlar'ın altında bir
Access Keysdüğme bulacaksınız . Oraya gidelim.
Oraya vardığınızda, Yönetici kullanıcı geçişinin "Etkin" olduğundan emin olun ve Kullanıcı Adı ve Parola (lar) dahil çeşitli alanları not alın . Docker CLI'deki sonraki adımlar için bunlara ihtiyacınız olacak.
Docker kullandıysanız , eminim yaygın CLI işlevlerini biliyorsunuzdur. Gerçekten kullanışlı olan, onların Azure ile entegrasyonudur. Aşağıda bunun ne kadar basit olabileceğini göreceksiniz!
Azure'un Kayıt Giriş Sayfasında sunduğu güzel bir şey, Hızlı başlangıç kılavuzudur (aşağıya bakın). Yalnızca
cduygulama dizininize girin ve dahil olan adımları çalıştırın, ancak bunun yerine Docker görüntü adınızı referans alın
hello-world.
Aşağıda size kişisel adımlarımı göstereceğim:
cduygulama dizininize.
docker login <your Login server>ve girin . Doğru yaparsanız, geri dönmelidir .
Login Succeeded
4. Çalıştırın
docker push <your Login server>/<your Docker image name>. Tam görüntünün Azure'a doğru itilmesi nedeniyle bu biraz zaman alabilir.
5. Kontrol olarak,
docker pull <your Login server>/<your Docker image name>görüntünün ACR'de güncel olduğundan emin olmak için çalıştırın .
Azure Kapsayıcı Örnekleri (ACI), kapsayıcıya alınmış hizmetlerinizi çok uygun maliyetli ve sağlam bir şekilde barındırmak için bir hizmettir. Portalı arayabilir veya bu bağlantıyı kullanarak bir örnek oluşturabilirsiniz .
Oraya vardıktan sonra, aşağıdaki gibi ilk sayfayı doldurabilirsiniz. Yine Bölgeyi not edin. Buradaki büyük parça , Görüntü kaynağından Azure Container Registry'yi seçmek ve ardından önceki adımlarımızda oluşturduğumuz Kayıt Defteri ve Görüntüyü seçmektir . Oradan devam edelim .
Networking
Gelen Ağ sekmesi, Belirtebileceğiniz DNS adı etiketi örneği için. Ayrıca, isterseniz belirli bağlantı noktalarını da belirtebilirsiniz.
port 80TCP trafiği için açık bildirim , Flask Uygulamamızla eşleşir. Daha önce belirtildiği gibi, ACI bağlantı noktası eşleştirmeyi desteklemez.
Herhangi bir Çevresel Değişkeniniz varsa, Gelişmiş sekmesine geçmek isteyeceksiniz , ancak uygulamamız süper basit olduğu için hemen atlayacağız
Review + Create.
Bu noktada Azure, kaynakları dağıtır ve çalışır duruma geldikten sonra size haber verir.
Uç Noktayı Test Etme
Dağıtımımı test etmek için Postman kullandım. Gördüğünüz gibi, uygulama gönderdiğim JSON Gövdesini aldı ve bir mesajla geri verdi. Voila!
Kod değişiklikleriniz varsa, sadece görüntüyü yeniden oluşturmanız ve ardından daha önce yaptığımız adımları uygulamanız gerekir:
login,
tagve
push.
Bunu daha sağlam hale getirmek için yapmak istediğim birkaç şey var.
ACR için Temel Katman aylık 5 ABD dolarıdır ( seçtiğimiz Standart Katman için 20 ABD doları - bunu değiştirmek zorunda kalacak!) Azure Fiyatlandırma Hesaplayıcı'nın aşağıdaki ekran görüntüsüne bakın .
ACI, işlem saniyesi başına faturalandırılır. Eminim ölçeğe göre veya uzun süreli işler için maliyetli olabilir, ancak düşük kullanım için basit uygulamalar için pratik olarak ücretsizdir. Daha fazla ayrıntı için bu bağlantıya bakın:https://azure.microsoft.com/en-us/pricing/details/container-instances/.
Gördüğünüz gibi Azure + Docker, kapsayıcıya alınmış uygulamaları dağıtmayı çok kolaylaştırıyor. İleride, işlevselliği karşılaştırmak için bu süreci AWS ve Google Cloud Platform'da kopyalamaya çalışabilirim. Bizi izlemeye devam edin!
Tüm doğru malzemeler ve talimatlarla mükemmel pastayı pişirmeye çalışmaktan bıktınız mı? Strese veda edin ve Docker dünyasına merhaba deyin! Tıpkı bir pasta tarifi gibi Docker, uygulamanızı gerekli tüm malzemeler ve talimatlarla paketlemenize olanak tanır. Ve yeni pişmiş bir pasta gibi, Docker kapsayıcılarını kullanarak uygulamanızı kolayca dağıtabilir, çalıştırabilir ve yönetebilirsiniz.
Konteynerleri Nasıl Hackleyeceğinizi Öğrenin ve gerçekte nasıl çalıştıklarını anlayın. Konteynerleştirme, uygulamaları dağıtmanın popüler bir yoludur, birçok şirket hizmetlerini çalıştırmak için bu yolu kullanır. Bir Güvenlik Meraklısı veya Red Teamer olarak, konteynerlerin nasıl çalıştığını ve bunlara nasıl girileceğini bilmek gerekli hale gelir.
Kasım 2020'nin başlarında SalesForce, açıklanamayacak şekilde JARM adlı yeni bir aktif TLS parmak izi alma aracını duyurdu. JARM'ın temeli, bir hedef sunucu özel olarak hazırlanmış çeşitli farklı TCP "İstemci merhaba" paketleri kullanılarak tarandığında, elde edilen yanıtların birleştirilip, paylaşılan veya benzer bir uygulama veya sunucunun göstergesi olan bir parmak izi sağlamak için karma hale getirilebilmesidir. yığını.
Harika geliştiriciler yapan teknik olmayan şeyler Bir süredir bu makaleyi yazmayı erteliyorum - yazmak için hiç nitelikli hissetmedim. Bugün onu yazma zamanının geldiğini düşündüm.
Teknoloji endüstrisindeki bir pozisyon için mülakat yaparken, herhangi bir teklif değerlendirilmeden önce genellikle en az üç tur mülakattan geçeceksiniz. Mermiler genellikle şuna benzer: Eğer öyle düşünüyorsan, yanılıyorsun.
Pragmatik Programcı ilk olarak 1999'da yayınlandı ve o zamandan beri tüm zamanların en iyi programlama kitabı seçildi. Yazarlar Andy Hunt ve David Thomas, Agile Manifesto'nun orijinal yazarları arasındaydı ve bazı ciddi referanslara sahipler.