Conference:March 6-8, 2017
Workshops:March 9-10, 2017
Presentation: From Microliths To Microsystems
Location:
- Fleming, 3rd flr.
Duration
Day of week:
- Monday
Level:
- Intermediate
Persona:
- Architect
Key Takeaways
- Cut through the noise and learn the considerations, tradeoffs, and risks of adopting a Microservice based architecture
- Hear battle-tested first principles required for Microservices, including how to achieve asynchronous, autonomous, and isolated behavior.
- Understand how to leverage the Reactive principles and event-driven coordination (and persistence) using events-first Domain Driven Design.
Abstract
Everyone is talking about microservices, and there is more confusion than ever about what the promise of microservices really means and how to deliver on it. To address this we will explore microservices from first principles, distilling their essence and putting them in their true context: distributed systems.
What many people forget is that microservices are distributed and collaborative by nature and only make sense as systems—one collaborator is no collaborator. It is in between the microservices that the most interesting and rewarding, and also challenging, problems arise—enter the world of distributed systems.
Distributed systems are by definition complex, and we system developers have been spoiled by centralized servers for too long to easily understand what this really means. Slicing an existing system into various REST services and wiring them back together again with synchronous protocols and traditional enterprise tools—designed for monolithic architectures—will set us up for failure.
As if that wasn’t enough, we can’t just think about systems of microservices. In order to make each microservice resilient and elastic in and of itself, we have to design each individual microservice as a distributed system—a «microsystem»—architected from the ground up using the reactive principles.
Interview
You will get Microdisservices when you approach microservices in a too simplistic way. When you do not go all in building systems with Microservices, bringing over too much preconceptions, patterns, tools and ways of thinking, learned from years building monoliths. It’s a good way to shoot yourself in the foot and get all the drawbacks from Microservices without any of the benefits. Microservices is ultimately about trade-offs, and requires very much a new way of thinking and approaching the problem. The biggest difference is that you are entering the world of distributed systems, which is a very different world compared to the monolith.
First, Microservices are not a silver bullet. The benefits and drawbacks are extremely contextual. When you start, you need to sit down and look at what kind of application you're building. You need to ask yourself things like: how big are your teams, will it pay off to split up into different teams, does it make sense to ship services independently, etc. Those types of things need to be answered before making the decision to move into a Microservice-based architecture.
The target Audience is senior engineers and architects.
I want engineers to leave with an understanding of what it takes to be successful with Microservices (from an architecture and design perspective). I want them to leave knowing how to build “systems” of Microservices that can take full advantage of the Cloud, and how to build “systems” that are inherently elastic and resilient. Finally, I want engineers who attend to learn how to leverage the Reactive principles, Event-driven coordination (and persistence) using Events-first Domain Driven Design.
Similar Talks
Tracks
-
Architecting for Failure
Building fault tolerate systems that are truly resilient
-
Architectures You've Always Wondered about
QCon classic track. You know the names. Hear their lessons and challenges.
-
Modern Distributed Architectures
Migrating, deploying, and realizing modern cloud architecture.
-
Fast & Furious: Ad Serving, Finance, & Performance
Learn some of the tips and technicals of high speed, low latency systems in Ad Serving and Finance
-
Java - Performance, Patterns and Predictions
Skills embracing the evolution of Java (multi-core, cloud, modularity) and reenforcing core platform fundamentals (performance, concurrency, ubiquity).
-
Performance Mythbusting
Performance myths that need busting and the tools & techniques to get there
-
Dark Code: The Legacy/Tech Debt Dilemma
How do you evolve your code and modernize your architecture when you're stuck with part legacy code and technical debt? Lessons from the trenches.
-
Modern Learning Systems
Real world use of the latest machine learning technologies in production environments
-
Practical Cryptography & Blockchains: Beyond the Hype
Looking past the hype of blockchain technologies, alternate title: Weaselfree Cryptography & Blockchain
-
Applied JavaScript - Atomic Applications and APIs
Angular, React, Electron, Node: The hottest trends and techniques in the JavaScript space
-
Containers - State Of The Art
What is the state of the art, what's next, & other interesting questions on containers.
-
Observability Done Right: Automating Insight & Software Telemetry
Tools, practices, and methods to know what your system is doing
-
Data Engineering : Where the Rubber meets the Road in Data Science
Science does not imply engineering. Engineering tools and techniques for Data Scientists
-
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
-
Workhorse Languages, Not Called Java
Workhorse languages not called Java.
-
Security: Lessons Learned From Being Pwned
How Attackers Think. Penetration testing techniques, exploits, toolsets, and skills of software hackers
-
Engineering Culture @{{cool_company}}
Culture, Organization Structure, Modern Agile War Stories
-
Softskills: Essential Skills for Developers
Skills for the developer in the workplace