SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Creating an Effective Developer
Experience for Cloud-Native Apps
Daniel Bryant
@danielbryantuk | @datawireio
The “Architect” Role is Changing
https://pivotal.io/cloud-native
“Developer Experience”
tl;dr
“Developer experience” is primarily about minimising the friction between having
an idea to delivering some code into production that provides business value
How you construct your ‘platform’ impacts the developer experience greatly
Architects need to think about intentionally designing this platform
@danielbryantuk
Independent Technical Consultant, Product Architect at Datawire
and News Manager at InfoQ
Previously: Academic, software developer (from startups to gov),
architect, consultant, CTO, trainer, conference tourist…
Leading change through technology and teams
DevEx 101
Developer Experience (DevEx) is about...
“...reducing engineering friction between creating a hypothesis, to
delivering an observable experiment (or business value) in production”
- Adrian Trenaman (SVP Engineering, HBC)
https://www.infoq.com/news/2017/07/remove-friction-dev-ex
DevEx isn’t new, but it is important
● Lead time
● Deployment frequency
● Mean time to restore (MTTR)
● Change fail percentage
● Rapid provisioning
● Basic monitoring
● Rapid app deployment
https://martinfowler.com/bliki/MicroservicePrerequisites.html
DevEx: Three Components
DevEx and
Workflow
The Ideal Workflow
https://speakerdeck.com/stilkov/microservices-patterns-and-antipatterns-1
Decentralised Biz/Product Teams;
Centralised Specialists and Platform
Team Z:
Prototyping
Team A:
Mission-Critical
Team T:
Production Phase
The (Cloud) Platform
Drives DevEx
https://twitter.com/kelseyhightower/status/851935087532945409
https://www.infoq.com/news/2017/06/paved-paas-netflix
https://www.infoq.com/news/2018/07/shopify-kubernetes-paas
CNCF Vision: Macro-Level Guidance
https://articles.microservices.com/developer-workflow-trail-for-cl
oud-native-applications-request-for-feedback-a9365b64c790
https://github.com/cncf/landscape#trail-map
Platform/architecture: Chicken/egg?
https://aws.amazon.com/architecture/well-architected/
Should I Build a
PaaS on k8s?
Key Questions to Think About...
Develop and test services locally, or
within the cluster (or both)?
● Working locally has many advantages
○ Reduce ops cost of multi-cluster
● However, some systems are simply too
large to run locally (for integration tests)
● Local/remote container dev tools like
Telepresence and Squash allow hybrid
How quick do you need user feedback?
● Probabilistic guarantees with
pre-prod testing in complex systems
● Canary testing is very powerful
○ As is developing in prod and shadowing
● Needs app and platform support
○ And appropriate architecture
https://medium.com/@copyconstruct/testing-microservices-the
-sane-way-9bb31d158c16
Do you want to implement “guide rails”
for your development teams?
● Larger teams often want to provide
comprehensive guide rails
● Startups and SMEs may instead value
team independence
● Hybrid? Offer platform, but allow service
teams freedom and responsibility
https://blog.openshift.com/multiple-deployment-methods-openshift/
Where should you focus your efforts?
Some thoughts on this...
Prototype Production Mission Critical
Dev and test Local / hybrid Local / hybrid / MDC MDC / local
Deployment Canary Canary / pre-prod test Pre-prod test / Canary
Guide rails “YOLO” Limited Strong
Where to focus? Inner development
loop & CI/CD
Scaffolding (codifying
best practices)
Testing (pre/post-prod,
and environment/data
re-creation)
Workflow
Tooling and
Techniques
Pattern: K8s as a Foundation
● Kubernetes becoming de facto CoaaS (the new cloud broker?)
○ Lots of hosted options
● Know the extension points
○ Custom Controllers
○ Operators
○ CloudBuddies
● Extension enables custom workflow
○ “Kubernetes Custom Resource, Controller and Operator Development Tools”
Vendor Lock-in
“Engineers sometimes go to great
lengths to avoid vendor lock-in. The
irony is that in doing so, they often
become their own vendor... with just
as troublesome behaviour and rules”
- paraphrasing @adrianco
Pattern: Automate Inner Dev Loop
https://bit.ly/2RXfokz
Pattern: Automate Inner Dev Loop
https://blog.hasura.io/draft-vs-gitkube-vs-helm-vs-
ksonnet-vs-metaparticle-vs-skaffold-f5aa9561f948
https://codeengineered.com/blog/2018/kuberne
tes-helm-related-tools/
● Draft
○ Automates “inner loop” build-push-deploy
○ Utilises Helm
● Gitkube
○ Automates build-push-deploy
○ Provides heroku / CF like experience
● Skaffold
○ Automates build-push-deploy
○ Watches source code
○ Provides “dev” and “run” (CD) modes
● Tilt
○ Automates “inner loop” build-test-deploy
● Garden
○ Automates local build-push-test-deploy
Pattern: Automate Inner Dev Loop
● Helm (*)
○ Package manager for k8s
○ Deploy and manage (ready-made) charts
● Ksonnet
○ Define k8s manifests in jsonnet
○ Create composable config/services
● Telepresence (*)
○ Enables local-to-prod development
(*) CNCF projects
https://www.youtube.com/watch?v=MGeUUmdtdKA
Skaffold
Telepresence
Pattern: Self-Service Init and Deploy
Pattern: Envoy for Managing L7 Traffic
● Implementing cross-cutting
concerns in the platform enables
loose-coupling
● Allows fine-grained deploy/release
● Many control planes (for Envoy)
○ Ambassador
○ Gloo
○ Istio https://www.infoq.com/articles/ambassador-api-gateway-kubernetes
Pattern: CI/CD Enforces Policy
● Make is easy to do the right thing
○ Self-service pipeline creations
○ Bake-in hooks/slots for platform functionality
○ Sensible policy defaults
● Testing of NFRs is vital
○ Security
○ Performance
○ Quality
https://www.youtube.com/watch?v=hJkhPP2OLA8
Pattern: Observability > Testing
● Essential part of the platform and developer
workflow/experience
○ Monitoring, logging and tracing
○ Bake-in hooks to scaffolding
● Global && service-to-service dashboards
● “Observability and Avoiding Alert Overload
from Microservices at the Financial Times”
UX, it matters...
Conclusion
In Summary
The developer experience is primarily about minimising the friction between having
an idea, to dev/test, to deploy, to delivering observable business value
How you construct your ‘platform’ impacts the developer experience greatly
You must intentionally curate the experience of: local development, packaging
apps, CI/CD, deployment control, and observability
Thanks for Listening!
Questions, comments, thoughts…
db@datawire.io
@danielbryantuk
More info: dzone.com/articles/creating-a-positive-developer-experience-for-conta
datawire.io/what-is-cloud-native | getambassador.io | istio.io | telepresence.io,
prometheus.io | “Kubernetes Up and Running”
Bonus
Do you have a strong opinion on code
repository structure?
● Monorepo:
○ Coordination of integration and testing
across services is generally easier,
○ Service dependency management easier
● Multi-repo:
○ Clearer ownership
○ Can promote loose coupling
○ Refactoring and code-level standardization
can be challenging
http://blog.shippable.com/our-journey-to-microservices-and-a-mono-repository
https://blog.gardeviance.org/2015/03/on-pioneers-settlers-town-planners-and.html

Mais conteúdo relacionado

Mais procurados

Reshaping Enterprise Architecture
Reshaping Enterprise Architecture Reshaping Enterprise Architecture
Reshaping Enterprise Architecture
WSO2
 

Mais procurados (12)

Choisir le bon business model et la bonne licence pour la survie de son proje...
Choisir le bon business model et la bonne licence pour la survie de son proje...Choisir le bon business model et la bonne licence pour la survie de son proje...
Choisir le bon business model et la bonne licence pour la survie de son proje...
 
Reshaping Enterprise Architecture
Reshaping Enterprise Architecture Reshaping Enterprise Architecture
Reshaping Enterprise Architecture
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
 
Supplying scalable VR training applications with Innoactive - Unite Copenhage...
Supplying scalable VR training applications with Innoactive - Unite Copenhage...Supplying scalable VR training applications with Innoactive - Unite Copenhage...
Supplying scalable VR training applications with Innoactive - Unite Copenhage...
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
 
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
 
The future of Prototpying
The future of PrototpyingThe future of Prototpying
The future of Prototpying
 
Prodyna exhibiting at London Tech Job Fair Autumn 2019
Prodyna exhibiting at London Tech Job Fair Autumn 2019Prodyna exhibiting at London Tech Job Fair Autumn 2019
Prodyna exhibiting at London Tech Job Fair Autumn 2019
 
TechEvent OpenShift for Developers
TechEvent OpenShift for DevelopersTechEvent OpenShift for Developers
TechEvent OpenShift for Developers
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
Digi Pro 2019: ASWF Technical Advisory Council: How to Enable An Open Source ...
Digi Pro 2019: ASWF Technical Advisory Council: How to Enable An Open Source ...Digi Pro 2019: ASWF Technical Advisory Council: How to Enable An Open Source ...
Digi Pro 2019: ASWF Technical Advisory Council: How to Enable An Open Source ...
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 

Semelhante a SACON NY 19: "Creating an effective developer experience for cloud-native apps"

Semelhante a SACON NY 19: "Creating an effective developer experience for cloud-native apps" (20)

Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"Workday "Creating an Effective Developer Experience on Kubernetes"
Workday "Creating an Effective Developer Experience on Kubernetes"
 
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
 
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
muCon 2019: "Creating an Effective Developer Experience for Cloud-Native Apps"
 
Platform Engineering
Platform EngineeringPlatform Engineering
Platform Engineering
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
Accelerating Digital Transformation: It's About Digital Enablement
Accelerating Digital Transformation:  It's About Digital EnablementAccelerating Digital Transformation:  It's About Digital Enablement
Accelerating Digital Transformation: It's About Digital Enablement
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
 
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxMuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
 
Speeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCSpeeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCC
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OKIntroduction to DevOps and the Practical Use Cases at Credit OK
Introduction to DevOps and the Practical Use Cases at Credit OK
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Operator development made easy with helm
Operator development made easy with helmOperator development made easy with helm
Operator development made easy with helm
 
"Operator development made easy with Helm"
"Operator development made easy with Helm""Operator development made easy with Helm"
"Operator development made easy with Helm"
 
"Operator development made easy with Helm"
"Operator development made easy with Helm""Operator development made easy with Helm"
"Operator development made easy with Helm"
 
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
 
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
 
Transformacion e innovacion digital Meetup - Application Modernization and Mi...
Transformacion e innovacion digital Meetup - Application Modernization and Mi...Transformacion e innovacion digital Meetup - Application Modernization and Mi...
Transformacion e innovacion digital Meetup - Application Modernization and Mi...
 

Mais de Daniel Bryant

Mais de Daniel Bryant (20)

ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API GatewaysITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
 
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
 
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
 
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
 
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
 
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
 
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
 
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
 
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
 
Ambassador Fest: "Kubernetes Workflow 101: The Big Picture of Idea to an API ...
Ambassador Fest: "Kubernetes Workflow 101: The Big Picture of Idea to an API ...Ambassador Fest: "Kubernetes Workflow 101: The Big Picture of Idea to an API ...
Ambassador Fest: "Kubernetes Workflow 101: The Big Picture of Idea to an API ...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

SACON NY 19: "Creating an effective developer experience for cloud-native apps"

  • 1. Creating an Effective Developer Experience for Cloud-Native Apps Daniel Bryant @danielbryantuk | @datawireio
  • 2. The “Architect” Role is Changing https://pivotal.io/cloud-native
  • 4. tl;dr “Developer experience” is primarily about minimising the friction between having an idea to delivering some code into production that provides business value How you construct your ‘platform’ impacts the developer experience greatly Architects need to think about intentionally designing this platform
  • 5. @danielbryantuk Independent Technical Consultant, Product Architect at Datawire and News Manager at InfoQ Previously: Academic, software developer (from startups to gov), architect, consultant, CTO, trainer, conference tourist… Leading change through technology and teams
  • 7. Developer Experience (DevEx) is about... “...reducing engineering friction between creating a hypothesis, to delivering an observable experiment (or business value) in production” - Adrian Trenaman (SVP Engineering, HBC) https://www.infoq.com/news/2017/07/remove-friction-dev-ex
  • 8. DevEx isn’t new, but it is important ● Lead time ● Deployment frequency ● Mean time to restore (MTTR) ● Change fail percentage ● Rapid provisioning ● Basic monitoring ● Rapid app deployment https://martinfowler.com/bliki/MicroservicePrerequisites.html
  • 13. Decentralised Biz/Product Teams; Centralised Specialists and Platform Team Z: Prototyping Team A: Mission-Critical Team T: Production Phase
  • 17. CNCF Vision: Macro-Level Guidance https://articles.microservices.com/developer-workflow-trail-for-cl oud-native-applications-request-for-feedback-a9365b64c790 https://github.com/cncf/landscape#trail-map
  • 19. Should I Build a PaaS on k8s?
  • 20. Key Questions to Think About...
  • 21. Develop and test services locally, or within the cluster (or both)? ● Working locally has many advantages ○ Reduce ops cost of multi-cluster ● However, some systems are simply too large to run locally (for integration tests) ● Local/remote container dev tools like Telepresence and Squash allow hybrid
  • 22. How quick do you need user feedback? ● Probabilistic guarantees with pre-prod testing in complex systems ● Canary testing is very powerful ○ As is developing in prod and shadowing ● Needs app and platform support ○ And appropriate architecture https://medium.com/@copyconstruct/testing-microservices-the -sane-way-9bb31d158c16
  • 23. Do you want to implement “guide rails” for your development teams? ● Larger teams often want to provide comprehensive guide rails ● Startups and SMEs may instead value team independence ● Hybrid? Offer platform, but allow service teams freedom and responsibility https://blog.openshift.com/multiple-deployment-methods-openshift/
  • 24. Where should you focus your efforts?
  • 25. Some thoughts on this... Prototype Production Mission Critical Dev and test Local / hybrid Local / hybrid / MDC MDC / local Deployment Canary Canary / pre-prod test Pre-prod test / Canary Guide rails “YOLO” Limited Strong Where to focus? Inner development loop & CI/CD Scaffolding (codifying best practices) Testing (pre/post-prod, and environment/data re-creation)
  • 27. Pattern: K8s as a Foundation ● Kubernetes becoming de facto CoaaS (the new cloud broker?) ○ Lots of hosted options ● Know the extension points ○ Custom Controllers ○ Operators ○ CloudBuddies ● Extension enables custom workflow ○ “Kubernetes Custom Resource, Controller and Operator Development Tools”
  • 28. Vendor Lock-in “Engineers sometimes go to great lengths to avoid vendor lock-in. The irony is that in doing so, they often become their own vendor... with just as troublesome behaviour and rules” - paraphrasing @adrianco
  • 29. Pattern: Automate Inner Dev Loop https://bit.ly/2RXfokz
  • 30. Pattern: Automate Inner Dev Loop https://blog.hasura.io/draft-vs-gitkube-vs-helm-vs- ksonnet-vs-metaparticle-vs-skaffold-f5aa9561f948 https://codeengineered.com/blog/2018/kuberne tes-helm-related-tools/
  • 31. ● Draft ○ Automates “inner loop” build-push-deploy ○ Utilises Helm ● Gitkube ○ Automates build-push-deploy ○ Provides heroku / CF like experience ● Skaffold ○ Automates build-push-deploy ○ Watches source code ○ Provides “dev” and “run” (CD) modes ● Tilt ○ Automates “inner loop” build-test-deploy ● Garden ○ Automates local build-push-test-deploy Pattern: Automate Inner Dev Loop ● Helm (*) ○ Package manager for k8s ○ Deploy and manage (ready-made) charts ● Ksonnet ○ Define k8s manifests in jsonnet ○ Create composable config/services ● Telepresence (*) ○ Enables local-to-prod development (*) CNCF projects
  • 36. Pattern: Envoy for Managing L7 Traffic ● Implementing cross-cutting concerns in the platform enables loose-coupling ● Allows fine-grained deploy/release ● Many control planes (for Envoy) ○ Ambassador ○ Gloo ○ Istio https://www.infoq.com/articles/ambassador-api-gateway-kubernetes
  • 37. Pattern: CI/CD Enforces Policy ● Make is easy to do the right thing ○ Self-service pipeline creations ○ Bake-in hooks/slots for platform functionality ○ Sensible policy defaults ● Testing of NFRs is vital ○ Security ○ Performance ○ Quality https://www.youtube.com/watch?v=hJkhPP2OLA8
  • 38. Pattern: Observability > Testing ● Essential part of the platform and developer workflow/experience ○ Monitoring, logging and tracing ○ Bake-in hooks to scaffolding ● Global && service-to-service dashboards ● “Observability and Avoiding Alert Overload from Microservices at the Financial Times”
  • 41. In Summary The developer experience is primarily about minimising the friction between having an idea, to dev/test, to deploy, to delivering observable business value How you construct your ‘platform’ impacts the developer experience greatly You must intentionally curate the experience of: local development, packaging apps, CI/CD, deployment control, and observability
  • 42. Thanks for Listening! Questions, comments, thoughts… db@datawire.io @danielbryantuk More info: dzone.com/articles/creating-a-positive-developer-experience-for-conta datawire.io/what-is-cloud-native | getambassador.io | istio.io | telepresence.io, prometheus.io | “Kubernetes Up and Running”
  • 43. Bonus
  • 44. Do you have a strong opinion on code repository structure? ● Monorepo: ○ Coordination of integration and testing across services is generally easier, ○ Service dependency management easier ● Multi-repo: ○ Clearer ownership ○ Can promote loose coupling ○ Refactoring and code-level standardization can be challenging http://blog.shippable.com/our-journey-to-microservices-and-a-mono-repository