Kubernetes is on a steady march towards becoming the world’s commodity platform to run distributed services. It orchestrates applications packaged as Docker containers, which makes it more versatile than platforms bound to a single technology stack. Despite being technologically agnostic, it offers a great deal of control, implementing different distributed patterns.
Akka is the most popular toolkit to distribute JVM applications. Architectures based on the Actor model enable location transparency, asynchronous messaging and the “share nothing” approach, which leads to seamless scalability from day one. Akka’s clustering module ties Nodes together, which in turn run Actors. This is very similar to how Kubernetes gathers Nodes into a cluster and runs Containers on top of it. Akka Cluster however has no control over resource allocation, isolation and provisioning.
We came together as experts in Akka and Kubernetes, and battled it out to see who’s favourite technology is better suited for building modern distributed applications. Is Kubernetes the end of Akka Cluster? Does Akka Cluster offer more to JVM-based applications than Kubernetes does? Or is there reason for friendly coexistence?
In this talk we explore different patterns of using Kubernetes together, or in place of Akka Cluster. We will show pros and cons of each approach to give the audience guidance in navigating the conflicting and overlapping aspects of the two technologies. Patterns include:
Running an Akka Cluster on top of Kubernetes with a fixed set of Nodes.
Integrating Akka Cluster with Kubernetes to provide dynamic resource allocation based on internal Akka Cluster metrics.
Distributing an Akka Actor System purely using Kubernetes.
Microservices on Kubernetes without using Akka
During our research we have built examples of these patterns to underpin and demonstrate our conclusions with working code. This code will be made available publicly on Github.
Adam moved from application development to a consultancy career in cloud native computing. His life currently revolves around building distributed systems using Kubernetes and related Cloud Native technologies. He currently works at Amsterdam-based consultancy Container Solutions.
Tech Lead, Reactive Architect and Scala Developer. Community guy at the root – I’m the organiser of the [Reactive Amsterdam](https://www.meetup.com/Reactive-Amsterdam/) meetup. Long distance bicycle touring and fingerpicking guitar.
Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?
Join the conversation here (requires login)
©2018, O’Reilly UK Ltd • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org