Scaling a Serverless Developer Platform for Teams

Scaling a Serverless Developer Platform for Teams
Mikael Vesavuori
Scaling a serverless developer platform for teams
# 1
- Get a sense of how serverless offers a paradigm that is easier and more effective
to implement for typical teams
Scaling a serverless developer platform for teams
# 1 # 2
- Understand the variety of “developer platforms” you can use to empower developers
and streamline development
Scaling a serverless developer platform for teams
# 1 # 2
# 3
- Look at some examples of developer platforms I’ve helped set up


- Sharing of some key learnings
- Cloud Software Architect and Technical Standards Lead at Polestar


- Experience with developer platforms with Humblebee, Volvo Group Connected Solutions
(Volvo Autonomous), Mölnlycke Health Care, Polestar


- Makes a lot of open source and writes on Medium


- Serverless and cloud-native fan for 5+ years


- https://mikaelvesavuori.se
Who am I?
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
No platform, no job…?
Serverless?
https://www.youtube.com/watch?v=AXxr0pghWS0
Cloudy with a chance of Kubernetes
Kubernetes is the wrong abstraction
So hard and “chorey” it’s a meme
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
https://www.cncf.io/blog/2022/03/07/devops-why-it-is-misunderstood-what-it-always-should-have-been/
Scaling a Serverless Developer Platform for Teams
But there is!
Serverless
- Typically short-running


- On-demand


- Stateless


- Pay per execution


- Managed


- Auto-scaling
Common identifiers for a serverless service
- Global scaling with much less effort


- Faster to get going


- Less/no undifferentiated heavy lifting


- Less/no maintenance


- “Higher abstraction” means less need for deep expertise


- High developer experience (DX)


- Ideal with microservice architecture


- Not just functions-as-a-service: serverless databases, messaging, etc.
Benefits
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Gateway pattern
Event-driven (async) pattern
Actually not bullshit that it “just needs a YAML file”
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
- Microservices and serverless functions place a big burden on developers to be mature
and stringent enough to write acceptable, "correct" services


- Can be harder to monitor depending on your setup and operations (can also be
relatively easy if you go all-in)


- Can be hard to figure out all potential hacking scenarios, involving for example event
injection


- Easy to get identity and access management (including permissions) wrong with
serverless functions, potentially evolving into security problems


- Can be hard to stitch together stepped events if your use case cannot be covered by
native cloud event sourcing - requires clarity on workflows/sagas and similar
Negative traits of serverless (esp. FaaS)
Developer platform?
- As little as a text document


- As much as a full, unique proprietary product


- Enables self-service: for example RBAC, environment provisioning, infrastructure
management, templates, and more


- Self-service <——> DevOps


- Some degree of centralization around the “platform” required
What is a developer platform?
Devs gonna dev…and gonna platform…and…?
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
- Backstage


- Humanitec


- Upbound


- DevOpsBox


- Shipa


- Begin (?)


- AWS Proton


- AWS Service Catalog


- …
What options are there?
Backstage
Humanitec
AWS Proton
How low can you go?
Scaling a Serverless Developer Platform for Teams
Netlify (+ maybe some minimalistic framework like Svelte)
Vercel
The direction seems to be moving to even higher-level abstractions
Begin
Begin
!
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Architect
Anyway, let’s move on now
Scaling a Serverless Developer Platform for Teams
Time for a bit of history
1 developer


1 designer
- Created multiple boilerplates for front-end projects to minimize time waste and scaffolding


- Created style guides and design-to-code abilities with tokens; actually fairly early!


- Improved and adjusted patterns that I found were poor practice from other, more typical offerings


- Open sourced these (my first OSS projects!)
How I began
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Anyone remember this bird?
🪦
Or the big drink?
🪦
Scaling a Serverless Developer Platform for Teams
- Yep, absolutely use a code-oriented way to store, manage, and create tooling


- It’s well worth providing the full monty: linting to structure to deploying


- Learned a lot of soft skills involved: Project hygiene, documentation, DX…


- Gave a good head-start on automation tooling


- Did not meaningfully affect anyone other than me, though
Outcome and lessons learned
10+ developers


~3 designers


Lots of projects
Startup time = a financial liability
- At Humblebee, I evolved the same kind of “all-in-one” tooling


- Conformity and set good opinionated defaults for cross-functional requirements such as
performance, security, offline support…


- One toolbox to enable scaling from MVP to production


- Move devs into “one way of working”


- “Progressiveness” in tooling choices


- Help transition from web sites to web applications


- Bet on React, Webpack, PWA


- Introduce CI/CD and modern web tooling like Netlify


- Go serverless
Scaling to applications at Humblebee
Be faster
Actually, be 100x faster
No more than 4:48
We met this goal and could typically set up a frontend application with a serverless backend in around 4 minutes.
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
- Yep, absolutely use fully managed services with high DX


- Created a software platform that devs were encouraged to co-own (inner source)


- Devs felt they could get going fast


- Good way to learn new technology inside the company


- Drastically improved our race to build applications (from practically zero)


- Drastically decreased risk and time-to-start


- Easy to onboard our bi-yearly Hive students
Outcome and lessons learned
Approach I have used with Polestar (and elsewhere)
WHAT


Should be able to go from zero to deployed service in minutes, while having guardrails in place
to ensure maximum “playing field” without creating issues as they evolve.


HOW


Developer have a stable starting point, yet have full authority to adapt their scaffold as needed
and create required infrastructure.
Ambition
- Cloud-native


- DevOps


- Infrastructure as Code


- Serverless


- Microservices


- Fully managed


- Decoupled and headless


- SaaS-type solutions for non-unique requirements
Principles (that will usually be “right”)
Create a clear, transparent, opinionated platform from scratch based on architectural primitives
(services) from the cloud.


- Platform Team maintains the developer-facing tools and acts as support


- Provide “glue” tooling and opinions for things that devs may not think a lot about


- Provide CI/CD pipelines with “GitOps”-type operations where CI makes the changes


- Application boilerplates (Node, .NET, GraphQL) a core component of the overall platform


- Remove decisions that can be centrally made (for example language support)


- No need to individually be responsible for all the concerns to be compliant with our guidelines
Approach I’ve used with Polestar (and elsewhere)
User access control (meta, pre-requisite)


- Developers get an SSO profile in the cloud + source code system


CI/CD


- Use a fully managed, hosted solution like GitHub, GitLab, Bitbucket, AWS CodeBuild…


- Team start with a working (managed) pipeline, but get to own and modify it as they need


- CI has restricted set of rights to deploy into lifecycle environments


Infrastructure provisioning


- Terraform, CDK, Serverless Framework, “native” (CloudFormation, ARM, and similar)


- IAC + CI/CD means we have completely deterministic runs


Environment management


- Use minimal env count; make them exact clones; use software-defined stages as far as possible


Network


- Cloudflare, AWS Route53…


Documentation


- Generate and distribute documentation during CI
Tools
Generalized examples incoming
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Scaling a Serverless Developer Platform for Teams
Serverless and “everything-as-code” is an ideal, lightweight combo. No need for anything more complex!


- We are not a full IDP because we don’t have to be!


- The solutions I have worked on have (so far) not required an “actual” platform as a piece of
software to go in between the developer and our environments


- Dev Platforms are very Kubernetes-oriented? They seem to need to move up the abstraction layers…?


- I (and devs!) seem to have been happy with “less sophisticated” approaches this far


- Don’t abstract too much; no reason to become an expert in a non-standard, proprietary tool


- Instead, automate most of the parts that are needed for a developer (or team) to be productive


- Don’t underestimate churn and maintenance of keeping a big platform floating
Our platform is not a “real” IDP - and it’s OK!
Lessons learned
- Don’t assume you need a big “platform” to be helpful


- Your platform should be dead easy - no reason to be “good at it”


- Architecture and tech choices need to be crystal clear - since the platform will high-speed them


- Don’t make it bigger than you can meaningfully support
Lesson #1: Bigger is not always better
- Use an open-source or inner-source approach


- You will need to set up processes and communicate standards for contributions


- Spend time documenting


- Talk about the platform, show the platform, create internal ambassadors


- Train yourself with your own (or by supporting existing) open source software


- Assume that OSS might very well have higher standards than closed source!
Lesson #2: Make it open
- Make it “easy to do the right thing” and “hard to do it wrong”


- Enable people to do their own job without asking for help or guidance plus update stuff as they go along


- IMO, the most significant parts you can do are:


- 1. Provide the minimum viable code base for a typical application


- 2. Provide plumbing + access so applications can go from localhost to production with no/minimal
specialized skills


- It’s not just about providing the “hard” tech - don’t forget about docs, discoverability etc
Lesson #3: Champion a self-service approach
https://github.com/mikaelvesavuori/catalogist + https://github.com/mikaelvesavuori/better-apis-workshop
Lesson #4: Platform interaction must be just that
- Easy to break stuff if communications and expectations are not explicit and known


- Platform teams should be precisely that; nothing else


- Can be hard to make traditional orgs understand the value of platform teams


- Learn from Team Topologies
https://teamtopologies.com
- Don’t trivialize the skills bump but don’t make everything sound like magic either


- Onboarding is important


- Rapid enablement can create ignorance which can lead to dangerous “mindtraps”


- Provide training for the core skills (ex. IAC) if not abstracting them fully
Lesson #5: Learning is harder than you think
In conclusion
- Serverless offers a paradigm that is easier and more effective to implement for many teams


- An IDP wraps a set of tools together to empower developers and streamline development - it can be
super elaborate or very simple


- The end goal of such platforms is to make business value creation easier, faster, more stable


- At Polestar, our Platform team provides and maintains a set of serverless-oriented internal
products and starters for teams to use


- The key takeaway is that you should definitely think of how a platform could serve you and your
context, but that it’s not going to be a one-size-fits-all solution, plus it’s easier to think
about tech stacks more than (the actually hard stuff) around “softer” issues like onboarding,
training, documentation, learning, platform ops, and such
In conclusion
Scaling a Serverless Developer Platform for Teams
- https://www.youtube.com/watch?v=AXxr0pghWS0


- https://thenewstack.io/do-you-need-an-internal-developer-platform/


- https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/


- https://www.cncf.io/blog/2022/03/07/devops-why-it-is-misunderstood-what-it-always-should-have-been/


- https://teamtopologies.com


- https://github.com/TeamTopologies/Thinnest-Viable-Platform-examples


- https://github.com/mikaelvesavuori/


- https://backstage.io


- https://humanitec.com


- https://aws.amazon.com/proton/


- https://fwa.dev


- https://www.netlify.com


- https://vercel.com


- https://begin.com


- https://www.humblebee.se
References
1 of 101

Recommended

VictorOps Guide to Blameless Post-mortems by
VictorOps Guide to Blameless Post-mortemsVictorOps Guide to Blameless Post-mortems
VictorOps Guide to Blameless Post-mortemsVictorOps
1.5K views13 slides
Demystifying DevOps by
Demystifying DevOpsDemystifying DevOps
Demystifying DevOpsBhuvaneswari Subramani
249 views30 slides
Gruntwork Executive Summary by
Gruntwork Executive SummaryGruntwork Executive Summary
Gruntwork Executive SummaryYevgeniy Brikman
10.4K views38 slides
Mobile World Congress 2017 - Ericsson & Red Hat partnership by
Mobile World Congress 2017 - Ericsson & Red Hat partnershipMobile World Congress 2017 - Ericsson & Red Hat partnership
Mobile World Congress 2017 - Ericsson & Red Hat partnershipEricsson
3.2K views9 slides
Maturing your organization from DevOps to DevSecOps by
Maturing your organization from DevOps to DevSecOpsMaturing your organization from DevOps to DevSecOps
Maturing your organization from DevOps to DevSecOpsAmazon Web Services
1.3K views12 slides
The New Security Playbook: DevSecOps by
The New Security Playbook: DevSecOpsThe New Security Playbook: DevSecOps
The New Security Playbook: DevSecOpsJames Wickett
757 views55 slides

More Related Content

What's hot

Release management introduction v1.0 tj by
Release management introduction v1.0 tjRelease management introduction v1.0 tj
Release management introduction v1.0 tjTijs -T.J.- van Velthoven, MBA - AVAILABLE
402 views26 slides
ISO 21508: 2018 Earned Value Management in Project and Programme management. ... by
ISO 21508: 2018 Earned Value Management in Project and Programme management. ...ISO 21508: 2018 Earned Value Management in Project and Programme management. ...
ISO 21508: 2018 Earned Value Management in Project and Programme management. ...Mario Coquillat de Travesedo, PMP, PMI-RMP
1.9K views58 slides
Cloud Native Architectures for Devops by
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devopscornelia davis
2.2K views64 slides
Quality Information Coverage - A QI Concept by
Quality Information Coverage - A QI ConceptQuality Information Coverage - A QI Concept
Quality Information Coverage - A QI ConceptJohan Hoberg
59 views4 slides
DevOps or DevSecOps by
DevOps or DevSecOpsDevOps or DevSecOps
DevOps or DevSecOpsMichelangelo van Dam
994 views63 slides
Cloud native integration by
Cloud native integrationCloud native integration
Cloud native integrationKim Clark
251 views30 slides

What's hot(20)

Cloud Native Architectures for Devops by cornelia davis
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devops
cornelia davis2.2K views
Quality Information Coverage - A QI Concept by Johan Hoberg
Quality Information Coverage - A QI ConceptQuality Information Coverage - A QI Concept
Quality Information Coverage - A QI Concept
Johan Hoberg59 views
Cloud native integration by Kim Clark
Cloud native integrationCloud native integration
Cloud native integration
Kim Clark251 views
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ... by Henning Jacobs
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Henning Jacobs3.5K views
Rapid Strategic SRE Assessments by Marc Hornbeek
Rapid Strategic SRE AssessmentsRapid Strategic SRE Assessments
Rapid Strategic SRE Assessments
Marc Hornbeek970 views
Red Hat Openshift on Microsoft Azure by John Archer
Red Hat Openshift on Microsoft AzureRed Hat Openshift on Microsoft Azure
Red Hat Openshift on Microsoft Azure
John Archer5K views
Open shift 4 infra deep dive by Winton Winton
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
Winton Winton16.2K views
On prem to cloud hub migration (updated) by Sandeep Deshmukh
On prem to cloud hub migration (updated)On prem to cloud hub migration (updated)
On prem to cloud hub migration (updated)
Sandeep Deshmukh1K views
Release Management by Vyom Labs
Release Management Release Management
Release Management
Vyom Labs31K views
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ? by DC CONSULTANTS
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
DC CONSULTANTS67 views
Creating an Operating Model to enable a high frequency organization by Tom Laszewski
Creating an Operating Model to enable a high frequency organizationCreating an Operating Model to enable a high frequency organization
Creating an Operating Model to enable a high frequency organization
Tom Laszewski749 views

Similar to Scaling a Serverless Developer Platform for Teams

"Platform Engineering in practice — Why and How to start", Serg Hospodarets by
"Platform Engineering in practice — Why and How to start", Serg Hospodarets "Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets Fwdays
103 views22 slides
Status Quo on the automation support in SOA Suite OGhTech17 by
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Jon Petter Hjulstad
795 views47 slides
TechRadarCon 2022 | Have you built your platform yet ? by
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
18 views49 slides
How to improve Developer Documentations ? by
How to improve Developer Documentations ?How to improve Developer Documentations ?
How to improve Developer Documentations ?Utsav Parashar
131 views44 slides
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code by
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
472 views52 slides
Choosing Automation for DevOps & Continuous Delivery in the Enterprise by
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseChoosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseXebiaLabs
988 views25 slides

Similar to Scaling a Serverless Developer Platform for Teams(20)

"Platform Engineering in practice — Why and How to start", Serg Hospodarets by Fwdays
"Platform Engineering in practice — Why and How to start", Serg Hospodarets "Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets
Fwdays103 views
Status Quo on the automation support in SOA Suite OGhTech17 by Jon Petter Hjulstad
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17
How to improve Developer Documentations ? by Utsav Parashar
How to improve Developer Documentations ?How to improve Developer Documentations ?
How to improve Developer Documentations ?
Utsav Parashar131 views
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code by Steve Mercier
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Steve Mercier472 views
Choosing Automation for DevOps & Continuous Delivery in the Enterprise by XebiaLabs
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseChoosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
XebiaLabs988 views
The DevOps paradigm - the evolution of IT professionals and opensource toolkit by Marco Ferrigno
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 Ferrigno186 views
The DevOps Paradigm by NaLUG
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
NaLUG210 views
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data by Kellyn Pot'Vin-Gorman
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
London DevOps Meetup - PaaS as a platform for devops by Jeremy Brown
London DevOps Meetup - PaaS as a platform for devopsLondon DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devops
Jeremy Brown629 views
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx by Turja Narayan Chaudhuri
DevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptxDevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
XebiaLabs - Optimizing App Deployment to IBM WebSphere by XebiaLabs
XebiaLabs - Optimizing App Deployment to IBM WebSphereXebiaLabs - Optimizing App Deployment to IBM WebSphere
XebiaLabs - Optimizing App Deployment to IBM WebSphere
XebiaLabs858 views
DevExForPlatformEngineers, introducing Kratix by Abigail Bangser
DevExForPlatformEngineers, introducing KratixDevExForPlatformEngineers, introducing Kratix
DevExForPlatformEngineers, introducing Kratix
Abigail Bangser75 views
Java Agile ALM: OTAP and DevOps in the Cloud by MongoDB
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
MongoDB1.7K views
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ... by OpenWhisk
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
IBM Bluemix OpenWhisk: Interconnect 2016, Las Vegas: CCD-1088: The Future of ...
OpenWhisk2.5K views
Dev Ops for systems of record - Talk at Agile Australia 2015 by Mirco Hering
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
Mirco Hering969 views

Recently uploaded

Microsoft Power Platform.pptx by
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
53 views38 slides
Mini-Track: Challenges to Network Automation Adoption by
Mini-Track: Challenges to Network Automation AdoptionMini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionNetwork Automation Forum
12 views27 slides
PRODUCT LISTING.pptx by
PRODUCT LISTING.pptxPRODUCT LISTING.pptx
PRODUCT LISTING.pptxangelicacueva6
14 views1 slide
The Research Portal of Catalonia: Growing more (information) & more (services) by
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)CSUC - Consorci de Serveis Universitaris de Catalunya
80 views25 slides
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensorssugiuralab
19 views15 slides
handbook for web 3 adoption.pdf by
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdfLiveplex
22 views16 slides

Recently uploaded(20)

TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab19 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex22 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software263 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2217 views

Scaling a Serverless Developer Platform for Teams

  • 1. Scaling a Serverless Developer Platform for Teams Mikael Vesavuori
  • 2. Scaling a serverless developer platform for teams # 1 - Get a sense of how serverless offers a paradigm that is easier and more effective to implement for typical teams
  • 3. Scaling a serverless developer platform for teams # 1 # 2 - Understand the variety of “developer platforms” you can use to empower developers and streamline development
  • 4. Scaling a serverless developer platform for teams # 1 # 2 # 3 - Look at some examples of developer platforms I’ve helped set up - Sharing of some key learnings
  • 5. - Cloud Software Architect and Technical Standards Lead at Polestar - Experience with developer platforms with Humblebee, Volvo Group Connected Solutions (Volvo Autonomous), Mölnlycke Health Care, Polestar - Makes a lot of open source and writes on Medium - Serverless and cloud-native fan for 5+ years - https://mikaelvesavuori.se Who am I?
  • 9. No platform, no job…?
  • 12. Cloudy with a chance of Kubernetes
  • 13. Kubernetes is the wrong abstraction
  • 14. So hard and “chorey” it’s a meme
  • 22. - Typically short-running - On-demand - Stateless - Pay per execution - Managed - Auto-scaling Common identifiers for a serverless service
  • 23. - Global scaling with much less effort - Faster to get going - Less/no undifferentiated heavy lifting - Less/no maintenance - “Higher abstraction” means less need for deep expertise - High developer experience (DX) - Ideal with microservice architecture - Not just functions-as-a-service: serverless databases, messaging, etc. Benefits
  • 28. Actually not bullshit that it “just needs a YAML file”
  • 31. - Microservices and serverless functions place a big burden on developers to be mature and stringent enough to write acceptable, "correct" services - Can be harder to monitor depending on your setup and operations (can also be relatively easy if you go all-in) - Can be hard to figure out all potential hacking scenarios, involving for example event injection - Easy to get identity and access management (including permissions) wrong with serverless functions, potentially evolving into security problems - Can be hard to stitch together stepped events if your use case cannot be covered by native cloud event sourcing - requires clarity on workflows/sagas and similar Negative traits of serverless (esp. FaaS)
  • 33. - As little as a text document - As much as a full, unique proprietary product - Enables self-service: for example RBAC, environment provisioning, infrastructure management, templates, and more - Self-service <——> DevOps - Some degree of centralization around the “platform” required What is a developer platform?
  • 34. Devs gonna dev…and gonna platform…and…?
  • 38. - Backstage - Humanitec - Upbound - DevOpsBox - Shipa - Begin (?) - AWS Proton - AWS Service Catalog - … What options are there?
  • 42. How low can you go?
  • 44. Netlify (+ maybe some minimalistic framework like Svelte)
  • 46. The direction seems to be moving to even higher-level abstractions
  • 47. Begin
  • 54. Time for a bit of history
  • 56. - Created multiple boilerplates for front-end projects to minimize time waste and scaffolding - Created style guides and design-to-code abilities with tokens; actually fairly early! - Improved and adjusted patterns that I found were poor practice from other, more typical offerings - Open sourced these (my first OSS projects!) How I began
  • 61. Anyone remember this bird? 🪦
  • 62. Or the big drink? 🪦
  • 64. - Yep, absolutely use a code-oriented way to store, manage, and create tooling - It’s well worth providing the full monty: linting to structure to deploying - Learned a lot of soft skills involved: Project hygiene, documentation, DX… - Gave a good head-start on automation tooling - Did not meaningfully affect anyone other than me, though Outcome and lessons learned
  • 66. Startup time = a financial liability
  • 67. - At Humblebee, I evolved the same kind of “all-in-one” tooling - Conformity and set good opinionated defaults for cross-functional requirements such as performance, security, offline support… - One toolbox to enable scaling from MVP to production - Move devs into “one way of working” - “Progressiveness” in tooling choices - Help transition from web sites to web applications - Bet on React, Webpack, PWA - Introduce CI/CD and modern web tooling like Netlify - Go serverless Scaling to applications at Humblebee
  • 70. No more than 4:48 We met this goal and could typically set up a frontend application with a serverless backend in around 4 minutes.
  • 79. - Yep, absolutely use fully managed services with high DX - Created a software platform that devs were encouraged to co-own (inner source) - Devs felt they could get going fast - Good way to learn new technology inside the company - Drastically improved our race to build applications (from practically zero) - Drastically decreased risk and time-to-start - Easy to onboard our bi-yearly Hive students Outcome and lessons learned
  • 80. Approach I have used with Polestar (and elsewhere)
  • 81. WHAT Should be able to go from zero to deployed service in minutes, while having guardrails in place to ensure maximum “playing field” without creating issues as they evolve. HOW Developer have a stable starting point, yet have full authority to adapt their scaffold as needed and create required infrastructure. Ambition
  • 82. - Cloud-native - DevOps - Infrastructure as Code - Serverless - Microservices - Fully managed - Decoupled and headless - SaaS-type solutions for non-unique requirements Principles (that will usually be “right”)
  • 83. Create a clear, transparent, opinionated platform from scratch based on architectural primitives (services) from the cloud. - Platform Team maintains the developer-facing tools and acts as support - Provide “glue” tooling and opinions for things that devs may not think a lot about - Provide CI/CD pipelines with “GitOps”-type operations where CI makes the changes - Application boilerplates (Node, .NET, GraphQL) a core component of the overall platform - Remove decisions that can be centrally made (for example language support) - No need to individually be responsible for all the concerns to be compliant with our guidelines Approach I’ve used with Polestar (and elsewhere)
  • 84. User access control (meta, pre-requisite) - Developers get an SSO profile in the cloud + source code system CI/CD - Use a fully managed, hosted solution like GitHub, GitLab, Bitbucket, AWS CodeBuild… - Team start with a working (managed) pipeline, but get to own and modify it as they need - CI has restricted set of rights to deploy into lifecycle environments Infrastructure provisioning - Terraform, CDK, Serverless Framework, “native” (CloudFormation, ARM, and similar) - IAC + CI/CD means we have completely deterministic runs Environment management - Use minimal env count; make them exact clones; use software-defined stages as far as possible Network - Cloudflare, AWS Route53… Documentation - Generate and distribute documentation during CI Tools
  • 89. Serverless and “everything-as-code” is an ideal, lightweight combo. No need for anything more complex! - We are not a full IDP because we don’t have to be! - The solutions I have worked on have (so far) not required an “actual” platform as a piece of software to go in between the developer and our environments - Dev Platforms are very Kubernetes-oriented? They seem to need to move up the abstraction layers…? - I (and devs!) seem to have been happy with “less sophisticated” approaches this far - Don’t abstract too much; no reason to become an expert in a non-standard, proprietary tool - Instead, automate most of the parts that are needed for a developer (or team) to be productive - Don’t underestimate churn and maintenance of keeping a big platform floating Our platform is not a “real” IDP - and it’s OK!
  • 91. - Don’t assume you need a big “platform” to be helpful - Your platform should be dead easy - no reason to be “good at it” - Architecture and tech choices need to be crystal clear - since the platform will high-speed them - Don’t make it bigger than you can meaningfully support Lesson #1: Bigger is not always better
  • 92. - Use an open-source or inner-source approach - You will need to set up processes and communicate standards for contributions - Spend time documenting - Talk about the platform, show the platform, create internal ambassadors - Train yourself with your own (or by supporting existing) open source software - Assume that OSS might very well have higher standards than closed source! Lesson #2: Make it open
  • 93. - Make it “easy to do the right thing” and “hard to do it wrong” - Enable people to do their own job without asking for help or guidance plus update stuff as they go along - IMO, the most significant parts you can do are: - 1. Provide the minimum viable code base for a typical application - 2. Provide plumbing + access so applications can go from localhost to production with no/minimal specialized skills - It’s not just about providing the “hard” tech - don’t forget about docs, discoverability etc Lesson #3: Champion a self-service approach
  • 95. Lesson #4: Platform interaction must be just that - Easy to break stuff if communications and expectations are not explicit and known - Platform teams should be precisely that; nothing else - Can be hard to make traditional orgs understand the value of platform teams - Learn from Team Topologies
  • 97. - Don’t trivialize the skills bump but don’t make everything sound like magic either - Onboarding is important - Rapid enablement can create ignorance which can lead to dangerous “mindtraps” - Provide training for the core skills (ex. IAC) if not abstracting them fully Lesson #5: Learning is harder than you think
  • 99. - Serverless offers a paradigm that is easier and more effective to implement for many teams - An IDP wraps a set of tools together to empower developers and streamline development - it can be super elaborate or very simple - The end goal of such platforms is to make business value creation easier, faster, more stable - At Polestar, our Platform team provides and maintains a set of serverless-oriented internal products and starters for teams to use - The key takeaway is that you should definitely think of how a platform could serve you and your context, but that it’s not going to be a one-size-fits-all solution, plus it’s easier to think about tech stacks more than (the actually hard stuff) around “softer” issues like onboarding, training, documentation, learning, platform ops, and such In conclusion
  • 101. - https://www.youtube.com/watch?v=AXxr0pghWS0 - https://thenewstack.io/do-you-need-an-internal-developer-platform/ - https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/ - https://www.cncf.io/blog/2022/03/07/devops-why-it-is-misunderstood-what-it-always-should-have-been/ - https://teamtopologies.com - https://github.com/TeamTopologies/Thinnest-Viable-Platform-examples - https://github.com/mikaelvesavuori/ - https://backstage.io - https://humanitec.com - https://aws.amazon.com/proton/ - https://fwa.dev - https://www.netlify.com - https://vercel.com - https://begin.com - https://www.humblebee.se References