En iyi türdeki Java kitaplıkları ve standartlarından hazırlanmış, OpenJDK HotSpot ve GraalVM için özel olarak tasarlanmış bir Kubernetes Yerel Java yığını.
Quarkus, Java dünyasının en son üyesidir. Redhat tarafından başlatılan bu açık kaynaklı çerçeveden bir süredir bahsediliyor. başlatma sürelerini iyileştirir, uygulama maliyetlerini artırır, üretkenliği artırır. Quarkus'un bazıları tarafından Java'nın geleceği olarak görülmesinin nedeni budur.
Sözde bulutta yerel Java uygulamalarının veya "Kubernetes yerel" olarak adlandırılanların terimlerini kullanmasına izin vermek için tasarlanmıştır. Bu durumda ana amaç, uygulamaların başlama süresini ve bellek ayak izini azaltmaktır.
Bu performans hedeflerinin ötesinde çerçeve, geliştiricilere birleşik bir konfigürasyon ve canlı yeniden yüklemenin geri dönüşünü sunarak geliştiricilerin yaşamını basitleştirme konusunda güçlü bir istek sergiliyor.
Quarkus, Spring Boot'un gelişiyle ortadan kaybolan bir özelliği yeniden canlandırıyor: karaciğer yükü.
Java'da geliştirme yaptığımızda, yapılan değişikliklerin dikkate alınması için bir derleme başlatmak ve uygulamayı yeniden başlatmak gerekir. Karaciğer yükü, bu yeniden başlatma ihtiyacını ortadan kaldırdı ve dolayısıyla geri besleme döngüsünü dolaylı olarak azalttı.
Ancak bu, programı yansıma kullanarak başlatırken bir uygulama bağlamı oluşturan Spring Boot gibi çerçevelerde düzgün çalışmaz. Koddaki bir değişiklik, bağlamda bir değişikliğe neden olabilir ve bu nedenle yeniden başlatma gerektirebilir. Bu yeniden başlatmanın dolaylı bir maliyeti vardır ve üretkenlik üzerinde olumsuz bir etkiye safça inanabiliriz.
Quarkus, GraalVM tarafından sunulan yerel derlemeyi (Quarkus.io'da bulunan verilerden hesaplanan yüzdeler) kullanarak geleneksel Java uygulamalarının önyükleme süresini yaklaşık% 99 ve bellek ayak izini yaklaşık% 86 oranında azaltır . Quarkus, bu iyileştirmeleri elde etmek için GraalVM ve kapsayıcılardan yararlanarak yerel Java yürütülebilir dosyaları oluşturur. Çalıştırılabilir dosya daha sonra tanımlı bir ortamda çalışacak şekilde optimize edilir.
GraalVM ve özellikle Substrate VM , şimdi Java dili için parlak ve uzun bir geleceğin kapısını açıyor. GraalVM,Java, Scala veya Kotlin gibi JavaScript, Python, Ruby, R, JVM tabanlı dillerde yazılmış uygulamaları çalıştırmak için evrensel bir sanal makinedir . İyi bir şey GraalVM programlarınızı derlemek için izin vermesidir öncesinde-of-time (AOT) bir içine yürütülebilir yerli . Bu, Java kodunuzu doğrudan makineye özgü bir koda derleyebileceğiniz anlamına gelir. Ortaya çıkan program Java HotSpot VM'de çalışmaz, ancak bellek yönetimi, Substrate VM adı verilen farklı bir sanal makineden iş parçacığı zamanlaması gibi gerekli bileşenleri kullanır . Substrate VM, Java'da yazılır ve yerel yürütülebilir dosyada derlenir.
Yerel yürütülebilir dosyalar sayesinde, JAVA uygulamasını JDK kurmadan bile herhangi bir makinede çalıştırabilirsiniz. Bu, özellikle Mikro Servisleri kullandığımızda çok önemli.
Hepsi JAVA tabanlı 6 mikro hizmete bölünmüş bir uygulamamız olduğunu düşünelim. O halde, Java uygulamasını çalıştırmak için her birine JDK yüklememiz gerekiyor. JDK'nın yaklaşık 250 MB disk alanına ihtiyacı var, bu yüzden 6 ile çarparsak, yalnızca mikro hizmetlerin JDK'si için 1500 MB elde ederiz ve bu çok fazladır.
Quarkus ve GraalVM sayesinde , bir JAVA uygulaması oluşturabilir ve bunu JDK kurmadan konteynerlere yerleştirebiliriz. Sonuç olarak, çok fazla depolama alanı ve başlatma süresi tasarrufu sağlıyoruz.
Quarkus, Java sanal makineleri (JVM'ler) ve yerel derleme için yapılmış , Java'yı özellikle kapsayıcılar için optimize eden ve sunucusuz bulut (Faas) ve Kubernetes ortamları için etkili bir platform haline gelmesini sağlayan tam yığınlı, Kubernetes yerel bir Java çerçevesidir .
Bu çerçeve, daha yüksek iş yükü yoğunluğu sağlar ve böylece toplam kaynak maliyetlerini, donanım, bulut bilgi işlem ve belleği azaltır.
Java'yı yerel olarak derlenen diğer programlama dilleriyle karşılaştırılabilir hale getirir. Hızlı başlatma süresi, karaciğer yükü ve diğer birçok özelliği sayesinde bize harika geliştirme deneyimi sağlar .
Java'da volatile anahtar kelimesini kullandığımızda perde arkasında neler olduğuna ve neden senkronizasyonun yerini tam olarak almadığına kısa bir bakış uçucu anahtar kelime genelinde. Bu anahtar kelime, bir değişkende yapılan herhangi bir değişikliğin diğer ileti dizileri tarafından hemen görülebilmesini sağlamak için kullanılabilir, bu nedenle verilerimizin eski, senkronize olmayan ve yanlış hale gelmesini önlemeye yardımcı olur.
İçeriğim genellikle DevOps dünyasındaki araçlarla ilgili çok fazla deneyime sahip orta ve üst düzey mühendisleri meşgul eder. Küçüklerin ve hatta teknik olmayan kişilerin ilgisini çekecek yeni başlayanlar için uygun içerik eklemeyi planlıyorum.
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.