guide icon indicating copy to clipboard operation
guide copied to clipboard

Content Contribution: Pathway to Serverless Development page

Open rupakg opened this issue 7 years ago • 5 comments

Description

Add content to the Development/Pathway to Serverless Development section of the guide.

Filename: /guide/source/dev/pathway_to_sls.md

Page/Section: Development/Pathway to Serverless Development

Contributing Author/Company: Jared Short (Trek10)

Details:

Some suggested ideas and guidance for content in this section:

Pathway to Serverless Development

Tell the story around how to get involved and get thinking on introducing serverless technologies into the organizations. Cutting through the hype and misconceptions, use personal experiences to contrast advantages and challenges.

  • Migrating from a monolithic/VM centric mindset to serverless
  • Starting at the periphery to introduce serverless into a larger system
  • Developing a serverless application
    • How is it different?
    • New challenges: debugging, distributed tracing, security
  • Using 3rd party services, Auth0, S3, Firebase, SNS, Kinesis
  • Thoughts around scaling and performance
  • Is Multi-cloud/provider practical?
  • Brief look at challenges in the current state of serverless
    • Cold Start
    • Max. time of execution (fan-out pattern)
    • No. of Invocations
  • Touch upon few use cases that are relevant to the enterprises

rupakg avatar Jun 16 '17 16:06 rupakg

@shortjared It was a good overall conversation with you about the content for this section. If you have any questions, feel free to ping me or add it here.

For next steps, let's get a draft outline for the content that we can review together.

rupakg avatar Jul 20 '17 19:07 rupakg

Hey @shortjared, just checking if you are good on getting a draft outline out soon. If you have any questions, please let me know.

rupakg avatar Jul 28 '17 05:07 rupakg

Pathway to Serverless Development

Introducing Serverless to your Projects

  • Not a magic bullet, don't go all in at once with a big rewrite
  • Use for new components first

Migrating from the Monolith

  • Rewrite painful components one at a time, eliminating those trouble points and bottlenecks
  • The best serverless app is only as good as the weakest integration point with the monolith
  • Real world example: email system / metadata search

All in On Serverless

  • How to think in Serverless
    • Event driven architecture first
    • Smaller independent systems
  • Changes to the security model
    • Least privelege per service / function
  • Thinking in functions (consumable event producers and endpoints)
  • Debugging / Tracing
  • Important of meaningful logging

Serverless is Serviceful, Relying on Third Parties

  • As the old adage goes, focus on what you are good at
  • Use best in class utilities where you can that aren't differentiators
  • Auth0, Okta, OneLogin
  • Firebase, SNS, Kinesis
  • S3, Imgix, Cloudinary
  • CloudWatch, Datadog, IOPipe

Setting up your Teams for Success

  • Dev accounts with full admin access
  • At least attempt a reasonable offline dev experience (serverless-offline plugin)
  • CI / CD is critical
  • Real world example: multi-project single npm start script for React FE, Serverless BE, and DynamoDB offline

Scaling and Performance Considerations

  • Concurrency limitations
  • Use queues to protect weaker systems
  • Cost considerations for consistent high load elements
  • In mem/container caches

Should we Multi-cloud?

  • Long been the sought after "holy grail"
  • Possible, but very expensive, very low risk
  • Multi-region on single provider is better for DR / HA
  • Best practice: Abstract your integrations for easier migration path is a good compromise

The Rough Edges of Serverless

  • Cold starts, concurrent invocations, black hole invocation, etc
  • Databases & VPC connections
  • Deployment models (blue / green? Rolling?)

Operationalizing

  • What and how to monitor things
  • The importance of DLQs
  • Failover strategy
  • Real world example: Trek10 alerting / monitoring examples

shortjared avatar Aug 09 '17 15:08 shortjared

@rupakg took a first stab at this, let me know your thoughts.

shortjared avatar Aug 09 '17 15:08 shortjared

@shortjared This is sweet and I love that you thought through it. I like all the sub-sections. Some of it may belong under different sections. So I will think about it and maybe suggest something.

I would say you can start on the Introducing Serverless to your Projects sub-section.

rupakg avatar Aug 09 '17 15:08 rupakg