: TECHPOD: Microservices War Reports: Tales from real-life Microservices projects
Tales from a real-life microservices experience tell war stories about big data, cloud, migration, and stuff. This is how projects are. Everything matters. Here are some of the stations: AWS, ELB, HTTP, Ruby, Java, Linux, lsof
, netstat
, POSIX, S3, TCP/IP, ulimit
, Golang, Azure, Azure DevOps.
Speaker
This talk will be given by Christian Hujer. Christian is a non-dogmatic evangelist of good practices like XP, Clean Code, DevOps, TDD, and BDD. He's a seasoned developer with ~35 years of polyglot experience including Assembler, C, Golang, Java, JavaScript, and Perl. He has worked as developer, systems architect, and trainer, and regularly speaks at meetups and conferences. His experience ranges from microcontrollers (RFID and Smart Cards) to the cloud. He moved from Munich to Pune in India in 2012. In 2015, he founded Nelkinda Software Craft with the mantra Better World through Better Software. With his team, he teaches developers how to write better software through training, coaching, and project participation. The last four years, microservices and big data projects made up a large chunk of his work.
Tale 1: Carving out a Java Microservice from a Ruby Monolith
A Ruby Monolith was causing large AWS bills, so the organization decided to do something about this. It turns out that there are obstacles when carving out Java microservices from a Ruby monolith, and not all of them are technical.
Tale 2: Analyzing and Solving a 504 Gateway Timeout Problem on AWS
A change in the way users used the system resulted in downtime of services caused by 504 Gateway Timeout
on the ELBs.
- What does that mean?
- What is causing it?
- And how to fix it?
This touches all layers of a project from DevOps and infrastructure via understanding HTTP and TCP/IP networking and POSIX operating systems to proper resource handling in source code (in this case, Java).
- The problem: 504 Gateway Timeouts
- The analysis: From structure to tools how we found the culprit with system knowledge and systematic search
- The solution — once more: Clean Code!
Tale 3: Migrating 190M records from DynamoDB and S3 to MongoDB
In one of our projects, we had to migrate 190M records from DynamoDB and S3 to MongoDB. In a live system.
This is the story of how we achieved that: how we did that, what went wrong along the way, and what we did about those things. This is about both, the migration script as well as the service reprogramming.
- Planning
- Testing
- Pitfalls
- Firefighting
Tale 4: An Odyssey in Go on the ocean of Azure
Go is said to be the new number one goto language for new microservices. And Azure the number one cloud. Or is it? This is a journey through what works and what doesn't.