SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Platform Engineering 101
Empowering developers to deliver - as-a-service
Skyworkz - https://skyworkz.nl
Sander Knape - https://sanderknape.com
Hello, I’m Sander Knape
Cloud Engineer @ Skyworkz
Let’s build an app
● Application that connects to a database
● Works on my machine™
→ Let’s get it into the Cloud!
Cloud provider / runtime environment
Infrastructure as Code
CI / CD
Artifact management
Security scanning
Configuration management
Secret management
Monitoring, logging, metrics
Alerts
Database migrations
Database anonymization
Cost insights
Security
...
There’s quite a bit going on
Cloud provider / runtime
environment
Infrastructure as Code
CI / CD
Artifact management
Security scanning
Configuration
management
Secret management
Monitoring, Logging,
Metrics
Alerts
Database migrations
Database
anonymization
Cost insights
Security
Application
Software development is more than just
writing [Go, Java, NodeJS, C#, …]
You need a platform
Kubernetes isn’t enough
Definition time: “Platform Engineering”
The composition and integration of a set of processes, tools and automation
(components) to build a coherent platform with the goal of empowering developers
to be able to easily build, maintain and operate their business logic.
Why Platform Engineering?
Why Platform Engineering
“[T]he reality is that state of the art cloud native technology is still too hard to use if
every product engineering team has to individually solve common problems
around networking, observability, deployment, provisioning, caching, data storage,
etc.”
https://medium.com/@mattklein123/the-human-scalability-of-devops-e36c37d3db6a
VPC’s in AWS
Specific knowledge is required
Ownership
Platform Engineering
==
Software Engineering
Who has the responsibility?
1 or 2 platform engineers
1 platform team
multiple platform teams
Multiple approaches
● “Just hand me your source code on a USB stick. I’ll put it on the server and
make sure and that it keeps working”
Or…
● “Create a pull request <here> to automatically get a Git repository, CI/CD,
filled with a Hello World application, that deploys all the way to production”
Challenges we’ll talk about
1. Protecting the platform for organizational scalability
2. Building an opinionated platform
3. Specifying contracts
4. Collaborating with your users
Protecting the platform for
organizational scalability
AWS Lambda: Language Support
AWS Lambda: Custom Runtimes
Protect the platform
https://www.independent.ie/sport/soccer/premier-league/the-platform-we-created-is-more-important-than-one-
person-mauricio-pochettino-coy-on-future-37652030.html
The question to ask for each new feature
How much support will I need to provide after I have delivered this feature?
Less (or equal) is the only acceptable answer
Reducing toil
“Toil is the kind of work tied to running a production service that tends to be
manual, repetitive, automatable, tactical, devoid of enduring value, and that
scales linearly as a service grows.”
https://landing.google.com/sre/sre-book/chapters/eliminating-toil/
Examples of toil
● Manually creating Git repositories and granting the correct people access
● Manually creating CI/CD pipelines based on another project
● Running load tests from a laptop with a security token that you can not share
● Putting secrets into your secret management solution
Examples of toil: old-school operations
● Manually;
○ Flushing caches
○ Rebooting servers
○ Renewing SSL licenses
○ ...
Toil leads to bottlenecks
Toil leads to boredom...
… or toil leads to stress
Self-service through automation
Self-service instead of toil
● Manually creating Git repositories and granting the correct people access
● Manually creating CI/CD pipelines based on another project
● Running load tests from a laptop with a security token that you can not share
● Putting secrets into your secret management solution
Scalable support
Developer: Hello, can you help me with “something” for feature X?
Platform: Did you check the docs for feature X?
Developer: Yes, but it doesn’t mention anything about “something”
Platform: I see, give me as second
Developer: Sure
Platform: I edited the docs to include “something”, does this answer
your question? https://github.com/org/docs/pull/1337
Developer: Totally, thanks!
How to protect yourselves
● Automate. Think “as a service”.
● Prefer managed solutions above self-hosted. Every minute you spend on
maintaining a self-hosted solution is time not spend on improving the platform
usability
● Prefer documentation above single answers
● Make the platform as simple as possible
Building an opinionated platform
AWS Lambda: Language Support
Abstraction levels
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
Abstraction levels
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
Splunk Cloud
AWS CloudWatch
AWS Secrets Manager
Google Cloud Datastore
Abstraction levels
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
HashiCorp Vault
Splunk Self-Hosted
Prometheus/Grafana
MySQL on EC2
GitLab on EC2
Abstraction levels
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
CloudFormation
Abstraction levels
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
Abstraction levels
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
Developer
responsibility
Self-service
● Lambda languages v.s. Lambda runtimes
● Hosted, shared CI/CD solution vs. BYO CI/CD solution
● Default Docker / EC2 images vs. built your own
● Default network with every application vs. create your own VPC/Subnet
$> curl -s localhost:9200/_cluster/settings?include_defaults=true 
| jq '.defaults' 
| grep ""[a-z_.-]*": ["[]" 
| wc -l
361
Elasticsearch settings
Elasticsearch settings in AWS
It’s about balance
Business value
What is the business value of each development team maintaining their own;
● CI/CD server
● Monitoring solution
● Network
● ...
Getting buy-in
Team Manifesto
We build everything with developers. We’ll always select a pioneering team that
has interest in a new service/feature, and work with them to make sure we pick
and configure the right tool and solve the root problem.
How to sell an opinionated platform
● Simple to use, high-level abstractions; developers shouldn’t want to use
anything else
● Make everyone aware of the constant balance seeking
● Build the features together with developers
Specifying contracts
AWS Lambda: Language Support
Your contract is your interface
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Managed externally
Platform features
Interface
Perfect world
Platform Application
Actual world
Platform Application
Grey area
Implemented world
Platform Application
Contract
Implemented world
Component
A
Component
B
Contract
Embrace dependencies
Order
Service
Product
Service
Artifact
Mgmt
Owner:
backoffice
team
Owner:
catalogue
team
Owner:
platform
team
Write documentation
Documentation
“Serverless”
“IaaS”
Levelofabstraction
“Bricks”
Platform
Documented by the external party
Documented by the platform team
Interface
AWS: Shared Responsibility Model
Shared Responsibility
● Git repository automation
● CI/CD autoscaling
● Network ACLs
● Kubernetes cluster
● Logging / Metrics agent on EC2,
listening on specific port
Platform Development
● Creating Git repositories
● CI/CD configuration
● Security groups
● Application in Kubernetes
● Shipping logs/metrics to specific
port
Continuously test your responsibility
● Are my agents autoscaling?
● Are my NACLs correct?
● Is my Kubernetes cluster stable?
● Are the logging/metrics agent operable?
→ Make this transparent!
Shift left
Idea Development ProductionStaging
Early feedback Late feedback
Codify your contract
execution:
- concurrency: 5
hold-for: 20m
ramp-up: 5m
scenarios:
requests:
- method: GET
url: https://example.com
modules:
blazemeter:
projectName: Team Name
testName: Test Name
modules:
blazemeter:
projectName: .*
testName: .*
Implementation Contract
Codify your contract
Best Really good
Codify your contract
execution:
- concurrency: 5
hold-for: 20m
ramp-up: 5m
scenarios:
requests:
- method: GET
url: https://example.com
modules:
blazemeter:
projectName: Team Name
Must specify testName:
https://url/to/docs
$> git clone example/template/skeleton
Codify your microservices
Default microservice
● Unit testing
● Integration testing
● Log example
● Metric example
● Secret example
● CI/CD to production
● ...
How to define your contracts
● Be aware of the contract and make the company aware
● Minimize the gray area
● Codify your contract
○ Shift left
○ Examples / blueprints
● Make sure the company understand the interface to your team
Collaborating with your users
AWS Lambda: Language Support
Scalable support
Developer: Hello, can you help me with “something” for feature X?
Platform: Did you check the docs for feature X?
Developer: Yes, but it doesn’t mention anything about “something”
Platform: I see, give me as second
Developer: Sure
Platform: I edited the docs to include “something”, does this answer
your question? https://github.com/org/docs/pull/1337
Developer: Totally, thanks!
Getting buy-in
Team Manifesto
We build everything with developers. We always select a pioneering team that has
interest in a new service/feature, and work with them to make sure we pick and
configure the right tool and solve the root problem.
Scalable support
Imagine… a power outage
You’re at home, watching TV, and BAM: TV is out, lights are out. What do you do?
● Check the other rooms to see the scope of the outage
● Check with the neighbours if it’s just your home or more
● Check with the power company
How to collaborate with your users
● Teach everyone how the platform works, in a scalable way
○ Documentation
○ Workshops
● Enable collaboration between development teams
● Make it clear how you work
Summarizing
1. You need a platform - and someone should own it
2. Always think about scale - both organizational and technical
3. Opinions are OK
4. Specify contracts, but be careful about what you support
5. Collaborate
Thank you!
Questions?
Skyworkz - https://skyworkz.nl
Sander Knape - https://sanderknape.com - @SanderKnape

Weitere ähnliche Inhalte

Was ist angesagt?

GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
 
Managing Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringManaging Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringAdityo Pratomo
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdBilly Yuen
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfKnoldus Inc.
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull RequestKasper Nissen
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...Weaveworks
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCDCloudOps2005
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCDOmar Fathy
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftDevOps.com
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBrandenTimm1
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsOpsta
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...Matthew Skelton
 

Was ist angesagt? (20)

GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with Kubernetes
 
Managing Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringManaging Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform Engineering
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptx
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
What is platform as a product? Clues from Team Topologies - Puppetize 2020 - ...
 

Ähnlich wie Platform Engineering 101: Empowering Developers

Serverless Toronto User Group - Let's go Serverless!
Serverless Toronto User Group - Let's go Serverless!Serverless Toronto User Group - Let's go Serverless!
Serverless Toronto User Group - Let's go Serverless!Daniel Zivkovic
 
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...GRUC
 
[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...Srijan Technologies
 
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...apidays
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesChakradhar Rao Jonagam
 
Montréal AWS Users United: Let's go Serverless!
Montréal AWS Users United: Let's go Serverless!Montréal AWS Users United: Let's go Serverless!
Montréal AWS Users United: Let's go Serverless!Daniel Zivkovic
 
Building Open Source Communities for AWS Serverless Developer Tools
Building Open Source Communities for AWS Serverless Developer ToolsBuilding Open Source Communities for AWS Serverless Developer Tools
Building Open Source Communities for AWS Serverless Developer ToolsAmazon Web Services
 
Improve productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryImprove productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryAmazon Web Services
 
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...Daniel Bryant
 
Jfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the CloudJfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the CloudLauren Hayward Schaefer
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
 
AWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapAWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapDaniel Zivkovic
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?Haggai Philip Zagury
 
Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017Luca Bianchi
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?The Software House
 
The "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsThe "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsErik Osterman
 
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...AgileNetwork
 

Ähnlich wie Platform Engineering 101: Empowering Developers (20)

Serverless Toronto User Group - Let's go Serverless!
Serverless Toronto User Group - Let's go Serverless!Serverless Toronto User Group - Let's go Serverless!
Serverless Toronto User Group - Let's go Serverless!
 
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
Webcast Presentation: Be lean. Be agile. Work together with DevOps Services (...
 
[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...
 
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Montréal AWS Users United: Let's go Serverless!
Montréal AWS Users United: Let's go Serverless!Montréal AWS Users United: Let's go Serverless!
Montréal AWS Users United: Let's go Serverless!
 
Building Open Source Communities for AWS Serverless Developer Tools
Building Open Source Communities for AWS Serverless Developer ToolsBuilding Open Source Communities for AWS Serverless Developer Tools
Building Open Source Communities for AWS Serverless Developer Tools
 
Improve productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryImprove productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & Delivery
 
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
 
Jfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the CloudJfokus Workshop: Code in the Cloud for the Cloud
Jfokus Workshop: Code in the Cloud for the Cloud
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 
AWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapAWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless Recap
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Developing on AWS
Developing on AWSDeveloping on AWS
Developing on AWS
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?
 
Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
The "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/OpsThe "Holy Grail" of Dev/Ops
The "Holy Grail" of Dev/Ops
 
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
 
ansible_rhel_90.pdf
ansible_rhel_90.pdfansible_rhel_90.pdf
ansible_rhel_90.pdf
 

Kürzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Platform Engineering 101: Empowering Developers

Hinweis der Redaktion

  1. I mention it last but it should really be at top. Is all my data encrypted at rest? Is all traffic encrypted? What about patch management?
  2. And there is more. Networking, storage, distributed tracing, e.t.c.
  3. It’s expectation management that causes failure. If you underestimate the work required to get a solid platform up and running, you won’t have one and all developers will need longer to work on their applications.
  4. Components: see previous examples “Easy” is a vague word, but it should be your goal. Keep it easy. Developers are already doing complex things, they don’t need more. Note the word “Operate”: develops should operate their application in production. It’s 2019.
  5. First of all, it’s efficient. If every developers needs to solve I mentioned earlier, everyone is doing the same work. In fact, it takes specific knowledge. Because: slide with quote Responsibility / ownership. Everything should be owned.
  6. VPC’s in AWS are not hard, but also not trivial. Every developer can surely pick this up, but it’s not very efficient if every developers needs to understand it to this level.
  7. In other words: specific knowledge is required. Development teams own logical groups of services: Platform teams owns platform services Ownership is of course important in general. We’ll come back to who owns what later (contracts). Ownership is important, but no different from “normal” (other) applications. Which is the bridge to the next slide: there is no difference.
  8. Development teams own logical groups of services: Platform teams owns platform services Ownership is of course important in general. We’ll come back to who owns what later (contracts). Ownership is important, but no different from “normal” (other) applications. Which is the bridge to the next slide: there is no difference.
  9. “Specific knowledge” is also not rare. When a team builds an event sourcing mechanism… they need specific knowledge required for that.
  10. But I’ll just say “Platform team”
  11. Lambda was always opinionated. Introducing a new language takes time. And not only new languages: also version updates for existing languages (e.g. Python 2.7, 3.6, 3.7)
  12. Your best people will leave if they can not pick up work that excites them.
  13. Operational teams typically use Kanban instead of Scrum/sprints, because of the operational work that constantly comes in and that is also important. This means a lot of context switching, and constant battles about priority. If you work on “projects”, just like other development teams, this will happen way less.
  14. Provide self-service solutions for toil. The platform team does not have to be involved anymore.
  15. Provide self-service solutions for toil. The platform team does not have to be involved anymore.
  16. Also mention how this is the happy path. Dev may also say “I have no time” or “Where are the docs”. You have also raised awareness about documentation. You need to educate people that you work like this. More on education later.
  17. Last point is bridge to next section. Because “as simple as possible” typically means “opinionated”. Having to make choices leads to complexity.
  18. Back to the AWS Lambda example. Lambda has always been very opinionated: only a specific set of languages and versions was supported. That changed when they released custom runtimes. Still opinionated, but on a lower abstraction level.
  19. Going back to the previous point about organizational scalability: less orange scales better. Higher abstractions lead to more opinionated solutions. It means developers can easily use them, but are limited to what they can pick.
  20. When you lower the abstraction of your platform features, more responsibility goes to the developer. E.g. with Lambda again; Give us code in language X, version Y. High abstraction. Give us an HTTP endpoint. Lower abstraction. Contracts!
  21. Provide self-service solutions for toil. The platform team does not have to be involved anymore.
  22. Of course there is an alternative: running it yourself on EC2
  23. The team that does this themselves may go faster, because they use the tools they are familiar with. However, how much do you lose company-wide because of the fragmentation?
  24. The team that does this themselves may go faster, because they use the tools they are familiar with. However, how much do you lose company-wide because of the fragmentation?
  25. Again back to the AWS Lambda example. When they released custom runtimes - and became a bit less opinionated - they changed their contract. Or actually: appended it Before: give us a function in language X, version Y Now: either this ^^ or: provide us an HTTP endpoint that we’ll sent a specific request to
  26. Contract can be “double”: either specific use of feature, or lower abstraction.
  27. So a contract says: “this is where the platform ends, and this is where you come in”.
  28. Same when one microservice is talking to another. Underlying implementation is hidden away. Makes life easier for everyone.
  29. The (REST) contract to another microservice is typically very clear. Do the same with your platform interfaces.
  30. The (REST) contract to another microservice is typically very clear. Do the same with your platform interfaces.
  31. Blazemeter example: if you want to know how to create the YAML, check the blazemeter documentation.
  32. The way you work together with the platform team is also a “contract”.
  33. Again, AWS Lambda. If you would ask AWS to add an additional language, do you think they would do it? If you would ask AWS to increase the maximum timeout time - just for you - would they do it? How is that any different from asking your platform team? How do you expect either AWS or your Ops team to prioritize your request?
  34. This is “helping”. Not only the question they asked, but also that this is the way we provide support.
  35. The team that does this themselves may go faster, because they use the tools they are familiar with. However, how much do you lose company-wide because of the fragmentation?
  36. “Collaboration” is also making sure developers collaborate with each other.
  37. Of course if there is a big production outage, you may want to involve other teams sooner.