JavaRush /Blog Jawa /Random-JV /A Guide to Java Microservices. Bagean 2: Panyebaran lan P...

A Guide to Java Microservices. Bagean 2: Panyebaran lan Pengujian

Diterbitake ing grup
Terjemahan lan adaptasi Java Microservices: A Practical Guide . Link menyang bagean pisanan saka pandhuan . A Guide to Java Microservices.  Bagean 2: Panyebaran lan Pengujian - 1Sembarang program Jawa sisih server, lan mulane microservice sembarang, mung file karo extension .jar utawa .war. Ana siji bab sing apik babagan ekosistem Jawa, utawa luwih JVM: sampeyan mung kudu nulis kode Java sapisan lan bisa mlaku ing meh kabeh sistem operasi, anggere sampeyan durung nyusun kode nganggo versi Jawa sing luwih anyar tinimbang sampeyan. target versi JVM. Iki penting dimangerteni, utamane nalika nerangake topik kaya Docker, Kubernetes, utawa (drum roll!) The Cloud. Kenging punapa? Ayo katon ing macem-macem skenario penyebaran.

Contoh Deployment Java Microservice Minimalis

Ayo kita nerusake karo conto bank. Dadi, kita duwe file monobank.jar (monolith) lan riskengine.jar sing mentas diekstrak (microservice pamriksa risiko pisanan). Ayo uga nganggep yen loro aplikasi, kaya saben aplikasi liyane ing donya, mbutuhake file .properties. Ing kasus kita, mung bakal ngemot URL database lan kredensial. Penyebaran minimal bisa uga kalebu rong direktori sing katon kaya iki: Pisanan:

-r-r------ 1 ubuntu ubuntu     2476 Nov 26 09:41 application.properties
-r-x------ 1 ubuntu ubuntu 94806861 Nov 26 09:45 monobank-384.jar

ubuntu@somemachine:/var/www/www.monobank.com/java$ java -jar monobank-384.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
...
Kapindho:

-r-r------ 1 ubuntu ubuntu     2476 Nov 26 09:41 application.properties
-r-x------ 1 ubuntu ubuntu 94806861 Nov 26 09:45 risk-engine-1.jar

ubuntu@someothermachine:/var/www/risk.monobank.com/java$ java -jar risk-engine-1.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
...
Iki ninggalake pitakonan mbukak: carane .properties lan .jar file njaluk menyang server? Sayange, bisa uga ana akeh jawaban.

Cara Nggunakake Alat Mbangun, SSH, lan Ansible kanggo Nyebarake Java Microservices

Bosen, nanging ora ana saran sing apik banget babagan cara nyebarake microservices Java ... Bener, persis cara administrator sistem wis nyebarake program server Java ing perusahaan sajrone 20 taun kepungkur. Iki campuran:
  • alat mbangun favorit (Maven, Gradle)
  • SSH lawas apik / SCP kanggo salinan .jars kanggo server
  • Skrip Bash kanggo ngatur skrip lan server penyebaran
  • utawa malah luwih apik: sawetara script Ansible.
Mesthine, iki ora cocog kanggo para inovator sing butuh awan "ambegan", server kanthi keseimbangan beban otomatis, lan liya-liyane. Iki sekolah lawas bosen tenan. Nanging kerjane!

Cara Nggunakake Docker kanggo nyebarake Java Microservices

Ayo bali menyang sangsara manis pilihan. Sawetara taun kepungkur, Docker teka ing adegan kasebut, lan karo containerization. Yen sampeyan durung nate nggarap, iki katrangan singkat sing ditujokake kanggo pangguna pungkasan lan pangembang:
  • Wadhah (disederhanakake) padha karo mesin virtual lawas sing apik, nanging "luwih entheng". Yen sampeyan ora ngerti apa tegese "luwih gampang" ing konteks iki, priksa jawaban iki ing Stackoverflow .
  • Wadhah kasebut njamin portabilitas dhewe. Sing, iku bisa ing ngendi wae. Muni akrab, ora?
A Guide to Java Microservices.  Bagean 2: Panyebaran lan Pengujian - 2Iku lucu sing diwenehi portability JVM lan kompatibilitas sakdurunge, fitur iki ora koyone kaya kauntungan. Sampeyan mung bisa ngundhuh JVM.zip ing Raspberry Pi (utawa malah ponsel), extract lan mbukak file .jar. Kahanan kasebut owah-owahan ing basa kaya PHP utawa Python, sing ora cocog karo versi utawa setelan penyebaran luwih rumit. Utawa yen aplikasi Java sampeyan gumantung ing akeh layanan liyane sing diinstal (kanthi nomer versi sing bener): contone, database Postgres, utawa toko nilai kunci Redis. Dadi, kauntungan utama Docker kanggo microservices Java, utawa luwih tepat kanggo aplikasi Java, yaiku: kemampuan kanggo nyiyapake pengujian homogen utawa lingkungan integrasi nggunakake alat kaya Testcontainers . Pangembangan Komplek luwih gampang kanggo nginstal. Njupuk piranti lunak forum Wacana . Sampeyan bisa nginstal nganggo gambar Docker siji, lan gambar kasebut ngemot kabeh sing dibutuhake, saka piranti lunak Wacana sing ditulis ing Ruby, menyang database Postgres, menyang Redis, menyang sink pawon. Yen panyebaran sampeyan padha utawa sampeyan pengin mbukak database Oracle cilik sing apik, coba Docker. Dadi kanggo ngringkes, tinimbang mung ndeleng file .jar, sampeyan saiki:
  • bundle file jar menyang gambar Docker
  • push gambar iki menyang pendaptaran Docker pribadi
  • narik lan mbukak gambar iki ing platform target
  • utawa nyalin gambar Docker langsung menyang sistem produksi lan mbukak.

Cara Nggunakake Docker Swarm utawa Kubernetes kanggo Nyebarake Java Microservices

Contone, sampeyan arep nyoba Docker. Saben-saben sampeyan masang microservice Java, sampeyan nggawe gambar Docker sing mbendel file .jar Panjenengan. Ayo dadi ngomong sampeyan duwe sawetara microservices Jawa iki, lan sampeyan pengin masang layanan iki ing sawetara mesin (ing kluster). Pitakonan muncul: carane ngatur klompok iki? Mbukak kontaner Docker, mriksa kinerja, nyebarke nganyari, skala sistem (brrr)? Rong jawaban kanggo pitakonan iki yaiku Docker Swarm lan Kubernetes. Ndhaptar rinci babagan opsi loro kasebut bakal nggawe tutorial sing wis suwe iki, nanging kita mikir manawa penting kanggo nyebutake manawa opsi loro kasebut pungkasane gumantung marang sampeyan nulis file YAML (ndeleng crita indentasi Yaml ) kanggo ngatur kluster sampeyan. Yen sampeyan pengin ngerti perasaan apa sing ditimbulake ing praktik, ketik pitakon sing padha menyang telusuran Twitter. Dadi proses panyebaran kanggo microservices Java saiki katon kaya iki:
  • Konfigurasi lan ngatur Docker Swarm / Kubernetes
  • Kabeh langkah kanggo Docker (ndeleng ndhuwur)
  • Tulis lan jalanake YAML nganti mripatmu berdarah nganti kabeh bisa digunakake.

Carane Nguji Java Microservices

Contone, sampeyan mutusake kanggo ngetrapake layanan mikro ing produksi. Kepiye carane bisa nyoba integrasi n-microservices sajrone pembangunan saiki? Kepiye sampeyan bisa ndeleng manawa kabeh alur kerja bisa digunakake, lan ora mung bagean? Ing laku, sampeyan bisa nggunakake salah siji saka telung cara:
  1. Kanthi karya sethitik (yen sampeyan nggunakake frameworks kaya Spring Boot), sampeyan bisa gabungke kabeh microservices menyang siji kelas nguripake lan mbukak kabeh microservices nggunakake siji kelas Wrapper.java - gumantung apa sampeyan duwe memori cukup ing mesin kanggo mbukak kabeh microservices sampeyan.
  2. Sampeyan bisa nyalin setelan Docker Swarm utawa Kubernetes sacara lokal.
  3. Cukup aja nglakokake tes integrasi sacara lokal maneh. Nanging, pasang lingkungan DEV / TEST khusus. Iki minangka sawetara tim sing bener-bener nindakake nalika nandhang lara saka persiyapan microservice lokal.
Kajaba iku, saliyane microservices Java, sampeyan uga mbutuhake makelar pesen sing mlaku (kayata ActiveMQ utawa RabbitMQ) utawa bisa uga server email utawa komponen olahpesen liyane sing kudu dikomunikasikake karo microservices Java. Iki nyebabake underestimasi kerumitan sing signifikan ing sisih DevOps. Deleng ing Microservice Testing Libraries, dheweke bisa nyuda rasa lara iki. Ing kasus apa wae, kerumitan iki nggawa kita menyang masalah umum layanan mikro, sing bakal kita bahas saiki. Ing bagean pungkasan , kita bakal nutupi pitakonan umum babagan microservices Java.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION