Splitting an application up into multiple independent services can be a good way to keep it scaling and ensure stability and developer productivity in larger, growing teams. But just splitting the codebase, creating APIs and deploying the code on some servers is not enough, somehow your services need to know where and how other services are accessible. Classical approaches like hardcoding everything in every service or having a central load-balancer can quickly lead to problems in terms of scalability and maintainability. In this talk I'll show how we at ResearchGate tackled this challenge. With the help of tools like Consul, linkerd and Kubernetes we created a setup that allows us to quickly boot and shutdown services. This ensures that all servers are utilized optimally and load spikes can be reacted upon quickly and automatically.
by Alex Soto
One of the most important benefits of automated testing is to ensure a fast and safe code refactoring to evolve our system architecture. The main problem is how to write tests that are easy to write, easy to follow and not time consuming during development nor execution time. In this session, we are going to explore some powerful Java testing libraries that will help you write better (unit) tests focusing on the main Unicorns architecture challenges such as validating microservices endpoints, remote calls to other microservices or just asynchronous/reactive code.
In these days of web scale and microservices, gracefully handling faulty or crashing backend web services becomes increasingly important. As long as your application uses just a handful of such backends, there’s no problem. But what if you have hundreds of them? How will you prevent your application from the negative effects of inevitable incidental crashes or timeouts when contacting other web services? In this talk, we’ll take a real-world example from a web scale system. This system is targeted at 10 million users and has around 400 heterogeneous backends. Akka and Scala power a system that is capable of running smoothly even when some backends might not be so stable.
by Maria Gomez
Think of this talk as a Microservices 201. You know the basic of microservices and their pros and cons, but can you successfully maintain them in production? Microservices can make your code cleaner and more decoupled but they can be a pain to maintain in production: services writing logs in different places, requests that need to be tracked through multiple endpoints, circuit breakers going off… In this talk I review these and other operational concerns and I explain how making your microservices “observable” helps you maintain a healthy production environment without driving you crazy.
Java 8 has been there for a while but still not everybody is using it. It brought us some 'life changing' new code constructions. Now it is time to look back and evaluate wat java 8 brought us in practice. With great syntax possibilities you can still write utterly ugly code.What is a good way to use Java 8 syntax? How functional is Java 8 really and is Optional the life saver some people promised it to be?
With the number of microservices in our software landscape growing, we'd better make sure they are tested well! In this talk we'll explore REST-assured, a 100% java REST testing framework using its own Java DSL to write concise, human readable automated tests for your REST interfaces. In a live coding demo, we'll write some REST-assured tests against an existing microservice, and we'll look at how this compares to alternatives like Cucumber. Furthermore, we'll look at integration in existing frameworks like the Spring test framework.
19th–21st June 2017