SlideShare a Scribd company logo
Building a µservice
with Kotlin,
Micronaut & GCP
Aboutme
Robert
He/Him
Steward of DevConf & Developer User Group
Tech Lead at Equal Experts
DevConf
Full day conference
Swag, 5 tracks, international speakers
You and 800 of your new best friends
www.DevConf.co.za
Agenda
Retrospective
Lets build a µService together
What about that Google secret sauce?
Wherearewe?
Problem: Large retailer who needs to modernize
On prem -> Cloud
Single system -> microservices
Ownership through DevOps and Feature Teams
Platformteam
Builds out common guidance and tooling
Alignment is optional but recommended
• GCP
• K8s & Docker
• Base K8s design which includes normalisation
• JVM stack
Ourchoices?
Language = Kotlin
Framework = Micronaut
WhatisMicronaut?
Welcome
New… like 2018 new
From the fine people who brought you Grails
Embrace the world of 2019
• Use modern JVM features & memory management
• Build a framework for what we build today
• Steal from everyone
Fastisrelative
Fast != Better
Better is also relative
Fast shouldn’t be your only consideration
Fast enough is a good goal to have
What are you trading off…
Coldstart
Goals
Reflection
API Controller
GET /cart
Get list of methods
Do some loops and lookups
…
Profit
Takes time
Aheadoftime
API Controller
GET /cart
Get list of methods
Do some loops and lookups
…
Profit
Compiler
does this
now
Butwhatelse?
Amazing Dependency Injection
Everything you need to build modern services “in-
the-box”, most enabled with a one-line
build.gradle change
Reasonable initial configs
Let’s build a µservice
Go!
Thedemoisalie
I never did mn create-controller in real life
We did everything in an interface
Complaints
HTTP Client
“magic”
Randomness in documentation quality
Wins
Pit of success
StackDriver Output
Prometheus
All the things everyone else has is here
Filters & Interceptors
The escape hatches are awesome
Database?
DataStore
Key/val
Want to work with objects – screw these strings
Objectify
Objectify
Wins/Losses/Lies?
Separate project to hide all the logic
• Makes micronaut DI annoying
Great that I do not need to worry about strings
Great that I can choose async or sync
GettingtoGCP
Gateway
cart.shop.comproducts.beta.shop
.com
cart.beta.shop.com
pod pod
pod pod
pod pod
pod pod
Docker,k8s…ohmy
IwanttoKotlin
Jib
Lies?
This is a build thing for us (GitLab)
Scanning all the items
Wins?
Maven, Gradle & JibCore
Oddsandends?
Testing thoughts
• Run all tests all the time
• Mock sparingly (Mockk & Wirework)
clikt is amazeballs
Wrapup
Micronaut has served us well
• Future proof & easy to work with
• Do not jump to it, solutions like Micronaut for
Spring
Thanks to Jib, now you too can be a SRE
Thanks
www.sadev.co.za

More Related Content

What's hot (20)

PPTX
Introduction to git and Github
Wycliff1
 
PPTX
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Aysylu Greenberg
 
PPTX
Git
letourneauacm
 
PDF
GitHub Actions with Node.js
Stefan Stölzle
 
PPTX
Git Going w/ Git
heyMP
 
PPTX
GitHub Actions demo with mabl
Bertold Kolics
 
PDF
Implementing a command line client to GitHub in Go
Owen Ou
 
PPTX
GitHub Actions - Melbourne UG
Natraj Yegnaraman
 
PDF
Cloud Spin - building a photo booth with the Google Cloud Platform
Bret McGowen - NYC Google Developer Advocate
 
PPTX
CI/CD with GitHub Actions
Swaminathan Vetri
 
PPTX
Up GitLab Presentation 2015
Kumaran Balachandran
 
PPTX
Git n git hub
Jiwon Baek
 
PDF
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
inovex GmbH
 
PPTX
Github in Action
Morten Christensen
 
PPTX
Quick workflow of a nodejs api
Paolo Carrasco Mori
 
PPTX
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
PDF
Distributed systems in practice, in theory (JAX London)
Aysylu Greenberg
 
PPTX
GitLab 8.6 - Release Webcast
GitLab, Inc
 
PPTX
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
PPTX
Git & Github
Aman Lalpuria
 
Introduction to git and Github
Wycliff1
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Aysylu Greenberg
 
GitHub Actions with Node.js
Stefan Stölzle
 
Git Going w/ Git
heyMP
 
GitHub Actions demo with mabl
Bertold Kolics
 
Implementing a command line client to GitHub in Go
Owen Ou
 
GitHub Actions - Melbourne UG
Natraj Yegnaraman
 
Cloud Spin - building a photo booth with the Google Cloud Platform
Bret McGowen - NYC Google Developer Advocate
 
CI/CD with GitHub Actions
Swaminathan Vetri
 
Up GitLab Presentation 2015
Kumaran Balachandran
 
Git n git hub
Jiwon Baek
 
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
inovex GmbH
 
Github in Action
Morten Christensen
 
Quick workflow of a nodejs api
Paolo Carrasco Mori
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Distributed systems in practice, in theory (JAX London)
Aysylu Greenberg
 
GitLab 8.6 - Release Webcast
GitLab, Inc
 
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
Git & Github
Aman Lalpuria
 

Similar to Building a µservice with Kotlin, Micronaut & GCP (20)

PPTX
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Weaveworks
 
PDF
Continuous Lifecycle London 2018 Event Keynote
Weaveworks
 
PDF
GCP Meetup #3 - Approaches to Cloud Native Architectures
nine
 
PPTX
Old code doesn't stink - Detroit
Martin Gutenbrunner
 
PDF
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
 
PPTX
Ship code like a keptn
Rob Jahn
 
PPT
IBM and Node.js - Old Doge, New Tricks
Dejan Glozic
 
PDF
Mete Atamel "Resilient microservices with kubernetes"
IT Event
 
PDF
Kubexperience intro session
Haggai Philip Zagury
 
PDF
Free GitOps Workshop
Weaveworks
 
PDF
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2
 
PDF
Resilient microservices with Kubernetes - Mete Atamel - Codemotion Rome 2017
Codemotion
 
PDF
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
Daniel Santiago Silva Capera
 
PDF
Exponential growth with IaC superpowers
Carlo Corti
 
PDF
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Weaveworks
 
PDF
The what, why and how of knative
Mofizur Rahman
 
PPTX
Kubernetes 101
Stanislav Pogrebnyak
 
PDF
Stateful, Stateless and Serverless - Running Apache Kafka® on Kubernetes
confluent
 
PPTX
(java2days) Is the Future of Java Cloudy?
Steve Poole
 
PDF
Yannis Zarkadas. Enterprise data science workflows on kubeflow
MarynaHoldaieva
 
Cloud Native Transformation (Alexis Richardson) - Continuous Lifecycle 2018 ...
Weaveworks
 
Continuous Lifecycle London 2018 Event Keynote
Weaveworks
 
GCP Meetup #3 - Approaches to Cloud Native Architectures
nine
 
Old code doesn't stink - Detroit
Martin Gutenbrunner
 
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
 
Ship code like a keptn
Rob Jahn
 
IBM and Node.js - Old Doge, New Tricks
Dejan Glozic
 
Mete Atamel "Resilient microservices with kubernetes"
IT Event
 
Kubexperience intro session
Haggai Philip Zagury
 
Free GitOps Workshop
Weaveworks
 
WSO2Con EU 2015: Keynote - The Containerization of the Developer Workspace
WSO2
 
Resilient microservices with Kubernetes - Mete Atamel - Codemotion Rome 2017
Codemotion
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
Daniel Santiago Silva Capera
 
Exponential growth with IaC superpowers
Carlo Corti
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Weaveworks
 
The what, why and how of knative
Mofizur Rahman
 
Kubernetes 101
Stanislav Pogrebnyak
 
Stateful, Stateless and Serverless - Running Apache Kafka® on Kubernetes
confluent
 
(java2days) Is the Future of Java Cloudy?
Steve Poole
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
MarynaHoldaieva
 
Ad

More from Robert MacLean (20)

PPTX
Deno ...................................
Robert MacLean
 
PPTX
14 things you need to be a successful software developer (v3)
Robert MacLean
 
PPTX
OWASP TOP 10
Robert MacLean
 
PPTX
Looking at the Vue
Robert MacLean
 
PPTX
Kotlin 101
Robert MacLean
 
PPTX
Features of Kotlin I find exciting
Robert MacLean
 
PPTX
JavaScript Gotchas
Robert MacLean
 
PPTX
DevConf Survival Guide
Robert MacLean
 
PPTX
The state of testing @ Microsoft
Robert MacLean
 
PPTX
Visual Studio ❤ JavaScript
Robert MacLean
 
PPTX
What is new in C# 6?
Robert MacLean
 
PPTX
Putting the DOT in .NET - Dev/Ops/Test
Robert MacLean
 
PPTX
A Developer Day 2014 - Durban
Robert MacLean
 
PPTX
Agile lessons learned in the Microsoft ALM Rangers
Robert MacLean
 
PPTX
Hour of code - Train the trainer
Robert MacLean
 
PPTX
Building services for apps on a shoestring budget
Robert MacLean
 
PPTX
3 things your app API is doing WRONG
Robert MacLean
 
PPTX
ASP.NET
Robert MacLean
 
PPTX
LightSwitch
Robert MacLean
 
PPTX
How to build a Mobile API or HTML 5 app in 5 minutes
Robert MacLean
 
Deno ...................................
Robert MacLean
 
14 things you need to be a successful software developer (v3)
Robert MacLean
 
OWASP TOP 10
Robert MacLean
 
Looking at the Vue
Robert MacLean
 
Kotlin 101
Robert MacLean
 
Features of Kotlin I find exciting
Robert MacLean
 
JavaScript Gotchas
Robert MacLean
 
DevConf Survival Guide
Robert MacLean
 
The state of testing @ Microsoft
Robert MacLean
 
Visual Studio ❤ JavaScript
Robert MacLean
 
What is new in C# 6?
Robert MacLean
 
Putting the DOT in .NET - Dev/Ops/Test
Robert MacLean
 
A Developer Day 2014 - Durban
Robert MacLean
 
Agile lessons learned in the Microsoft ALM Rangers
Robert MacLean
 
Hour of code - Train the trainer
Robert MacLean
 
Building services for apps on a shoestring budget
Robert MacLean
 
3 things your app API is doing WRONG
Robert MacLean
 
LightSwitch
Robert MacLean
 
How to build a Mobile API or HTML 5 app in 5 minutes
Robert MacLean
 
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PPTX
The Yotta x CloudStack Advantage: Scalable, India-First Cloud
ShapeBlue
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
PDF
Novus-Safe Pro: Brochure-What is Novus Safe Pro?.pdf
Novus Hi-Tech
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PDF
Productivity Management Software | Workstatus
Lovely Baghel
 
PDF
Agentic Artificial Intelligence (AI) and its growing impact on business opera...
Alakmalak Technologies Pvt. Ltd.
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
Upskill to Agentic Automation 2025 - Kickoff Meeting
DianaGray10
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PPTX
Lecture 5 - Agentic AI and model context protocol.pptx
Dr. LAM Yat-fai (林日辉)
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
Earn Agentblazer Status with Slack Community Patna.pptx
SanjeetMishra29
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
PDF
Bitcoin+ Escalando sin concesiones - Parte 1
Fernando Paredes García
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
The Yotta x CloudStack Advantage: Scalable, India-First Cloud
ShapeBlue
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
Novus-Safe Pro: Brochure-What is Novus Safe Pro?.pdf
Novus Hi-Tech
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
Productivity Management Software | Workstatus
Lovely Baghel
 
Agentic Artificial Intelligence (AI) and its growing impact on business opera...
Alakmalak Technologies Pvt. Ltd.
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
Upskill to Agentic Automation 2025 - Kickoff Meeting
DianaGray10
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Lecture 5 - Agentic AI and model context protocol.pptx
Dr. LAM Yat-fai (林日辉)
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Earn Agentblazer Status with Slack Community Patna.pptx
SanjeetMishra29
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
Bitcoin+ Escalando sin concesiones - Parte 1
Fernando Paredes García
 

Building a µservice with Kotlin, Micronaut & GCP