My session notes from first day of the Confess 2015 conference…

Keynote: One VM to Rule Them All

by Thomas Wuerthinger of Oracle

Thomas talks about an ongoing research project at Oracle: It aims that dynamic languages at the VM should be as fast as static typed languages (in orders of magnitude). Links:

Introducing Spring Cloud

by Agim Emruli of Mimacom

Spring Cloud is a “Toolbox for distributes applications”. You might want to use it if you have…

  • multiple deployments per day
  • a microservice architecture
  • a distributed system

Some components:

  • Spring Cloud Config to publish your (SCM-managed) configuration (reconfigure the running application by “git push”)
  • Spring Cloud Netflix - integration of (some) Netflix OSS projects, like
    • Hystrix (circuit breaker)
    • Eureka (service discovery)
    • Ribbon (client-side load balancing)
    • Zool (“reverse proxy” for using the service registry by direct browser access)
  • Support for AWS, CloudFoundry,…

github.com/spring-cloud-samples

From Zero To Hero with Spring Boot

by Stéphane Nicoll of Pivotal

A coding session that shows how to get started with Spring Boot.

Modern Enterprise Java Architectures with Spring 4.1

by Jürgen Höller of Pivotal

Status quo (overview) of the Spring component model (updated version of a talk that Jürgen gave some time ago at the eJUG in Linz)

ELK - BigData for DevOps

by Maarten Mulders of ING

A (mostly theoretical) introduction to Logstash, ElasticSearch, and Kibana (case study from ING bank).

The Walking Dead - A survival guide to resilient applications

by Michael Nitschinger of Couchbase

Design considerations for resilient applications:

  • finding the right “Units of mitigation” (units that handle/recover from errors by themselves)
  • Escalation (if a “unit of mitigation” cannot handle an error by itself, propagate the error to the calling component)
  • different types of redundancy
  • always use timeouts! (always! on every system border!)
  • use “intelligent” retries (number of retries, time between them)
  • Fail fast

Patterns:

  • Fault observer (instead of just passive logging)
  • Leaky bucket counter (instead of treating every error as failure)
  • Bounded queues, ring buffers (to prevent from long waiting)
  • Circuit breaker (see points below), e.g. Hystrix

Monitoring:

  • Turbine (Netflix)

Empowering EE-6 and 7 with Apache DeltaSpike

by Mark Struberg

Nice introduction to CDI and CDI-extensions. CDI may also be used in JavaSE (i.e. outside an application server), and DeltaSpike provides a nice set of extensions, similar to some SPring features:

  • Core
  • Configuration: configure WARs, EARs for different environments without modifying them
  • CdiCtrl to start and stop CDI containers, e.g. for unit tests
  • CdiTestRunner
  • JPA: implementation of @Transactional, similar to EJBs. Differences to EJB:
    • rollback on every exception (not just on runtime exceptions)
    • rollback a transaction only at the outermost level (instead of killing the current transaction if a nested transactional call has thrown an exception)
  • also: Data, Security, JSF…

Anatomy of Microservice Landscapes

by Michael Plöd

Michael’s talk is about considerations and challenges when planning to introduce a microservice architectural:

SOA has produced big monolithic applications (with less service reuse than expected) Microservices (defined as “small”, “autonomous”, and “collaborative”) are complex and distributed, they are “no free lunch”.

  • Business design, modularization. Do you really need a n-tier layer design?
  • Interface design (synchronous orchestration vs. asynchronous choreography)
  • Deployment: loose coupling! DevOps! A fully automated deployment infrastructure is crucial!
  • Collaboration (best practice: one service per host/container)
  • Resilience (error conditions are complex and will happen more often. Prefer “rolling forward” when dealing with error conditions, use bulkheads, use circuit breakers)
  • Monitoring (consolidate logs, identify unique requests)

Required infrastructure components:

  • Message broker (a lightweight one, e.g. RabbitMQ)
  • Service registry (Eureka, Zookeeper,…)
comments powered by Disqus