This is a talk I delivered in April 2012 at the 33rd Degree conference in Krakow - its about building small simple applications and the unix philosophy
Learn all about microservices from Product Marketing Manager Dan Giordano. We'll cover how to get started, the benefits, potential challenges, and how SmartBear can help.
This is a small introduction to microservices. you can find the differences between microservices and monolithic applications. You will find the pros and cons of microservices. you will also find the challenges (Business/ technical) that you may face while implementing microservices.
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as Spring Boot that you can use to implement micro-services.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
Netflix morphed from a private datacenter based monolithic application into a cloud based Microservices architecture. This talk highlights the pros and cons of building software applications as suites of independently deployable services, as well as practical approaches for overcoming challenges - especially in the context of an elastic but ephemeral cloud ecosystem. What were the lessons learned while building and managing these services? What are the best practices and anti-patterns?
Building a Bank out of Microservices (NDC Sydney, August 2016)Graham Lea
From April 2014, Tyro Payments assigned more than half of it's Engineering team to developing and deploying a bespoke core banking system. Over the course of 18 months we shipped 21 new services and a new mobile app, as well as integrating with new external partners and Tyro's existing systems.
In this talk I presented a case study of the project, covering:
• the core tenets and some of the more interesting aspects of our architecture;
• why we were well positioned to use microservices for this greenfield work;
• the decisions we made that turned out well and the ones that didn't;
• security (we know a bit about that);
• testing (we do lots of it);
• deployment;
• how the system and the team is evolving.
Delivering with Microservices - How to Iterate Towards SophisticationThoughtworks
A microservices architecture requires some complex engineering. So when choosing microservices, a software engineering team must be prepared to tackle some challenges early in the project. On the other hand, an Agile approach requires the team to focus on delivering business value from Iteration 1. The fully-featured architecture of the solution will not emerge until later.
While clear and strong technical choices must be made early in a microservices project, how do you resist the temptation of building the infrastructure first? In this presentation, Jean Robert D'Amore talks about the tools and techniques you can use to let your product evolve towards a microservices architecture, while setting up the team for success.
Learn all about microservices from Product Marketing Manager Dan Giordano. We'll cover how to get started, the benefits, potential challenges, and how SmartBear can help.
This is a small introduction to microservices. you can find the differences between microservices and monolithic applications. You will find the pros and cons of microservices. you will also find the challenges (Business/ technical) that you may face while implementing microservices.
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as Spring Boot that you can use to implement micro-services.
Kevin Huang: AWS San Francisco Startup Day, 9/7/17
Architecture: When, how, and if to adopt microservices - Microservices are not for everyone! If you're a small shop, a monolith provides a great amount of value and reduces the complexities involved. However as your company grows, this monolith becomes more difficult to maintain. We’ll look at how microservices allow you to easily deploy and debug atomic pieces of infrastructure which allows for increased velocity in reliable, tested, and consistent deploys. We’ll look into key metrics you can use to identify the right time to begin the transition from monolith to microservices.
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
Netflix morphed from a private datacenter based monolithic application into a cloud based Microservices architecture. This talk highlights the pros and cons of building software applications as suites of independently deployable services, as well as practical approaches for overcoming challenges - especially in the context of an elastic but ephemeral cloud ecosystem. What were the lessons learned while building and managing these services? What are the best practices and anti-patterns?
Building a Bank out of Microservices (NDC Sydney, August 2016)Graham Lea
From April 2014, Tyro Payments assigned more than half of it's Engineering team to developing and deploying a bespoke core banking system. Over the course of 18 months we shipped 21 new services and a new mobile app, as well as integrating with new external partners and Tyro's existing systems.
In this talk I presented a case study of the project, covering:
• the core tenets and some of the more interesting aspects of our architecture;
• why we were well positioned to use microservices for this greenfield work;
• the decisions we made that turned out well and the ones that didn't;
• security (we know a bit about that);
• testing (we do lots of it);
• deployment;
• how the system and the team is evolving.
Delivering with Microservices - How to Iterate Towards SophisticationThoughtworks
A microservices architecture requires some complex engineering. So when choosing microservices, a software engineering team must be prepared to tackle some challenges early in the project. On the other hand, an Agile approach requires the team to focus on delivering business value from Iteration 1. The fully-featured architecture of the solution will not emerge until later.
While clear and strong technical choices must be made early in a microservices project, how do you resist the temptation of building the infrastructure first? In this presentation, Jean Robert D'Amore talks about the tools and techniques you can use to let your product evolve towards a microservices architecture, while setting up the team for success.
Are you jumping on the microservices bandwagon? When and when not to adopt micro services architecture? If you must, what are the considerations? This slidedeck will help answer a few of those questions...
In this session, we’ll discuss the benefits of moving from monolithic to micro-services application architectures, and examine where micro-services can be used. We’ll share common transition strategies and relate them to the specifics of e-commerce and retail workloads, using customer examples. You’ll learn how to build micro-services using AWS services, and get a better understanding of the role of data storage, API endpoints and service discovery. Plus, you can learn from the real-life experience of Digital Goodie, an online retailing platform for connected commerce.
Developing applications with a microservice architecture (SVforum, microservi...Chris Richardson
Here is the version of my microservices talk that that I gave on September 17th at the SVforum Cloud SIG/Microservices meetup.
To learn more see http://microservices.io and http://plainoldobjects.com
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
It’s Not Just Request/Response: Understanding Event-driven Microservicescornelia davis
Why all of the recent buzz around event-driven architectures? Software solutions have implemented event-driven patterns for some time, using message brokers such as RabbitMQ or ActiveMQ. Use of these message brokers is so ubiquitous that every J2EE platform such as WebSphere or WebLogic embeds one.
What is new is that we are reexamining event-driven approaches in the context of microservices. On the one hand, microservices don’t change things too much—the scenarios that called for message queuing in the past remain. Where eventing starts to get interesting is when we start applying it to scenarios we once used a request/response model. We can turn the processing on its head by propagating events through a network of microservices. Doing so can yield more autonomous microservices and more resilient systems.
In this session Cornelia Davis, Senior Director of Technology at Pivotal will examine this approach, describing the architectural tenets and analyzing the benefits and tradeoffs. By the end of this webinar, you will have some very concrete techniques that you can immediately put into practice.
The presentation from our online webinar "Design patterns for microservice architecture".
Full video from webinar available here: https://www.youtube.com/watch?v=826aAmG06KM
If you’re a CTO or a Lead Developer and you’re planning to design service-oriented architecture, it’s definitely a webinar tailored to your needs. Adrian Zmenda, our Lead Dev, will explain:
- when microservice architecture is a safe bet and what are some good alternatives
- what are the pros and cons of the most popular design patterns (API Gateway, Backend for Frontend and more)
- how to ensure that the communication between services is done right and what to do in case of connection issues
- why we’ve decided to use a monorepo (monolithic repository)
- what we’ve learned from using the remote procedure call framework gRPC
- how to monitor the efficiency of individual services and whole SOA-based systems.
<November 2017 Updated from earlier presentations on Cloud-native Data>
Cloud-native applications form the foundation for modern, cloud-scale digital solutions, and the patterns and practices for cloud-native at the app tier are becoming widely understood – statelessness, service discovery, circuit breakers and more. But little has changed in the data tier. Our modern apps are often connected to monolithic shared databases that have monolithic practices wrapped around them. As a result, the autonomy promised by moving to a microservices application architecture is compromised.
What we need are patterns and practices for cloud-native data. The anti-patterns of shared databases and simple proxy-style web services to front them give way to approaches that include use of caches (Netflix calls caching their hidden microservice), database per service and polyglot persistence, modern versions of ETL and data integration and more. In this session, aimed at the application developer/architect, Cornelia will look at those patterns and see how they serve the needs of the cloud-native application.
Mastering Chaos - A Netflix Guide to MicroservicesJosh Evans
QConSF 2016 Abstract:
By embracing the tension between order and chaos and applying a healthy mix of discipline and surrender Netflix reliably operates microservices in the cloud at scale. But every lesson learned and solution developed over the last seven years was born out of pain for us and our customers. Even today we remain vigilant as we evolve our service architecture. For those just starting the microservices journey these lessons and solutions provide a blueprint for success.
In this talk we’ll explore the chaotic and vibrant world of microservices at Netflix. We’ll start with the basics - the anatomy of a microservice, the challenges around distributed systems, and the benefits realized when integrated operational practices and technical solutions are properly leveraged. Then we’ll build on that foundation exploring the cultural, architectural, and operational methods that lead to microservice mastery.
First steps into developing an application as a suite of small services, and analysis of tools and architecture approaches to be used.
Topics covered:
1) What is a micro service architecture
2)Advantages in code procedures, team dynamics and scaling
3) How container services such as docker assist in its implementation
4) How to deploy code in a micro services architecture
5) Container Management tools and resource efficiency (mesos, kubernetes, aws container service)
6) Scaling up
By PeoplePerHour team
presented by CTO Spyros Lambrinidis & Senior DevOps Panagiotis Moustafellos @ Docker Athens Meetup 18/02/2015
Developing applications with a microservice architecture (svcc)Chris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this talk we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as NodeJS and Spring Boot that you can use to implement micro-services.
Eduards Sizovs - Micro Service Architecture DevConFu
Eduards will talk about micro service architecture - approach to designing software when complex app is broken into tiny, cohesive services which are apps themselves. Anatomy of micro services will be covered with practical implementation advices in Java.
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Kai Wähner
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. Continuous Integration and Continuous Delivery automate deployments. This way you get shorter time to results and increased flexibility. Containers improve these even more offering a very lightweight and flexible deployment option.
In the middleware world, you use concepts and tools such as an Enterprise Service Bus (ESB), Complex Event Processing (CEP), Business Process Management (BPM) or API Gateways. Many people still think about complex, heavyweight central brokers here. However, Microservices and containers are relevant not just for custom self-developed applications, but they are also a key requirement to make the middleware world more flexible, agile and automated.
This session discusses the requirements, best practices and challenges for creating a good Microservices architecture in the middleware world. A live demo with the open source PaaS framework CloudFoundry shows how technologies and frameworks such as Java, SOAP / REST Web Services, Jenkins and Docker are used to create an agile software development lifecycle to realize “Middleware Microservices”. It also discusses other modern cloud-native alternatives such as Kubernetes, Docker, Mesos, Mesosphere or Amazon ECS / AWS.
Decomposing applications for deployability and scalability #springone2gx #s12gxChris Richardson
Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers.
In this talk we describe the limitations of a monolithic architecture. You will learn how to use the scale cube to decompose your application into a set of narrowly focused, independently deployable back-end services and an HTML 5 client. We will also discuss the role of technologies such as NodeJS and AMQP brokers. You will learn how a modern PaaS such as Cloud Foundry simplifies the development and deployment of this style of application.
Building a High-Performance Reactive Microservices ArchitectureCognizant
For digital IT organizations, employing a microservices architecture built on reactive principles is a viabke option to ensure responsive, reliable and scalable systems or applications. The Vert.x toolkit can be a key component of reactive microservices success.
An Overview of Designing Microservices Based Applications on AWS - March 2017...Amazon Web Services
Microservices are an architectural approach to decompose complex applications into smaller, independent services. AWS customers benefit from increased agility, simplified scalability, resiliency, and faster deployments by migrating from monoliths to microservices based architecture.
In this session, we will provide an overview of the benefits and challenges of microservices, and share best practices for architecting and deploying microservices on AWS. We will dive into different approaches you can take to run microservices applications at scale and explore how services like Amazon ECS, AWS Lambda, and AWS X-Ray make it simpler to design and maintain these applications.
Learning Objectives:
1. Understand the fundamentals of the microservices architectural approach
2. Learn best practices for designing microservices on AWS
3. Learn the basics of Amazon EC2 Container Service, AWS Lambda, and AWS X-Ray
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & ProvidersCisco DevNet
Get to know the latest Rest API's and their Capabilities for Intercloud Fabric Business & Provider Editions. Understand how these API's can be used to integrate ICF into your Business Applications and provide the advantages of a true Hybrid Cloud to your end-users.
Productivity Tips for Java EE and Spring DevelopersSimon Maple
In this live coding session, we’ll build a Java EE application using JBoss Forge, deploy it onto Wildfly and test it using Arquillian. All of this is possible while barely writing a line of code! We’ll also create a microservice using JBoss Swarm. If you’re more into Spring we’ll also show you how to create a Spring application from scratch, use Spring Boot and how you can rapidly develop you applications using JRebel. There will be a bunch of other tools and tips in this session, so if you want to write code like a pro, this is the session for you!
Cassandra as event sourced journal for big data analyticsAnirvan Chakraborty
Avoiding destructive updates and keeping history of data using event sourcing approaches has large advantages for data analytics. This talk describes how Cassandra can be used as event journal as part of CQRS/Lambda Architecture using event sourcing and further used for data mining and machine learning purposes in a big data pipeline.
All the principles are demonstrated on an application called Muvr that we built. It uses data from wearable devices such as accelerometer in a watch or heartbeat monitor to classify user's exercises in near real time. It uses mobile devices and clustered Akka actor framework to distribute computation and then stores events as immutable facts in journal backed by Cassandra. The data are then read by Apache Spark and used for more expensive analytics and machine learning tasks such as suggests improvements to user's exercise routine or improves machine learning models for better real time exercise classification that can be used immediately. The talk mentions some of the internals of Spark when working with Cassandra and focuses on its machine learning capabilities enabled by Cassandra. A lot of the analytics are done for each user individually so the whole pipeline must handle potentially large amount of concurrent users and a lot of raw data so we need to ensure attributes such as responsiveness, elasticity and resilience.
Are you jumping on the microservices bandwagon? When and when not to adopt micro services architecture? If you must, what are the considerations? This slidedeck will help answer a few of those questions...
In this session, we’ll discuss the benefits of moving from monolithic to micro-services application architectures, and examine where micro-services can be used. We’ll share common transition strategies and relate them to the specifics of e-commerce and retail workloads, using customer examples. You’ll learn how to build micro-services using AWS services, and get a better understanding of the role of data storage, API endpoints and service discovery. Plus, you can learn from the real-life experience of Digital Goodie, an online retailing platform for connected commerce.
Developing applications with a microservice architecture (SVforum, microservi...Chris Richardson
Here is the version of my microservices talk that that I gave on September 17th at the SVforum Cloud SIG/Microservices meetup.
To learn more see http://microservices.io and http://plainoldobjects.com
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
It’s Not Just Request/Response: Understanding Event-driven Microservicescornelia davis
Why all of the recent buzz around event-driven architectures? Software solutions have implemented event-driven patterns for some time, using message brokers such as RabbitMQ or ActiveMQ. Use of these message brokers is so ubiquitous that every J2EE platform such as WebSphere or WebLogic embeds one.
What is new is that we are reexamining event-driven approaches in the context of microservices. On the one hand, microservices don’t change things too much—the scenarios that called for message queuing in the past remain. Where eventing starts to get interesting is when we start applying it to scenarios we once used a request/response model. We can turn the processing on its head by propagating events through a network of microservices. Doing so can yield more autonomous microservices and more resilient systems.
In this session Cornelia Davis, Senior Director of Technology at Pivotal will examine this approach, describing the architectural tenets and analyzing the benefits and tradeoffs. By the end of this webinar, you will have some very concrete techniques that you can immediately put into practice.
The presentation from our online webinar "Design patterns for microservice architecture".
Full video from webinar available here: https://www.youtube.com/watch?v=826aAmG06KM
If you’re a CTO or a Lead Developer and you’re planning to design service-oriented architecture, it’s definitely a webinar tailored to your needs. Adrian Zmenda, our Lead Dev, will explain:
- when microservice architecture is a safe bet and what are some good alternatives
- what are the pros and cons of the most popular design patterns (API Gateway, Backend for Frontend and more)
- how to ensure that the communication between services is done right and what to do in case of connection issues
- why we’ve decided to use a monorepo (monolithic repository)
- what we’ve learned from using the remote procedure call framework gRPC
- how to monitor the efficiency of individual services and whole SOA-based systems.
<November 2017 Updated from earlier presentations on Cloud-native Data>
Cloud-native applications form the foundation for modern, cloud-scale digital solutions, and the patterns and practices for cloud-native at the app tier are becoming widely understood – statelessness, service discovery, circuit breakers and more. But little has changed in the data tier. Our modern apps are often connected to monolithic shared databases that have monolithic practices wrapped around them. As a result, the autonomy promised by moving to a microservices application architecture is compromised.
What we need are patterns and practices for cloud-native data. The anti-patterns of shared databases and simple proxy-style web services to front them give way to approaches that include use of caches (Netflix calls caching their hidden microservice), database per service and polyglot persistence, modern versions of ETL and data integration and more. In this session, aimed at the application developer/architect, Cornelia will look at those patterns and see how they serve the needs of the cloud-native application.
Mastering Chaos - A Netflix Guide to MicroservicesJosh Evans
QConSF 2016 Abstract:
By embracing the tension between order and chaos and applying a healthy mix of discipline and surrender Netflix reliably operates microservices in the cloud at scale. But every lesson learned and solution developed over the last seven years was born out of pain for us and our customers. Even today we remain vigilant as we evolve our service architecture. For those just starting the microservices journey these lessons and solutions provide a blueprint for success.
In this talk we’ll explore the chaotic and vibrant world of microservices at Netflix. We’ll start with the basics - the anatomy of a microservice, the challenges around distributed systems, and the benefits realized when integrated operational practices and technical solutions are properly leveraged. Then we’ll build on that foundation exploring the cultural, architectural, and operational methods that lead to microservice mastery.
First steps into developing an application as a suite of small services, and analysis of tools and architecture approaches to be used.
Topics covered:
1) What is a micro service architecture
2)Advantages in code procedures, team dynamics and scaling
3) How container services such as docker assist in its implementation
4) How to deploy code in a micro services architecture
5) Container Management tools and resource efficiency (mesos, kubernetes, aws container service)
6) Scaling up
By PeoplePerHour team
presented by CTO Spyros Lambrinidis & Senior DevOps Panagiotis Moustafellos @ Docker Athens Meetup 18/02/2015
Developing applications with a microservice architecture (svcc)Chris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this talk we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as NodeJS and Spring Boot that you can use to implement micro-services.
Eduards Sizovs - Micro Service Architecture DevConFu
Eduards will talk about micro service architecture - approach to designing software when complex app is broken into tiny, cohesive services which are apps themselves. Anatomy of micro services will be covered with practical implementation advices in Java.
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Kai Wähner
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. Continuous Integration and Continuous Delivery automate deployments. This way you get shorter time to results and increased flexibility. Containers improve these even more offering a very lightweight and flexible deployment option.
In the middleware world, you use concepts and tools such as an Enterprise Service Bus (ESB), Complex Event Processing (CEP), Business Process Management (BPM) or API Gateways. Many people still think about complex, heavyweight central brokers here. However, Microservices and containers are relevant not just for custom self-developed applications, but they are also a key requirement to make the middleware world more flexible, agile and automated.
This session discusses the requirements, best practices and challenges for creating a good Microservices architecture in the middleware world. A live demo with the open source PaaS framework CloudFoundry shows how technologies and frameworks such as Java, SOAP / REST Web Services, Jenkins and Docker are used to create an agile software development lifecycle to realize “Middleware Microservices”. It also discusses other modern cloud-native alternatives such as Kubernetes, Docker, Mesos, Mesosphere or Amazon ECS / AWS.
Decomposing applications for deployability and scalability #springone2gx #s12gxChris Richardson
Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers.
In this talk we describe the limitations of a monolithic architecture. You will learn how to use the scale cube to decompose your application into a set of narrowly focused, independently deployable back-end services and an HTML 5 client. We will also discuss the role of technologies such as NodeJS and AMQP brokers. You will learn how a modern PaaS such as Cloud Foundry simplifies the development and deployment of this style of application.
Building a High-Performance Reactive Microservices ArchitectureCognizant
For digital IT organizations, employing a microservices architecture built on reactive principles is a viabke option to ensure responsive, reliable and scalable systems or applications. The Vert.x toolkit can be a key component of reactive microservices success.
An Overview of Designing Microservices Based Applications on AWS - March 2017...Amazon Web Services
Microservices are an architectural approach to decompose complex applications into smaller, independent services. AWS customers benefit from increased agility, simplified scalability, resiliency, and faster deployments by migrating from monoliths to microservices based architecture.
In this session, we will provide an overview of the benefits and challenges of microservices, and share best practices for architecting and deploying microservices on AWS. We will dive into different approaches you can take to run microservices applications at scale and explore how services like Amazon ECS, AWS Lambda, and AWS X-Ray make it simpler to design and maintain these applications.
Learning Objectives:
1. Understand the fundamentals of the microservices architectural approach
2. Learn best practices for designing microservices on AWS
3. Learn the basics of Amazon EC2 Container Service, AWS Lambda, and AWS X-Ray
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & ProvidersCisco DevNet
Get to know the latest Rest API's and their Capabilities for Intercloud Fabric Business & Provider Editions. Understand how these API's can be used to integrate ICF into your Business Applications and provide the advantages of a true Hybrid Cloud to your end-users.
Productivity Tips for Java EE and Spring DevelopersSimon Maple
In this live coding session, we’ll build a Java EE application using JBoss Forge, deploy it onto Wildfly and test it using Arquillian. All of this is possible while barely writing a line of code! We’ll also create a microservice using JBoss Swarm. If you’re more into Spring we’ll also show you how to create a Spring application from scratch, use Spring Boot and how you can rapidly develop you applications using JRebel. There will be a bunch of other tools and tips in this session, so if you want to write code like a pro, this is the session for you!
Cassandra as event sourced journal for big data analyticsAnirvan Chakraborty
Avoiding destructive updates and keeping history of data using event sourcing approaches has large advantages for data analytics. This talk describes how Cassandra can be used as event journal as part of CQRS/Lambda Architecture using event sourcing and further used for data mining and machine learning purposes in a big data pipeline.
All the principles are demonstrated on an application called Muvr that we built. It uses data from wearable devices such as accelerometer in a watch or heartbeat monitor to classify user's exercises in near real time. It uses mobile devices and clustered Akka actor framework to distribute computation and then stores events as immutable facts in journal backed by Cassandra. The data are then read by Apache Spark and used for more expensive analytics and machine learning tasks such as suggests improvements to user's exercise routine or improves machine learning models for better real time exercise classification that can be used immediately. The talk mentions some of the internals of Spark when working with Cassandra and focuses on its machine learning capabilities enabled by Cassandra. A lot of the analytics are done for each user individually so the whole pipeline must handle potentially large amount of concurrent users and a lot of raw data so we need to ensure attributes such as responsiveness, elasticity and resilience.
Scaling wix with microservices architecture jax london-2015Aviran Mordo
Many small startups build their systems on top of a traditional toolset. These systems are used because they facilitate easy development and fast progress, but many of them are monolithic and have limited scalability. As a startup grows, the team is confronted with the problem of how to evolve and scale the system.
WildFly AppServer - State of the Union
as presented at SoftShake Geneva, Oct 2015
http://soft-shake.ch/2015/en/
Covering the whole WildFly v8/9/10 series and the key aspects of the base AS7 architecture.
Apache Cassandra for Timeseries- and Graph-DataGuido Schmutz
Apache Cassandra has proven to be one of the best solutions for storing and retrieving data at high velocity and high volume.
In the first part of the talk we will discuss how the storage model of Cassandra is ideal for time series use cases, which are often of high velocity and high volume. Time series data is everywhere today: Internet of Things, sensor data, transactional data, social media streams. We go over examples of how to best build data models.
We will also cover pairing Apache Spark with Apache Cassandra to create a real time data analytics platform.
The second part of the talk will present Titan:db, an open source distributed graph database build on top of Cassandra that can power real-time applications with thousands of concurrent users over graphs with billions of edges. It exposes a property graph data model directly atop Cassandra which makes storing and querying relationship data fast, easy, and scalable to huge graphs. This talk demonstrates how Titan's features enable complex, multi-relational databases in Cassandra and discusses how Titan:db has been used in a customer case to store social network data.
The microservice architectural style is an approach to developing an application as a suite of small services that each can be independently developed and deployed. In this talk, we will cover the pros and cons of microservices, including contrasting them with the more traditional 'monolithic' application. We will also dive into the most common mechanism used to expose the functionality of a microservice. REST is an architecture style for building scalable web services. You've at least heard of it, you may have contributed to or even created 'RESTful' applications, but are you familiar with the basic constraints that make up REST? We'll cover the theory behind REST before diving into pragmatic implementation styles and better practices.
Beyond Software Craftsmanship - Johnny's Road to Remarkable CareerEduards Sizovs
Meet Johnny - a full-stack Java developer with 5+ years of experience under the belt, M.Sc degree and 'get sh%t done fast' mentality. Although Johnny possesses exceptional technical skills, Milton - his manager, doesn't promote him, no matter how hard Johnny tried and how many late nights he has spent polishing his coding skills. Unfortunately, there is something important that Johnny doesn't understand. Something that stops him from becoming successful. Together with Johnny, you will walk the thorny road to his remarkable career as a Chief Software Architect. The road full of struggles, discoveries and actions that may or will influence your professional life.
WildFly Swarm: Criando Microservices com Java EE 7George Gastaldi
Apresentado no TDC 2016 - Florianópolis
Microservices é a arquitetura do momento. Todos estão falando sobre Spring Boot, NodeJS, DropWizard e outros frameworks, mas nenhum deles é tão completa quanto a oferecida pela especificação Java EE. Nesta sessão live-coding você vai aprender sobre o WildFly Swarm, e como transformar um projeto Java EE 7 qualquer em um microservice.
Um agile Entwicklung sinnvoll in einem Projekt zu ermöglichen, spielt die Architektur des Systems eine entscheidende Rolle. In einem agilen Projekt sind Architektureigenschaften wie Installierbarkeit und Prüfbarkeit entscheidend, da die Software in kurzen Abständen regelmäßig geliefert und im besten Fall dem Endnutzer zur Verfügung gestellt wird. Diese kurzen Releasezyklen gelingen nur durch ein hohes Maß an Automatisierung. Agile Projekte benötigen bereits passende Lösungsansätze in der Architektur, die es erlauben eine Continous Delivery Pipeline möglichst einfach zu realisieren; das Architekturmuster „Microservices“ versucht u.A. diesen Anforderungen gerecht zu werden.
Weitere Vorteile des Architekturmusters ergeben sich bei der Skalierung von Projekten. Durch den Einsatz von „Microservices“ können Projekte einfach aufgeteilt und parallel von mehreren Cross-Functional Teams mit agilen Methoden umgesetzt werden.
Die Idee eines Microservice ist nicht neu: das System wird in kleine, losgelöste Anwendungen (sog. Microservices) aufgeteilt. Diese Bausteine stellen Ihre Funktionalität als Service zur Verfügung. Der Vortrag gibt einen Praxiseinblick, auf welche Weise man vom Einsatz des Architekturmusters „Microservice“ in einem agilen Projektumfeld profitieren kann. Es wird aufgezeigt, wo sich in der Praxis Schwierigkeiten ergeben und wie man diesen vorbeugen kann. Der gesamte Vortrag gibt einen grundlegenden Einblick in die agile Entwicklung auf Basis einer Microservice-Architektur.
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...Lucas Jellema
Agility is the objective. A goal hard to achieve given the fairly long and complex procedures to get changes introduced into running software. This presentation discusses mechanisms in Oracle Fusion Middleware that allow a substantial part of the lookk and feel as well as the behavior of software components to be defined through meta data that can be edited at run time in a WYSIWYG fashion. This mechanism is called Design Time at Run Time and caters for advanced levels of agility - provided organizations organize the appropriate processes around the software.
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...Lucas Jellema
Agility is about ability to adapt. Enterprises need to quickly respond to changing circumstances and requirements. Agility is a state of mind (“embrace change”) that must be supported by process and technology. This session will demonstrate how Fusion Middleware provides a substantial dose of instant agility through its design time @ run time facilities. Application Management evolves into Application Composition as BPM and SOA Suite applications allow run time editing of business logic, human tasks and process definitions. Likewise, ADF applications, especially when integrated with UCM and WebCenter, support run time editing of content, page composition and even security, data sources and visualizations - even customized per user group.
To View this webinar replay:
http://ecast.opensystemsmedia.com/316
As Operational Technologies (OT) like embedded devices, control and monitoring systems are increasingly integrated with Information Technology (IT) systems running in the back office, interaction patterns between systems are becoming more complex and diverse. Publish-Subscribe is the most commonly used messaging pattern for OT systems. It provides the real-time information access, scalability, and loose coupling required for integration of these types of systems. IT and OT integration, however, commonly requires messaging patterns that provide stronger end-to-end properties, such as Guaranteed Delivery, Request-Reply, and (load-balancing) Queues. RTI is greatly enhancing its infrastructure software with new messaging patterns that combine the performance, scalability, and reliability needed by OT systems with the integration and flexible messaging capabilities of IT systems.
Building Rich, Interactive E-commerce Applications Using ASP.NET and Silverlightgoodfriday
Come get a sneak preview of the direction that Microsoft is taking for building Rich Interactive applications. In this session, we focus on e-commerce scenarios enabling developer and designers to create easily extensible and customizable applications that use .NET and Silverlight. See some of the initial concepts currently being developed and find out how you can be part of the community that shapes future extensions to ASP.NET.
Selling Stuff on the Web in Style with Microsoft Commerce Servergoodfriday
See how to create a themed, enterprise ready, e-commerce storefront capable of handling the largest of transactional retail scenarios. Learn how to get the Microsoft Commerce Server 2007 Starter Site running and skinned with Microsoft Expression Web, and how to leverage several underlying capabilities via ASP.NET 2.0. Learn about how to deploy, integrate, and manage the site, and find out what the future holds for the evolution of e-commerce technologies for the Microsoft platform.
Enterprise Integration of Disruptive TechnologiesDataWorks Summit
This talk will detail the HSBC Big Data journey to date walking through the genesis of the Big Data initiative which was triggered by continual challenges in delivering data driven products. The global scale, diversity and legacy of an organization like HSBC presents challenges for Hadoop adoption not typically faced by younger companies. Big Data technologies are by their very nature disruptive to the established Enterprise IT environment. Hadoop and the peripheral toolsets in the big data ecosystem do not fit comfortably into an Enterprise Data Centre, IT Operational processes and can even prove disruptive to current organization structures. Alasdair will focus on the steps that HSBC has taken to mitigate concerns about Hadoop and raise awareness of the game changing benefits a successful adoption of the technology will bring. HSBC have taken an innovative approach to proving out the value of the technology engaging developers with a brakes off opportunity to use the platform and by placing Hadoop in a competitive scenario with traditional technologies. The Hadoop journey in HSBC was initiated in Scotland, blessed in London and proved out in China.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
6. Or how we designed and nearly built a Resource Oriented, Event
Driven System out of applications about 1000 lines long…
WHAT I DID LAST SUMMER
7. In the beginning…
• There was a new product being developed
by an organisation in London
• The organisation had gathered their list of
high level requirements
• And they asked ThoughtWorks if we could
help them design and build it…
8. So we took a look at their
requirements
• Me and my mates at ThoughtWorks
• Worked out to be about 5000 points worth
of User Stories
– At 7 points per pair of developers per week
9. Com lete
p
Half way
t hrough
0
Heat
o en
p ed En day
d Cows hell
p fly
igs death of
the b x
o 1 co e
m freezes
the
ho e
m
Universe
10. Tip 1
Divide and conquer
Start on the outside and model
business capabilities
11. Product Product Product Product
Real Time and Mobile CMS Ecommerce Demo External
Analytics Batch Interfaces Site Reporting
Product
3rd party Gateway SMS Gateway
Product Product Product Product
Config Call Centre Marketing Reporting
Application Application Application Application
Account
A / E Services Config Services Services User Services Product Data
User / Role Product
Product / static Catalog
Repository Raw Txn Store Account Store Member Store Repository
Product / static Catalog
Access and Entitlement Product / static Catalog
Config and
Batch Lifecyle Metadata Product Reporting
services servces Rules Engine Services
Batch Interface
Rules Config
Config / Application Reporting
metadata store Rules store datastore
Metadata Rules Engine Reporting Services
Each small box represents a capability,
composed of one or more services
12. • The only way we could hit anything like the
timescales required was to scale the
programme quickly
• And that meant multiple teams in multiple
workstreams
14. Product Product Product Product
Real Time and Mobile CMS Ecommerce Demo External
Analytics Batch Interfaces Site Reporting
Product
3rd party Gateway SMS Gateway
Product Product Product Product
Config Call Centre Marketing Reporting
Application Application Application Application
Account
A / E Services Config Services Services User Services Product Data
User / Role Product
Product / static Catalog
Repository Raw Txn Store Account Store Member Store Repository
Product / static Catalog
Access and Entitlement Product / static Catalog
Config and
Batch Lifecyle Metadata Product Reporting
services servces Rules Engine Services
Batch Interface
Rules Config
Config / Application Reporting
metadata store Rules store datastore
Metadata Rules Engine Reporting Services
This Had to handle 1000TPS with a 99th percentile latency of < 2 seconds
bit
15. Product Product Product Product
Real Time and Mobile CMS Ecommerce Demo External
Analytics Batch Interfaces Site Reporting
Product
3rd party Gateway SMS Gateway
Product Product Product Product
Config Call Centre Marketing Reporting
Application Application Application Application
Account
A / E Services Config Services Services User Services Product Data
User / Role Product
Product / static Catalog
Repository Raw Txn Store Account Store Member Store Repository
Product / static Catalog
Access and Entitlement Product / static Catalog
Config and
Batch Lifecyle Metadata Product Reporting
services servces Rules Engine Services
Batch Interface
Rules Config
Config / Application Reporting
metadata store Rules store datastore
Metadata Rules Engine Reporting Services
Support a user base of 100 million active customers
This
bit
16. Product Product Product Product
Real Time and Mobile CMS Ecommerce Demo External
Analytics Batch Interfaces Site Reporting
Product
3rd party Gateway SMS Gateway
Product Product Product Product
Config Call Centre Marketing Reporting
Application Application Application Application
Account
A / E Services Config Services Services User Services Product Data
User / Role Product
Product / static Catalog
Repository Raw Txn Store Account Store Member Store Repository
Product / static Catalog
Access and Entitlement Product / static Catalog
Config and
Batch Lifecyle Metadata Product Reporting
services servces Rules Engine Services
Batch Interface
Rules Config
Config / Application Reporting
metadata store Rules store datastore
Metadata Rules Engine Reporting Services
This Needed to support bulk loads of 30 – 90 million records nightly
(and keep them for six months)
bit
18. Finally, this is a product build.
So it needed to be modular /
<cough> “infinitely configurable”
And deployable on Cloud and Tin
19. The product need to to be…
• Performance
– fairly high throughput both transactional and batch
• Fault tolerant
– One thing about the cloud, you are designing for failure right?
• Configurable
– On a per install or PaaS basis
• Portable
– Fortunately not to Windows…
• Maintainable
– over multiple versions and years
• Supporting big data sets
– Billions of transactions available
– Millions of customers available
and capable of being built quickly without sacrificing the other principles
20. Plus ça change, plus c'est la même chose.
(The more things change the more they stay the same)
21. So, after five weeks we had broken the problem down into capabilties
Now we had to start scaling the teams to deliver these capabilities
22. Tip 2
Use Conway’s Law to structure teams
“…organizations which design systems … are constrained to produce designs
which are copies of the communication structure of those organizations”
Melvin Conway, 1968
23. The first business capability - Users
• Responsible for creation and maintenance of
users in the system
– Up to 100 million of them per instance of the product
• Used by many clients with many usage patterns
– Call centre and website – CRUD
– Inbound batch files – CRUD x hundreds of thousands
per night
• Many downstream consumers of the data
– Fulfilment systems for example
24. Tip 3
The Last Responsible Moment
Don’t decide everything at the point you know least
25. We started with a business process…
Notify
Batch
External
Enrolment
System Results File
Invalid
File
Notify Sys
Batch Failed
Admin
Apply rules
Batch File
a
Send Letter
file User
received Validate file Validate Line Created
structure Item Create User
Link Account
Send results
file
Invalid
User Notify Sys
Admin
and noticed something funny…
26. Batch User Fulfilment Account
monitoring Monitoring Monitoring Monitoring
Monitoring
Events
Services
Batch
Event Fulfilment
User
Event
Collection
Triggering Triggering
Triggering Triggering Triggering Triggering Triggering
Batch Bank
Triggering Fulfilment
Processing Member Account
Rules Engine Service
Service Service Service
Bank
File Structure Address Rules Engine fulfilment
Account
Validation Validation
Creation
Ad-hoc
Users
Results File User Bank fulfilment
Creation Validation Rules store
Account Store
User Email
Batch Store Creation
User Store
27. I know what you are thinking…
*
* Dan North coined the term Enterprise Night Bus…
31. /user-request
application/atom+json
/user-request/1223
Event Event
queue store
Queue
processing
engine
User User
Service store
Users Capability
/users/142 application/vnd.user+JSON
/users
and this is what we built
32. /user-request
application/atom+json
/user-request/1223
Standard resource representations using well known web
standards – atom+json Event Event
queue store
Queue
processing
engine
User User
Service store
Users Capability
/users/142 application/vnd.user+JSON
/users
33. /user-request
application/atom+json
/user-request/1223
Reified the request to create a user. Clients POST a request
to create a user as an entry Eventan atom collection.
to Event
queue store
Queue
processing
engine
User User
Service store
Users Capability
/users/142 application/vnd.user+JSON
/users
34. Tip 5
If something is important, make it an
explicit part of your design
Reify
to convert into or regard as a concrete thing: to reify a
concept.
35. /user-request
application/atom+json
/user-request/1223
Event Event
queue store
Event queue has the single responsibility of managing state
Queue
processing
transitions for the request to create a user
engine
User User
Service store
Users Capability
/users/142 application/vnd.user+JSON
/users
36. /user-request
application/atom+json
/user-request/1223
Event Event
queue store
Queue
processing
engine
User User
Service store
Users Capability
Queue Processing Engine implemented the Competing
Consumer pattern using Conditional GET, PUT and Etags
/users/142 application/vnd.user+JSON
against the atom collection exposed by the event queue
/users
37. /user-request
application/atom+json
/user-request/1223
Event Event
queue store
Queue
processing
engine
User User
Service store
Users Capability
User Service and store is the system of record for users
/users/142 application/vnd.user+JSON
/users
38. /user-request
application/atom+json
/user-request/1223
Event Event
queue store
Queue
After creation, representations of Users are available at
processing
engine
canonical locations in well defined formats and creation
events added to another atom collection
User
Service
User
store
Users Capability
/users/142 application/vnd.user+JSON
/users
39. Where they are available for consumption
by other downstream systems
40. Batch
monitoring
User
Monitoring
Fulfilment
Monitoring
Account
Monitoring Monitoring
Monitoring
Services
Batch
Event Fulfilment
User
Event
Collection
Triggering Triggering
Triggering Triggering Triggering Triggering Triggering
Batch Bank
Triggering Fulfilment
Processing Member Account
Rules Engine Service
Service Service Service
Bank
File Structure Address Rules Engine fulfilment
Account
Validation Validation
Creation
Ad-hoc
Users
Results File User Bank fulfilment
Creation Validation Rules store
Account Store
User Email
Batch Store Creation
Fulfilment
User Store
41. Our micro-services
• User Request Queue
– Forms the transactional boundary of the system
• Request Queue Processor
– Competing Consumer processes events on the
queue and POSTs them to
• User Service
– System of record for Users in the system
– Responsible for all state changes of those users
– Exposes events on those users to other systems
43. Small with a single responsibility
• Each application only does one thing
• Small enough to fit in your head
– James’ heuristic
– “If a class is bigger than my head then it is too
big”
• Small enough that you can throw them away
– Rewrite over Maintain
44. Containerless and installed as well
behaved Unix services
• Embedded web container
– Jetty / SimpleMind
– This has a lot of benefits for testing (inproctester for
example) and eases deployment
• Packaged as a single executable jar
– Along with their configuration
– And unix standard rc.d scripts
• Installed in the same way you would install httpd or
any other application
– Why recreate the wheel? Daemons seem to work ok for
everything else. Unless you are *special*?
45. Located in different VCS roots
• Each application is completely separate
• Software developers see similarities and abstractions
– And before you know it you have One Domain To Rule Them All
• Domain Driven Design / Conways Law
– Domains in different bounded contexts should be distinct – and its ok to
have duplication
– Use physical separation to enforce this
• There will be common code, but it should be library and
infrastructure code
– Treat it as you would any other open source library
– Stick it in a nexus repo somewhere and treat it as a binary dependency
46. Provisioned automatically
• The way to manage the complexity of
many small applications is declarative
provisioning
– UAT:
• 2 * service A, Load Balanced, Auto-Scaled
• 2 * service B, Load Balanced, Auto-Scaled
• 1 * database cluster
47. Status aware and auto-scaling
• What good is competing consumer if you only
have one consumer?
– We don’t want to wake Peter up at three in the
morning any more to start a new process
• Use watchdog processes to monitor in-app
status pages
– Each app exposes metrics about itself
– In our case, queue-depth for example
– This allows others services to auto-scale to meet
throughput requirements
48. A single capability composed of
many small applications and
exposing a uniform interface of Atom
Collections
50. They interact via the uniform
interface
• HTTP
– Don’t fight the battles already won
– Use no-brainer force multipliers like reverse proxies
• HATEOS
– Link relations drive state changes
– Its an anti-corruption layer that allows the capability to
evolve independently of its clients
• Standard media types
– Can be used by many different clients
– You can monitor it using a feed reader if you want…
51. atom+json / HTTP (AJOH)
Monitoring Reporting
Capability Capability
(AJOH) (AJOH)
atom+XML / HTTP
User Fulfilment
Capability Capability
(AJOH)
Capabilities poll waiting(AJOH)
for events that they know how to deal
(AJOH)
with. Forming an eventually consistent system
Inbound Batch Call Centre
External
Suppliers
55. atom+json / HTTP (AJOH)
Monitoring Reporting
Capability Capability
(AJOH) (AJOH)
atom+XML / HTTP
Each developed by a separate team,
using whatever tech they choose
User Fulfilment
Capability Capability
(AJOH)
(AJOH) (AJOH)
Inbound Batch Call Centre
External
Suppliers
56. Our stack
• Embedded Jetty (current project uses SimpleWeb)
• PicoContainer for DI
• Hibernate (but wrote our own SQL)
• Abdera for Atom
• Smoothie charts
• Metrics @codehass
• Graphite
57. Infrastructure automation stack
• Fabric with boto
• AWS, but deployable to anything with SSH
• Maven (boo)
• Git
• Puppet for provisioning
59. This stuff is hard
• We haven’t even talked about
– Versioning
– Integration
– Testing
– Deployment
• Eventual Consistency can be tricky for people to get
there head around
• Developers like using enterprisy software
– No one got fired for choosing an ESB
– Convincing people to use the web is hard
62. Consistent and reinforcing practices
Hexagonal Business capabilities composed of:
Micro Services that you can
Rewrite rather than maintain and which form
A Distributed Bounded Context.
Deployed as containerless OS services
With standardised application protocols and message semantics
Which are auto-scaling and designed for failure