Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
DevoxxMA - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
CDC 2019 - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
CodeMotion Milan - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Devoxx UK - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
DevNexus 2019 - Reacting to the future of application architecture (Full Conf...Grace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks. In this longer session, we take a deeper dive into some of the tools used in reactive architecture that enable us to achieve these reactive behaviors.
TDC - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
W-Jax - Reacting to the Future of Application ArchitectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
DevoxxMA - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
CDC 2019 - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
CodeMotion Milan - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Devoxx UK - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
DevNexus 2019 - Reacting to the future of application architecture (Full Conf...Grace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks. In this longer session, we take a deeper dive into some of the tools used in reactive architecture that enable us to achieve these reactive behaviors.
TDC - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
W-Jax - Reacting to the Future of Application ArchitectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
CodeCamp Bucharest - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
DevoxxBE - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Securing Modern Applications: The Data Behind DevSecOpsEficode
Ilkka Turunen, Global Director, Pre-sales Engineering, Sonatype
Hackers took three days to identify and exploit a known vulnerability in Equifax’s web applications. Ilkka Turunen shares new data that reveals why three days (at most) is the new normal for DevSecOps teams to move new business /security requirements from design into production.
By dividing large applications into separate self-contained units, Microservices are a great step toward reducing complexity and increasing flexibility. Spring Microservices in Action, Second Edition teaches you how to build microservice-based applications using Java and the Spring platform. This second edition is fully updated for the latest version of Spring, with expanded coverage of API routing with Spring Cloud Gateway, logging with the ELK stack, metrics with Prometheus and Grafana, security with the Hashicorp Vault, and modern deployment practices with Kubernetes and Istio.
Learn more about the book here: https://www.manning.com/books/spring-microservices-in-action-second-edition
Ever had a hard time managing your source code and collaborating with others? Fear no more. This session will teach you the fundamentals of the version control system git, as well as some good practices of working with git. If you do it right, reading the history of your code will be a bliss!
Victor Gamov from Confluent presented 'Streams must fFlow: Developing fault tolerant stream processing application with Kafka Streams and Kubernetes’ at Montreal's very first Cloud Native Day, which took place on June 11, 2019.
CodeCamp Cluj Napoca - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
JVMCon - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Microservices Interview Questions and Answers | Microservices Architecture Tr...Edureka!
** Microservices Architecture Training - https://www.edureka.co/microservices-architecture-training **
This Edureka’s Microservices Interview Questions and Answers video (Microservices Blog Series: https://goo.gl/WA5k9u) will help you to prepare for the Microservices Interviews.
Below are the topics covered in this Microservices Interview Questions and Answers Tutorial:
1) Basic Microservices Interview Questions
2) Microservices Architecture Interview Questions
3) Spring Boot Interview Questions
4) Continuous Deployment Interview Questions
5) Continuous Monitoring Interview Questions
In the Eventual Consistency of Succeeding at MicroservicesKenny Bastani
The transition to microservices can be an exciting change of pace for developers. But for organizations, the path to success with microservices is not without embracing a major cultural shift in the process of how teams build and deliver software.
In this session, Kenny will introduce you to the leading practices and patterns for building and scaling event-driven microservice architectures.
As more companies have adopted microservices, conventional wisdom on microservices architecture and best practices have started to converge. Based on Datawire's experience with dozens of companies, we’ll discuss the evolution of these key trends, including polyglot architectures, the service mesh, and the role of operations.
Architecting for speed: How agile innovators accelerate growth through micros...Jesper Nordström
In a world where software has become the key differentiator, enterprises are forced to transform the way they build, ship and run software in order to stay in the game. Competitive pressure requires applications to be rapidly and continuously upgraded with nonstop availability, and companies that lack the capacity to experiment, innovate and get new features out quickly, will be at disadvantage. This is driving many IT organisations to adopt the software design model known as microservices architecture, which quickly is gaining traction as a new way to think about structuring applications, and is changing the fundamentals of enterprise application management.
Architecting for speed - how agile innovators accelerate growth through micro...3gamma
In a world where software has become the key differentiator, enterprises are forced to transform the way they build, ship and run software in order to stay in the game. Competitive pressure requires applications to be rapidly and continuously upgraded with nonstop availability, and companies that lack the capacity to experiment, innovate and get new features out quickly, will be at disadvantage.
This is driving many IT organisations to adopt the software design model known as microservices architecture, which quickly is gaining traction as a new way to think about structuring applications, and is changing the fundamentals of enterprise application management.
Reactive stack paints a very rosy picture of the way to develop the scalable applications focusing on the 4 fundamental things that are responsive, elastic, resilient and asynchronous communication. The principles are pretty simple but there are a lot of pitfalls that nobody talks about.
The challenges are numerous to build the system in the right way and in this talk we will focus on what are these pitfalls and how can we avoid them. We will be exploring the myth that once you adapt to it the journey will be smooth and show how these distributed systems add to additional complexity but can be managed by making smart decisions. I will share our experience of building Reactive Applications and how we have overcome the difficulties that we encounter.
Spring Weblfux. I have given this talk several times but in San Antonio JUG is where I think I have explained better this topic. An introduction to the reactive concepts on how Spring and Project Reactor implement them for Reactive web with Spring Webflux.
A microservices architecture is not a new style of building large scale enterprise applications. Companies like Netflix and Amazon have implemented a microservices architecture to deliver successful products over the last few years.
But is a microservices architecture right for your organization? What should you focus on when getting started? How do microservices affect your business model?
In this presentation you will learn:
• What Microservices are
• Why use Microservices
• How to model Microservices
• How to automatically create your Microservice EA repository
• How to plan the Microservice roadmap
CodeCamp Bucharest - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
DevoxxBE - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Securing Modern Applications: The Data Behind DevSecOpsEficode
Ilkka Turunen, Global Director, Pre-sales Engineering, Sonatype
Hackers took three days to identify and exploit a known vulnerability in Equifax’s web applications. Ilkka Turunen shares new data that reveals why three days (at most) is the new normal for DevSecOps teams to move new business /security requirements from design into production.
By dividing large applications into separate self-contained units, Microservices are a great step toward reducing complexity and increasing flexibility. Spring Microservices in Action, Second Edition teaches you how to build microservice-based applications using Java and the Spring platform. This second edition is fully updated for the latest version of Spring, with expanded coverage of API routing with Spring Cloud Gateway, logging with the ELK stack, metrics with Prometheus and Grafana, security with the Hashicorp Vault, and modern deployment practices with Kubernetes and Istio.
Learn more about the book here: https://www.manning.com/books/spring-microservices-in-action-second-edition
Ever had a hard time managing your source code and collaborating with others? Fear no more. This session will teach you the fundamentals of the version control system git, as well as some good practices of working with git. If you do it right, reading the history of your code will be a bliss!
Victor Gamov from Confluent presented 'Streams must fFlow: Developing fault tolerant stream processing application with Kafka Streams and Kubernetes’ at Montreal's very first Cloud Native Day, which took place on June 11, 2019.
CodeCamp Cluj Napoca - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
JVMCon - Reacting to the future of application architectureGrace Jansen
Ever wondered how honeybees have come to be some of the world's most efficient architects? Learn how we can all use mother nature's expertise to better architect our software solutions to be more reactive, responsive and resilient through reactive architecture frameworks.
Microservices Interview Questions and Answers | Microservices Architecture Tr...Edureka!
** Microservices Architecture Training - https://www.edureka.co/microservices-architecture-training **
This Edureka’s Microservices Interview Questions and Answers video (Microservices Blog Series: https://goo.gl/WA5k9u) will help you to prepare for the Microservices Interviews.
Below are the topics covered in this Microservices Interview Questions and Answers Tutorial:
1) Basic Microservices Interview Questions
2) Microservices Architecture Interview Questions
3) Spring Boot Interview Questions
4) Continuous Deployment Interview Questions
5) Continuous Monitoring Interview Questions
In the Eventual Consistency of Succeeding at MicroservicesKenny Bastani
The transition to microservices can be an exciting change of pace for developers. But for organizations, the path to success with microservices is not without embracing a major cultural shift in the process of how teams build and deliver software.
In this session, Kenny will introduce you to the leading practices and patterns for building and scaling event-driven microservice architectures.
As more companies have adopted microservices, conventional wisdom on microservices architecture and best practices have started to converge. Based on Datawire's experience with dozens of companies, we’ll discuss the evolution of these key trends, including polyglot architectures, the service mesh, and the role of operations.
Architecting for speed: How agile innovators accelerate growth through micros...Jesper Nordström
In a world where software has become the key differentiator, enterprises are forced to transform the way they build, ship and run software in order to stay in the game. Competitive pressure requires applications to be rapidly and continuously upgraded with nonstop availability, and companies that lack the capacity to experiment, innovate and get new features out quickly, will be at disadvantage. This is driving many IT organisations to adopt the software design model known as microservices architecture, which quickly is gaining traction as a new way to think about structuring applications, and is changing the fundamentals of enterprise application management.
Architecting for speed - how agile innovators accelerate growth through micro...3gamma
In a world where software has become the key differentiator, enterprises are forced to transform the way they build, ship and run software in order to stay in the game. Competitive pressure requires applications to be rapidly and continuously upgraded with nonstop availability, and companies that lack the capacity to experiment, innovate and get new features out quickly, will be at disadvantage.
This is driving many IT organisations to adopt the software design model known as microservices architecture, which quickly is gaining traction as a new way to think about structuring applications, and is changing the fundamentals of enterprise application management.
Reactive stack paints a very rosy picture of the way to develop the scalable applications focusing on the 4 fundamental things that are responsive, elastic, resilient and asynchronous communication. The principles are pretty simple but there are a lot of pitfalls that nobody talks about.
The challenges are numerous to build the system in the right way and in this talk we will focus on what are these pitfalls and how can we avoid them. We will be exploring the myth that once you adapt to it the journey will be smooth and show how these distributed systems add to additional complexity but can be managed by making smart decisions. I will share our experience of building Reactive Applications and how we have overcome the difficulties that we encounter.
Spring Weblfux. I have given this talk several times but in San Antonio JUG is where I think I have explained better this topic. An introduction to the reactive concepts on how Spring and Project Reactor implement them for Reactive web with Spring Webflux.
A microservices architecture is not a new style of building large scale enterprise applications. Companies like Netflix and Amazon have implemented a microservices architecture to deliver successful products over the last few years.
But is a microservices architecture right for your organization? What should you focus on when getting started? How do microservices affect your business model?
In this presentation you will learn:
• What Microservices are
• Why use Microservices
• How to model Microservices
• How to automatically create your Microservice EA repository
• How to plan the Microservice roadmap
The microservice architecture is becoming increasingly important. But what is it exactly? Why should you care about microservices? And, what do you need to do to ensure that your organization uses the microservice architecture successfully? In this talk, I’ll answer these and other questions. You will learn about the motivations for the microservice architecture and why simply adopting microservices is insufficient. I describe essential characteristics of microservices, You will learn how a successful microservice architecture consists of loosely coupled services with stable APIs that communicate asynchronously.
Should you use traditional REST APIs to bind services together? Or is it better to use a richer, more loosely-coupled protocol? This talk will dig into how we piece services together in event driven systems, how we use a distributed log (event hub) to create a central, persistent history of events and what benefits we achieve from doing so. Apache Kafka is a perfect match for building such an asynchronous, loosely-coupled event-driven backbone. Events trigger processing logic, which can be implemented in a more traditional as well as in a stream processing fashion. The talk will show the difference between a request-driven and event-driven communication and show when to use which. It highlights how the modern stream processing systems can be used to
hold state both internally as well as in a database and how this state can be used to further increase independence of other services, the primary goal of a Microservices architecture.
Using patterns and pattern languages to make better architectural decisions Chris Richardson
This is a presentation that gave at the O'Reilly Software Architecture Superstream: Software Architecture Patterns.
The talk's focus is the microservices pattern language.
However, it also shows how thinking with the pattern mindset - context/problem/forces/solution/consequences - leads to better technically decisions.
The microservices architecture offers tremendous benefits, but it’s not a silver bullet. It also has some significant drawbacks. The microservices pattern language—a collection of patterns that solve architecture, design, development, and operational problems—enables software developers to apply the microservices architecture effectively. I provide an overview of the microservices architecture and examines the motivations for the pattern language, then takes you through the key patterns in the pattern language.
Similar to AccentoDev - Reacting to the future of application architecture (20)
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application. JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances. We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Enabling applications to really thrive (and not just survive) in cloud environments can be challenging. The original 12 factor app methodology helped to lay out some of the key characteristics needed for cloud-native applications... but... as our cloud infrastructure and tooling has progressed, so too have these factors.
In this session we'll dive into the extended and updated 15 factors needed to build cloud native applications that are able to thrive in this environment, and we'll take a look at open source technologies and tools that can help us achieve this.
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
Our cloud-native environments are more complex than ever before! So how can we ensure that the applications we’re deploying to them are behaving as we intended them to? This is where effective observability is crucial. It enables us to monitor our applications in real-time and analyse and diagnose their behaviour in the cloud. However, until recently, we were lacking the standardization to ensure our observability solutions were applicable across different platforms and technologies. In this session, we’ll delve into what effective observability really means, exploring open source technologies and specifications, like OpenTelemetry, that can help us to achieve this while ensuring our applications remain flexible and portable.
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application.
JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances.
We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Imagine a Java application that can start up in milliseconds, without compromising on throughput, memory, development-production parity or Java language features. Sounds out of this world, right? Well, through the use of technologies like CRIU support in Eclipse OpenJ9 and Liberty’s InstantOn, we’ve taken one giant leap forwards for innovation within Java, offering exactly this! Join this session to learn more about these innovations and how you could utilise OSS technologies to deliver highly scalable and performant applications that are optimized for today’s cloud-native environments.
Jfokus_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
FooConf23_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
How does one choose to architect a system that has a Microservice / REST API endpoints? There are many solutions out there. Some are better than others. Should state be held in a server side component, or externally? Generally we are told this is not a good practice for a Cloud Native system, when the 12-factor guidelines seem to be all about stateless containers, but is it? It’s unclear and this confusion may lead to poor technology stack choices that are impossible or extremely hard to change later on as your system evolves in terms of demand and performance.
While stateless systems are easier to work with, the reality is that we live in a stateful world, so we have to handle the state of data accordingly to ensure data integrity beyond securing it.
We will examine and demonstrate the fundamentals of a Cloud Native system with Stateful Microservices that’s built with Open Liberty and MicroProfile.
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxGrace Jansen
How does one choose to architect a system that has a Microservice / REST API endpoints? There are many solutions out there. Some are better than others. Should state be held in a server side component, or externally? Generally we are told this is not a good practice for a Cloud Native system, when the 12-factor guidelines seem to be all about stateless containers, but is it? It’s unclear and this confusion may lead to poor technology stack choices that are impossible or extremely hard to change later on as your system evolves in terms of demand and performance.
While stateless systems are easier to work with, the reality is that we live in a stateful world, so we have to handle the state of data accordingly to ensure data integrity beyond securing it.
We will examine and demonstrate the fundamentals of a Cloud Native system with Stateful Microservices that’s built with Open Liberty and MicroProfile.
JCON_Adressing the transaction challenge in a cloud-native world.pptxGrace Jansen
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxGrace Jansen
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
JavaZone_Mother Nature vs Java – the security face off.pptxGrace Jansen
Mother Nature has had millennia to build up its defences to the many potential hazards and attacks it may face. So, given its wisdom and expertise on this subject, what can we as software developers learn from it and bring back to the evolution of our own application’s security? In this session we’ll explore where software and biology overlap when it comes to security and lessons we can learn from nature to improve our own application security.
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxGrace Jansen
As developers we strive to iteratively and rapidly develop our applications. However, development is often slowed by the process of setting up a new project to use the latest APIs, building the application, deploying to a local or container environment, and testing. In this session we will look at key pain points faced by cloud-native Java developers and present helpful APIs and tools so that as developer you can focus on what really matters - your code.
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Grace Jansen
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
How does one choose to architect a system that has a Microservice / REST API endpoints? There are many solutions out there. Some are better than others. Should state be held in a server side component, or externally? Generally we are told this is not a good practice for a Cloud Native system, when the 12-factor guidelines seem to be all about stateless containers, but is it? It’s unclear and this confusion may lead to poor technology stack choices that are impossible or extremely hard to change later on as your system evolves in terms of demand and performance.
While stateless systems are easier to work with, the reality is that we live in a stateful world, so we have to handle the state of data accordingly to ensure data integrity beyond securing it.
We will examine and demonstrate the fundamentals of a Cloud Native system with Stateful Microservices that’s built with Open Liberty and MicroProfile in Kubernetes.
How to become a superhero without even leaving your desk!Grace Jansen
With global warming on the rise, viral pandemics affecting every nation and extinction threatening more than 40,000 species the world has never needed superheros more! Are you ready to use your powers to save the world?
In this session we’ll explore the various ways our coding super powers can help to make a positive impact on our society and the planet we inhabit.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
11. Building Reactive Systems
Microservice 2
Microservice 3
Microservice 1
Futures
Libraries
Reactive
Streams
Futures
Libraries
Reactive
Streams
Futures
Libraries
Reactive
Streams
Reactive
Programming
Reactive
Systems
@gracejansen27
12. Reactive Programming
A subset of asynchronous programming and a paradigm where the
availability of new information drives the logic forward rather than
having control flow driven by a thread-of-execution.
@gracejansen27
13. Reactive Programming Patterns
•Futures: a promise to hold the result of some operation once that
operation completes
•Reactive programming libraries: for composing asynchronous
and event-based programs. (e.g. RxJava, SmallRye Mutiny)
•Reactive Streams: a programming concept for handling
asynchronous data streams in a non-blocking manner while
backpressure to stream publishers
@gracejansen27
22. Real World Example -Verizon
175M Visits/Month
50M Unique Visitors/Month
2.5 Billion Interactions/Year
88% Interactions are Digital
48% Digital Sales on Mobile Devices
Always Up For Iconic Launch
@gracejansen27
23. Real World Example
• Conversion rate UP by 1.6x (from 1.9% to 3.1%)
• Page response time improved from 7-10 seconds to 2-3 seconds
• Runs using 1/8th of Infrastructure
• Deployment time improved from 4-8 hours to 30 minutes
• Developers are 20-40% more productive
• Order completion improved from 41 minutes to 27 minutes
@gracejansen27
To look to the future of application architecture, let’s first take a look at it’s evolution so far…
Monolithic was fine at first – small applications, small traffic, small data requirements, can update over longer periods of time (i.e. batch processing overnight)
Can still lose items in shopping cart, can still lose a seat in the cinema, Black Friday – can’t access website (modern users expect more)Can’t do that anymore! We have much larger applications with more data streaming through them and much greater traffic!
Distribute out different services
Easily add features, deploy small part of application
Isolate failure
New problems --> users have new ever-demanding expectations
Doesn't expect an application to fail or have no access
Expect responses as soon as they click
Shopping cart example
How can we tackle these new demands and expectations user's put on applications?
Where do we go in our evolution?
Biology background inspiration --> nature inspire our apps
Bees = system of individuals, independent but common goal
Biology degree – anology to describe microservices and applications
Individuals that have their own roles and responsibilities that work together for the good of the hive
Like microservices working together to make the application work
Bees have been evolving for millenia
The 100 million-year-old fossil was found in a mine in the Hukawng Valley of Myanmar (Burma) and preserved in amber. (Discovered in 2006)
Can we use them as inspiration for the behaviour we want to see in our applications
Show three examples of bee behaviour that we want to mimic in our apps
Not just a rant about bees!
Social structure very complicated in bee hives – many different roles (air conditioning, nurse, gurard, scout)
Scout bee looks for food
When they find food, they head back to the hive to dedicated dance floors
Dance to show other listener bees where the food source is
Very complicated dance – they can communicate lots of information to the other bees by changing the movements – includes where the food source is, how far away it is, wind speed, how long it will take to get there, etc
Listener bees already waiting for scout to dance, as soon as they have the very minimum info they need they dash off to the food source – life or death situation, they need to get there first so that they get the food and other bee hives don’t
HIGHLY RESPONSIVE!!
Applications want to mimic responsiveness of bees (not life or death) but user satisfaction
Independant Observers
Act as soon as possible - quick to respond
What happens when Queen bee dies? Potentially catastrophic! Only ever 1 bee, role is to produce babies, no queen no hive
Arguably the most important member of that bee society!
System doesn’t crash or shut down, they have an inate trust that she will be replaced
Queen emits pheromone (chemical) signals, when she dies those disappear
Keey sign! Nurse bees realise and so spring into action to replace queen
Pick 4/5 larvae that haven’t hatched yet, feed royal jelly, when first one hatches she murders the others but then mates and goes on to be the queen
Other bees continue as normal
EXTREMELY RESILIENT!
We want our applications to also be resilient
Need decoupling for resiliency in the face of potential failure.
Colony Independently continues
Impact of Queen being lost is managed
Has the potential to be catastrophic but isn’t
What happens when the hive is under attack?
Lots of different roles – guard bees are one of them, only make up 11% of the hive population, not very much
Imagine a bear attacking the hive, 11% isn’t going to cut it, need more
Guards recruit more bees to defend hive, but limited number of bees in hive
Bees dynamically switch roles, elastically change depending on the load/threat to the hive
Once threat is gone, load decreased, bees go back to original load
Change resource allocation depending on load – we want this for our application
Be elastic in resource allocation – restaurant app example
Creation of the Reactive Manifesto in 2013, by Jonas Bonér
to collaborate and solidify what the core principles were for building reactive applications and systems
REACT to users (Responsive)- user click a button
REACT to load (Elastic) - black friday and login/book table
REACT to failure (Resilient) - monitor, replace service
REACT to events (event-driven) - achieve other 3 principles
how do we achieve this? same way bees do
async comm - dancer bee, guard bee recruiting (can communicate on 1:1 and 1:many basis with other bees)
Guard bees don’t wait for a response, they just know they’ll switch roles once the signal has been put out
bees = sophisticated system, appear simplistic, actually complicated yet efficient society of independent individuals acting as a whole
We want to mimic what bees have achieved - tall ask, bees have had millennia, but by implementing reactive architecture we can start to achieve this
Seems to solve a lot of the issues we still face with our applications today – meet user’s expectations
Reactive programming is a great technique for managing internal logic and dataflow transformation, locally within the components, as a way of optimizing code clarity, performance and resource efficiency.
Asynchronous code allows independent IO operations to run concurrently, resulting in efficient code. However, this improved efficiency comes at a cost — straightforward synchronous code may become a mess of nested callbacks.
Futures - Enables us to combine the simplicity of synchronous code with the efficiency of the asynchronous approach. Future represents the result of an asynchronous computation. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the result of the computation.
Football team example
Reactive programming is a great technique for managing internal logic and dataflow transformation, locally within the components, as a way of optimizing code clarity, performance and resource efficiency.
Reactive systems puts the emphasis on distributed communication and gives us tools to tackle resilience and elasticity in distributed systems.
Architectural tools – enable reactive behaviours
Communication between Microservices needs to be based on Asynchronous Message-Passing
An asynchronous boundary between services is necessary in order to decouple them, and their communication flow, in time—allowing concurrency—and in space—allowing distribution and mobility. Without this decoupling it is impossible to reach the level of compartmentalization and containment needed for isolation and resilience.
Asynchronous and non-blocking execution = more cost-efficient through more efficient use of resources, minimizes contention (congestion) on shared resources in the system, which is one of the biggest hurdles to scalability, low latency, and high throughput.
But why is blocking so bad?
It’s best illustrated with an example… bees queuing = wasted resource, equivalent to threads
The need for asynchronous message-passing does not only include responding to individual messages or requests, but also to continuous streams of messages, potentially unbounded streams.
The fundamental shift is that we’ve moved from "data at rest" to "data in motion.
Applications today need to react to changes in data in close to real time—when it happens
First Wave = data at rest, batch processing, hours of latency, overnight
Second Wave = hybrid architecture, lambda architecture, 2 layers (batch and speed layers), added needless complexity – 2 data pipelines and need to merge them afterwards
Third Wave – fully embrace data in motion, stream processing architecture, event logging/sourcing…..
Lagom framework
Message-driven / responsiveness
Event Sourcing ensures that all changes to application state are stored as a sequence of events
(e.g. business objects is persisted by storing a sequence of state changing events)
Command Query Responsibility Segregation --> disassociate writes (commands) and reads (queries)
Applying event sourcing on top of CQRS means persisting each event on the write part of the application.
Read part is derived from the sequence of events.
Bees brains = local databases
Dance floor – write to bees brains
Bees can query their own brains (read)
May not be most up to date but that’s ok
Responsiveness
Lagom framework
Database partitioning, separates very large databases into smaller, faster, more manageable parts called data shards
Shard = small parts of a whole
Meant to make v. large databases more manageable
Greater parallelism, without collisions
- Sharding - distributes and replicates the data across a pool of databases that do not share hardware or software. Each individual database is known as a shard. Java applications can linearly scale up or scale down by adding databases (shard) to the pool or by removing databases (shards) from the pool.
Two bees at the same cell – fill up multiple cells (sharding)
Finite space in the hive – sharding out the hive into cells – operate in parallel across cells, reducing contention
Imagine one huge cell, only one bee can fill up at a time
Resiliency/elasticity
Lagom framework
Form of feedback/flow control
Without feedback, a distributed system can easily become unstable and fail. Any component that cannot support the worst possible case of loading in the system can become a bottleneck. BLOCKING
Without Feedback, other components will continue to increase the load until they are in turn congested, resulting in the ultimate collapse!
When one component is struggling to keep-up, the system as a whole needs to respond in a sensible way.
It is unacceptable for the component under stress to fail catastrophically or to drop messages in an uncontrolled fashion.
Since it can’t cope and it can’t fail it should communicate the fact that it is under stress to upstream components and so get them to reduce the load.
This back-pressure is an important feedback mechanism that allows systems to gracefully respond to load rather than collapse under it.
this mechanism helps ensure that the system is resilient under load, and will provide information that may allow the system itself to apply other resources to help distribute the load, see Elasticity.
Backpressure = built wherever the publisher is faster than the subscriber
Honeycomb vs nectar ratio
Resiliency / responsiveness
Bees are intelligent actors, software isn’t so we have to program to imitate it
Protect resources and help them recover
Circuit breaker opens when a particular type of error occurs multiple times in a short period.
An open circuit breaker prevents further requests to be made.
They usually close after a certain amount of time, giving enough space for underlying services to recover.
Resiliency
Akka
There are tradeoffs to this – eventual consistency!
Dance floor bees assume the food is still available until another bee comes back and says otherwise
More representative of the way the world works
Given enough time, all nodes will become consistent
Not perfect sharding to help improve consistency
Lagom framework
CAP Theorum
Bulkhead use in industry to partition a ship into segments, so that sections can be sealed off if the hull is breeched.
--> concept can be applied in software development to segregate resources
Like to think of it as the opposite of back pressure, this time it’s the publisher who limits resources rather than the subscribers
Protect limited resources from being exhausted.
Dancer communicating how many bees should go to food source
Resiliency/responsiveness
Akka
Vert.x built upon vertixles, includes a distributed event-bus, used in runtimes like Quarkus
MP offers reactive streams operators, and reactive messaging APIs – used by multiple vendors to enable asynchronous communication between microservices
Akka, Lagom, Play – based on actor framework
Switch off bits of system to deal with load of customers trying to buy new phones – reactive solved this
Google: “faster page loads, the more successful it will be”, people don’t want to wait
Performance plays a major role in the success of any online venture. Case studies that show how high-performing sites engage and retain users better than low-performing ones:
Pinterest increased search engine traffic and sign-ups by 15% when they reduced perceived wait times by 40%.
COOK increased conversions by 7%, decreased bounce rates by 7%, and increased pages per session by 10% when they reduced average page load time by 850 milliseconds (14.2 secs).
Here are a couple case studies where low performance had a negative impact on business goals:
The BBC found they lost an additional 10% of users for every additional second their site took to load.
DoubleClick by Google found 53% of mobile site visits were abandoned if a page took longer than 3 seconds to load.
More coming in future on:
Acknowledgement
Frontend SSE
etc
Reactive report = ebook
Getting started with Reactive = article on IBM Developer, with useful links
Reactive Programming Interview = Mary interviewing Mark Heckler around reactive programming, RxJava, Spring Reactor, etc
MicroProfileReactiveMessaging = article on openliberty.io introducing this specification
Open liberty guides = lead on from the reactive ones listed in this deck (other MP specification)
OpenShiftReactiveLabs = quarkus based hands-on tutorial, deployed on OpenShift
QuarkusReactiveJava = article on IBM Developer, introducing reactive applications made via Quarkus and lots of useful links to blogs