BIO: Olga Maciaszek-Sharma is a Java and Groovy Developer at Devskiller. She has gained her experience while working with microservices where cutting-edge solutions were used as well as with complex legacy systems, implementing both new business features and solutions aimed at improving the process of continuous deployment and setup of applications. Olga is also a contributor of the OSS projects: Spring Cloud Contract (former: Accurest), JFairy, Jenkins Pipeline Plugin, Jenkins Stash Pull Request Builder Plugin, and others. Before switching to development, she worked for more than 3 years as Quality Assurance Engineer, specialized in test automation.
Presentation: Building Resilient Microservices
co-speaker: Marcin Grzejszczak
session level: intermediate
Distributed systems and microservices are currently one of the strongest trends in the field of enterprise-scale systems development. The main reason for that is that given the size and throughput of modern systems, massive application scalability has become a core requirement. In order to achieve scalability, the system has to allow for easy partitioning and concurrency, which are problematic with the traditional monolithic applications. Also, as microservices provide much greater independence to the teams both in terms of development and deployments, they let us introduce changes and add new features much more quickly and easily, in keeping with the Agile principles. With all that, microservices seem to be the way to go.
Nevertheless, we can’t forget that as we switch to distributed architectures, the complexity of our systems grows and the communication between them becomes a first class citizen of our applications, and as the individual services become easier to develop, testing and ensuring reliability on the system-wide level can become much more difficult. It can decrease the stability of our applications and cause production issues.
However, there are ways in which we can greatly reduce the risks associated with working with distributed architectures and there are tools that can help us greatly increase system stability and make our microservice-based solution much more resilient. In this presentation, we will talk about some such approaches, including consumer-driven contracts, distributed tracing and automated deployments and some tools provided by Spring Cloud to make incorporating these principles easy, along with demos and live coding.
- microservices-based architecture
- independent development and deployments
- maintaining reliability, testing and monitoring