Microservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld
|
|
- Sherman Tyrone Booker
- 5 years ago
- Views:
Transcription
1 Microservices Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld
2 Microservices?
3 Levels of Architecture
4
5 Domain architecture
6 Macro (technical) architecture Domain architecture
7 JRuby C# Scala Groovy Java Clojure
8 RDBMS NoSQL K/V RDBMS RDBMS/DWH NoSQL DocDB
9 RDBMS NoSQL K/V RDBMS RDBMS/DWH NoSQL DocDB Micro architecture
10 Challenges
11
12 Challenges
13 Challenges > many services to take care of
14 Challenges > many services to take care of > distributed system
15 Challenges > distributed configuration > service registration & discovery > resilience > fast, automated deployment > metrics
16 Macro- vs. Micro Architecture
17 Frameworks
18 Dropwizard
19 Dropwizard > Glue Code for well known libraries > Java
20 Dropwizard libraries
21 > Jetty Dropwizard libraries
22 Dropwizard libraries > Jetty > Jersey
23 Dropwizard libraries > Jetty > Jersey > Metrics
24 Dropwizard libraries > Jetty > Jersey > Metrics > Jackson > Guava > Logback > Hibernate Validator > Apache Http Client > JDBI > Liquibase > Freemarker & Mustache > Joda
25 Spring Boot and Spring Cloud
26 Spring Boot
27 Spring Boot > convention over configuration approach
28 Spring Boot > convention over configuration approach > Java, Groovy or Scala
29 Spring Boot > convention over configuration approach > Java, Groovy or Scala > self-contained jar or war
30 Spring Boot > convention over configuration approach > Java, Groovy or Scala > self-contained jar or war > tackles dependency-hell via pre-packaging
31 Spring Cloud
32 Spring Cloud > umbrella project for cloud connectors
33 Spring Cloud > umbrella project for cloud connectors > On top of Spring Boot
34 Spring Cloud > umbrella project for cloud connectors > On top of Spring Boot > config server for distributed configuration
35 Spring Cloud > umbrella project for cloud connectors > On top of Spring Boot > config server for distributed configuration > annotations for service-discovery & resilience
36 Play 2
37 Play 2 > Java or Scala > based on Akka > strong async support
38 Configuration
39 Play - Typesafe Config
40 Play - Typesafe Config > Config Library used by akka, play and other
41 Play - Typesafe Config > Config Library used by akka, play and other > HOCON - JSON Data Model + syntactic sugar
42 Play - Typesafe Config > Config Library used by akka, play and other > HOCON - JSON Data Model + syntactic sugar > override via system property
43 Play - Typesafe Config > Config Library used by akka, play and other > HOCON - JSON Data Model + syntactic sugar > override via system property > rich merge and include possibilities
44 public class OrderApp { public static void main(string[] args) { SpringApplication.run(OrderApp.class, args); } }
45 public class OrderApp { public static void main(string[] args) { SpringApplication.run(OrderApp.class, args); } }
46 public class OrderApp { public static void main(string[] args) { SpringApplication.run(OrderApp.class, args); } } > HTTP resource /autoconfig shows all properties
47 public class OrderApp { public static void main(string[] args) { SpringApplication.run(OrderApp.class, args); } } > HTTP resource /autoconfig shows all properties > overwrite via application.properties or CLI parameter
48 public class OrderApp { public static void main(string[] args) { SpringApplication.run(OrderApp.class, args); } } > HTTP resource /autoconfig shows all properties > overwrite via application.properties or CLI parameter > configuration in git? -> Check spring-cloud configserver
49 Http Client
50 Dropwizard public Product resolveproduct(string url) { Product product = client.resource(url).accept(mediatype.application_json).get(product.class); return product; }
51 Spring Boot public Product resolveproduct(string url) { return resttemplate.getforentity(url, Product.class); }
52 Play WS.url(apiUrl).get.map { response => response.json.as[list[bestseller]] }.recover { case e => List() }
53 Service Discovery
54 Service Discovery Service Registry 1. register service ("myself") & heartbeat 2. discover service instances Service Service Service 3. call service instance Client
55 @EnableDiscoveryClient public class OrdersApp { public static void main(string[] args) { SpringApplication.run(OrdersApp.class, args); } }
56 @EnableDiscoveryClient public class OrdersApp { public static void main(string[] args) { SpringApplication.run(OrdersApp.class, args); } }
57 @EnableDiscoveryClient public class OrdersApp { public static void main(string[] args) { SpringApplication.run(OrdersApp.class, args); } }
58 Service Discovery with Sidecar Service Registry 2. register service ("myself") & heartbeat 4. discover service instances Sidecar Service 5. call service instance Sidecar 3. Client 1. health check
59 Resilience
60 Resilience > isolate Failure > apply graceful degradation > be responsive in case of failure
61 Request closed service
62 Request closed service Request open service
63 Request closed service Request open service Request half- open service
64 > Provides Command-oriented Integration of Services > Introduces Circuit Breaker, Bulkheads and Isolation > Decouples from Service-dependencies > Provides metrics-facility to protect from failures
65 Hystrix & Dropwizard public class CommandInDropwizard extends TenacityCommand<Product> protected Product run() throws Exception { Product product = client.resource(url).accept(mediatype.application_json).get(product.class); return product; } } protected Product getfallback() { return FALLBACK_PRODUCT }
66 Hystrix & Dropwizard public class CommandInDropwizard extends TenacityCommand<Product> protected Product run() throws Exception { Product product = client.resource(url).accept(mediatype.application_json).get(product.class); return product; } } protected Product getfallback() { return FALLBACK_PRODUCT }
67 Hystrix & Dropwizard public class CommandInDropwizard extends TenacityCommand<Product> protected Product run() throws Exception { Product product = client.resource(url).accept(mediatype.application_json).get(product.class); return product; } } protected Product getfallback() { return FALLBACK_PRODUCT }
68 Hystrix & Dropwizard public class CommandInDropwizard extends TenacityCommand<Product> protected Product run() throws Exception { Product product = client.resource(url).accept(mediatype.application_json).get(product.class); return product; } } protected Product getfallback() { return FALLBACK_PRODUCT }
69 Hystrix & Dropwizard ResolveProductCommand command = new ResolveProductCommand(client, url); Product product = command.execute();
70 Spring Cloud = fallbackproduct") private Pair<String, ResponseEntity<Product>> resolveproduct(string producturi) { final RestTemplate resttemplate = new RestTemplate(); return new Pair(productUri, resttemplate.getforentity(producturi, Product.class)); } private Pair<String, ResponseEntity<Product>> fallbackproduct(string producturi) { final Product product = new Product(productUri, null, BigDecimal.ZERO); final ResponseEntity<Product> response = new ResponseEntity<Product>(product, PARTIAL_CONTENT); return new Pair(productUri, response); }
71 Spring Cloud Hystrix auto-wrapped with = fallbackproduct") private Pair<String, ResponseEntity<Product>> resolveproduct(string producturi) { final RestTemplate resttemplate = new RestTemplate(); return new Pair(productUri, resttemplate.getforentity(producturi, Product.class)); } private Pair<String, ResponseEntity<Product>> fallbackproduct(string producturi) { final Product product = new Product(productUri, null, BigDecimal.ZERO); final ResponseEntity<Product> response = new ResponseEntity<Product>(product, PARTIAL_CONTENT); return new Pair(productUri, response); }
72 Spring Cloud = fallbackproduct") private Pair<String, ResponseEntity<Product>> resolveproduct(string producturi) { final RestTemplate resttemplate = new RestTemplate(); return new Pair(productUri, resttemplate.getforentity(producturi, Product.class)); } private Pair<String, ResponseEntity<Product>> fallbackproduct(string producturi) { final Product product = new Product(productUri, null, BigDecimal.ZERO); final ResponseEntity<Product> response = new ResponseEntity<Product>(product, PARTIAL_CONTENT); return new Pair(productUri, response); }
73 Spring Cloud = fallbackproduct") private Pair<String, ResponseEntity<Product>> resolveproduct(string producturi) { final RestTemplate resttemplate = new RestTemplate(); return new Pair(productUri, resttemplate.getforentity(producturi, Product.class)); } private Pair<String, ResponseEntity<Product>> fallbackproduct(string producturi) { final Product product = new Product(productUri, null, BigDecimal.ZERO); final ResponseEntity<Product> response = new ResponseEntity<Product>(product, PARTIAL_CONTENT); return new Pair(productUri, response); }
74 Spring Cloud Hystrix method = fallbackproduct") private Pair<String, ResponseEntity<Product>> resolveproduct(string producturi) { final RestTemplate resttemplate = new RestTemplate(); return new Pair(productUri, resttemplate.getforentity(producturi, Product.class)); } private Pair<String, ResponseEntity<Product>> fallbackproduct(string producturi) { final Product product = new Product(productUri, null, BigDecimal.ZERO); final ResponseEntity<Product> response = new ResponseEntity<Product>(product, PARTIAL_CONTENT); return new Pair(productUri, response); }
75 Play - Circuit Breaker val apiurl = "..." val breaker = CircuitBreaker(Akka.system().scheduler, maxfailures = 5, calltimeout = 2.seconds, resettimeout = 1.minute) def getbestseller : Future[List[Bestseller]] = { breaker.withcircuitbreaker( WS.url(apiUrl).get.map { response => response.json.as[list[bestseller]] }).recover { case e => List() } }
76 Play - Circuit Breaker val apiurl = "..." val breaker = CircuitBreaker(Akka.system().scheduler, maxfailures = 5, calltimeout = 2.seconds, resettimeout = 1.minute) def getbestseller : Future[List[Bestseller]] = { breaker.withcircuitbreaker( WS.url(apiUrl).get.map { response => response.json.as[list[bestseller]] }).recover { case e => List() } }
77 Play - Circuit Breaker val apiurl = "..." val breaker = CircuitBreaker(Akka.system().scheduler, maxfailures = 5, calltimeout = 2.seconds, resettimeout = 1.minute) def getbestseller : Future[List[Bestseller]] = { breaker.withcircuitbreaker( WS.url(apiUrl).get.map { response => response.json.as[list[bestseller]] }).recover { case e => List() } }
78 Play - Circuit Breaker val apiurl = "..." val breaker = CircuitBreaker(Akka.system().scheduler, maxfailures = 5, calltimeout = 2.seconds, resettimeout = 1.minute) def getbestseller : Future[List[Bestseller]] = { breaker.withcircuitbreaker( WS.url(apiUrl).get.map { response => response.json.as[list[bestseller]] }).recover { case e => List() } }
79 Play - Circuit Breaker val apiurl = "..." val breaker = CircuitBreaker(Akka.system().scheduler, maxfailures = 5, calltimeout = 2.seconds, resettimeout = 1.minute) def getbestseller : Future[List[Bestseller]] = { breaker.withcircuitbreaker( WS.url(apiUrl).get.map { response => response.json.as[list[bestseller]] }).recover { case e => List() } }
80 Deployment
81 Spring Boot - Packaging./gradlew build./gradlew distzip
82 Spring Boot - Packaging executable JAR./gradlew build./gradlew distzip
83 Spring Boot - Packaging executable JAR./gradlew build./gradlew distzip ZIP + shell-script
84 Play - Packaging sbt dist sbt debian:packagebin sbt rpm:packagebin
85 Metrics
86 Dropwizard > Metrics Integrated with Dropwizard on Resources > HTTP Client is already instrumented > JVM Data
87 "org.apache.http.client.httpclient.cart.get-requests": { "count": 11, "max": , "mean": , "min": , "p50": , "p75": , "p95": , "p98": , "p99": , "p999": , "stddev": , "m15_rate": 0, "m1_rate": 0, "m5_rate": 0, "mean_rate": , "duration_units": "seconds", "rate_units": "calls/second" } "cart.resources.shoppingcartresource.shoppingcart": { "count": 22, "max": , "mean": , "min": , "p50": , "p75": , "p95": , "p98": , "p99": , "p999": , "stddev": , "m15_rate": , "m1_rate": , "m5_rate": , "mean_rate": , "duration_units": "seconds", "rate_units": "calls/second" }
88 Dropwizard Metrics > Exposed over HTTP (as Json) > Exposed as jmx > Others available: stdout, csv, slf4j, ganglia, graphite
89 Spring Boot Metrics > Prepackaged Spring Boot starter module > enables HTTP resources for metrics > configurable via application.properties
90 Spring Boot Metrics Using a counter metric in your Java code counterservice.increment("checkouts.withproducts." + producturis.size()); will display it in the /metrics JSON GET /metrics HTTP/1.1 { } "counter.checkouts.withproducts.3": 4,...
91 Summary
92 Summary Modularize into independent, self-contained systems
93 Summary Modularize into independent, self-contained systems Separate micro and macro architectures
94 Summary Modularize into independent, self-contained systems Separate micro and macro architectures Strike a balance between control and decentralization
95 Summary Modularize into independent, self-contained systems Separate micro and macro architectures Strike a balance between control and decentralization MicroServices aren t micro!
96 Summary Modularize into independent, self-contained systems Separate micro and macro architectures Strike a balance between control and decentralization MicroServices aren t micro! frameworks can t solve all your problems
97 Thank you! Questions? Comments? Martin Alexander innoq Deutschland GmbH innoq Schweiz GmbH Krischerstr. 100 Ohlauer Straße 43 Robert-Bosch-Straße 7 Radlkoferstraße 2 Gewerbestr Monheim am Rhein Berlin Darmstadt D München CH-6330 Cham Germany Phone: Germany Phone: Germany Phone: Germany Telefon +49 (0) Switzerland Phone:
Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff
Microservices mit Java, Spring Boot & Spring Cloud Eberhard Wolff Fellow @ewolff What are Microservices? Micro Service: Definition > Small > Independent deployment units > i.e. processes or VMs > Any technology
More informationMicroservices Implementations not only with Java. Eberhard Wolff Fellow
Microservices Implementations not only with Java Eberhard Wolff http://ewolff.com @ewolff Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/ http://microservices-book.com/
More informationFour times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow
Four times Microservices: REST, Kubernetes, UI Integration, Async Eberhard Wolff @ewolff http://ewolff.com Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/
More informationSPRING CLOUD AGIM EMRULI - MIMACOM
SPRING CLOUD AGIM EMRULI - MIMACOM AGIM EMRULI @AEMRULI AEMRULI AGIM.EMRULI@ MIMACOM.COM XD BOOT GRAILS CLOUD IO EXECUTION STREAMS, TAPS, JOBS FULL STACK, WEB SERVICE REGISTRY, CIRCUIT BREAKER, METRICS
More informationOne size does not fit all
One size does not fit all Stefan Tilkov @stilkov GOTO London 2016 Building blocks lambdas components functions containers VMs services units dynamic libraries objects libraries images classes procedures
More informationJava9 - Features abseits von Jigsaw und JShell. BED-Con September 2017
Java9 - Features abseits von Jigsaw und JShell BED-Con 2017 22. September 2017 Michael Vitz Senior Consultant @ innoq michael.vitz@innoq.com @michaelvitz Zeitplan Features JEP 102 Process API Updates
More informationWhat is Spring Cloud
What is Spring Cloud 1 What is Spring Cloud Service Discovery (Eureka) API Gateway (Zuul) Config Server (Spring Config) Circuit Breaker (Hystrix, Turbine) Client Side Load-balancing (Ribbon) Distributed
More informationREST: I don't Think it Means What You Think it Does. Stefan
REST: I don't Think it Means What You Think it Does Stefan Tilkov @stilkov REST: An architectural style defined by the constraints Client-Server, Stateless Communication, Caching, Uniform Interface, Layered
More informationHands-On: Hystrix. Best practices & pitfalls
Hands-On: Hystrix Best practices & pitfalls Hystrix...What? built, heavily tested & used in production by Net ix Java library, implementation of resilience patterns Goals: fault tolerant/robust self-healing
More informationRay Tsang Developer Advocate Google Cloud Platform
Ray Tsang Developer Advocate Google Cloud Platform @saturnism +RayTsang Ray Tsang Developer Architect Traveler Photographer flickr.com/saturnism Writing a Kubernetes Autoscaler Kubernetes API - In Depth
More informationSpring Cloud, Spring Boot and Netflix OSS
Spring Cloud, Spring Boot and Netflix OSS Spencer Gibb twitter: @spencerbgibb email: sgibb@pivotal.io Dave Syer twitter: @david_syer email: dsyer@pivotal.io (Spring Boot and Netflix OSS or Spring Cloud
More informationRoad to Auto Scaling
Road to Auto Scaling Varun Thacker Lucidworks Apache Lucene/Solr Committer, and PMC member Agenda APIs Metrics Recipes Auto-Scale Triggers SolrCloud Overview ZooKee per Lots Shard 1 Leader Shard 3 Replica
More informationEAI War Stories. ! Alexander Martin Praxisbeispiele zu EAI-Pattern und Lessons Learned
EAI War Stories Praxisbeispiele zu EAI-Pattern und Lessons Learned! Alexander Heusingfeld, @goldstift Martin Huber, @waterback We take care of it - personally! EAI Pattern in 2013? Nobody uses them anymore!
More informationService Mesh with Istio on Kubernetes. Dmitry Burlea Software FlixCharter
Service Mesh with Istio on Kubernetes Dmitry Burlea Software Developer @ FlixCharter Road to Microservices Monolith (all-in-one) Road to Microservices Images from http://amazon.com/ Road to Microservices
More informationMicroservices To-Go mit Dropwizard
Microservices To-Go mit Dropwizard Mario Goller Software Engineer, Swisscom AG mario.goller@swisscom.com Java Forum Stuttgart 2017 Excursion: Architecture Comparison Monolith: multiple modules in the same
More informationAnti-fragile Cloud Architectures. Agim Emruli - mimacom
Anti-fragile Cloud Architectures Agim Emruli - @aemruli - mimacom Antifragility is beyond resilience or robustness. The resilient resists shocks and stays the same; the antifragile gets better. Nasim Nicholas
More informationMicroprofile Fault Tolerance. Emily Jiang 1.0,
Microprofile Fault Tolerance Emily Jiang 1.0, 2017-09-13 Table of Contents 1. Architecture.............................................................................. 2 1.1. Rational..............................................................................
More informationCloud Service Engine. Product Description. Issue 01 Date
Issue 01 Date 2018-04-09 Contents Contents 1 Overview... 1 2 Functions... 2 3 Advantages...3 4 Application Scenarios...6 5 Terms...7... 12 6.1 LocalServiceCenter... 12 6.2 Java SDK... 13 6.3 Go SDK...
More informationOps for Developers Monitor your Java application with Prometheus
.consulting.solutions.partnership Ops for Developers Monitor your Java application with Prometheus Alexander Schwartz, Principal IT Consultant CloudNativeCon + KubeCon Europe 2017 30 March 2017 Ops for
More informationResilience, Service- Discovery and Z- D Deployment. Bodo Junglas, York Xylander
Resilience, Service- Discovery and Z- D Deployment Bodo Junglas, York Xylander Who is leanovate? 2 100 25 people, HQ in Kreuzberg Mission: Build learning organizaions What do we do? 3 100 Dev Meth Doing
More informationGAVIN KING RED HAT CEYLON SWARM
GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual
More informationTo Microservices and Beyond!
To Microservices and Beyond! YOW! Conference 2014 Matt Stine (@mstine) - Senior Product Manager, Spring for Pivotal CF Simon Elisha (@simon_elisha) - CTO & Senior Manager, Field Engineering 1 M!CR0S3RV!C3$!!!!!
More informationCloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.
Cloud Native Architecture 300 Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture Why What How Cloud Native Architecture Why What How Cloud Computing New Demands Being Reactive Cloud
More informationMicroservices stress-free and without increased heart-attack risk
Microservices stress-free and without increased heart-attack risk Uwe Friedrichsen (codecentric AG) microxchg Berlin, 12. February 2015 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried
More informationCADEC 2016 MICROSERVICES AND DOCKER CONTAINERS MAGNUS LARSSON
CADEC 2016 MICROSERVICES AND DOCKER CONTAINERS MAGNUS LARSSON 2016-01-27 CALLISTAENTERPRISE.SE AGENDA Microservices in reality - Managing a system landscape with many microservices - Very little high level
More informationFlexible EAI-Lösungen mit Glassfish
Flexible EAI-Lösungen mit Glassfish Praxisbeispiele und War Stories zu EAI-Pattern Alexander Heusingfeld, @goldstift Martin Huber, @waterback We take care of it - personally! EAI Pattern in 2013? EAI
More informationSimple REST-APIs with Dropwizard and Swagger. Bernd Schönbach LeanIX GmbH
Simple REST-APIs with Dropwizard and Swagger Bernd Schönbach LeanIX GmbH Motivation Quickly create REST-APIs Make it testable Deploy with a click Or even better automatically Provide Documentation without
More informationExercise for OAuth2 security. Andreas Falk
Exercise for OAuth2 security Andreas Falk Table of Contents 1. What we will build....................................................................... 1 2. Step 1....................................................................................
More informationEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java Microservices Emily Jiang twitter @emilyfhjiang 10 th October 2017 What is Eclipse MicroProfile? Eclipse MicroProfile is an open-source community
More informationSAMPLE CHAPTER. John Carnell MANNING
SAMPLE CHAPTER John Carnell MANNING Spring Microservices in Action by John Carnell Sample Chapter 6 Copyright 2017 Manning Publications brief contents 1 Welcome to the cloud, Spring 1 2 Building microservices
More informationCloud Native Java with Kubernetes
Cloud Native Java with Kubernetes @burrsutter burr@redhat.com developers.redhat.com We cannot solve our problems with the same thinking we used when we created them. Albert Einstein (Theoretical Physicist)
More informationRed Hat OpenShift Application Runtimes 1
Red Hat OpenShift Application Runtimes 1 Red Hat OpenShift Application Runtimes Release Notes For use with Red Hat OpenShift Application Runtimes Last Updated: 2018-01-10 Red Hat OpenShift Application
More informationClojure for OOP folks Stefan innoq
Clojure for OOP folks Stefan Tilkov @stilkov innoq 1 Motivation 2 Syntax Idioms 3 OOP Thinking model domains with classes & interfaces encapsulate data in objects prefer specific over generic solutions
More informationMODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift
MODERN APPLICATION ARCHITECTURE DEMO Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift COOLSTORE APPLICATION COOLSTORE APPLICATION Online shop for selling products Web-based polyglot
More information@unterstein #bedcon. Operating microservices with Apache Mesos and DC/OS
@unterstein @dcos @bedcon #bedcon Operating microservices with Apache Mesos and DC/OS 1 Johannes Unterstein Software Engineer @Mesosphere @unterstein @unterstein.mesosphere 2017 Mesosphere, Inc. All Rights
More informationBuilding Microservices with Kotlin. Haim Yadid
Building Microservices with Kotlin Haim Yadid Disclaimer The purpose of this talk is to share our experience and with Kotlin not to teach the language syntax. I will delve into some details for for the
More informationAdvanced Clojure Microservices. Tobias Bayer Hamburg,
Advanced Clojure Microservices Tobias Bayer Hamburg, 30.09.2016 Tobias Bayer Senior Developer / Software Architect inovex GmbH Clojure, Java, Cloud tobias.bayer@inovex.de https://github.com/tobiasbayer
More informationBlockchain (a.k.a. the slowest, most fascinating database you ll ever see)
Blockchain (a.k.a. the slowest, most fascinating database you ll ever see) GOTO Amsterdam 13 June, 2017 Stefan Tilkov, @stilkov I don t know Blockchain and so can you 1. Bitcoin > Practical application
More informationApplication Resilience Engineering and Operations at Netflix. Ben Software Engineer on API Platform at Netflix
Application Resilience Engineering and Operations at Netflix Ben Christensen @benjchristensen Software Engineer on API Platform at Netflix Global deployment spread across data centers in multiple AWS regions.
More informationGoing Reactive. Reactive Microservices based on Vert.x. JavaLand Kristian Kottke
Going Reactive Reactive Microservices based on Vert.x JavaLand Kristian Kottke Whoami Kristian Kottke Lead Software Engineer -> iteratec Interests Software Architecture Big Data Technologies Kristian.Kottke@iteratec.de
More informationCHALLENGES IN A MICROSERVICES AGE: MONITORING, LOGGING AND TRACING ON OPENSHIFT. Martin Etmajer Technology May 4, 2017
CHALLENGES IN A MICROSERVICES AGE: MONITORING, LOGGING AND TRACING ON OPENSHIFT Martin Etmajer Technology Lead @Dynatrace May 4, 2017 WHY A CHALLENGE? Microservice A Microservice B Microservice C Microservice
More informationWhy real integration developers ride Camels
Why real integration developers ride Camels Christian Posta Principal Middleware Specialist/Architect Blog: http://blog.christianposta.com Twitter: @christianposta Email: christian@redhat.com Committer
More informationA Comparision of Service Mesh Options
A Comparision of Service Mesh Options Looking at Istio, Linkerd, Consul-connect Syed Ahmed - CloudOps Inc Introduction About Me Cloud Software Architect @ CloudOps PMC for Apache CloudStack Worked on network
More informationIntroduction to reactive programming. Jonas Chapuis, Ph.D.
Introduction to reactive programming Jonas Chapuis, Ph.D. Reactive programming is an asynchronous programming paradigm oriented around data flows and the propagation of change wikipedia Things happening
More informationFault Tolerance in Microservices
Masaryk University Faculty of Informatics Fault Tolerance in Microservices Master s Thesis Bc. Tomáš Livora Brno, Fall 2016 Declaration Hereby I declare that this paper is my original authorial work,
More informationMSB to Support for Carrier Grade ONAP Microservice Architecture. Huabing Zhao, PTL of MSB Project, ZTE
MSB to Support for Carrier Grade ONAP Microservice Architecture Huabing Zhao, PTL of MSB Project, ZTE ONAP Architecture Principle: Microservices ONAP Architecture Principle: ONAP modules should be designed
More informationThe Fallacies of Distributed Computing: What if the Network Fails?
The Fallacies of Distributed Computing: What if the Network Fails? Bert Ertman and Willem Dekker Those who stand for nothing, fall for anything - Alexander Hamilton About us Bert Ertman Fellow Willem Dekker
More informationA T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S
VERT.X A T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S CLEMENT ESCOFFIER Vert.x Core Developer, Red Hat V E R T. X I S A T O O L K I T T O B U I L D D I S T R I B U T
More informationHuge Codebases Application Monitoring with Hystrix
Huge Codebases Application Monitoring with Hystrix 30 Jan. 2016 Roman Mohr Red Hat FOSDEM 2016 1 About Me Roman Mohr Software Engineer at Red Hat Member of the SLA team in ovirt Mail: rmohr@redhat.com
More informationUsing the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver
Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data
More informationCreating RESTful web services with Spring Boot
Creating RESTful web services with Spring Boot The Spring framework Free and open source Inversion of Control Container (IoC) Modules DI / AOP Data /Security Web MVC/ REST So much more +++ What is Spring
More informationMigrating to Java 9 Modules. Paul Bakker
Migrating to Java 9 Modules Paul Bakker Why care about modules? lib/nebula-4.0.12.jar:lib/netflix-gradle-lint-8.6.1.jar:lib/gretty-2.0.0.jar:lib/gradle-infamous-plugin-1.28.jar:lib/java-semver-0.9.0.jar:lib/guava-20.0.jar:lib/
More informationGroovy and Grails in Google App Engine
Groovy and Grails in Google App Engine Benefit from a Java-like dynamic language to be more productive on App Engine Guillaume Laforge Head of Groovy Development Guillaume Laforge Groovy Project Manager
More informationDON'T BLOCK YOUR MOBILES AND INTERNET OF THINGS
DON'T BLOCK YOUR MOBILES AND INTERNET OF THINGS Use non blocking I/O for scalable and resilient server applications MAGNUS LARSSON, PÄR WENÅKER, ANDERS ASPLUND 2014-10-23 CALLISTAENTERPRISE.SE AGENDA The
More informationDropwizard. A RESTful Love Story. Ryan Kennedy Core Yammer
Dropwizard A RESTful Love Story Ryan Kennedy (@rckenned) Core Services @ Yammer Dropwizard A RESTful Love Story Ryan Kennedy (@rckenned) Core Services @ Yammer + MicrosoE What on earth is Dropwizard? Some
More informationPrzyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform. Jarosław Stakuń Senior Solution Architect/Red Hat CEE
Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform Jarosław Stakuń Senior Solution Architect/Red Hat CEE jstakun@redhat.com Monetize innovation http://www.forbes.com/innovative-companies/list/
More informationPhilipp Wille. Beyond Scala s Standard Library
Scala Enthusiasts BS Philipp Wille Beyond Scala s Standard Library OO or Functional Programming? Martin Odersky: Systems should be composed from modules. Modules should be simple parts that can be combined
More informationPatterns of Resilience How to build robust, scalable & responsive systems
Patterns of Resilience How to build robust, scalable & responsive systems Uwe Friedrichsen (codecentric AG) GOTO Night Amsterdam 18. May 2015 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried
More informationKeep Learning with Oracle University
Keep Learning with Oracle University Classroom Training Learning Subscription Live Virtual Class Training On Demand Cloud Technology Applications Industries education.oracle.com 3 Session Surveys Help
More informationStream and Batch Processing in the Cloud with Data Microservices. Marius Bogoevici and Mark Fisher, Pivotal
Stream and Batch Processing in the Cloud with Data Microservices Marius Bogoevici and Mark Fisher, Pivotal Stream and Batch Processing in the Cloud with Data Microservices Use Cases Predictive maintenance
More informationSpring Boot Reference Guide
1.5.4.RELEASE Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze, Michael Simons Copyright 2012-2017 Copies of this document
More informationOpen Java EE and Eclipse MicroProfile - A New Java Landscape for Cloud Native Apps
EclipseCon Europe 2017 Open Java EE and Eclipse MicroProfile - A New Java Landscape for Cloud Native Apps Kevin Sutter MicroProfile and Java EE Architect @kwsutter Emily Jiang MicroProfile Development
More informationReactive Java: Promises and Streams with Reakt. Geoff Chandler and Rick Hightower
Reactive Java: Promises and Streams with Reakt Geoff Chandler and Rick Hightower What is Reakt in 30 seconds! Reakt General purpose library for callback coordination and streams Implements JavaScript
More informationScala Java Sparkle Monday, April 16, 2012
Scala Java Sparkle Scala Scala Java Scala "Which Programming Language would you use *now* on top of JVM, except Java?". The answer was surprisingly fast and very clear: - Scala. http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming
More informationDemystifying Spring Boot Magic. Patrick DevOps Pro Moscow 2018
Demystifying Spring Boot Magic Patrick Baumgartner @patbaumgartner DevOps Pro Moscow 2018 Who am I? Patrick Baumgartner Spring Boot And Magic? Some famous tweets Magic or Boilerplate? Magic Things happen
More informationGetting Started with Kotlin. Commerzbank Java Developer Day
Getting Started with Kotlin Commerzbank Java Developer Day 30.11.2017 Hello! Alexander Hanschke Hello! Alexander Hanschke CTO at techdev Solutions GmbH in Berlin Hello! Alexander Hanschke CTO at techdev
More informationApplication Design and Development: October 30
M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact
More information7 Topics Concerning Languages & Architecture Stefan JUG KA 2011
7 Topics Concerning Languages & Architecture Stefan Tilkov @stilkov JUG KA 2011 1 http://www.innoq.com Stefan Tilkov stefan.tilkov@innoq.com @stilkov 2 http://rest-http.info 3 1. Language Equality 4 Languages
More informationJava Architectures A New Hope. Eberhard Wolff
Java Architectures A New Hope Eberhard Wolff http://ewolff.com What happens with a talk titled like this? Architecture of Enterprise Java Apps How can I implement a new feature??? ! ECommerce System
More informationMICROSERVICES I PRAKTIKEN från tröga monoliter till en arkitektur för kortare ledtider, högre skalbarhet och ökad feltolerans
MICROSERVICES I PRAKTIKEN från tröga monoliter till en arkitektur för kortare ledtider, högre skalbarhet och ökad feltolerans MAGNUS LARSSON 2015.05.21 CALLISTAENTERPRISE.SE 1 AGENDA What s the problem?
More informationOpen-O Command- Line Interface (CLI)
Open-O Command- Line Interface (CLI) One command to command whole open-o Kanagaraj Manickam Huawei License Copyright 2017 Huawei Technologies Co., Ltd. Licensed under the Apache License, Version 2.0 (the
More informationGrails Seminar 11/12/09. Groovy And Grails. An Overview
Grails Seminar 11/12/09 Groovy And Grails An Overview Groovy What Is Groovy? Groovy... Is A Dynamic Language For The Java Virtual Machine (JVM) Takes inspiration from Smalltalk, Python and Ruby (etc...)
More informationLEAN & MEAN - GO MICROSERVICES WITH DOCKER SWARM MODE AND SPRING CLOUD
LEAN & MEAN - GO MICROSERVICES WITH DOCKER SWARM MODE AND SPRING CLOUD ERIK LUPANDER 2017-11-09 CALLISTAENTERPRISE.SE ABOUT ME Erik Lupander, consultant at Callista Enterprise. Primarily a Java dude. Discovered
More informationDeveloper Experience with. Spencer Gibb, Dave Syer, Spring Cloud
Developer Experience with Spencer Gibb, Dave Syer, 2015 Spring Cloud Authors Spencer Gibb, @spencerbgibb, sgibb@pivotal.io Dave Syer, @david_syer, dsyer@pivotal.io Developer Experience Microservices lead
More informationLogging in the age of
Logging in the age of and the Cloud Microservices @axelfontaine POLL: what type of infrastructure are you running on? On Premise Colocation Root Server Cloud The (good) old days of logging ssh me@myserver
More informationRatpacked Notebook. Experience Ratpack with code snippets. Hubert Klein Ikkink. This book is for sale at
Ratpacked Notebook Experience Ratpack with code snippets Hubert Klein Ikkink This book is for sale at http://leanpub.com/ratpacked-notebook This version was published on 2016-11-14 This is a Leanpub book.
More informationHow to write Cynical software
How to write Cynical software Stability patterns and anti-patterns dagi@goodata.com https://twitter.com/_dagi How to become cynical Eat your own dog food Strong feedback Pager duty (Engineer on duty) DevOps
More informationHarnessing the Power of YARN with Apache Twill
Harnessing the Power of YARN with Apache Twill Andreas Neumann andreas[at]continuuity.com @anew68 A Distributed App Reducers part part part shuffle Mappers split split split A Map/Reduce Cluster part
More informationSpring MVC 4.x Spring 5 Web Reactive
Part 1 Spring MVC 4.x Spring 5 Web Reactive Rossen Stoyanchev @rstoya05 Spring MVC 4.3 Reactive programming for Java devs Spring 5 Web Reactive Shortcut Annotations @RequestMapping @GetMapping @PostMapping
More informationAchieving Continuous Delivery - Micro Services. - Vikram Gadang
Achieving Continuous Delivery - Micro Services - Vikram Gadang Agenda Starting point Observations and lessons learned Architecting for CD Build pipeline strategy Testing strategy Deployment strategy State
More informationUpgrading to Spring Boot 2.0
APPENDIX A Upgrading to Spring Boot 2.0 Introduction This book uses the Spring Boot version 1.5.7 for the different microservices that are part of the evolving application. Spring Boot 2.0, which is to
More informationAdvanced Continuous Delivery Strategies for Containerized Applications Using DC/OS
Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS ContainerCon @ Open Source Summit North America 2017 Elizabeth K. Joseph @pleia2 1 Elizabeth K. Joseph, Developer Advocate
More informationReactive Microservices Architecture on AWS
Reactive Microservices Architecture on AWS Sascha Möllering Solutions Architect, @sascha242, Amazon Web Services Germany GmbH Why are we here today? https://secure.flickr.com/photos/mgifford/4525333972
More informationSpoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner
Spoilt for Choice Which Integration Framework to choose? Integration vs. Mule ESB vs. Main Tasks Evaluation of Technologies and Products Requirements Engineering Enterprise Architecture Management Business
More informationSimplifying Asynchronous Code with
Simplifying Asynchronous Code with Scala Async PHILIPP HALLER The Problem Asynchronous code Using an API that requires you to register callbacks? Then you re writing asynchronous code! Problem: callbacks
More informationMODERN IT ARCHITECTURE
MODERN IT ARCHITECTURE 2 ABOUT ME 3 ABOUT ME AGENDA 1. KEY CONCEPTS Microservices, containers, etc. 2. HOLISTIC VIEW Making businesses agile 3. ARCHITECTURE Faster, flatter, and more flexible 4. LAB MATERIALS
More informationCreating Manageable Systems With JMX, Spring, AOP, and Groovy
Creating Manageable Systems With JMX, Spring, AOP, and Groovy Vladimir Vivien Sr. Software Engineer Simplius, LLC http://simpli.us/ TS-1106 2007 JavaOne SM Conference Session TS-1106 Goal Build runtime
More informationDemystifying Spring Boot Magic. # K100 on slido.co. Patrick DevDays Vilnius 2018 Socialiniu mokslu kolegija /
Demystifying Spring Boot Magic # K100 on slido.co Patrick Baumgartner @patbaumgartner DevDays Vilnius 2018 Socialiniu mokslu kolegija / 24.05.2018 Who am I? Patrick Baumgartner Spring Boot And Magic? Some
More informationIndex D, E. mydocuments-aopcontext.xml,
Index A Advance Message Queue Protocol (AMQP), 159, 217 Aspect-oriented programming (AOP), 89, 91 AfterLoggingModule.java, 98 annotations caching.java, 107 108 mydocuments-aop-annotatedcontext.xml, 108
More informationSession 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p
Session 24 Spring Framework Introduction 1 Reading & Reference Reading dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p http://engineering.pivotal.io/post/must-know-spring-boot-annotationscontrollers/
More informationAn Application for Monitoring Solr
An Application for Monitoring Solr Yamin Alam Gauhati University Institute of Science and Technology, Guwahati Assam, India Nabamita Deb Gauhati University Institute of Science and Technology, Guwahati
More informationAn Architecture for Self-Organizing Continuous Delivery Pipelines
An Architecture for Self-Organizing Continuous Delivery Pipelines Master Thesis Final Talk Jan Simon Döring jan.simon.doering@rwth-aachen.de Towards Continuous Delivery 2.0 The next generation Software
More informationTapestry. Code less, deliver more. Rayland Jeans
Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to
More informationFreeMarker in Spring Web. Marin Kalapać
FreeMarker in Spring Web Marin Kalapać Agenda Spring MVC view resolving in general FreeMarker what is it and basics Configure Spring MVC to use Freemarker as view engine instead of jsp Commonly used components
More informationModularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt
Modularity in Java With OSGi Alex Blewitt @alblue Docklands.LJC January 2016 Modularity in Java Modularity is Easy? Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity
More informationContainer 2.0. Container: check! But what about persistent data, big data or fast data?!
@unterstein @joerg_schad @dcos @jaxdevops Container 2.0 Container: check! But what about persistent data, big data or fast data?! 1 Jörg Schad Distributed Systems Engineer @joerg_schad Johannes Unterstein
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationBig Data Applications with Spring XD
Big Data Applications with Spring XD Thomas Darimont, Software Engineer, Pivotal Inc. @thomasdarimont Unless otherwise indicated, these slides are 2013-2015 Pivotal Software, Inc. and licensed under a
More informationSpring Professional v5.0 Exam
Spring Professional v5.0 Exam Spring Core Professional v5.0 Dumps Available Here at: /spring-exam/core-professional-v5.0- dumps.html Enrolling now you will get access to 250 questions in a unique set of
More informationHigh performance reactive applications with Vert.x
High performance reactive applications with Vert.x Tim Fox Red Hat Bio Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved
More information