What is cloud-native anyway? Some say that to be cloud-native you have to use cloud-only services. Others would say it’s not a cloud-native application unless your team is using agile practices. CNCF says that in order to be cloud-native, an application should be microservices-oriented.
According to Erin Schnabel, senior Technical Staff Member at IBM, one of the biggest characteristics of a cloud-native application is that it can be managed and orchestrated, it’s stateless, and it lives in a box. All of it has a direct implication on how you write your application. It also has its own challenges.
Schnabel pushes back against the notion that monoliths are an evil dinosaur. “We should remember that the big dinosaurs are incredibly capable and they are powering most of the world’s Internet right now,” she said. However, it’s also true these monoliths also cause problems, making it hard to innovate, iterate and experiment. That’s why there has been a microservices revolution.
Schnabel offered a very comprehensive comparison between the Java ecosystem — which included some amazing technologies like Spring Cloud — and compared them with microservices-focused technologies like Istio, Envoy and more.
Schnabel talked about the expectations people have when they come from the monolith world to a microservices world and how both the Java ecosystem and microservices architecture are trying to solve modern problems.
Her talk is extremely impressive, compressing a great deal of incredible information in a 22 minute talk. I would highly recommend watching her entire talk: