SlideShare a Scribd company logo
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Microservices in Go with Micro
Brian Ketelsen
Cloud Developer Advocate, Microsoft
Microservices in Go Using Micro
https://micro.mu(Micro)
About Me
Co-Host gotime.fm weekly podcast
Co-Author "Go In Action" from Manning Press
Co-Organizer - GopherCon, Largest Go Conference in the World
This Talk
In this talk we will go from 0 to distributed microservices in less than an hour.
Buckle up Buttercup!
Buckle up, Buttercup!
Micro Is An Ecosystem
Framework
Toolkit
Pluggable Layers
Plugins Everywhere
message broker
encoding/decoding
transport
metrics
Nearly every choice in micro has a sane default and many optional replacements.
Abstractions
Broker
Transportation for events. Micro can emit events, and interested services can consume
them and react.
HTTP (default)
Google PubSub
Kafka
MQTT
NATS
NSQ
RabbitMQ
Redis
Amazon SQS
Codec
Encoding of messages before transport.
bsonrpc
jsonrpc
jsonrpc2
mercury
msgpackrpc
protorpc (default)
Registry
Service Discovery
consul (default)
etcd 2 or 3
Eureka
gossip
kubernetes
mdns (Multicast DNS)
NATS
zookeeper
Selector
How clients choose an instance of a service.
blacklist -- circuit breaker pattern for selecting service instances
cache -- random hash choice
label -- priority based labels, use for prioritized selection
named -- use with message bus/queue transport
static -- for use with upstream balancing
Transport
Physical transport of messages.
grpc
http (default)
NATS
RabbitMQ
TCP
UTP (UDP variation of BitTorrent protocol)
Batteries Included
All of these choices can be overwhelming, but Micro defaults are perfect for development.
In production, you can change any of the options without changing your code.
Demo
New Microservice
Demo
Calling a Service
Demo
More complex deployment
Authentication Service
Web Application with protected pages
Demo
Add Pro les!
Demo
Distributed Tracing
OpenTracing
Demo
Managing from Slack
Demo
Custom Bot Commands
Thank you
Brian Ketelsen
Cloud Developer Advocate, Microsoft
bketelsen@gmail.com(mailto:bketelsen@gmail.com)
https://brianketelsen.com(https://brianketelsen.com)
@bketelsen(http://twitter.com/bketelsen)
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017
Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017

More Related Content

PDF
Serverless in production, an experience report (codemotion milan)
PDF
What is Google Cloud Good For at DevFestInspire 2021
PDF
Webinar - Big Data: Let's SMACK - Jorg Schad
PDF
Microservices with Micronaut
PDF
Cloud Compliance with Open Policy Agent
PDF
Security threats with Kubernetes - Igor Khoroshchenko
PDF
Keeping your Kubernetes Cluster Secure
PDF
QCon NYC: Distributed systems in practice, in theory
Serverless in production, an experience report (codemotion milan)
What is Google Cloud Good For at DevFestInspire 2021
Webinar - Big Data: Let's SMACK - Jorg Schad
Microservices with Micronaut
Cloud Compliance with Open Policy Agent
Security threats with Kubernetes - Igor Khoroshchenko
Keeping your Kubernetes Cluster Secure
QCon NYC: Distributed systems in practice, in theory

What's hot (20)

PDF
Virtualization at Gilt - Rangarajan Radhakrishnan
PDF
Serverless Swift for Mobile Developers
PDF
Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
PPTX
Kubernetes Security
PDF
Fact-Based Monitoring - PuppetConf 2014
PDF
Andrea Di Persio
PDF
Kubernetes Security
PPTX
You're monitoring Kubernetes Wrong
PDF
容器革命的「利」與「必」
PPTX
How to Build Your First Web App in Go
PDF
Battle in the Clouds - Attacker vs Defender on AWS
PDF
Using Document Databases with TYPO3 Flow
PDF
Continuous Delivery With Containers
PPTX
Mario Cartia - SMACK is the new LAMP! - Codemotion Milan 2017
PDF
Just enough web ops for web developers
PDF
Whats new in brigade 2
PDF
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
PDF
Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity...
PPTX
Monitoring Docker containers - Docker NYC Feb 2015
PDF
Building a serverless company on AWS lambda and Serverless framework
Virtualization at Gilt - Rangarajan Radhakrishnan
Serverless Swift for Mobile Developers
Docker Usage Patterns - Meetup Docker Paris - November, 10th 2015
Kubernetes Security
Fact-Based Monitoring - PuppetConf 2014
Andrea Di Persio
Kubernetes Security
You're monitoring Kubernetes Wrong
容器革命的「利」與「必」
How to Build Your First Web App in Go
Battle in the Clouds - Attacker vs Defender on AWS
Using Document Databases with TYPO3 Flow
Continuous Delivery With Containers
Mario Cartia - SMACK is the new LAMP! - Codemotion Milan 2017
Just enough web ops for web developers
Whats new in brigade 2
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Microservices Practitioner Summit Jan '15 - Maximizing Developer Productivity...
Monitoring Docker containers - Docker NYC Feb 2015
Building a serverless company on AWS lambda and Serverless framework
Ad

Viewers also liked (20)

PDF
Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter ...
PDF
Downtime is not an option - day 2 operations - Jörg Schad
PPTX
Dark patterns and mobile UX design - Emilia Ciardi - Codemotion Amsterdam 2017
PPTX
Francesco Arcieri - La monetizzazione delle API - Codemotion Milan 2017
PDF
Mobile UX for user engagement and monetization - Emilia Ciardi - Codemotion R...
PDF
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
PDF
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
PDF
Tomas Petricek - The Gamma: Democratizing data science - Codemotion Milan 2017
PDF
Monicelli - Stefano Sanfilippo - Codemotion Roma 2015
PDF
Thomas Rossetto - Container and microservices: a love story - Codemotion Mila...
PDF
Mobile Library Development - stuck between a pod and a jar file - Zan Markan ...
PDF
The Most Important Thing - Mike Lee - Codemotion Amsterdam 2017
PPTX
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
PDF
Diego Viganò - Milano Chatbots Meetup - Codemotion Milan 2017
PPSX
Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion M...
PDF
From Doctor to Coder: A Whole New World? - Aisha Sie - Codemotion Amsterdam 2017
PDF
Luciano Mammino - Cracking JWT tokens: a tale of magic, Node.JS and parallel...
PPTX
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
PDF
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
ODP
Lucio Grenzi - Building serverless applications on the Apache OpenWhisk platf...
Fabrizio Cornelli - Antropologia di un Dev(Sec)Ops secondo il modello Hunter ...
Downtime is not an option - day 2 operations - Jörg Schad
Dark patterns and mobile UX design - Emilia Ciardi - Codemotion Amsterdam 2017
Francesco Arcieri - La monetizzazione delle API - Codemotion Milan 2017
Mobile UX for user engagement and monetization - Emilia Ciardi - Codemotion R...
Luciano Fiandesio - Docker 101 | Codemotion Milan 2015
Agnieszka Naplocha - Breaking the norm with creative CSS - Codemotion Milan 2017
Tomas Petricek - The Gamma: Democratizing data science - Codemotion Milan 2017
Monicelli - Stefano Sanfilippo - Codemotion Roma 2015
Thomas Rossetto - Container and microservices: a love story - Codemotion Mila...
Mobile Library Development - stuck between a pod and a jar file - Zan Markan ...
The Most Important Thing - Mike Lee - Codemotion Amsterdam 2017
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
Diego Viganò - Milano Chatbots Meetup - Codemotion Milan 2017
Oded Coster - Stack Overflow behind the scenes - how it's made - Codemotion M...
From Doctor to Coder: A Whole New World? - Aisha Sie - Codemotion Amsterdam 2017
Luciano Mammino - Cracking JWT tokens: a tale of magic, Node.JS and parallel...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Lucio Grenzi - Building serverless applications on the Apache OpenWhisk platf...
Ad

Similar to Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017 (20)

PDF
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
PPT
Open HFT libraries in @Java
PDF
From Code to Cosmos: Mastering Microservices in the Distributed Wonderland
PDF
An introduction to MQTT
PPTX
IoTMyth Proposal
PPTX
Intro to Azure Service Bus
PPT
Collaboration and Grid Technologies
PDF
Apache Kafka - Scalable Message-Processing and more !
PPT
Computing Outside The Box June 2009
PDF
Implementing Domain Events with Kafka
PPTX
Keystone event processing pipeline on a dockerized microservices architecture
PPTX
Message Broker implementation in Kubernetes
PPTX
MANTL Data Platform, Microservices and BigData Services
PPTX
Architectures with Windows Azure
PDF
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
PDF
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
PDF
Introduction to MANTL Data Platform
PDF
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
PPTX
Evolutionary Systems - Kafka Microservices
PDF
Devolo Goes OSGi – When Hardware Needs Software - G Hermann
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Open HFT libraries in @Java
From Code to Cosmos: Mastering Microservices in the Distributed Wonderland
An introduction to MQTT
IoTMyth Proposal
Intro to Azure Service Bus
Collaboration and Grid Technologies
Apache Kafka - Scalable Message-Processing and more !
Computing Outside The Box June 2009
Implementing Domain Events with Kafka
Keystone event processing pipeline on a dockerized microservices architecture
Message Broker implementation in Kubernetes
MANTL Data Platform, Microservices and BigData Services
Architectures with Windows Azure
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
Introduction to MANTL Data Platform
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Evolutionary Systems - Kafka Microservices
Devolo Goes OSGi – When Hardware Needs Software - G Hermann

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
KodekX | Application Modernization Development
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Building Integrated photovoltaic BIPV_UPV.pdf
Modernizing your data center with Dell and AMD
Unlocking AI with Model Context Protocol (MCP)
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation_ Review paper, used for researhc scholars
The Rise and Fall of 3GPP – Time for a Sabbatical?
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Chapter 3 Spatial Domain Image Processing.pdf
A Presentation on Artificial Intelligence
KodekX | Application Modernization Development
Network Security Unit 5.pdf for BCA BBA.
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

Brian Ketelsen - Microservices in Go using Micro - Codemotion Milan 2017