Javantura v2 - Replication with MongoDB - what could go wrong... - Philipp Krenn
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel
-
Upload
hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association -
Category
Technology
-
view
283 -
download
3
Transcript of Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel
![Page 1: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/1.jpg)
![Page 2: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/2.jpg)
KUMULUZEE –
MICROSERVICES WITH JAVA
Tilen Faganel
Sunesis d.o.o.
Mail: [email protected]
Github: @tfaga
Web: https://kumuluz.com
Matjaž B. Jurič
UL FRI
Mail: [email protected]
Web: https://kumuluz.com
![Page 3: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/3.jpg)
Microservice architecture by example
Lets build an online store!
![Page 4: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/4.jpg)
UI UI
Catalogue Catalogue
Cart & payment Cart & payment
Delivery Delivery
Application server
WAR/EAR
DB
Queue
![Page 5: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/5.jpg)
Monolith applications
Well-known
Easier to manage and deploy
Intimidating to developers
Scaling can be difficult
Continuous deployment can be difficult
…
![Page 6: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/6.jpg)
UI UI
Catalogue Catalogue
Cart & payment Cart & payment
Delivery Delivery
NoSQL DB
DB
Queue
![Page 7: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/7.jpg)
UI UI
Catalogue Catalogue
Cart & payment Cart & payment
Delivery Delivery
NoSQL DB
DB
Queue
Catalogue Catalogue Catalogue Catalogue
Cart & payment Cart & payment
![Page 8: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/8.jpg)
Perfect for building new, modern, cloud-native Java applications
![Page 9: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/9.jpg)
Use standard EE APIs
Completely modular
Easy migration of existing
applications
Automates configuration
Pack into independent JAR
![Page 10: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/10.jpg)
Servlet + JAX-RS
+ JPA, CDI,
Bean Validation,
JSON-P
JAR size 1,5 MB 5 MB 15 MB
![Page 11: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/11.jpg)
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-core</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-servlet-jetty</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.kumuluz.ee</groupId>
<artifactId>kumuluzee-jax-rs-jersey</artifactId>
<version>2.0.0</version>
</dependency>
Add the required dependencies
(only the components or implementations,
that we want)
@Path("catalog")
public class SampleREST {
@GET
@Produces({"application/xml", "application/json"})
public Response hello() {
return Response.ok(“Hello from KumuluzEE”);
}
}
Use standard Java EE APIs
@ApplicationPath("rest")
public class RestApplication extends Application {
}
![Page 12: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/12.jpg)
build
$ mvn clean package
run directly
$ java -cp target/classes:target/dependency/* com.kumuluz.ee.EeApplication
or run the created JAR
$ java -jar target/kumuluzee-example-1.0.0-SNAPSHOT.jar
![Page 13: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/13.jpg)
…
Docker
First class support for Docker containers - for every cloud
![Page 14: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/14.jpg)
Demo
![Page 15: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/15.jpg)
Complexity of the system increases
Management of multiple databases
Transaction boundaries are smaller
More coordination is required
Drawbacks
![Page 16: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/16.jpg)
How about existing Java EE applications?
![Page 17: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/17.jpg)
How can we migrate the monoliths into microservices step-by-step?
![Page 18: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/18.jpg)
Package, configure, deploy and scale
![Page 19: Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen Faganel](https://reader035.fdocuments.us/reader035/viewer/2022081505/58d0b6421a28ab1d3a8b587b/html5/thumbnails/19.jpg)
Tilen Faganel
Sunesis d.o.o.
Mail: [email protected]
Github: @tfaga
Web: https://kumuluz.com
Matjaž B. Jurič
UL FRI
Mail:
Web: https://kumuluz.com