In Enterprise Development Trends 2016, we surveyed 2151 JVM engineers about enterprise thoughts around microservices, fast data, cloud infrastructure and container technology. Among tons of fascinating data, we uncovered three major findings from the data collected:
This first of three posts looks deeper at why Microservices and Fast Data have become major drivers of enterprise modernization. Read on, or you can download the full report and read it later over a coffee or fizzy beverage:
Microservices-Based Architecture (MSA) is a simple concept: it advocates creating a system from a collection of small, isolated services, each of which owns their data, and is independently isolated, scalable and resilient to failure. Services integrate with other services in order to form a cohesive system that’s far more flexible than legacy monolithic applications.
Ten years ago, service-oriented architecture (SOA) embodied many of the same principles as microservices, and had great promise for the design of interfaces and decomposing applications. But where SOA failed was the lack of emphasis on the infrastructure. Microservices is being widely adopted today because in addition to service isolation it embodies deployment and lifecycle concerns that were never adequately handled by SOA.
For the first time any application can take advantage of data not even written to disk. Machine Learning and Analytics are the initial killer apps, but the entire nature of app dev is transforming based on data use cases. Our survey findings showed a close correlation between Microservices and Fast Data adoption, as agility at the data tier is driving the need for applications that are more responsive with data-in-motion.
There is a strong connection between microservices and Fast Data technologies, with 35% of those running microservices also running Akka Streams in production, 30% running Kafka, and 19% running Spark Streaming. The phrase ‘Fast Data’ captures the range of new systems and approaches, which balance various trade offs to deliver timely, cost-efficient data processing, as well as higher developer productivity.
For scalable data stream processing, Kafka is well known and widely deployed or under consideration. It provides distributed storage of data organized into topics. For processing the data, Akka Streams and Spark Streaming are most popular, with Storm attracting strong interest. Flink and Samza are less well known, but interest is growing.
Thanks for reading! Get the complete report here: