SlideShare a Scribd company logo
MAKE

MONEY

MATTER.
Cloud Native Aarhus
By Kasper Nissen (@phennex), DevOps Engineer @thelunarway
MAKE

MONEY

MATTER.
Cloud Native Aarhus
By Kasper Nissen (@phennex), DevOps Engineer @thelunarway
Lunar Way
• The Partner model
• Leverage the partner banks infrastructure
• All money is in the partner bank
• Currently only in Denmark, will move to the nordics in the near future
Kasper Nissen
DevOps & Infrastructure Engineer @thelunarway
Experience
DevOps & Infrastructure Engineer @ LEGO (CITMABIS) (oursourced by
IT Minds) for 5 months
Senior/Software Engineer @ IT Minds (~4 years part time)
Master thesis: KubeCloud - A Small-Scale Tangible Cloud Computing
Environment.

Interview with Software Engineering Daily: bit.ly/2paZ5lg
Blogging about Cloud Native Tech @ www.kubecloud.io
M. Eng. Computer Technology from Aarhus University - Department of
Engineering.
B. Eng. Information and Communication Technology from Aarhus
University - School of Engineering
What do we have running?
19services
215containers
in prod
13infrastructure
services
3node rabbitmq
cluster
1rails
monolith
2100 GB
postgresql
DB’s
3kubernetes
clusters
3AWS Accounts
Where are we running?
Service overview
api
nemid
signup
goals
feeds
topup
bec-bank-nk
bec-bank-ka
credit
support
supportsystem
social
stream
insight
Service overview (with infrastructure)
api
nemid
signup
goals
feeds
topup
bec-bank-nk
bec-bank-ka
credit
support
supportsystem
prometheus
elasticsearch
pushgateway
kibana
alertmanager
fluentd
node-exporter
rabbitmq
social
stream
insight
linkerd
Infrastructure
RabbitMQ Cluster Kubernetes Cluster Elasticsearch
Cluster
AWS
PostgreSQL
database
Where are we heading?
Horses vs Unicorns
- Gene Kim
Cloud Native Utopia
Microservice oriented Container packaged Dynamically scheduled
MICROSERVICES
Why ?
• Development
• Freedom and autonomy
• Best tool for the job
• Speed
• Architecture
• Fault tolerance
• Flexibility
• Coherence, decoupling, 

encapsulation
• Deployment
• Independence
• Scalability
• Speed
• Resource utilisation
1. 2. 3.
(our Microservice vision)
How are we building our services?
Asynchronous first
Decoupling in time and space allows for autonomy
Shared dependencies
Common packages, such as logging, monitoring, communication
Each service has it’s own repository
Containing source code, deployment spec, pipeline, etc.
HTTP REQ
event
Repo
Killing our Rails monolith
… slowly strangling Rails
Rails
Rails
Languages
Challenges - so far
• Development
• Tooling - e.g. Swagger for
events?
• Local env
• Shared code
• Deployment
• Automation
• Versioning
• Architecture
• Distributed monolith
• Transparency
• Complexity
• Cross cutting concerns
• Operation
• Monitoring
• Tracing events
CONTAINERS
What?
Container
App
Runtime
OS
HOST OS
DEVELOPERS OPERATIONS
Why?
Isolation
Services are isolated and contained in their environment
Consistency in portability
The container will run in the same way in local env as in prod
Versioning
Versioning a container is easy, rolling back and forth becomes easy
Container
App
Runtime
OS
Container
App
Runtime
OS
Container
App
Runtime
OS
Container
App
Runtime
OS
Development
Container
App
Runtime
OS
Production
Container
App V1
Runtime
OS
Container
App V2
Runtime
OS
Container
App
Runtime
OS
image:v1 image:v2 image:v3
DYNAMICALLY
SCHEDULED
What?
Node Node Node
Why?
Scheduling
The scheduler will schedule your service on a node
Resource optimization
Scheduling allows for better packaging of services in hosts
Resiliency
If a node dies, the scheduler will reschedule on another node
Scalability
Scaling a dynamically cluster is easy, just add more nodes
SO,
HOW DO WE WORK
TOWARDS BECOMING

A UNICORN?
Currently used CNCF projects
Kubernetes
Container Orchestration with
Why Kubernetes?
Community
48k+ commits, 22+ GitHub stars, 1.1k contributors
Crossplatform
Multiple arcs, multiple cloud providers
Resource optimization
Packing nodes to utilize available resources
Tooling
A lot of great tools
Scaling
Great integration with auto-scaling, both
on node- and container-level
High availability
Automatic failover, redundancy
Pure Awesomeness!
It’s just awesome!
1.5 release:
Estimated 400 years of work hours
What does it do?
Node Node Node Node Node
Node Node Node Node Node
big dataapp Bapp A database
datacenter
Cluster Manager
Where does it run?
eu-west-1a
eu-west-1b
eu-west-1c
Private
Public
Services running in kubernetes
Networking
infrastructure
elb
internal
elb
api
elb
nginx-ingress linkerd route53 default-backend
Logging
es-proxy
Dev Demo
service 1 service #
…
service 1 service #
…
Monitoring
prometheus
Misc
sanity-checks
release-notifier
pushgateway
alertmanager
grafana
fluentd
kibana
node-exporter
postgresql-exporter
rabbitmq-exporter
cloudwatch-
exporter
What do we think of it?
Freedom
Squads can deploy and more or less implement
how they see fit
Autonomous services
Squads can work independent of other squads
Continuous Delivery
Kubernetes allows us to deploy multiple times
a day. It’s easy to rollback in case something
went wrong
Flexibility
We run many different type of workloads in the
cluster. Gives us mobility to become cloud
agnostic
Scalable infrastructure
Scaling the infrastructure is easy, both on
node and container level
High availability
Kubernetes takes care of container
failures, AWS Auto Scaling groups takes
care of node failures
Easy maintenance
We are using Kubernetes Operations to
help us spin up our clusters, and maintain
them.
Fluentd
Log collection with
Why fluentd?
Simple and Easy
Provides a simple interface for specifying input and output. Works great with Kubernetes and containers.
Community
Big community around fluentd, validates our choice.
Small memory footprint
Do not require a lot of resources in the cluster
Proven reliability and performance
It’s a fairly battle tested project
What does it do?
<source>
@type tail
path /var/log/containers/*.log
pos_file /var/log/containers/es-containers.log.pos
tag kubernetes.application.*
format json
time_key event_time
time_format %Y-%m-%dT%H:%M:%S.%3NZ
</source>
<filter kubernetes.application.**>
@type kubernetes_metadata
merge_json_log true
preserve_json_log false
</filter>
<match kubernetes.application.**>
type elasticsearch
host es-proxy
port 9200
include_tag_key true
logstash_format true
logstash_prefix application-
reload_on_failure true
</match>
1.
2.
3.
Logging setup
AWS Elasticsearch Cluster
fluentd aws-signing-proxy
What do we think of it?
Very easy to use
Set up is easy!
Works great with Kubernetes
Awesome plugin for adding Kubernetes metadata - making it easy to identify pods etc.
Run as a daemonset
Easy to run in every node of the cluster as a daemonset
Prometheus
Monitoring with
Alertmanager
Grafana
Prometheus
Pushgateway
short-lived jobs
long-lived jobs
scrapes
What?
What does it do?
Multi-dimensional data model
Time series identified by metric name and key/value pairs
Flexible query language
Comes with a builtin query language for al kinds of operations, sums, averages, increase, rate, etc.
Easy and simple
Easy to setup, and works great with Kubernetes service discovery
Alerting and great integration with Grafana
Prometheus has a builtin alerting system, and Grafana provides easy integration for making
metrics visible in dashboards
Pull-based approach
Prometheus scrapes it’s targets at a regular interval
What metrics are we collecting?
Kubernetes specific metrics
Pods running, health of Kubernetes system components, etc.
RabbitMQ
Activity in queues, unacknowledged messages
Nodes
CPU, Memory
Traffic
Incoming traffic, upstream latency in cluster, etc.
Containers
CPU, Memory
Application Specific metrics
Relevant metrics, instrumented by the services owners
DEMO
What do we think of it?
Provides great insights
Provides valuable insights in the state of the cluster
Makes is easy to developers to instrument their services
We provide a simple package for instrumentation, making squads able to do their own
monitoring. YOU BUILT IT, YOU RUN IT!
Grafana integrations is sweet!
Grafana and Prometheus works well together, making Grafana the interface for building dashboards
and alerts
Kubernetes <3 Prometheus
The only thing a service owner has to do in the cluster to make Prometheus scrape their services is to
add:
annotations:
prometheus.io/scrape: 'true'
gRPC
Service to service communication with
What?
gRPCserver
Service #2Service #1
gRPCclient
Protocol
buffer
proto req
proto response
What do we use it for?
It will be our default choice for synchronous calls
Synchronous service to service communication will be aligned on gRPC
Internal support system will use it to fetch data from our services
Our internal support system needs information from different services on demand, the service
will use gRPC to fetch the data
service 4
service 3
service 1
service 2
Support
Why gRPC?
Simple service definition using Protocol buffers
Simpler request handling, no need for serialization and deserialization
Binary protocol
Less overhead in communication.
Works across multiple languages and platforms
gRPC has a widespread support for multiple languages, making it a perfect fit in our current
polyglot architecture
Works great with go and the rest of the ecosystem
Docker, Kubernetes uses gRPC as long with Go. It’s a natural extension for service to service
communication. Based on many years of Google experience!
UNICORN…
Back to the
Are we there yet?
YES! and no..
We deploy multiple times a day
Deployment is autonomous, squads can deploy to production as they please.
We can easily scale to larger demands, if necessary
Scaling our infrastructure is easy
HOWEVER, doing microservices are complex!
We still need to implement better tracing, using the CNCF project OpenTracing and Zipkin
We need more insights and smarter routing in our service to service communication, we will be
using linkerd.
We can tolerate AZ failures to some extend
Our services are spread across availability zones
DO YOU HAVE ANY QUESTIONS?
Last thing
Thank you for listening!
That was it for me!
If you wanna know more, send me a message in the Cloud Native DK Slack Community.
Remember to sign up at: https://cloudnative-dk.herokuapp.com/
Catch me on Twitter @phennex
I will be speaking again:

• CoDe:U - Continuous Delivery Users Århus (June 20th in INCUBA, Åbogade 15, Aarhus N)
• Link: https://www.meetup.com/CoDe-U-AROS/events/239847862/ 

• GOTOCon Copenhagen - October 1st
• Link: https://gotocph.com/2017/sessions/237
Ad

More Related Content

What's hot (20)

DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
Codefresh
 
Managing Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing KubernetesManaging Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing Kubernetes
Marc Sluiter
 
Serverless on Kubernetes
Serverless on KubernetesServerless on Kubernetes
Serverless on Kubernetes
Sebastien Goasguen
 
Kubernetes on AWS gone wild
Kubernetes on AWS gone wildKubernetes on AWS gone wild
Kubernetes on AWS gone wild
Christian Jantz
 
"On-premises" FaaS on Kubernetes
"On-premises" FaaS on Kubernetes"On-premises" FaaS on Kubernetes
"On-premises" FaaS on Kubernetes
Alex Casalboni
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
Wojciech Barczyński
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
Wojciech Barczyński
 
CI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar DemriCI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar Demri
DoiT International
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetes
craigbox
 
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
VMware Tanzu
 
Git deep dive – chopping Kubernetes
Git deep dive – chopping KubernetesGit deep dive – chopping Kubernetes
Git deep dive – chopping Kubernetes
Stefan Schimanski
 
What's Cooking in the Cloud?
What's Cooking in the Cloud?What's Cooking in the Cloud?
What's Cooking in the Cloud?
Kasper Loevborg Jensen
 
Using source code management patterns to configure and secure your Kubernetes...
Using source code management patterns to configure and secure your Kubernetes...Using source code management patterns to configure and secure your Kubernetes...
Using source code management patterns to configure and secure your Kubernetes...
Giovanni Galloro
 
Continuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on KubernetesContinuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on Kubernetes
Matt Baldwin
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
Grant Ellis
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CD
Elad Hirsch
 
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
Puppet
 
Kubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen FisherKubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen Fisher
DoiT International
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practices
Bill Liu
 
Kubernetes in Highly Restrictive Environments
Kubernetes in Highly Restrictive EnvironmentsKubernetes in Highly Restrictive Environments
Kubernetes in Highly Restrictive Environments
Kublr
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
Codefresh
 
Managing Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing KubernetesManaging Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing Kubernetes
Marc Sluiter
 
Kubernetes on AWS gone wild
Kubernetes on AWS gone wildKubernetes on AWS gone wild
Kubernetes on AWS gone wild
Christian Jantz
 
"On-premises" FaaS on Kubernetes
"On-premises" FaaS on Kubernetes"On-premises" FaaS on Kubernetes
"On-premises" FaaS on Kubernetes
Alex Casalboni
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
Wojciech Barczyński
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
Wojciech Barczyński
 
CI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar DemriCI Implementation with Kubernetes at LivePerson by Saar Demri
CI Implementation with Kubernetes at LivePerson by Saar Demri
DoiT International
 
Autoscaling Kubernetes
Autoscaling KubernetesAutoscaling Kubernetes
Autoscaling Kubernetes
craigbox
 
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
VMware Tanzu
 
Git deep dive – chopping Kubernetes
Git deep dive – chopping KubernetesGit deep dive – chopping Kubernetes
Git deep dive – chopping Kubernetes
Stefan Schimanski
 
Using source code management patterns to configure and secure your Kubernetes...
Using source code management patterns to configure and secure your Kubernetes...Using source code management patterns to configure and secure your Kubernetes...
Using source code management patterns to configure and secure your Kubernetes...
Giovanni Galloro
 
Continuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on KubernetesContinuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on Kubernetes
Matt Baldwin
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
Grant Ellis
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CD
Elad Hirsch
 
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
PuppetConf 2016: Scaling Puppet on AWS ECS with Terraform and Docker – Maxime...
Puppet
 
Kubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen FisherKubernetes @ Nanit by Chen Fisher
Kubernetes @ Nanit by Chen Fisher
DoiT International
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practices
Bill Liu
 
Kubernetes in Highly Restrictive Environments
Kubernetes in Highly Restrictive EnvironmentsKubernetes in Highly Restrictive Environments
Kubernetes in Highly Restrictive Environments
Kublr
 

Similar to Lunar Way and the Cloud Native "stack" (20)

Where should I run my code? Serverless, Containers, Virtual Machines and more
Where should I run my code? Serverless, Containers, Virtual Machines and moreWhere should I run my code? Serverless, Containers, Virtual Machines and more
Where should I run my code? Serverless, Containers, Virtual Machines and more
Bret McGowen - NYC Google Developer Advocate
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
ChengHui Weng
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
Pivotal Container Service Overview
Pivotal Container Service Overview Pivotal Container Service Overview
Pivotal Container Service Overview
VMware Tanzu
 
prodops.io k8s presentation
prodops.io k8s presentationprodops.io k8s presentation
prodops.io k8s presentation
Prodops.io
 
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
VMware Tanzu
 
Episode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-ServiceEpisode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-Service
Mesosphere Inc.
 
Persistent Storage for stateful applications on Kubernetes made easy with Ope...
Persistent Storage for stateful applications on Kubernetes made easy with Ope...Persistent Storage for stateful applications on Kubernetes made easy with Ope...
Persistent Storage for stateful applications on Kubernetes made easy with Ope...
MayaData Inc
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
Mithun Arunan
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
Patrick Chanezon
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
Marco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
NaLUG
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and Then
SATOSHI TAGOMORI
 
Watts Water Dapr Community Call - Building Distributed Systems with Dapr
Watts Water Dapr Community Call - Building Distributed Systems with DaprWatts Water Dapr Community Call - Building Distributed Systems with Dapr
Watts Water Dapr Community Call - Building Distributed Systems with Dapr
ssuserfb6acb
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
cornelia davis
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
sparkfabrik
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
ChengHui Weng
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
Pivotal Container Service Overview
Pivotal Container Service Overview Pivotal Container Service Overview
Pivotal Container Service Overview
VMware Tanzu
 
prodops.io k8s presentation
prodops.io k8s presentationprodops.io k8s presentation
prodops.io k8s presentation
Prodops.io
 
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
Faster, more Secure Application Modernization and Replatforming with PKS - Ku...
VMware Tanzu
 
Episode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-ServiceEpisode 1: Building Kubernetes-as-a-Service
Episode 1: Building Kubernetes-as-a-Service
Mesosphere Inc.
 
Persistent Storage for stateful applications on Kubernetes made easy with Ope...
Persistent Storage for stateful applications on Kubernetes made easy with Ope...Persistent Storage for stateful applications on Kubernetes made easy with Ope...
Persistent Storage for stateful applications on Kubernetes made easy with Ope...
MayaData Inc
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
Mithun Arunan
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
Patrick Chanezon
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
Marco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
NaLUG
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and Then
SATOSHI TAGOMORI
 
Watts Water Dapr Community Call - Building Distributed Systems with Dapr
Watts Water Dapr Community Call - Building Distributed Systems with DaprWatts Water Dapr Community Call - Building Distributed Systems with Dapr
Watts Water Dapr Community Call - Building Distributed Systems with Dapr
ssuserfb6acb
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
cornelia davis
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
sparkfabrik
 
Ad

More from Kasper Nissen (6)

GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
Kasper Nissen
 
Cloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOpsCloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOps
Kasper Nissen
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheus
Kasper Nissen
 
IT Minds Mindblown Networking Event 2016
IT Minds Mindblown Networking Event 2016IT Minds Mindblown Networking Event 2016
IT Minds Mindblown Networking Event 2016
Kasper Nissen
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
Kasper Nissen
 
Let's tak Productivity (Let's talk Apple #4)
Let's tak Productivity (Let's talk Apple #4)Let's tak Productivity (Let's talk Apple #4)
Let's tak Productivity (Let's talk Apple #4)
Kasper Nissen
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
Kasper Nissen
 
Cloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOpsCloud Native CI/CD with GitOps
Cloud Native CI/CD with GitOps
Kasper Nissen
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheus
Kasper Nissen
 
IT Minds Mindblown Networking Event 2016
IT Minds Mindblown Networking Event 2016IT Minds Mindblown Networking Event 2016
IT Minds Mindblown Networking Event 2016
Kasper Nissen
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
Kasper Nissen
 
Let's tak Productivity (Let's talk Apple #4)
Let's tak Productivity (Let's talk Apple #4)Let's tak Productivity (Let's talk Apple #4)
Let's tak Productivity (Let's talk Apple #4)
Kasper Nissen
 
Ad

Recently uploaded (20)

Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 

Lunar Way and the Cloud Native "stack"

  • 1. MAKE
 MONEY
 MATTER. Cloud Native Aarhus By Kasper Nissen (@phennex), DevOps Engineer @thelunarway
  • 2. MAKE
 MONEY
 MATTER. Cloud Native Aarhus By Kasper Nissen (@phennex), DevOps Engineer @thelunarway
  • 3. Lunar Way • The Partner model • Leverage the partner banks infrastructure • All money is in the partner bank • Currently only in Denmark, will move to the nordics in the near future
  • 4. Kasper Nissen DevOps & Infrastructure Engineer @thelunarway Experience DevOps & Infrastructure Engineer @ LEGO (CITMABIS) (oursourced by IT Minds) for 5 months Senior/Software Engineer @ IT Minds (~4 years part time) Master thesis: KubeCloud - A Small-Scale Tangible Cloud Computing Environment.
 Interview with Software Engineering Daily: bit.ly/2paZ5lg Blogging about Cloud Native Tech @ www.kubecloud.io M. Eng. Computer Technology from Aarhus University - Department of Engineering. B. Eng. Information and Communication Technology from Aarhus University - School of Engineering
  • 5. What do we have running? 19services 215containers in prod 13infrastructure services 3node rabbitmq cluster 1rails monolith 2100 GB postgresql DB’s 3kubernetes clusters 3AWS Accounts
  • 6. Where are we running?
  • 8. Service overview (with infrastructure) api nemid signup goals feeds topup bec-bank-nk bec-bank-ka credit support supportsystem prometheus elasticsearch pushgateway kibana alertmanager fluentd node-exporter rabbitmq social stream insight linkerd
  • 9. Infrastructure RabbitMQ Cluster Kubernetes Cluster Elasticsearch Cluster AWS PostgreSQL database
  • 10. Where are we heading? Horses vs Unicorns - Gene Kim
  • 11. Cloud Native Utopia Microservice oriented Container packaged Dynamically scheduled
  • 13. Why ? • Development • Freedom and autonomy • Best tool for the job • Speed • Architecture • Fault tolerance • Flexibility • Coherence, decoupling, 
 encapsulation • Deployment • Independence • Scalability • Speed • Resource utilisation 1. 2. 3. (our Microservice vision)
  • 14. How are we building our services? Asynchronous first Decoupling in time and space allows for autonomy Shared dependencies Common packages, such as logging, monitoring, communication Each service has it’s own repository Containing source code, deployment spec, pipeline, etc. HTTP REQ event Repo
  • 15. Killing our Rails monolith … slowly strangling Rails Rails Rails
  • 17. Challenges - so far • Development • Tooling - e.g. Swagger for events? • Local env • Shared code • Deployment • Automation • Versioning • Architecture • Distributed monolith • Transparency • Complexity • Cross cutting concerns • Operation • Monitoring • Tracing events
  • 20. Why? Isolation Services are isolated and contained in their environment Consistency in portability The container will run in the same way in local env as in prod Versioning Versioning a container is easy, rolling back and forth becomes easy Container App Runtime OS Container App Runtime OS Container App Runtime OS Container App Runtime OS Development Container App Runtime OS Production Container App V1 Runtime OS Container App V2 Runtime OS Container App Runtime OS image:v1 image:v2 image:v3
  • 23. Why? Scheduling The scheduler will schedule your service on a node Resource optimization Scheduling allows for better packaging of services in hosts Resiliency If a node dies, the scheduler will reschedule on another node Scalability Scaling a dynamically cluster is easy, just add more nodes
  • 24. SO, HOW DO WE WORK TOWARDS BECOMING
 A UNICORN?
  • 27. Why Kubernetes? Community 48k+ commits, 22+ GitHub stars, 1.1k contributors Crossplatform Multiple arcs, multiple cloud providers Resource optimization Packing nodes to utilize available resources Tooling A lot of great tools Scaling Great integration with auto-scaling, both on node- and container-level High availability Automatic failover, redundancy Pure Awesomeness! It’s just awesome! 1.5 release: Estimated 400 years of work hours
  • 28. What does it do? Node Node Node Node Node Node Node Node Node Node big dataapp Bapp A database datacenter Cluster Manager
  • 29. Where does it run? eu-west-1a eu-west-1b eu-west-1c Private Public
  • 30. Services running in kubernetes Networking infrastructure elb internal elb api elb nginx-ingress linkerd route53 default-backend Logging es-proxy Dev Demo service 1 service # … service 1 service # … Monitoring prometheus Misc sanity-checks release-notifier pushgateway alertmanager grafana fluentd kibana node-exporter postgresql-exporter rabbitmq-exporter cloudwatch- exporter
  • 31. What do we think of it? Freedom Squads can deploy and more or less implement how they see fit Autonomous services Squads can work independent of other squads Continuous Delivery Kubernetes allows us to deploy multiple times a day. It’s easy to rollback in case something went wrong Flexibility We run many different type of workloads in the cluster. Gives us mobility to become cloud agnostic Scalable infrastructure Scaling the infrastructure is easy, both on node and container level High availability Kubernetes takes care of container failures, AWS Auto Scaling groups takes care of node failures Easy maintenance We are using Kubernetes Operations to help us spin up our clusters, and maintain them.
  • 33. Why fluentd? Simple and Easy Provides a simple interface for specifying input and output. Works great with Kubernetes and containers. Community Big community around fluentd, validates our choice. Small memory footprint Do not require a lot of resources in the cluster Proven reliability and performance It’s a fairly battle tested project
  • 34. What does it do? <source> @type tail path /var/log/containers/*.log pos_file /var/log/containers/es-containers.log.pos tag kubernetes.application.* format json time_key event_time time_format %Y-%m-%dT%H:%M:%S.%3NZ </source> <filter kubernetes.application.**> @type kubernetes_metadata merge_json_log true preserve_json_log false </filter> <match kubernetes.application.**> type elasticsearch host es-proxy port 9200 include_tag_key true logstash_format true logstash_prefix application- reload_on_failure true </match> 1. 2. 3.
  • 35. Logging setup AWS Elasticsearch Cluster fluentd aws-signing-proxy
  • 36. What do we think of it? Very easy to use Set up is easy! Works great with Kubernetes Awesome plugin for adding Kubernetes metadata - making it easy to identify pods etc. Run as a daemonset Easy to run in every node of the cluster as a daemonset
  • 39. What does it do? Multi-dimensional data model Time series identified by metric name and key/value pairs Flexible query language Comes with a builtin query language for al kinds of operations, sums, averages, increase, rate, etc. Easy and simple Easy to setup, and works great with Kubernetes service discovery Alerting and great integration with Grafana Prometheus has a builtin alerting system, and Grafana provides easy integration for making metrics visible in dashboards Pull-based approach Prometheus scrapes it’s targets at a regular interval
  • 40. What metrics are we collecting? Kubernetes specific metrics Pods running, health of Kubernetes system components, etc. RabbitMQ Activity in queues, unacknowledged messages Nodes CPU, Memory Traffic Incoming traffic, upstream latency in cluster, etc. Containers CPU, Memory Application Specific metrics Relevant metrics, instrumented by the services owners
  • 41. DEMO
  • 42. What do we think of it? Provides great insights Provides valuable insights in the state of the cluster Makes is easy to developers to instrument their services We provide a simple package for instrumentation, making squads able to do their own monitoring. YOU BUILT IT, YOU RUN IT! Grafana integrations is sweet! Grafana and Prometheus works well together, making Grafana the interface for building dashboards and alerts Kubernetes <3 Prometheus The only thing a service owner has to do in the cluster to make Prometheus scrape their services is to add: annotations: prometheus.io/scrape: 'true'
  • 43. gRPC Service to service communication with
  • 45. What do we use it for? It will be our default choice for synchronous calls Synchronous service to service communication will be aligned on gRPC Internal support system will use it to fetch data from our services Our internal support system needs information from different services on demand, the service will use gRPC to fetch the data service 4 service 3 service 1 service 2 Support
  • 46. Why gRPC? Simple service definition using Protocol buffers Simpler request handling, no need for serialization and deserialization Binary protocol Less overhead in communication. Works across multiple languages and platforms gRPC has a widespread support for multiple languages, making it a perfect fit in our current polyglot architecture Works great with go and the rest of the ecosystem Docker, Kubernetes uses gRPC as long with Go. It’s a natural extension for service to service communication. Based on many years of Google experience!
  • 48. Are we there yet? YES! and no.. We deploy multiple times a day Deployment is autonomous, squads can deploy to production as they please. We can easily scale to larger demands, if necessary Scaling our infrastructure is easy HOWEVER, doing microservices are complex! We still need to implement better tracing, using the CNCF project OpenTracing and Zipkin We need more insights and smarter routing in our service to service communication, we will be using linkerd. We can tolerate AZ failures to some extend Our services are spread across availability zones
  • 49. DO YOU HAVE ANY QUESTIONS? Last thing
  • 50. Thank you for listening! That was it for me! If you wanna know more, send me a message in the Cloud Native DK Slack Community. Remember to sign up at: https://cloudnative-dk.herokuapp.com/ Catch me on Twitter @phennex I will be speaking again:
 • CoDe:U - Continuous Delivery Users Århus (June 20th in INCUBA, Åbogade 15, Aarhus N) • Link: https://www.meetup.com/CoDe-U-AROS/events/239847862/ 
 • GOTOCon Copenhagen - October 1st • Link: https://gotocph.com/2017/sessions/237