SlideShare a Scribd company logo
1 of 28
Download to read offline
MAKING MICROSERVICES WORK
JEREMEY BARRETT
PRINCIPAL ENGINEER
E: jbarrett@alertlogic.com T: @jeremey
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Agenda
Microservices!

This is a very complicated topic

Questions: raise your hand (may defer to end)

Follow up on Twitter: @jeremey (that's 3 e's!)

Perspective disclaimer
2
INTRODUCTION
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
What are microservices, anyway?
4
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Our story: Cloud Insight
Why are we talking about microservices?

Two years ago: new vulnerability assessment product from the ground up

Focused on cloud (AWS), deployed in the cloud (AWS)

Opportunity to improve/fix/design development practices

Deliberately design our SDLC

Consistent with "devops best practices"

Continuous integration

Continuous deployment

Opportunity to build a platform for our future

A set of mandates...
5
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Our story: Cloud Insight mandates
Everything is an API

Everything is highly available

There is no web server

100% automated deployment in AWS, of 100% of the environment

Don't operate infrastructure

Minimize or eliminate configuration

Scale dynamically and manage resources on a per-customer basis

Pervasive AAA - ALL API calls are authenticated, authorized, and audited

Release small, testable, loosely-coupled components independently

Focused teams with long-term ownership of dev, test, and production
6
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Our story: generalizing our solution
We satisfied all our mandates

We learned a lot

This presentation is about generalizing from our solution:

A definition of microservices

A set of pillars or primitives necessary for such a microservices architecture to
function
7
MICROSERVICES: DEFINITION
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
What are microservices, anyway?
Poorly defined buzzword, but doesn't need to be

Useful paradigm if given a solid/meaningful definition

Evolution of Service Oriented Architecture (SOA), significant overlap

Still services, but now "micro"!

Defined by what we want from them: what problem are we solving?

If it looks like a duck...

Perhaps slightly better to define "microservices architecture"

No such thing as "one microservice"
9
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
What problem are we solving?
A good microservices architecture should:

Result in simpler components that can be better tested and understood

Allow development teams to work and release independently
Allow for good separation of concerns, data, and data access

Allow for independent scalability according to data needs and access patterns

Provide a mechanism for high availability

Reduce the "blast radius" for bugs and downtime

Allow for scalability of development resources
10
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Microservices Architecture: a definition
A collection of software components working together such that:

each manages a specific problem domain or set of data and access patterns

each service's data storage, if any, is opaque to all other services

each service instance is stateless; its state is persisted elsewhere

each service is independently tested and released

services are loosely coupled

services adhere to well-defined interfaces as contracts 

services have the ability to locate each other
11
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
There be dragons...
Deployment/operational complexity

Where are all these things and what are they doing?

Something isn't working, now what?

Complexity of documentation / system understanding

Pace of changes

Complexity for consumer

Solve the "location" problem for them

Distribution transactions!

End-to-end testing complexity
12
PRACTICAL REQUIREMENTS
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Pillars
I need to know where all the things are (and so do all the things)

I need to know if they are healthy

I need to be able to independently build services that react to state
changes in the system

I need to be able to release software quickly, frequently, and reliably

I need teams of developers to be able to iterate quickly and
independently

I need clear paths of communication to identify and coordinate
dependencies
14
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Pillars
Technology

Service discovery / registration

Publish-subscribe messaging

Stateless-ness

Documentation

API interfaces are contracts that cannot be broken

Testing

End-to-end integration testing in a dedicated environment

Integration testing gates release to production
15
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Pillars
Practices

Consistent monitoring interfaces provided by the services themselves

Developer ownership in production

Consistent build/package interfaces

Release automation

"Grab the chicken" - serialized, mutexed releases

Build/release system should use the consistent build/package interfaces
16
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Service discovery
Register service instances when they become available

Unregister instances when they become unavailable
Doing this well has bought us so much flexibility, especially around
devops and release practices

Because this is built in, machinery around it can just assume it works

Automated releases: stand up new ones, tear down old ones

Scaling events: just stand up new ones

Move from in-place rolling package upgrades to baked images from test -> prod
17
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Publish-subscribe messaging
For services to take independent action on changes in other services,
they need to know

All services publish their operations

Services that care about them can subscribe

Topics, queues + exchanges, etc.

Key component in facilitating loose coupling
18
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Stateless-ness
Service instances will come and go

Internal state of the service (not the instance) must be persisted

A new instance must begin its work from the persisted state

Multiple instances will need to coordinate while running
19
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Documented API contracts
Services depend on each other's interfaces

Releases cannot break interfaces

Deprecation is a coordinated process over time
20
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
End-to-end integration testing
End-to-end test is the only mechanism to verify the behavior of the
system as a whole

An end-to-end smoke test should gate release to production
21
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Consistent interfaces to monitoring
Built in to the services themselves

Part of service API

Consistent interface across all services

This is a developer problem, not an ops problem
22
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Developer ownership in production
Only developers can understand the problem

Only developers can analyze the problem

Only developers can fix the problem

Developers need to own their software in production
23
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
What works well for us
Consistent language and service boilerplate / scaffold

Polyglot is nice, but you need a consistent mechanism to manage and monitor
services and service instances (a distinction worth keeping in mind as well)

AWS

Software-defined infrastructure

APIs to scale up, down, etc.

Availability

Data services (DynamoDB in particular)
24
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
What works well for us
Erlang

We lean heavily on the primitives provided by OTP supervision

We have predictable behavior in error conditions and edge cases

Concurrency scale allows for simpler software

Zookeeper

Don't believe everything you read in blogs

Easy to abuse: it's not for storage
25
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Our Implementation
Services written in Erlang (for simplicity, functional style, concurrency, reliability, we
don't use Erlang clustering)

Services interact over HTTP using JSON, all APIs are public

All services publish operations to RabbitMQ exchanges

Each service is deployed on at least two AWS instances in at least two AWS
availability zones

Service discovery enables instances to find each other (proprietary, built on top of
zookeeper's basic coordination primitives)

Software-routing reverse proxy (using service discovery) at the edge (so we have one
point of contact for external clients)

All API calls are authenticated and authorized both internally and externally
26
Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey
Other Interesting Implementations
Pure Erlang

Great solution in many ways (global registration of components, well-defined reliable
communication, etc.)

Depends on Erlang clustering

At last check, not as great in a dynamic environment (nodes coming and going all day long)

More difficult to dedicate specific resources to specific applications or data sets

What happens if half your cluster falls off the earth all at once?

Pure AWS

API gateway + Lambda + SQS/SNS + S3/Dynamo

Complex to deploy, impossible to version / source control / etc.

Javascript or Python
27
THANK YOU!
@JEREMEY

More Related Content

What's hot

Sam Herath - Six Critical Criteria for Cloud Workload Security
Sam Herath - Six Critical Criteria for Cloud Workload SecuritySam Herath - Six Critical Criteria for Cloud Workload Security
Sam Herath - Six Critical Criteria for Cloud Workload Securitycentralohioissa
 
Best practices for automating cloud security processes with Evident.io and AWS
Best practices for automating cloud security processes with Evident.io and AWSBest practices for automating cloud security processes with Evident.io and AWS
Best practices for automating cloud security processes with Evident.io and AWSAmazon Web Services
 
Virtual Meetup - API Security Best Practices
Virtual Meetup - API Security Best PracticesVirtual Meetup - API Security Best Practices
Virtual Meetup - API Security Best PracticesJimmy Attia
 
Cisco Connect 2018 Indonesia - Introducing cisco dna assurance
Cisco Connect 2018 Indonesia - Introducing cisco dna assurance Cisco Connect 2018 Indonesia - Introducing cisco dna assurance
Cisco Connect 2018 Indonesia - Introducing cisco dna assurance NetworkCollaborators
 
Cisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy Management
Cisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy ManagementCisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy Management
Cisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy ManagementAlgoSec
 
How PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar Deck
How PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar DeckHow PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar Deck
How PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar DeckAmazon Web Services
 
Top 5 AWS Security Mistakes and How to Stop Them Before You Lose Data
Top 5 AWS Security Mistakes and How to Stop Them Before You Lose DataTop 5 AWS Security Mistakes and How to Stop Them Before You Lose Data
Top 5 AWS Security Mistakes and How to Stop Them Before You Lose DataDevOps.com
 
Clues for Solving Cloud-Based App Performance
Clues for Solving Cloud-Based App Performance Clues for Solving Cloud-Based App Performance
Clues for Solving Cloud-Based App Performance NETSCOUT
 
How to Keep your Atlassian Cloud Secure
How to Keep your Atlassian Cloud SecureHow to Keep your Atlassian Cloud Secure
How to Keep your Atlassian Cloud SecureCprime
 
SACON - Beyond corp (Arnab Chattopadhayay)
SACON - Beyond corp (Arnab Chattopadhayay)SACON - Beyond corp (Arnab Chattopadhayay)
SACON - Beyond corp (Arnab Chattopadhayay)Priyanka Aash
 
Jamie Bowser - A Touch(ID) of iOS Security
Jamie Bowser - A Touch(ID) of iOS SecurityJamie Bowser - A Touch(ID) of iOS Security
Jamie Bowser - A Touch(ID) of iOS Securitycentralohioissa
 
How Citrix Admins can get a Virtual Assistant
How Citrix Admins can get a Virtual AssistantHow Citrix Admins can get a Virtual Assistant
How Citrix Admins can get a Virtual AssistanteG Innovations
 
Building secure cloud apps – lessons learned from Microsoft’s internal securi...
Building secure cloud apps – lessons learned from Microsoft’s internal securi...Building secure cloud apps – lessons learned from Microsoft’s internal securi...
Building secure cloud apps – lessons learned from Microsoft’s internal securi...Microsoft Tech Community
 
Esg lab-validation-check-point-cloud guard-mar-2018
Esg lab-validation-check-point-cloud guard-mar-2018Esg lab-validation-check-point-cloud guard-mar-2018
Esg lab-validation-check-point-cloud guard-mar-2018Alejandro Daricz
 
Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation
  Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation  Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation
Space-efficient Verifiable Secret Sharing Using Polynomial Interpolationkitechsolutions
 
Cloud Software - Cloud-based System Security
Cloud Software - Cloud-based System SecurityCloud Software - Cloud-based System Security
Cloud Software - Cloud-based System SecurityNet at Work
 
Modernizing Software Development in the US Navy
Modernizing Software Development in the US NavyModernizing Software Development in the US Navy
Modernizing Software Development in the US NavyAmazon Web Services
 

What's hot (20)

Sam Herath - Six Critical Criteria for Cloud Workload Security
Sam Herath - Six Critical Criteria for Cloud Workload SecuritySam Herath - Six Critical Criteria for Cloud Workload Security
Sam Herath - Six Critical Criteria for Cloud Workload Security
 
Best practices for automating cloud security processes with Evident.io and AWS
Best practices for automating cloud security processes with Evident.io and AWSBest practices for automating cloud security processes with Evident.io and AWS
Best practices for automating cloud security processes with Evident.io and AWS
 
Virtual Meetup - API Security Best Practices
Virtual Meetup - API Security Best PracticesVirtual Meetup - API Security Best Practices
Virtual Meetup - API Security Best Practices
 
Cisco Connect 2018 Indonesia - Introducing cisco dna assurance
Cisco Connect 2018 Indonesia - Introducing cisco dna assurance Cisco Connect 2018 Indonesia - Introducing cisco dna assurance
Cisco Connect 2018 Indonesia - Introducing cisco dna assurance
 
Cisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy Management
Cisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy ManagementCisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy Management
Cisco ACI & Hybrid Networks - Breaking Down Silos with Central Policy Management
 
How PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar Deck
How PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar DeckHow PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar Deck
How PagerDuty Achieved End-to-End Visibility with Splunk and AWS Webinar Deck
 
Top 5 AWS Security Mistakes and How to Stop Them Before You Lose Data
Top 5 AWS Security Mistakes and How to Stop Them Before You Lose DataTop 5 AWS Security Mistakes and How to Stop Them Before You Lose Data
Top 5 AWS Security Mistakes and How to Stop Them Before You Lose Data
 
Clues for Solving Cloud-Based App Performance
Clues for Solving Cloud-Based App Performance Clues for Solving Cloud-Based App Performance
Clues for Solving Cloud-Based App Performance
 
How to Keep your Atlassian Cloud Secure
How to Keep your Atlassian Cloud SecureHow to Keep your Atlassian Cloud Secure
How to Keep your Atlassian Cloud Secure
 
SACON - Beyond corp (Arnab Chattopadhayay)
SACON - Beyond corp (Arnab Chattopadhayay)SACON - Beyond corp (Arnab Chattopadhayay)
SACON - Beyond corp (Arnab Chattopadhayay)
 
Cloud Security Top 10 Risk Mitigation Techniques for 2019
Cloud Security Top 10 Risk Mitigation Techniques for 2019Cloud Security Top 10 Risk Mitigation Techniques for 2019
Cloud Security Top 10 Risk Mitigation Techniques for 2019
 
Jamie Bowser - A Touch(ID) of iOS Security
Jamie Bowser - A Touch(ID) of iOS SecurityJamie Bowser - A Touch(ID) of iOS Security
Jamie Bowser - A Touch(ID) of iOS Security
 
How Citrix Admins can get a Virtual Assistant
How Citrix Admins can get a Virtual AssistantHow Citrix Admins can get a Virtual Assistant
How Citrix Admins can get a Virtual Assistant
 
Building secure cloud apps – lessons learned from Microsoft’s internal securi...
Building secure cloud apps – lessons learned from Microsoft’s internal securi...Building secure cloud apps – lessons learned from Microsoft’s internal securi...
Building secure cloud apps – lessons learned from Microsoft’s internal securi...
 
Esg lab-validation-check-point-cloud guard-mar-2018
Esg lab-validation-check-point-cloud guard-mar-2018Esg lab-validation-check-point-cloud guard-mar-2018
Esg lab-validation-check-point-cloud guard-mar-2018
 
Securing DevOps Lifecycle
Securing DevOps LifecycleSecuring DevOps Lifecycle
Securing DevOps Lifecycle
 
Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation
  Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation  Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation
Space-efficient Verifiable Secret Sharing Using Polynomial Interpolation
 
Cloud Software - Cloud-based System Security
Cloud Software - Cloud-based System SecurityCloud Software - Cloud-based System Security
Cloud Software - Cloud-based System Security
 
Modernizing Software Development in the US Navy
Modernizing Software Development in the US NavyModernizing Software Development in the US Navy
Modernizing Software Development in the US Navy
 
Whitepaper: DevOps - Happiest Minds
Whitepaper: DevOps - Happiest MindsWhitepaper: DevOps - Happiest Minds
Whitepaper: DevOps - Happiest Minds
 

Viewers also liked

Rails monolith-to-microservices-design
Rails monolith-to-microservices-designRails monolith-to-microservices-design
Rails monolith-to-microservices-designPhilippe Lafoucrière
 
Data Center Design / Microservices
Data Center Design / MicroservicesData Center Design / Microservices
Data Center Design / MicroservicesBob Wise
 
Effective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event SourcingEffective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event SourcingDavid Dawson
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureEduards Sizovs
 
MicroService Architecture
MicroService ArchitectureMicroService Architecture
MicroService ArchitectureFred George
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 

Viewers also liked (6)

Rails monolith-to-microservices-design
Rails monolith-to-microservices-designRails monolith-to-microservices-design
Rails monolith-to-microservices-design
 
Data Center Design / Microservices
Data Center Design / MicroservicesData Center Design / Microservices
Data Center Design / Microservices
 
Effective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event SourcingEffective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event Sourcing
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
MicroService Architecture
MicroService ArchitectureMicroService Architecture
MicroService Architecture
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 

Similar to Making microservices work

The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service MeshAspen Mesh
 
Clean architecture with Python
Clean architecture with PythonClean architecture with Python
Clean architecture with PythonJair Verçosa
 
Online Real Estate Management System
Online Real Estate Management SystemOnline Real Estate Management System
Online Real Estate Management Systemshahrukh Nawandish
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auevanbottcher
 
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...Enterprise Management Associates
 
Building a Foundation for NetSecOps Partnerships with Network Automation
Building a Foundation for NetSecOps Partnerships with Network AutomationBuilding a Foundation for NetSecOps Partnerships with Network Automation
Building a Foundation for NetSecOps Partnerships with Network AutomationEnterprise Management Associates
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systemsLen Bass
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioInho Kang
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클Oracle Korea
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...
How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...
How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...Sumo Logic
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...WSO2
 
Architecting C Sharp for Cross Cutting Concerns
Architecting C Sharp for Cross Cutting ConcernsArchitecting C Sharp for Cross Cutting Concerns
Architecting C Sharp for Cross Cutting ConcernsMike Byrne
 
Microservices Testing Strategies: The Good, the Bad, and the Reality
Microservices Testing Strategies: The Good, the Bad, and the RealityMicroservices Testing Strategies: The Good, the Bad, and the Reality
Microservices Testing Strategies: The Good, the Bad, and the RealityTechWell
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018Christophe Rochefolle
 
Graham Bath - SOA: Whats in it for Testers?
Graham Bath - SOA: Whats in it for Testers?Graham Bath - SOA: Whats in it for Testers?
Graham Bath - SOA: Whats in it for Testers?TEST Huddle
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint PlatformMuleSoft
 

Similar to Making microservices work (20)

The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service Mesh
 
Clean architecture with Python
Clean architecture with PythonClean architecture with Python
Clean architecture with Python
 
Online Real Estate Management System
Online Real Estate Management SystemOnline Real Estate Management System
Online Real Estate Management System
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.au
 
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
 
Building a Foundation for NetSecOps Partnerships with Network Automation
Building a Foundation for NetSecOps Partnerships with Network AutomationBuilding a Foundation for NetSecOps Partnerships with Network Automation
Building a Foundation for NetSecOps Partnerships with Network Automation
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...
How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...
How McGraw Hill Uses Sumo Logic and AWS for Operational and Security Intellig...
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
Microservices
MicroservicesMicroservices
Microservices
 
Architecting C Sharp for Cross Cutting Concerns
Architecting C Sharp for Cross Cutting ConcernsArchitecting C Sharp for Cross Cutting Concerns
Architecting C Sharp for Cross Cutting Concerns
 
Microservices Testing Strategies: The Good, the Bad, and the Reality
Microservices Testing Strategies: The Good, the Bad, and the RealityMicroservices Testing Strategies: The Good, the Bad, and the Reality
Microservices Testing Strategies: The Good, the Bad, and the Reality
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018
 
Introduction to Chaos Engineering
Introduction to Chaos EngineeringIntroduction to Chaos Engineering
Introduction to Chaos Engineering
 
Modernize NetOps with Business-Aware Network Monitoring
Modernize NetOps with Business-Aware Network MonitoringModernize NetOps with Business-Aware Network Monitoring
Modernize NetOps with Business-Aware Network Monitoring
 
Graham Bath - SOA: Whats in it for Testers?
Graham Bath - SOA: Whats in it for Testers?Graham Bath - SOA: Whats in it for Testers?
Graham Bath - SOA: Whats in it for Testers?
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 

Recently uploaded

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Making microservices work

  • 1. MAKING MICROSERVICES WORK JEREMEY BARRETT PRINCIPAL ENGINEER E: jbarrett@alertlogic.com T: @jeremey
  • 2. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Agenda Microservices! This is a very complicated topic Questions: raise your hand (may defer to end) Follow up on Twitter: @jeremey (that's 3 e's!) Perspective disclaimer 2
  • 4. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey What are microservices, anyway? 4
  • 5. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Our story: Cloud Insight Why are we talking about microservices? Two years ago: new vulnerability assessment product from the ground up Focused on cloud (AWS), deployed in the cloud (AWS) Opportunity to improve/fix/design development practices Deliberately design our SDLC Consistent with "devops best practices" Continuous integration Continuous deployment Opportunity to build a platform for our future A set of mandates... 5
  • 6. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Our story: Cloud Insight mandates Everything is an API Everything is highly available There is no web server 100% automated deployment in AWS, of 100% of the environment Don't operate infrastructure Minimize or eliminate configuration Scale dynamically and manage resources on a per-customer basis Pervasive AAA - ALL API calls are authenticated, authorized, and audited Release small, testable, loosely-coupled components independently Focused teams with long-term ownership of dev, test, and production 6
  • 7. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Our story: generalizing our solution We satisfied all our mandates We learned a lot This presentation is about generalizing from our solution: A definition of microservices A set of pillars or primitives necessary for such a microservices architecture to function 7
  • 9. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey What are microservices, anyway? Poorly defined buzzword, but doesn't need to be Useful paradigm if given a solid/meaningful definition Evolution of Service Oriented Architecture (SOA), significant overlap Still services, but now "micro"! Defined by what we want from them: what problem are we solving? If it looks like a duck... Perhaps slightly better to define "microservices architecture" No such thing as "one microservice" 9
  • 10. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey What problem are we solving? A good microservices architecture should: Result in simpler components that can be better tested and understood Allow development teams to work and release independently Allow for good separation of concerns, data, and data access Allow for independent scalability according to data needs and access patterns Provide a mechanism for high availability Reduce the "blast radius" for bugs and downtime Allow for scalability of development resources 10
  • 11. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Microservices Architecture: a definition A collection of software components working together such that: each manages a specific problem domain or set of data and access patterns each service's data storage, if any, is opaque to all other services each service instance is stateless; its state is persisted elsewhere each service is independently tested and released services are loosely coupled services adhere to well-defined interfaces as contracts services have the ability to locate each other 11
  • 12. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey There be dragons... Deployment/operational complexity Where are all these things and what are they doing? Something isn't working, now what? Complexity of documentation / system understanding Pace of changes Complexity for consumer Solve the "location" problem for them Distribution transactions! End-to-end testing complexity 12
  • 14. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Pillars I need to know where all the things are (and so do all the things) I need to know if they are healthy I need to be able to independently build services that react to state changes in the system I need to be able to release software quickly, frequently, and reliably I need teams of developers to be able to iterate quickly and independently I need clear paths of communication to identify and coordinate dependencies 14
  • 15. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Pillars Technology Service discovery / registration Publish-subscribe messaging Stateless-ness Documentation API interfaces are contracts that cannot be broken Testing End-to-end integration testing in a dedicated environment Integration testing gates release to production 15
  • 16. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Pillars Practices Consistent monitoring interfaces provided by the services themselves Developer ownership in production Consistent build/package interfaces Release automation "Grab the chicken" - serialized, mutexed releases Build/release system should use the consistent build/package interfaces 16
  • 17. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Service discovery Register service instances when they become available Unregister instances when they become unavailable Doing this well has bought us so much flexibility, especially around devops and release practices Because this is built in, machinery around it can just assume it works Automated releases: stand up new ones, tear down old ones Scaling events: just stand up new ones Move from in-place rolling package upgrades to baked images from test -> prod 17
  • 18. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Publish-subscribe messaging For services to take independent action on changes in other services, they need to know All services publish their operations Services that care about them can subscribe Topics, queues + exchanges, etc. Key component in facilitating loose coupling 18
  • 19. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Stateless-ness Service instances will come and go Internal state of the service (not the instance) must be persisted A new instance must begin its work from the persisted state Multiple instances will need to coordinate while running 19
  • 20. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Documented API contracts Services depend on each other's interfaces Releases cannot break interfaces Deprecation is a coordinated process over time 20
  • 21. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey End-to-end integration testing End-to-end test is the only mechanism to verify the behavior of the system as a whole An end-to-end smoke test should gate release to production 21
  • 22. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Consistent interfaces to monitoring Built in to the services themselves Part of service API Consistent interface across all services This is a developer problem, not an ops problem 22
  • 23. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Developer ownership in production Only developers can understand the problem Only developers can analyze the problem Only developers can fix the problem Developers need to own their software in production 23
  • 24. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey What works well for us Consistent language and service boilerplate / scaffold Polyglot is nice, but you need a consistent mechanism to manage and monitor services and service instances (a distinction worth keeping in mind as well) AWS Software-defined infrastructure APIs to scale up, down, etc. Availability Data services (DynamoDB in particular) 24
  • 25. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey What works well for us Erlang We lean heavily on the primitives provided by OTP supervision We have predictable behavior in error conditions and edge cases Concurrency scale allows for simpler software Zookeeper Don't believe everything you read in blogs Easy to abuse: it's not for storage 25
  • 26. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Our Implementation Services written in Erlang (for simplicity, functional style, concurrency, reliability, we don't use Erlang clustering) Services interact over HTTP using JSON, all APIs are public All services publish operations to RabbitMQ exchanges Each service is deployed on at least two AWS instances in at least two AWS availability zones Service discovery enables instances to find each other (proprietary, built on top of zookeeper's basic coordination primitives) Software-routing reverse proxy (using service discovery) at the edge (so we have one point of contact for external clients) All API calls are authenticated and authorized both internally and externally 26
  • 27. Jeremey Barrett | Alert Logic | Making Microservices Work | @jeremey Other Interesting Implementations Pure Erlang Great solution in many ways (global registration of components, well-defined reliable communication, etc.) Depends on Erlang clustering At last check, not as great in a dynamic environment (nodes coming and going all day long) More difficult to dedicate specific resources to specific applications or data sets What happens if half your cluster falls off the earth all at once? Pure AWS API gateway + Lambda + SQS/SNS + S3/Dynamo Complex to deploy, impossible to version / source control / etc. Javascript or Python 27