Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Content Contribution: Pathway to Serverless Development page #36

Open
rupakg opened this issue Jun 16, 2017 · 5 comments
Open

Content Contribution: Pathway to Serverless Development page #36

rupakg opened this issue Jun 16, 2017 · 5 comments
Projects

Comments

@rupakg
Copy link
Contributor

rupakg commented Jun 16, 2017

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 rupakg changed the title Content Contribution: Development/Pathway to Serverless Development page Content Contribution: Pathway to Serverless Development page Jun 16, 2017
@rupakg rupakg added this to Icebox in Guide Jun 16, 2017
@rupakg rupakg moved this from Icebox to Backlog in Guide Jul 20, 2017
@rupakg
Copy link
Contributor Author

rupakg commented Jul 20, 2017

@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
Copy link
Contributor Author

rupakg commented Jul 28, 2017

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

@shortjared
Copy link
Contributor

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
Copy link
Contributor

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

@rupakg
Copy link
Contributor Author

rupakg commented Aug 9, 2017

@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.

@shortjared shortjared removed their assignment Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Guide
Backlog
Development

No branches or pull requests

2 participants