Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Serverlessons: Getting Started Fast

Avatar for Thomas Knox Thomas Knox
February 13, 2020

Serverlessons: Getting Started Fast

Serverless can be great if you have the right application for the paradigm. Let's look at what makes a good candidate for a serverless migration, then deploy some simple python examples. Along the way, we'll compare AWS console/cli tools with frameworks like Chalice. Zappa, and Serverless.

Like many things, serverless is easy right up until you try to do something interesting. Do you:

- need to integrate with existing enterprise SSO?
- have a backend that needs to talk to both private AWS resources and
consume APIS over the public internet?
- need to migrate an app that depends on websockets?
- care about latency?
- fear The Cold Start™?

If time permits, we'll look into these real-world situations and talk about your options. Bring your hard-won experience and we'll swap stories about what works. Strap in, we'll be moving fast!

About the speaker:

Thomas Knox is an application developer and technologist who has spent the majority of his career in higher education, including more than 20 years at the University of Michigan. He is currently at U-M's College of Engineering, where he manages the web applications team. He is a Python enthusiast who strives to enable developers with infrastructure-as-code, continuous deployment, & observability so they can own the things they make. He keeps a list of things he wants to automate so he never has to do them again.

Avatar for Thomas Knox

Thomas Knox

February 13, 2020

More Decks by Thomas Knox

Other Decks in Technology

Transcript

  1. Big Topic ▪ We will move fast ▪ What is

    it? ▪ Why do it? ▪ How do you do it? ▪ Q&A and links at the end
  2. ▪ For today, applications with: ▪ No servers to provision

    or manage ▪ Flexible scaling ▪ High availability ▪ No idle capacity What is it?
  3. Why do it? ▪ Loose Coupling ▪ Parallelism ▪ Queueing

    ▪ Scaling ▪ Robustness ▪ Focus on what you wanted to do
  4. How do you do it? ▪ So many ways… ▪

    AWS Console / CLI ▪ Chalice ▪ Zappa ▪ Serverless Framework
  5. How do you do it? ▪ Console / CLI ▪

    As with many AWS offerings… ▪ People want a Heroku-like experience ▪ Serverless Application Model ▪ SAM, SAM CLI, SAM Repository
  6. How do you do it? ▪ Chalice ▪ I'm a

    Python guy ▪ Open source from AWS Labs ▪ Abstracts and orchestrates a ton ▪ A lot like Flask (see first bullet)
  7. How do you do it? ▪ Zappa ▪ I'm a

    Python guy ▪ Any WSGI application ▪ Allegedly… ▪ More ambitious
  8. How do you do it? ▪ Serverless Framework ▪ Much

    more ambitious ▪ Multi-runtime support ▪ Multi-cloud support ▪ Freemium services
  9. Challenges BOO ▪ Authentication and Authorization ▪ Not everybody 'gets'

    Cognito (ahem) ▪ SSO at the front, back & in the middle? ▪ And that's just authN… ▪ I guess authZ is always bonkers
  10. Challenges YAY! ▪ Authentication and Authorization ▪ OpenID Connect &

    JSON Web Tokens ▪ Do it listener rules in your ALBs ▪ Do it in Cloudfront & Lambda@Edge ▪ Or APIGW + Lambda Authorizers
  11. Challenges BOO ▪ Latency ▪ Cold starts are a real

    problem ▪ Your app's level of 'busy-ness' matters ▪ Cloudwatch Events pinging on a schedule feels… just wrong
  12. Challenges YAY? ▪ Latency ▪ AWS Provisioned Concurrency ▪ Announced

    at reInvent 2019 ▪ Pricing could be murderous ▪ Also, this is serverless, right?
  13. Challenges YAY? ▪ Statefulness ▪ OpenID Connect & JSON Web

    Tokens ▪ This could use some more thought ▪ But you needed to be thinking about statefulness anyway
  14. In Summary ▪ Things that sound too good to be

    true… ▪ Hard things may now be easier ▪ But easy things may now be harder ▪ Consider the user experience ▪ Consider the cost
  15. ▪ AWS Serverless White Paper ▪ Serverless Application Model ▪

    Serverless Application Repository ▪ Chalice at Github ▪ Zappa at Github ▪ Serverless Framework Links and References 1
  16. ▪ OpenID Connect ▪ JSON Web Tokens ▪ Cold starts

    are a real problem ▪ AWS Provisioned Concurrency ▪ This Meetup - Event Details Links and References 2