Just over a year ago (before becoming the full time chair and advocate of QCon London, San Francisco, and New York), my main role was with HPE as the principal architect for a client in the US public sector.
The systems we supported were responsible for personnel information, scholarships decisions, and record management. Like so many others, we were also faced with legacy applications, COTS product integrations, polyglot code bases, and often brittle deployments. In an effort to decouple code bases and address some of these issues, we started advocating for a Microservice architecture and trying to distinguish it from the SOA practices of the past.
Now, it’s a year later. I have had the incredible opportunity to have access to architects, engineers, and leaders from some of the world’s more respected software companies. These are companies like Uber, Microsoft, Netflix, Apple, Google, Slack, Pinterest, and Etsy. I’ve had the chance to have one-on-one discussions with Chief Architects, developers, and engineers building the apps I most admire and use every day (some leveraging Microservices, some embracing Monoliths, and others falling somewhere in between).
Patterns & Practices of Microservices is some of the things I wish I knew before beginning a push towards Microservices just over a year ago. It’s the practices of companies leveraging Microservices, it’s the technology tradeoffs when deciding between Monoliths and Microservices, and it’s the advice I’ve heard in interviewing, podcasting, and iterating on presentations from software giants like Adrian Cockcroft, Matt Ranney, Josh Evans, Martin Thompson, and literally hundreds of other engineers who drop knowledge at QCons around the world.
Patterns & Practices for Cloud-based MicroservicesC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2cSK2H0.
Rachel Reese talks about the lessons she has learned at Jet.com on their way to developing the platform and how they’ve schooled themselves on what works and what doesn't for F# and microservices. Filmed at qconnewyork.com.
Rachel Reese is a long-time software engineer and math geek. She currently helps run the Nashville F# User group, NashFSharp, and previously ran the Burlington, VT functional programming user group, VTFun. She's also an ASPInsider, an F# MVP, a community enthusiast, one of the founding lambdaladies, and a Rachii.
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.
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.
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?
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
Keynote at Dockercon Europe Amsterdam Dec 4th, 2014.
Speeding up development with Docker.
Summary of some interesting web scale microservice architectures.
Please send me updates and corrections to the architecture summaries @adrianco
Thanks Adrian
Patterns & Practices for Cloud-based MicroservicesC4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2cSK2H0.
Rachel Reese talks about the lessons she has learned at Jet.com on their way to developing the platform and how they’ve schooled themselves on what works and what doesn't for F# and microservices. Filmed at qconnewyork.com.
Rachel Reese is a long-time software engineer and math geek. She currently helps run the Nashville F# User group, NashFSharp, and previously ran the Burlington, VT functional programming user group, VTFun. She's also an ASPInsider, an F# MVP, a community enthusiast, one of the founding lambdaladies, and a Rachii.
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.
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.
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?
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
Keynote at Dockercon Europe Amsterdam Dec 4th, 2014.
Speeding up development with Docker.
Summary of some interesting web scale microservice architectures.
Please send me updates and corrections to the architecture summaries @adrianco
Thanks Adrian
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.
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
Saturn 2018: Managing data consistency in a microservice architecture using S...Chris Richardson
A revised and extended version that I gave at Saturn 2018.
The services in a microservice architecture must be loosely coupled and so cannot share database tables. What’s more, two phase commit (a.k.a. a distributed transaction) is not a viable option for modern applications. Consequently, a microservices application must use the Saga pattern, which maintains data consistency using a series of local transactions.
In this presentation, you will learn how sagas work and how they differ from traditional transactions. We describe how to use sagas to develop business logic in a microservices application. You will learn effective techniques for orchestrating sagas and how to use messaging for reliability. We will describe the design of a saga framework for Java and show a sample application.
From a monolith to microservices + REST: The evolution of LinkedIn's architec...Karan Parikh
This is the story of LinkedIn's journey from a monolithic web application to a microservice based architecture, some of the challenges they faced along the way, and the tools they built to make this transition possible, including the Rest.li and Deco frameworks.
Traditionally, computer hardware was a scarce, expensive resource. Running performance tests often meant scavenging for machines around the office. Today, however, things are different. With Amazon’s EC2, a cluster of servers is now just a web service call away.
In this presentation you will learn about design and implementation of Cloud Tools, which are a Groovy-based framework for deploying and testing Java EE applications on EC2. This framework provides a simple (internal) DSL for configuring a cluster (database + web container + apache), deploying a web application, and running performance tests using JMeter. You will learn about capabilities of EC2 and how to use it for development and deployment. We describe how we use Amazon S3 to work around EC2's lack of a persistent file system and avoid time-consuming uploads of WAR files. You will also learn how Groovy helped and hindered with the development of the Cloud Tools.
Building microservices with Scala, functional domain models and Spring Boot (...Chris Richardson
In this talk you will learn about a modern way of designing applications that’s very different from the traditional approach of building monolithic applications that persist mutable domain objects in a relational database.We will talk about the microservice architecture, it’s benefits and drawbacks and how Spring Boot can help. You will learn about implementing business logic using functional, immutable domain models written in Scala. We will describe event sourcing and how it’s an extremely useful persistence mechanism for persisting functional domain objects in a microservices architecture.
Developing event-driven microservices with event sourcing and CQRS (phillyete)Chris Richardson
Modern, cloud-native applications typically use a microservices architecture in conjunction with NoSQL and/or sharded relational databases. However, in order to successfully use this approach you need to solve some distributed data management problems including how to maintain consistency between multiple databases without using 2PC. In this talk you will learn more about these issues and how to solve them by using an event-driven architecture. We will describe how event sourcing and Command Query Responsibility Separation (CQRS) are a great way to realize an event-driven architecture. You will learn about a simple yet powerful approach for building, modern, scalable applications.
Session 3962: Docking DevOps was originally presented at IBM InterConnect 2015 Feb. 22 - 26, 2016.
The presentation explores the values of Docker and containers and provides insight into areas that IBM has embraced the use of Docker within it's cloud strategy.
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.
Microservices: Decomposing Applications for Deployability and Scalability (ja...Chris 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 services. We will also discuss how an event-based approach addresses the key challenges of developing applications with this architecture.
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.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Join SOA thought leader and Microservices Expo editor Jason Bloomberg for an insightful look into the nature of microservices architecture. For it to be SOA -- let alone SOA done right -- we need to pin down just what "SOA done wrong" might be. First-generation SOA with Web Services and ESBs, perhaps?
But then there's second-generation, REST-based SOA. More lightweight and cloud-friendly, but many REST-based SOA practices predate the microservices wave.
Today, microservices and containers go hand in hand -- only the details of "container-oriented architecture" are largely on the drawing board -- and are not likely to look much like SOA in any case.
Transformacion e innovacion digital Meetup - Application Modernization and Mi...José Román Martín Gil
Slides from my talk at Transformation Digital Meetup in Valencia about Application Modernization and Migration, a journey to the cloud.
Event: https://www.meetup.com/es-ES/transformacion-e-innovacion-digital/events/251042790/
5 must-have patterns for your microservice - buildstuffAli Kheyrollahi
"Netflix is actually a log generating application that just happens to stream movies"
Building a service/Microservice is itself easy. Scaling it on the cloud is not that hard either but operating, maintaining and iterating a production large scale service is not just about linearisation. As Cockcroft points out, telemetry and monitoring is the most important aspect of building Microservices
We discuss 5 patterns that any serious Microservice should have:
- Canary (an endpoint reporting health of underlying dependencies)
- IO monitor (measuring all calls from Microservice to external dependencies)
- A circuit breaker
- An ActivityId-Propagator
- An exception and short timeout retry policy
Apart from the Microservice buzzword, there is a saddening lack of understanding of what a successful Microservice architecture requires in terms of monitoring and telemetry. MTR in case of a Microservice can be much more than a monolith if these 5 patterns are not in place.
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.
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
Saturn 2018: Managing data consistency in a microservice architecture using S...Chris Richardson
A revised and extended version that I gave at Saturn 2018.
The services in a microservice architecture must be loosely coupled and so cannot share database tables. What’s more, two phase commit (a.k.a. a distributed transaction) is not a viable option for modern applications. Consequently, a microservices application must use the Saga pattern, which maintains data consistency using a series of local transactions.
In this presentation, you will learn how sagas work and how they differ from traditional transactions. We describe how to use sagas to develop business logic in a microservices application. You will learn effective techniques for orchestrating sagas and how to use messaging for reliability. We will describe the design of a saga framework for Java and show a sample application.
From a monolith to microservices + REST: The evolution of LinkedIn's architec...Karan Parikh
This is the story of LinkedIn's journey from a monolithic web application to a microservice based architecture, some of the challenges they faced along the way, and the tools they built to make this transition possible, including the Rest.li and Deco frameworks.
Traditionally, computer hardware was a scarce, expensive resource. Running performance tests often meant scavenging for machines around the office. Today, however, things are different. With Amazon’s EC2, a cluster of servers is now just a web service call away.
In this presentation you will learn about design and implementation of Cloud Tools, which are a Groovy-based framework for deploying and testing Java EE applications on EC2. This framework provides a simple (internal) DSL for configuring a cluster (database + web container + apache), deploying a web application, and running performance tests using JMeter. You will learn about capabilities of EC2 and how to use it for development and deployment. We describe how we use Amazon S3 to work around EC2's lack of a persistent file system and avoid time-consuming uploads of WAR files. You will also learn how Groovy helped and hindered with the development of the Cloud Tools.
Building microservices with Scala, functional domain models and Spring Boot (...Chris Richardson
In this talk you will learn about a modern way of designing applications that’s very different from the traditional approach of building monolithic applications that persist mutable domain objects in a relational database.We will talk about the microservice architecture, it’s benefits and drawbacks and how Spring Boot can help. You will learn about implementing business logic using functional, immutable domain models written in Scala. We will describe event sourcing and how it’s an extremely useful persistence mechanism for persisting functional domain objects in a microservices architecture.
Developing event-driven microservices with event sourcing and CQRS (phillyete)Chris Richardson
Modern, cloud-native applications typically use a microservices architecture in conjunction with NoSQL and/or sharded relational databases. However, in order to successfully use this approach you need to solve some distributed data management problems including how to maintain consistency between multiple databases without using 2PC. In this talk you will learn more about these issues and how to solve them by using an event-driven architecture. We will describe how event sourcing and Command Query Responsibility Separation (CQRS) are a great way to realize an event-driven architecture. You will learn about a simple yet powerful approach for building, modern, scalable applications.
Session 3962: Docking DevOps was originally presented at IBM InterConnect 2015 Feb. 22 - 26, 2016.
The presentation explores the values of Docker and containers and provides insight into areas that IBM has embraced the use of Docker within it's cloud strategy.
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.
Microservices: Decomposing Applications for Deployability and Scalability (ja...Chris 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 services. We will also discuss how an event-based approach addresses the key challenges of developing applications with this architecture.
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.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Join SOA thought leader and Microservices Expo editor Jason Bloomberg for an insightful look into the nature of microservices architecture. For it to be SOA -- let alone SOA done right -- we need to pin down just what "SOA done wrong" might be. First-generation SOA with Web Services and ESBs, perhaps?
But then there's second-generation, REST-based SOA. More lightweight and cloud-friendly, but many REST-based SOA practices predate the microservices wave.
Today, microservices and containers go hand in hand -- only the details of "container-oriented architecture" are largely on the drawing board -- and are not likely to look much like SOA in any case.
Transformacion e innovacion digital Meetup - Application Modernization and Mi...José Román Martín Gil
Slides from my talk at Transformation Digital Meetup in Valencia about Application Modernization and Migration, a journey to the cloud.
Event: https://www.meetup.com/es-ES/transformacion-e-innovacion-digital/events/251042790/
5 must-have patterns for your microservice - buildstuffAli Kheyrollahi
"Netflix is actually a log generating application that just happens to stream movies"
Building a service/Microservice is itself easy. Scaling it on the cloud is not that hard either but operating, maintaining and iterating a production large scale service is not just about linearisation. As Cockcroft points out, telemetry and monitoring is the most important aspect of building Microservices
We discuss 5 patterns that any serious Microservice should have:
- Canary (an endpoint reporting health of underlying dependencies)
- IO monitor (measuring all calls from Microservice to external dependencies)
- A circuit breaker
- An ActivityId-Propagator
- An exception and short timeout retry policy
Apart from the Microservice buzzword, there is a saddening lack of understanding of what a successful Microservice architecture requires in terms of monitoring and telemetry. MTR in case of a Microservice can be much more than a monolith if these 5 patterns are not in place.
Service Fabric – building tomorrows applications todayBizTalk360
This session walks through incorporating Microsoft Service Fabric into your next application for zero downtime and upgradability. Microsoft have released the very same Azure Fabric smarts that look after for e.g. Azure VM management, into the Application space. Meaning your Apps can be based on the Actor model, highly distributed, scalable and in place upgrades with zero down time is now possible. Tapping into scale is key in this world of Cloud First, Device First world - can your apps handle the load? Bring the management of Azure to your application layer.
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?João Pedro Martins
Session presented at DDD event in TVP/Microsoft UK HQ. Introduction to Azure Service Fabric, and focus on the actor model (formerly known as Project Orleans), with demos and documentation on how it is supported in Service Fabric. Goal: ask ourselves why did we really replace OO with "stateless services".
Devteach 2016: A practical overview of actors in service fabricBrisebois
Today's Internet-scale services are built using microservices. Service Fabric is a next-generation middleware platform used for building enterprise-class, Tier-1 services. This microservices platform allows us to build scalable, highly available, reliable, and easy to manage solutions. It addresses the significant challenges in developing and managing stateful services. The Reliable Actors API is one of two high-level frameworks provided by Service Fabric, and it is based on the Actor pattern. This API gives us an asynchronous, single-threaded programming model that simplifies our code while still providing the advantages of scalability and reliability guarantees offered by Service Fabric.In this talk, we will run through the what, when and how of various aspects of Service Fabric and Reliable Actors. If time permits, we'll delve into advantages, strategies, patterns and practices that can help you deliver value without reducing your agility.
Journey of ASOS to migrate legacy ball of mud / monolith to Microservice Architecture. Also review of our Logging Monitoring Alerting (LMA) framework .
Reduce Risk with End to End Monitoring of Middleware-based ApplicationsSL Corporation
Kafka communicates within a larger complex and evolving environment. The current modular approach to the integration means that the structure of the software stack is much more dynamic than in the past and operators no longer have the time to become intimate with how dependent components interact. The number of dependencies combined with lack of familiarity can create significant risks to the business including increased outages and longer time to resolve incidents. Both can result in loss of revenue and customers.
These risks are significantly reduced by applying best-practice monitoring. Monitoring can provide a complete end-to-end view of the touch points within the application flow, so they are presented in comprehensive service-based views. This provides the user with a true single-pane of glass for monitoring and alerting for Kafka and its dependent technologies.
Amazon EKS 그리고 Service Mesh
Kubernetes는 컨테이너 서비스를 도입하는 기업들에게 가장 있기있는 Orchestration 플랫폼입니다. 이 세션에서는 아마존에서 6월 정식 출시한 managed Kubenetes서비스인 EKS를 소개해드리며, 오픈소스 버전과의 차이점 및 장점 등에 대해 설명하고, 진보한 마이크로 서비스인 Service Mesh를 구현하는 Linkerd 소개 및 데모를 진행하고자 합니다.
Managing Software from Development to Deployment in the CloudCloudBees
CloudBees' Harpreet Singh and Vivek Panday give an introduction to managing and deploying Java applications in the cloud. The presentation covers...
- What’s the cloud and what's a PaaS?
- Criteria choosing a PaaS
- Demonstration of taking applications to the PaaS
- PaaS services available today
11 Ways Microservices & Dynamic Clouds Break Your MonitoringAbner Germanow
Every software team has its moments of truth. How does this impact the way agile developers, site reliability engineers, and IT operations teams work together? We'll break down the intricacies of modern monitoring and show you what to look for, particularly when monitoring microservices and dynamic clouds. With examples from New Relic customers, you'll learn what to look out for when preparing to conquer your digital moments of truth, master microservices, using cloud services for autoscaling, and getting your teams to work together. I also added a quick bit on quickly evaluating the security of a cloud service provider before you engage your infosec team.
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Lightbend
**Featuring Aaron Williams, Head of Advocacy at Mesosphere, Inc. and Markus Eisele, Developer Advocate at Lightbend, Inc.**
The traditional architecture that enterprises run their businesses on has typically been delivered as monolithic applications running in a virtualized, on-premise infrastructure. Public and private cloud technologies have changed everything, but if the applications are not designed, or re-designed, appropriately, then it is impossible to take advantage of the advances in both distributed application services and hybrid infrastructure. Consequently, enterprise architects are looking to microservices-based architectures as a means to modernize their legacy applications.
This webinar with Lightbend and partner Mesosphere will introduce a new framework specifically designed to help developers modernize legacy Java EE applications into systems of microservices and then discuss exactly what is required to run these distributed systems at enterprise scale.
Running Microservices on Amazon ECS - AWS April 2016 Webinar SeriesAmazon Web Services
Running and managing large scale applications with microservices architectures is hard and often requires operating complex container management infrastructure. Amazon EC2 Container Service (ECS) is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run applications on a managed cluster of Amazon EC2 instances.
In this webinar, we will walk through a number of patterns used by our customers to run their microservices platforms. We will dive deep into some of the challenges of running microservices and we’ll see how Amazon ECS can help address them.
Learning Objectives:
• Understand the basics of Amazon ECS
• How to run and manage microservices using Amazon ECS
This talk provides an architecture overview of data-centric microservices illustrated with an example application. The following Microservices concepts are illustrated - domain driven design, event-driven services, Saga transactions, Application tracing and Health monitoring with different microservices using a variety of data types supported in the database - business data, documents, spatial, graph, and events. A running example of a mobile food delivery application (called GrubDash) is used, with a hands-on-lab that is available for attendees to work through on the Oracle Cloud after these sessions. The rest of the talks will build upon this Microservices architecture framework.
This session provides an overview of how organizations can migrate workloads to the AWS cloud at scale. We will go through available migration frameworks and best practices with common use case examples during this session. After migrating the initial workloads, understand how to migrate at scale to the AWS cloud. Hear about real life experiences from the AWS Professional Services team and learn about common use case examples, frameworks, and best practices. Hear about what to avoid when migrating applications at scale to AWS and understand the tools and partner services that can assist you when migrating applications to AWS.
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023VMware Tanzu
Event Slides: Simplify and Scale Enterprise Spring Apps in the Cloud
Date: March 23, 2023
Speakers:
Adib Saikali, Principal Solutions Engineer, VMware Tanzu
Asir Selvasingh, Principal Architect, Java on Azure, Microsoft
Christian's part of the AWS re:Invent 2015 talk shared with Sajee Mathew - ARC304 - Designing for SaaS: Next Generation Software Delivery Models on AWS. Full video of the 60 minute presentation: https://www.youtube.com/watch?v=d16aUztH9hk&list=PLhr1KZpdzukdRxs_pGJm-qSy5LayL6W_Y
How do you build an architecture designed from the beginning to withstand failure? This webinar will cover techniques to develop a highly available application architecture that is capable of withstanding disaster and failure. Learn how to use multiple Availability Zones to spread your application or workload across multiple physical locations to isolate yourself from physical and geographical disruptions. Replicate your database and state information to increase availability.
Learning Objectives:
• How to design for failure
• How to distribute your application across Multiple Availability Zones (physically different data centers)
• How to scale your application as traffic grows and / or shrinks
• How to make your application self healing
• How to add loose coupling into your application to make it more survivable
Who Should Attend:
- Solutions Architects
- Developers, Administrators
- Dev-Ops Engineers
Similar to Patterns & Practices of Microservices (20)
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
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.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
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/
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.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
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
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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.
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.
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.
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.
2. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server
~4 YEARS
3. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
~3 YEARS
4. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Hot
Cold
Database Server
~2 YEARS
5. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Hot
Cold
GLB / DNS
Reporting
Database Server
~2 YEARS
6. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Reporting
Database Server
Hot
Hot
Database Server
GLB / DNS
~2 YEARS
10. W E S L E Y R E I S Z
San Francisco / London / New York
CHAIR QCON
11.
12.
13. “Loosely coupled Service Oriented
Architecture with Bounded Contexts”
-Adrian Cockcroft, Microservices Thoughtleader
IF EVERY SERVICE HAS TO BE
UPDATED AT THE SAME TIME
IT’S NOT LOOSELY COUPLED
IF YOU HAVE TO KNOW TOO
MUCH ABOUT SURROUNDING
SERVICES YOU DON’T HAVE A
BOUNDED CONTEXT. SEE THE
DOMAIN DRIVEN DESIGN BOOK
BY ERIC EVANS.
15. CONS
PROS
• Monitoring/Logging becomes more
important than ever.
• You trade code simplicity for operational
complexity.
• Easy to chase the latest shiny technology / mix
new languages & tech in.
• Another dimension to scale
the application.
• Easier to have different services use
data persistence most appropriate
for the use case.
• Easier to reason about moving applications
to the cloud.
• Easier to have a developer understand
the portion of the system and contribute
• Easier to test & deploy a single service.
• Cascading failures can cause
problems.
• Orchestration can
become complex
17. DEVOPS CULTURE IS A MUST
• Rapid provisioning
• Basic monitoring
• Rapid Application
Deployment
http://martinfowler.com/bliki/MicroservicePrerequisites.html
18. “Signing up for Microservices is signing up
for evolutionary architecture. There’s no point
where you’re just done.”
-Josh Evans,
Director of Operations Engineering @Netflix
19. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Reporting
Database Server
Hot
Hot
Database Server
GLB / DNS
21. SCALE CUBE
X axis - horizontal Scaling
(Scale by Cloning)
Z
axis-DataPartitioning
(ScalebySharding)
Y axis - Functional
Decomposition
(Scale by Splitting)
22. The CAP theorem is the idea that a distributed computing system is
not able to provide partition tolerance, consistency and availability at
the same time.
23. MICROSERVICESPATTERNS & PRACTICES
AVAILABILITY/PARTITION TOLERANCE
CONSISTENCY/PARTITION TOLERANCE
CP: Choose Consistency over Availability when your business
requirements dictate atomic reads and writes. Wait for a response
from the partitioned node which could result in a timeout error. The
system can also choose to return an error, depending on the
scenario you desire.
AP: Choose Availability over Consistency when your business
requirements allow for some flexibility around when the data in the
system synchronizes. Return the most recent version of the data you
have, which could be stale. This system state will also accept writes that
can be processed later when the partition is resolved. Availability is also
a compelling option when the system needs to continue to function in
spite of external errors (shopping carts, etc.)
24. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Reporting
Database Server
Hot
Hot
Database Server
GLB / DNS
25. Evolu&onary Architecture
Scale Cube
CAP Theorem
Microservices is a architecture that conFnues to change
and adapt
Scale Cube consists of an X, Y and Z axes – each
addressing a different approach to scale a service.
The idea that a distributed compuFng system is not able
to provide parFFon tolerance, consistency and availability
at the same Fme.
FIRST PRINCIPLES
Things we need to
understand about as we
plan/scale systems
DevOps is a Must
Microservices is the first architecture post devops culture
shiP
28. SPINE MODEL
• Needs:
We are here to satisfy ________
• Values before Principles
We optimize for ________
• Principles before Practices
We leverage _____ to change the system
• Practices before tools
We do _____ to create value
• We have always been Tool users and
makers. Tools should answer the question:
We use ____ to get our work done.
http://spinemodel.info/explanation/introduction/
29. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Reporting
Database Server
Hot
Hot
Database Server
GLB / DNS
30. Hot
Hot
GLB / DNS
User Facing Availability
Concerns
Internal Consistency
Concerns
User Facing Availability
Concerns
Internal Consistency
Concerns
36. The fundamental idea of Event Sourcing is that of
ensuring every change to the state of an application
is captured in an event object, and that these event
objects are themselves stored in the sequence they
were applied for the same lifetime as the application
state itself.
- M Fowler
38. Immutable Events
Recreate the exact state
Increase in complexity
Performance / Load tes&ng
Provides a model to think about scalability
Because you have all of the state changes, you have all of
the changes that affected state
No longer doing CRUD. You have calculate the result.
Leverage things like snapshots
You an reply the events across the Enterprise
EVENT SOURCING
The fundamental idea of Event
Sourcing is that of ensuring
every change to the state of an
application is captured in an
event object, and that these
event objects are themselves
stored in the sequence they
were applied for the same
lifetime as the application state
itself.
41. Command and Query Responsibility Segregation
(CQRS) is a pattern that segregates the operations
that read data (Queries) from the operations that
update data (Commands) by using separate
interfaces.
45. Domain Specific Models
Scale
Tradeoff
Performance
Clean Domain models queried
Scale the reads above the writes
Increased the operaFonal complexity of the data stores
Tune different datastore for different performance needs
CQRS
Command-Query-Responsibility-
Separation (CQRS) separates
query processing from command
processing, which updates
entities using business logic that's
commonly implemented using
event sourcing.
Security
Updates to the model controlled different from the reads
47. Service A called B.
TRIPPED
Service B is
Sick, let’s flag is and
try back in 5min
Service C
Different Instance of
Service B
Service B is
sick. Don’t
send traffic
there for 5
minute
(Tripped)
48. Service A called B.
OPEN
Service B is
still sick
Service C
Different Instance of
Service B
Service B is
still sick.
Isolate it and
remove from
ELB
50. Prevents Doomed to Fail
Three states
Prevents Cascading Failures
purpose is to detect external service failures and prevent
the applicaFon from trying to perform an acFon that is
doomed to fail.
Closed (Normal), Open(Tripped), & Half-Open state
Helps prevent cascading failures and improves resiliency.
CIRCUIT BREAKER
Circuit breaker is used to
detect failures and
encapsulates logic of
preventing a failure to reoccur
constantly (during
maintenance, temporary
external system failure or
unexpected system
difficulties).
Part of Hysterix
Part of Nelix OSS library for latency & fault tolerance
52. Bad Service
Good Service
Edge Service
3s
1s 1s
Fails fast @ 2s
“Upstream timeout must always be
longer than total downstream
timeout * retries delay”
-Adrian Cockcroft
Budgeted timeout, one retry
53. Tools
Resiliency PaIerns
Architectural PaIerns to Consider
Don’t start with the tool.
Circuit Breaker, Retry
Event Sourcing & CQRS
TECHNICAL
These are some interesting
technical considerations
with Microservices
55. OBSERVABILITY
In control theory, observability is a
measure for how well internal states of a
system can be inferred by knowledge of
its external outputs.
56. At a minimum setup
log stash, look at going
an extra step to setup
ELK.
OBSERVABILITY: THINGS TO THINK ABOUT
LOGS
• Need consistent, structured logging
• Logs are not for humans
• Logstash, Elasticsearch, Kibania works
great
57. OBSERVABILITY: THINGS TO THINK ABOUT
PROTOCOLS/
TRANSPORT
RPC/HTTP
vs
JSON vs Binary
RPC vs HTTP
JSON vs Binary
• Speed/Performance vs Readability
• Measure serialization, transmission, deserialization
costs
58. OBSERVABILITY: THINGS TO THINK ABOUT
How do you
Recreate a failure in
a distributed resilient
environment?
TRACING
Look into:
• Zipkin
• Prometheus
Best way to understand Fanout
62. Observability
Polyglot
Containers
Logging, Service CommunicaFon, Tracking
Containers makes it easier, but observability, logging,
tracking can be more challenging
Low fricFon deployment, Finer-grained execuFon
environments, speed, isolaFon
OPERATIONAL
Microservices simplifies
code. It trades code
complexity for operational
complexity
64. CONWAY'S LAW
“Organizations which design systems ... are
constrained to produce designs which are
copies of the communication structures of these
organizations”
-Conway
65. Model
One size does not fit all
Tradeoff
Organiza&onal Lifecycle Stages
Provides a model to think about scalability
Microservices (funcFon decomposiFon) is AN approach
Each approach has different tradeoffs (For example: as
we’ll find with Y-axis scaling, you may trade code
complexity for organizaFonal complexity)
Different needs at different points of an org’s lifecycle
CONWAY’S LAW
Organizations which design
systems ... are constrained
to produce designs which
are copies of the
communication structures of
these organizations
66. So what do I wish I knew before
starting the push to Microservices?
67. Proxy /
Load Balancer
Web Server
Database Server
Application Server
Web Server Web Server
Application Server
Proxy /
Load Balancer
Web Server
Application Server
Web Server Web Server
Application Server
Reporting
Database Server
Hot
Hot
Database Server
GLB / DNS
70. FIRST PRINCIPLES
MICROSERVICESPATTERNS & PRACTICES
• Have capabilities in your org to do things
like rapidly provision, monitor, and use
rapid deployment.
(DevOPs Culture is a must)
• Accept that the service going to evolve
(Evolutionary Architecture)
• Handle their own data needs
(Consistency/Availablity Tradeoffs)
• Be able to scale based on it’s needs
(Scale Cube)
Processing
DevOps Culture,
Evolutionary Architecture,
Scale Cube & CAP Theorem
71. TECHNICAL
Spine Model
Event Sourcing/CQRS
Circuit Breaker
Retry
OPERATIONAL
Observability
Containers
Polyglot
CULTURAL
Conway’s Law
MICROSERVICESPATTERNS & PRACTICES Processing
• Have a decision process
(Spine Model)
• Consider using events where it makes sense and
how you might scale commands & queries
(Event Sourcing / CQRS)
• Protect against cascading failures
(Circuit Breaker, Bulkhead)
• “Everything is a tradeoff, do it intentionally” Matt
Ranney (RPC/HTTP, Containers, Polyglot)
• Bootstrap services with organizational capabilities
(Logs, Tracing)
• Beware of Conway’s Law
72. CONS
PROS
• Monitoring/Logging becomes more
important than ever.
• You trade code complexity for operational
complexity.
• Easy to chase the latest shiny technology / mix
new languages & tech in.
• Another dimension to scale
the application.
• Easier to have different services use
data persistence most appropriate
for the use case.
• Easier to reason about moving applications
to the cloud.
• Easier to have a developer understand
the portion of the system and contribute
• Easier to test & deploy a single service.
• Cascading failures can cause
problems.
• Orchestration can
become complex
73. “If you don’t end up regretting your early
technology decisions, you probably over
engineered.” - Randy Shoup, Engineering Director @StitchFix
MICROSERVICESPATTERNS & PRACTICES