GithubHelp home page GithubHelp logo

serverless / guide Goto Github PK

View Code? Open in Web Editor NEW
440.0 64.0 43.0 1.94 MB

Serverless Guide - An open-source definitive guide to serverless architectures.

Home Page: https://serverless.github.io/guide/

Shell 82.63% JavaScript 17.37%
serverless serverless-providers serverless-architectures guide serverless-applications aws-lambda azure-functions google-cloud-functions ibm-cloud-functions serverless-framework

guide's Introduction

Serverless Guide

Authored by the community, curated by Serverless, Inc.

Vision

This is your definitive guide to serverless architectures. Inside, you will find everything you need to know about serverless development and how to be a serverless organization: patterns, best practices, case studies and everything in-between.

Aside from implementation, this guide is a collection and discussion of concerns around the state and maturity of serverless. A lot is being written about serverless technology all over the web, and right now that information is fragmented. As a community, we’re bringing it together.

The goal is to create a one-of-a-kind, trusted resource for developers, architects and thought leaders. This should be a valuable resource that will help drive adoption and innovation of serverless architectures.

Are you with us? We want you to be part of this journey.

Table of Contents

eBook

Read the ebook version instead? Check out the pdf, epub and mobi versions. Thanks @warren-bank.

What Will Be Covered

  • Intro to Serverless: A little bit of history, evolution, misconceptions around serverless
  • Benefits: Get into why serverless, its benefits and characteristics
  • Adoption: Insight into the adoption by enterprises and the tech communtiy in general
  • Architecture: Discussions around serverless architecture, FaaS, evolving patterns and solutions
  • Security: Auth. services, access controls, surface areas for attack, data isolation...
  • Development, Deployment & Testing: Rethinking around developing, deploying and testing serverless applications and services
  • Toolsets: Evolving toolsets, frameworks and methodologies
  • Changing DevOps: A look into the changing roles of DevOps teams and the mindshift
  • Challenges: Concerns around debugging, logging, and monitoring, of serverless applications
  • Providers: A comparative look at the serverless providers out there
  • Case Studies: Examples of real-life implementations of serverless technologies

How to Contribute

  • Are you excited about the serverless movement and talk about its future?
  • Do you have an example of a serverless usecase that you want to highlight?
  • Are you a developer who has expertise in a particular serverless provider?
  • Do you work for a provider and see some inconsistencies in the content?
  • Is there an architectural pattern that you feel solves a specific usecase?
  • Do you have a success story that you would like to share?
  • Have you been successful with a specific vendor or a platform?
  • Do you have an opinion/quote that you would like to share?

Then you have lots to share with the community.

We want your contributions to this guide. We would like you to bring in your expertise to showcase them in this guide. We are aiming to create a world-class guide that excites everyone to join the serverless movement. We feel we can achieve that by creating authentic content that is driven by the community. See the contributor guidelines and the contributor code of conduct for details.

Credits

To recognize your contributions to the guide, we encourage you to add your name to the Credits section on a page. We will add you to the 'Guide Authors' team on our Github org. You also get our serverless badge serverless for your Github profile.

Get in Touch

We would love to have your feedback. Or, if you have any questions, please let us know at [email protected].

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Thanks in Advance

The serverless guide is a community-driven effort, and we thank you for your contributions.

Thanks,

The Serverless Team

guide's People

Contributors

ac360 avatar alexdebrie avatar andrea-p avatar avish9 avatar focusaurus avatar jfdesroches avatar rupakg avatar sebgoa avatar shortjared avatar warren-bank avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guide's Issues

Content Contribution: Deployment page

Description

Add content to the Development/Deployment section of the guide.

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

Page/Section: Development/Deployment

Details:

Deployment

Some suggested ideas and guidance for content in this section:

  • How do run serverless applications at scale?
  • How is deploying serverless services different?
  • How do I manage deployment to different staged environments?
  • How does CI/CD workflows implemented in a serverless system? Example of a CI/CD workflow
  • Blue/Green Deployments
  • Rollbacks?
  • Versioning support

Content Contribution: Driving Factors/Benefits of Serverless

Description

Talk about the driving factors and benefits of Serverless

Filename: /guide/source/introduction.md

Page/Section: Introduction -> Driving Factors/Benefits of Serverless

Contributing Author: (company)

Details:

Driving Factors/Benefits of Serverless

  • Lowest Total Cost of Ownership
  • Focus on Business Problems
  • Build More, Faster
  • No Underutilization
  • Agility
  • Team Autonomy

Discussion: Architecture page and sub-sections

Description

Discussion around content for the Architecture section of the guide.

Details:

Some suggested ideas and guidance for content in this section:

Architecture

A Look Back (Issue #55)

  • n-Tier Architecture
  • SOA
  • Microservices Architecture

The Serverless Architecture (Issue #54)

  • Why do we need a new architectural pattern?
  • Functions as a Service (FaaS)
  • How do we get there?
    • Need for agile development lifecycles
    • Need for independent teams working in parallel
    • Focus on building than managing infrastructure

Patterns for Partitioning Code (Issue #53)

  • Nanoservices
  • Microservices
  • Monolithic
  • GraphQL

Content Contribution: Providers -> SpotInst Functions

Description

Add a new provider under Providers -> SpotInst Functions

Filename: /guide/source/providers/spotinst-functions.md

Page/Section: Providers -> SpotInst Functions

Contributing Author: Will ask in SpotInst Slack channel

Details:

Content Contribution: Providers -> IBM Cloud Functions

Description

Add a new provider under Providers -> IBM Cloud Functions

Filename: /guide/source/providers/ibmcf.md

Page/Section: Providers -> IBM Cloud Functions

Contributing Author: James Thomas (IBM)

Details:

  • Create a new section for IBM Cloud Functions: “ibm cloud functions” = hosted “openwhisk” + extra tooling
  • Add a small blurb to the main Introduction page.
  • Add a column to the A Comparative Look sub-section.

Content Contribution: Project Structure page

Description

Add content to the Development/Project Structure section of the guide.

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

Page/Section: Development/Project Structure

Details:

Some suggested ideas and guidance for content in this section:

Project Structure

  • How should a multi-services app be structured?
  • What are best practices for breaking apart services?
  • How should I organize repos for services? one repo or multiple repos?
  • What are the advantages/pain points of either case?
  • How do you manage configuration for services?
  • How to manage secrets for services?
  • How to organize or group functions?

Content Contribution: Toolsets

Description

Add content to the Toolsets section of the guide.

Filename: /guide/source/toolsets/README.md

Page/Section: Toolsets

Details:

Some suggested ideas and guidance for content in this section:

  • Highlight toolsets around serverless that have helped its adoption amongst developers.
  • Narrative about specific aspects of the various frameworks, libraries, projects that have made developing and deploying serverless applications easier.
  • A brief explanation about each toolset, links to sources, its value-add, etc.

Content Contribution: Pathway to Serverless Development page

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

Content Contribution: Architecture -> The Serverless Architectural Pattern section

Description

Add content to the Architecture -> The Serverless Architectural Pattern section of the guide.

Filename: /guide/source/architecture/serverless_arch_pattern.md

Page/Sub-Section: Architecture -> The Serverless Architectural Pattern

Contributing Author: Rupak Ganguly (Serverless Inc.)

Details:

The Serverless Architectural Pattern

Introduction

  • Why do we need a new architectural pattern?
  • Functions as a Service (FaaS)
  • How do we get there?
    • Need for agile development lifecycles
    • Need for independent teams working in parallel
    • Focus on building than managing infrastructure
  • SOA -> microservices -> functions (serverless)
  • serverless is like microservices but more granular
  • serverless architecture: FaaS for compute, BaaS (backend-as-a-service) for everything else (DB, search, cache, CDN)

How serverless architecture looks like?

  • serverless architectures are opinionated microservices architectures
  • different serverless arch:
    • greenfield - the whole system in functions
    • adding features to a legacy system with functions (communication via SDK faster, or API Gateway endpoint - latency issue)

Challenges

  • cold start
  • API Gateway latency
  • invocation limit
  • distributed tracing
  • centralized logging

Migration

  • from traditional SOA architecture
  • from microservices architecture
  • grouping function is good (they can use the same DB)
  • taking out functionalities from the existing system

Link to presentation when I cover some of the stuff from here: https://speakerdeck.com/mthenw/the-state-of-serverless-1

Content Contribution: Architecture -> Introduction section

Description

Add content to the Architecture -> Introduction section of the guide.

Filename: /guide/source/architecture/README.md

Page/Section: Architecture

Contributing Author: Rupak Ganguly (Serverless Inc.)

Details:

Architecture

(introduction page, a look back)

  • Monolithic Architecture
  • Service Oriented Architecture (SOA)
  • Microservices Architecture

Work on the Development:Project Structure section

Description

Add content for the Development: Project Structure section.

Filename: ./source/dev/README.md

Page/Section: Development: Project Structure

Details: Add content that describes the project structure for a serverless application. It will cover the following topics:

  • Create a basic hello-world application using the hello-world template
  • Explain the folder structure and files created by the serverless CLI
  • Explain the serverless.yml file and its sections

Content Contribution: Case Studies page

Description

Add content to the Case Studies section of the guide.

Filename: /guide/source/case_studies/README.md

Page/Section: Case Studies

Details:

Some suggested ideas around use cases that would make good case studies:

  • Single-page web apps
  • Backends for Web, Mobile & IoT
  • Form Processing
  • Auth
  • Data Processing Pipelines
  • Security Audits
  • Stream Processing
  • Webhooks
  • Chatbots
  • Voicebots
  • Devops/Tooling Automation
  • CRON Jobs
  • File Manipulation
  • Graph APIs
  • ETL
  • Image Resizing
  • Web Scraping
  • Automated Testing
  • Running Binaries
  • Serving Dynamic HTML

Content Contribution: Security page

Description

Add content to the Security section of the guide.

Filename: /guide/source/security/README.md

Page/Section: Security

Contributing Author: Shaked Zin (PureSec)

Details:

Some suggested ideas and guidance for content in this section:

Security

  • How is security different in the serverless world?
  • Are there new concerns and challenges?
  • Are the existing best practices for security for cloud workloads still relevant?
  • Is relying on external auth providers, giving up control?
  • Managing data compliance and governance around company security policies?

Positives being Serverless

  • Not managing infrastructure is a huge positive as you don’t have to deal with OS, Kernel, software vulnerabilities.
  • Endpoint protections/application white listing/ - does not apply to serverless
  • Networking solutions, looking at the entire network to prevent attacks - does not apply to serverless
  • DDoS - distributed attack on events, API Gateway handles it - - does not apply to serverless, taken care by provider

Surface Area

  • Surface area for attack
    • The surface area may seem small but due to the proliferation of functions, it increases the surface area of attack.
  • Security distributed across functions
    • that is a positive but one bad function can spoil it for all. Access control/least priviledges is utmost important
  • Does small execution times reduce exposure?
    • Less time to sniff data off a function
    • Backdoors are not relevant in cloud workloads

Data Sharing

  • How is data shared in a stateless environment?
  • How is data isolated?
  • How can data be compromised in transit?

Integrations

  • How do integrations with Auth services and providers work?
  • Example of some services and auth providers - Auth0, Cognito

Application Vulnerabilities

  • Code injection into code (OWASP - researching), not dealing with input correctly, input validation of name of file (XRSF/CSRF), logging sensitive information
  • Attacks effecting the deployment, man-in-the-middle attacks
  • When the attacker compromises a function, what they can do in AWS is based on how the Access Control/permissions are set and effect DynamoDB, SNS (phishing email), permission to create users (persistency attacks), create other functions etc.
  • Vulnerability Scanning of deployed artifacts (dependencies, node_modules, binaries etc.)
  • Anamoly Detection: Are processes running as desired, understand normal functioning of functions and compare it to abnormal behavior, and identify anomalies

Access Management

  • Access Control groups and permission sets
  • Role-based access (IAM roles)
  • What about other provider-specific roles?

Vendor Specific

  • How does it translate to the Framework? Does it make it easier to manage? PureSec security plugin
  • Automatic setting of least privileged IAM roles/permissions
  • Vulnerability Scanning

Content Contribution: Adoption page

Description

Add content to the Adoption section of the guide.

Filename: /guide/source/adption/README.md

Page/Section: Adoption

Contributing Author/Company: Eric Motazedi (Accenture)

Details:

Some suggested ideas and guidance for content in this section:

Adoption

Tell the story about adoption of serverless in the enterprises

  • Clearing the confusion and hype around 'serverless'
  • What does it mean to a CIO?
  • What does it mean to a business unit?
  • Strategy of introducing serverless technologies to the business
    • cost-savings angle
    • faster go-to-market
    • independence of releasing features in an agile way
  • Methodology to implementing serverless
    • Assessing the current architecture and lay of the land
    • Recommendation on pieces of the serverless technologies
    • Starting at the periphery of the larger system, less critical mini-systems, APIs
  • Challenges in adoption:
    • preconceived ideas being blocker
    • lack of knowledge
    • misconceptions that it is only for startups and SMBs
    • Lack of understanding that serverless is in production, at-scale deployed at larger enterprises - some examples
  • Use cases that are good candidates for serverless
  • Trends, Metrics, Gartner's take
  • Some of the big enterprises that see the value and have ongoing implementations

Content Contribution: Apex Framework

Add content to the Toolsets/Framework/Apex Framework section of the guide.

Filename: /guide/source/toolsets/frameworks/apex.md

Page/Section: Toolsets/Framework/Apex

Contributing Author/Company: full name (company)

Details:

Some suggested ideas and guidance for content in this section:

Note: The content should not feel like the documentation already out there but should tell a story around the concepts, features etc. Examples are good but are only required to support an argument. A person who is new to serverless should be able to read this and get excited about using the framework and serverless technologies in general. At the end of reading this, they should get an overall picture what they are getting out of using the framework with respect to the challenges one faces when they start with serverless.

Apex Framework

  • Introduction (general overview)
  • What are the challenges that a dev faces, starting off with just the provider tools?
  • Why is there a need for the framework?
  • What problems does it solve?
  • How did it bring the community together? (contributors, thought leadership)
  • Language and runtime support
  • Talk about some features that solve the biggest issues for the developer
  • Example of use cases that the framework makes it easy to develop
  • Future Plans
  • Resources
    • Link to various framework docs

Work on the Development:Pathway to Serverless Development section

Description

Add content for the Development: Pathway to Serverless Development section.

Filename: ./source/dev/README.md

Page/Section: Development: Pathway to Serverless Development

Details: Add content that describes the pathway to developing serverless applications. It will cover the following topics:

  • Setting up the development environment
  • Creating a basic hello-world app. using the Serverless Framework
  • Describing the various parts of the hello-world app.
  • Creating an application with a 3rd party service like Auth0
  • Describing the details of the app.

Content Contribution: Testing page

Description

Add content to the Development/Testing section of the guide.

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

Page/Section: Development/Testing

Contributing Author/Company: Ben Kehoe (iRobot)

Details:

Some suggested ideas and guidance for content in this section:

Testing

Introduction

[Brief intro into unit testing and integration testing]

Unit Testing

Adapt from [https://serverless.zone/unit-and-integration-testing-for-lambda-fc9510963003]

  • How unit testing in serverless needs a new perspective?
  • Why abstracting out service invocations is not optimal?
  • How can mocking / stubbing calls help?
  • Any challenges?

Integration Testing

Adapt from [https://serverless.zone/monkeyless-chaos-integration-testing-for-serverless-architectures-9d1a4208c3ca]

  • Challenges in writing integration tests?
  • Integration testing: Local vs Live
  • Testing that all functions for a service work in cohesion as part of a larger workflow
  • Testing that the system is resilient to degradation or stability of dependent services
  • Monkeyless Chaos
    • Describe the pattern, its pieces, maybe a diagram
    • Requirements
    • Suggestions for building such a system

Work on Providers section: Google Cloud Functions

Description

Update the content for the Google Cloud Functions provider section.

Filename: ./source/providers/gcf.md

Page/Section: Providers:Google Cloud Functions

Details: Added content describing the attributes for the Google Cloud Functions serverless provider. The following sub-sections were added:

  • Overview
  • How It Works
  • Language Support
  • Security
  • Tooling
  • Monitoring, Logging & Alerting
  • Debugging & Diagnostics
  • Pricing
  • Limitations
  • Resources

Separate files out and seed content for sections

Description

The pages have been divided up into separate sub-pages to make it easier for multiple authors to work on different sections of the guide at the same time. Also, added some seed content to provide guidance for intended content.

Filename: Various

Page/Section: Various

Details:

  • Break up the Development page into sub-pages
  • Separate out the Serverless Platform page
  • Add seed content

Content Contribution: Serverless vs. PaaS

Description

Talk about the differences between Serverless and PaaS, by comparing and contrasting tenets of each.

Filename: /guide/source/introduction.md

Page/Section: Introduction -> Serverless vs. PaaS

Contributing Author: (company)

Details:

Serverless vs. PaaS

  • How are they similar? - server fleet management is offloaded to the provider.
  • How are they different? - pay-per-execution, scaling

Work on the Introduction: What is Serverless? section

Description

  • Add content to the main Introduction section.
  • Add content to the Introduction: What is Serverless? section.

Filename: ./source/introduction.md

Page/Section:

  • Introduction
  • Introduction: What is Serverless?

Details: The content will cover:

  • Overview
  • [] Misconceptions
  • [] Characteristics
  • [] Driving Factors/Benefits

Restructure Providers section to add an Opensource Platforms section

Description

The current Providers section mixes commercial Serverless platforms with the opensource platforms like OpenWhisk, Kubeless, OpenFaaS etc.

Filename: /guide/source/providers/README.md

Page/Section: Providers -> Opensource Platforms

Contributing Author: Rupak Ganguly (Serverless Inc.)

Details:

  • Add Opensource Platform to the TOC, and move Kubeless under it
  • Add a subheading Opensource Platform
  • Add the "A Comparative View" section under Opensource Platform with Kubeless, OpenFaaS in it.
  • Move Kubeless content under this section
  • Add OpenFaaS placeholder under it

Content Contribution: Architecture -> Patterns for Partitioning Code section

Description

Add content to the Architecture -> Patterns for Partitioning Code sub-section of the guide.

Filename: /guide/source/architecture/README.md

Page/Sub-Section: Architecture -> Patterns for Partitioning Code

Contributing Author: Eslam Hefnawy (Serverless Inc.)

Details:

Partitioning Logic

  • Microservices Pattern
  • Nanoservices Pattern
  • Monolithic Pattern
  • Graph Pattern

Adapt from @eahefnawy post Serverless Code Patterns but without Serverless Framework specific examples. Make examples into diagrams showing partitioning.

Work on Providers section: IBM OpenWhisk

Description

Update the content for the IBM OpenWhisk provider section.

Filename: ./source/providers/openwhisk.md

Page/Section: Providers:IBM OpenWhisk

Details: Added content describing the attributes for the IBM OpenWhisk serverless provider. The following sub-sections were added:

  • Overview
  • How It Works
  • Language Support
  • Security
  • Tooling
  • Monitoring, Logging & Alerting
  • Debugging & Diagnostics
  • Pricing
  • Limitations
  • Resources

Content Contribution: What Is Serverless?

not sure where this should go so submitting the text here in the issue.

Just like wireless internet has wires somewhere, serverless architectures still have servers somewhere. What makes something serverless is, that as a developer you don’t have to worry or think about those servers. You can just focus on code.

There are 4 core tenets you should know about:

  1. Zero Administration
    This is the most exciting thing about serverless. Whereas previous abstractions like VMs and containers still shared a lot of the same configuration and administration properties of servers, serverless is a completely different experience. When you're ready to deploy code, you don't have to provision anything beforehand, or manage anything afterward. There is no concept of a fleet, an instance, or even an operating system. Everything runs in the cloud and the provider manages scaling for you.

  2. Pay-per-execution
    This is what typically incentivizes developers to try serverless for the first time. It’s alluring to have complete resource utilization without paying a cent for idle time. This tenet alone results in over 90% cost-savings over a cloud VM and immeasurable developer satisfaction in knowing that you never have to pay for resources that you don’t use.

  3. Function as unit of deployment
    Serverless architectures are composed of very small, independent bits of code (functions) that are loosely coupled and collaborative—also known as a microservice architecture. The main advantage? Pieces of the system are contained. They can be developed and deployed independently. The result is fewer blockers and far greater developer autonomy and productivity.

  4. Event-Driven
    This aspect of serverless is the most under-the-radar right now, but is shaping up to be the most important in the long-term. Serverless functions are stateless, and essentially dormant, until they have an event to react to. The event is what brings them to life and provides them with the data/context to do their job. Event-driven architectures are nothing new, but the rise of serverless compute has renewed interest in them because serverless architectures are by definition event-driven.

[Suggestion] Define a common vocabulary

To ensure the reading experience remains consistent and high-quality as this project scales, I recommend creating a vocabulary section in the beginning. One of the requirements for contributing should be sticking to the declared vocabulary.

Example:

  • Serverless:
  • Serverless Compute, Function-as-a-Service:
  • Serverless Architecture:

Content Contribution: Introduction page

Description

Add content to the Introduction section of the guide.

Filename: /guide/source/introduction.md

Page/Section: Introduction

Details:

Some suggested ideas and guidance for content in this section:

The Evolution

Completed

What Is Serverless?

Moved to issue #49 and #50

Serverless vs. PaaS

Moved to issue #51

Content Contribution: Architecture -> Serverless Architecture

Description

Add content to the Architecture -> The Serverless Architecture section of the guide.

Filename: /guide/source/architecture/README.md

Page/Section: Architecture -> The Serverless Architecture

Contributing Author: [full name] (company)

Details:

The Serverless Architecture

Introduction

More holistic view of serverless architectures in light of events.

  • Functions as a Service (FaaS)
  • How do we get there?
    • Need for agile development lifecycles
    • Need for independent teams working in parallel
    • Focus on building than managing infrastructure
  • SOA -> microservices -> functions (serverless)
  • serverless is like microservices but more granular
  • serverless architecture: FaaS for compute, BaaS (backend-as-a-service) for everything else (DB, search, cache, CDN)
  • Cooperative Development (sharing events)
  • Autonomy for teams

How serverless architecture looks like?

  • serverless architectures are opinionated microservices architectures
  • different serverless arch:
    • greenfield - the whole system in functions
    • adding features to a legacy system with functions (communication via SDK faster, or API Gateway endpoint - latency issue)

Challenges

  • cold start
  • API Gateway latency
  • invocation limit
  • distributed tracing
  • centralized logging

Migration

  • from traditional SOA architecture
  • from microservices architecture
  • grouping function is good (they can use the same DB)
  • taking out functionalities from the existing system

Link to presentation when I cover some of the stuff from here: https://speakerdeck.com/mthenw/the-state-of-serverless-1

Need Content : Python Dependencies

Description

Add how to add python library dependencies, e.g. psycopg2.

Page/Section: Python

Currently this is confusing, https://serverlesscode.com/post/python-on-serverless-intro/ says "Serverless recommends using the created-by-default vendored/ directory and a component-level requirements.txt file" while aws-python3 template has no "vendored" directory, and I don't know what "component" means (a service?)

Also, is package: include: in serverless.yml required ?

Also how to handle binary/compiled dependencies like psycopg2.

Content Contribution: Chalice Framework

Add content to the Toolsets/Frameworks/Chalice Framework section of the guide.

Filename: /guide/source/toolsets/frameworks/chalice.md

Page/Section: Toolsets/Frameworks/Chalice

Contributing Author/Company: [full name] (company)

Details:

Some suggested ideas and guidance for content in this section:

Note: The content should not feel like the documentation already out there but should tell a story around the concepts, features etc. Examples are good but are only required to support an argument. A person who is new to serverless should be able to read this and get excited about using the framework and serverless technologies in general. At the end of reading this, they should get an overall picture what they are getting out of using the framework with respect to the challenges one faces when they start with serverless.

Chalice Framework

  • Introduction (general overview)
  • What are the challenges that a dev faces, starting off with just the provider tools?
  • Why is there a need for the framework?
  • What problems does it solve?
  • How did it bring the community together? (contributors, thought leadership)
  • Language and runtime support
  • Talk about some features that solve the biggest issues for the developer
  • Example of use cases that the framework makes it easy to develop
  • Future Plans
  • Resources
    • Link to various framework docs

Content Contribution: Serverless Application Model (SAM)

Description

Add content to the Toolsets/Frameworks/Chalice Framework section of the guide.

Filename: /guide/source/toolsets/frameworks/sam.md

Page/Section: Toolsets/Frameworks/Serverless Application Model (SAM)

Contributing Author/Company: [full name] (company)

Details:

Some suggested ideas and guidance for content in this section:

Note: The content should not feel like the documentation already out there but should tell a story around the concepts, features etc. Examples are good but are only required to support an argument. A person who is new to serverless should be able to read this and get excited about using the framework and serverless technologies in general. At the end of reading this, they should get an overall picture what they are getting out of using the framework with respect to the challenges one faces when they start with serverless.

Serverless Application Model (SAM)

  • Introduction (general overview)
  • Why is there a need for the framework?
  • What problems does it solve?
  • How did it bring the community together? (contributors, thought leadership)
  • Language and runtime support
  • Talk about some features that solve the biggest issues for the developer
  • Example of use cases that the framework makes it easy to develop
  • Future Plans
  • Resources
    • Link to various framework docs

Content Contribution: Operations page

Description

Add content to the Operations section of the guide.

Filename: /guide/source/ops/README.md

Page/Section: Operations

Details:

Some suggested ideas and guidance for content in this section:

Operations

Introduction

  • Misconceptions about no DevOps
  • The shift in the role of DevOps
  • Look beyond infrastructure - Zero Administration
  • Shift from mundane work of managing infrastructure to taking care of business

Challenges

  • New challenges for DevOps teams
  • Managing volume of functions
  • More time and resources to monitor health, load, bottlenecks of applications

Managing Deployments

  • Managing multiple stages & environments
  • CI/CD
  • Blue/Green Deployments
  • Versioning
  • Rollbacks

Post-deployment DevOps

  • Troubleshooting
  • Performance Management
  • Monitoring
  • Logging/Auditing
  • Distributed Tracing

Feel free to add/modify the sub-sections.

Content Contribution: Serverless Framework

Description

Add content to the Toolsets/Framework/Serverless Framework section of the guide.

Filename: /guide/source/toolsets/frameworks/serverless.md

Page/Section: Toolsets/Framework/Serverless

Contributing Author/Company: Eslam Hefnawy (Serverless)

Details:

Some suggested ideas and guidance for content in this section:

Note: The content should not feel like the documentation already out there but should tell a story around the concepts. Examples are good but are only required to support an argument. A person who is new to serverless should be able to read this and get excited about using the framework and serverless technologies in general. At the end of reading this, they should get an overall picture what they are getting out of using the framework with respect to the challenges one faces when they start with serverless.

The Serverless Framework

  • Introduction (general overview)
  • What are the challenges that a dev faces, starting off with just the provider tools?
  • Why is there a need for the framework?
  • What problems does it solve?
  • How did it bring the community together? (contributors, thought leadership)
  • Language and runtime support
  • Talk about some features that solve the biggest issues for the developer:
    • serverless.yml (mapping of service to a provider to functions to handlers to events at one place)
    • Variable system
    • Packaging (exclude dev dependencies etc.)
    • Deployment (CF for AWS, how we do for other providers?)
    • Auto-generation of IAM roles
    • Multi-provider support (vendor lock-in)
    • Login
    • Versioning
    • Rollback
  • Plugin system
    • Introduction (overview)
    • what problems does it solve? - extensibility, community involvement etc.
    • Life-cycle events (diagram of the flow)
  • Example of use cases that the framework makes it easy to develop
  • Future Plans
  • Resources
    • Link to various framework docs

Work on the Development intro section

Description

Add content to the main Development intro section.

Filename: ./source/dev/README.md

Page/Section: Development

Details: The content will cover:

  • Why is developing in serverless different?
  • Why would developers care?
  • What does it really mean?

Content Contribution: Debugging page

Description

Add content to the Development/Debugging section of the guide.

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

Page/Section: Development/Debugging

Details:

Some suggested ideas and guidance for content in this section:

Debugging

  • What are the challenges around debugging serverless services and apps?
  • What are some of the workarounds that exist?
  • Is it practically impossible to trace through functions in the cloud?
  • What problems do event-driven architectures bring to the surface?

Content Contribution: Examples page

Description

Add content to the Development/Examples section of the guide.

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

Page/Section: Development/Examples

Details:

Some suggested ideas and guidance for content in this section:

Examples

  • Provide examples of applications and services
  • List examples with link, and description from the examples repo

Content Contribution: Culture page

Description

Add content to the Development/Culture section of the guide.

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

Page/Section: Development/Culture

Details:

Some suggested ideas and guidance for content in this section:

Culture

  • How is the culture inside organizations changing due to the adoption of serverless?
  • Are we seeing a shift in how teams are formed? Autonomous teams?
  • What are the challenges for training the new workforce?
  • How are we educating the teams about serverless?
  • How does the serverless mindset affecting how we hire?
  • What are some of the best practices?

Content Contribution: Providers -> OpenFaaS

Description

Create a section for Providers -> OpenFaaS under the Opensource Platforms.

Filename: /guide/source/providers/openfaas.md

Page/Section: Providers -> OpenFaaS

Contributing Author: [full name] (company)

Details:

  • Create a new section for OpenFaaS
  • Add a small blurb to the main Introduction page under Opensource Platforms sub-heading.
  • Add a column to the A Comparative Look section under the Opensource Platforms sub-heading.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.