My session notes from second day of the Confess 2015 conference…
Getting to Know the Emerging Enterprise Mobile Platform
by Michael Keith of Oracle
…about Mobile Backend as a Service (MBaaS)
Microservices and Conversion Hunting - How to build software architectures for changeableness
by Bernd Zuther of Codecentric
A case study on how an e-commerce company switched from a monolithic application to microservices to increase the conversion rate (A/B testing). Slideshare
Run Java applications with Docker on the Raspberry Pi and other platforms
by Johan Janssen of InfoSupport
A short introduction to docker and a step-by-step receipt how to get docker running on a Raspberry Pi
- the whole development infrastructure can be docker-ized: target environment (application servers and databases at different stages), Jenkins, Sonar, SCM server…
- use separate containers for each service (Appserver, database,…)
- use separate containers for application and data
- use a (private) docker registry
- keep environment settings (for different stages) separate
Maintain your Maintainability
by Bernhard Keprt of willhaben.at
Desirable properties of a maintainable application:
- isolated components
- resilience
- code changeable without sideeffects
- understandable code
Architectural patterns:
- Bulkhead, circuit breaker (e.g. Hystrix)
- Client-side load balancing (e.g. Ribbon)
- Logic load balancing: separate resources for low-prio components (e.g. batch jobs, statistical services) physically from business-critical components
- Microservices (single components may be replaced more easily)
Hosted code quality services:
Metaprogramming with Groovy
by Iván López Martín of Kaleidos
- Intercepting methods (using GroovyInterceptable)
- Injecting methods and properties (using MetaClass)
- Categories: modifying metaclasses only within a block
- Extension modules: enhance classes by putting a JAR file (with class extensions) onto the classpath
- Mixins (deprecated), Traits
- Method syntesis (“create, cache, execute”)
Real-World RESTful Service Development Problems and Solutions
by Masoud Kalali of Oracle
- Content negotiation
- Resource versioning
- Validation - always include a domain-specific error code in an error response
- Exception handling - never send back stacktraces! Use ExceptionMappers as last line of defense
- Logging - use a correlation ID
- Authentication, access control
- Caching (RestEasy: @Cache, @NoCache)
- Partial updates (PUT/POST/PATCH)
- Long-running jobs