Writing less code with Serverless on
Vadym Kazulkin, ip.labs, 1 February 2022
Contact
Vadym Kazulkin
ip.labs GmbH Bonn, Germany
Co-Organizer of the Java User Group Bonn
and Serverless Bonn Meetup
v.kazulkin@gmail.com
@VKazulkin
https://www.linkedin.com/in/vadymkazulkin
https://www.iplabs.de/
ip.labs
https://www.iplabs.de/
Agenda
• Challenges of the software development
• Serverless and its value proposition
• Dive deeper into “own less, build more” and
“lower technical debt” aspects
• Examples of AWS Serverless services and architectures for
writing less code
• How to be successful with Serverless
Let’s talk about the
challenges of the software
development in general
first
Cognitive Load –
the total amount of mental
effort being used in the working
memory
• Intrinsic
• Extraneous
• Germane
Cognitive Load
• Intrinsic
• How to write a Java class or use a framework
(Spring)
• Extraneous
• Germane
• Intrinsic
• Extraneous
• How to automate tests (unit, integration, end-to-end, web, desktop, mobile)
• How to build, package, deploy and run my application
• How to configure monitoring, alerting, auto-scaling, logging and tracing
• How to operate and maintain infrastructure
• How to build-in fault-tolerance and resiliency
• How to make the hardware, networking and application secure
• Germane
Cognitive Load
• Intrinsic
• Extraneous
• Germane
• Domain Knowledge (payment, e-commerce)
• Business processes and workflows
Cognitive Load
• Intrinsic ->
become fluent in it
• Extraneous ->
minimize amount of what we
implement/operate/support/own by ourselves
• Germane ->
minimize amount of what we have to implement
by ourselves
Cognitive Load
What our boss wants from us?
… that we are productive
Productivity
We are productive if we regularly ship products,
which are successfully used by our customers
What is holding us back from
being productive?
Technical Debt - reflects the implied cost
of additional rework caused by choosing an
easy (limited) solution now instead of using
a better approach that would take longer
”The Cost of Poor Quality Software in the US: A 2018 Report”
https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
Technical Debt
• Even a perfect solution can become the
technical debt over the time
• Version of programming language comes
out of support (Java 8, JS Frameworks)
• Security considerations forces us to
upgrade one of our dependencies (library
or web application server version)
• One of our dependencies (e.g. to open
source project) is discontinued
Think of what can happen to your software
over the entire life cycle of our product
Technical Debt
• is related to amount of code written
• is related to amount of dependencies used
• open source projects, programming
languages, databases, (web) application
servers
Technical Debt
Legacy Systems are systems that can’t
evolve
”The Cost of Poor Quality Software in the US: A 2018 Report”
https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
Legacy System
Evolutionary Architecture–
supports guided, incremental
change across multiple
dimensions
• Incremental change
• Appropriate architectural coupling
• Fitness functions
”Architectural Coupling” https://learning.oreilly.com/library/view/building-evolutionary-architectures/9781491986356/ch04.html
Evolutionary Architecture–
Fitness functions
• Source code metrics (such as measuring
cyclomatic complexity)
• Unit tests (% of coverage and % of success)
• Performance metrics(such as API latency or
throughput)
• Security (encryption at rest, e.g. checking that all S3
buckets have encryption enabled, or automatic key rotation
for all external APIs, with tools such as the AWS Secrets
Manager)
• ArchUnit, Sonar, CI/CD Tools
• CodeCommit,…CodeDeploy, Jenkins
Danilo Poccia „ Serverless + Evolutionary Architectures + Safe Deployments = Speed in the Right Direction”
https://blog.usejournal.com/serverless-evolutionary-architectures-safe-deployments-speed-in-the-right-direction-7b4b01e27254
Serverless
The Value Proposition of
Serverless
But let’s talk about of Total Cost of Ownership of
the Serverless paradigm
TCO Full Picture
No Infrastructure
Operation and
Maintenance
Auto Scaling and
Fault Tolerance
Built in
Own less,
build more
Lower technical
debt
Faster Time to
Market
Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
Focus on Business
Value and Innovation
Own less, build more
By heavily relying on the
managed Serverless services
you
• Can do more with the
same amount of people
• Can more easily evolve
your architecture
Lower technical debt
• Whatever code you write today is always
tomorrow’s technical debt © Paul
Johnston
• Less code means lower technical debt
• Less code means less code maintenance
• Time and effort required for maintaining
the solution over its whole lifecycle is by
far much more than for developing it
Jeff Atwood „The Best Code is No Code At All” https://blog.codinghorror.com/the-best-code-is-no-code-at-all/
Paul Johnston “Cloud 2.0: Code is no longer King — Serverless has dethroned it”
https://medium.com/@PaulDJohnston/cloud-2-0-code-is-no-longer-king-serverless-has-dethroned-it-c6dc955db9d5
• Write fewer Lambda functions
• use more direct service integrations in case the Lambda only calls the
Service itself
How to write less code with
AWS Serverless services 1/2
Less Lambda functions means less:
• code to write, test, run and maintain
• CI/CD (deploy, rollback strategies) to maintain
• Infrastructure as a Code (IAM policies, permission) to write and test
• cold-start worries
• point of failures and retries
• security concerns
• worries about Lambda limits (e.g. concurrency settings per AWS account)
• spending on Lambda, CloudWatch and 3rd party SaaS on (AWS) (monthly) bill
Sheen Brisals “Don’t wait for Functionless. Write less Functions instead”
https://medium.com/lego-engineering/dont-wait-for-functionless-write-less-functions-instead-8f2c331cd651
• Write fewer Lambda functions
• use more direct service integrations in case the Lambda only calls the
Service itself
• Write less Infrastructure as a Code by using AWS Services/Frameworks
which provide meaningful abstractions, including managed I/CD
• AWS Amplify and Serverless Cloud
How to write less code with
AWS Serverless services 2/2
Examples how to write less code with
AWS Serverless services
• API Gateway Service Integration
• HTTP APIs Storage-First Service
Integration
• Step Functions Service Integration
• Step Functions Workflow Studio
• EventBridge with Service Integrations
and API Destinations
• Event Bridge Filtering and Routing
• Filtering for Lambda Functions
• NoSQL Workbench for DynamoDB
• SNS message filtering and native
integration between SNS and
Kinesis Data Firehose
• Amplify Framework
• Serverless Cloud Preview
Sheen Brisals “Don’t wait for Functionless. Write less Functions instead”
https://medium.com/lego-engineering/dont-wait-for-functionless-write-less-functions-instead-8f2c331cd651
API Gateway Service Integration
API Gateway Service Integration with
Dynamo DB : Example ID generator 1/2
Sheen Brisals “Sequence Numbering in Serverless via API Gateway” https://medium.com/lego-engineering/sequence-numbering-in-serverless-via-api-gateway-40e5f6c83e93
Zac Charles “Quickly Build and Debug AppSync & API Gateway Mapping Templates” https://mappingtool.dev/
API Gateway Service Integration with
Dynamo DB : Example ID generator 2/2
Sheen Brisals “Sequence Numbering in Serverless via API Gateway” https://medium.com/lego-engineering/sequence-numbering-in-serverless-via-api-gateway-40e5f6c83e93
Zac Charles “Quickly Build and Debug AppSync & API Gateway Mapping Templates” https://mappingtool.dev/
Eric Johnson “https://aws.amazon.com/de/blogs/compute/building-storage-first-applications-with-http-apis-service-integrations/”
HTTP APIs Storage-First Service
Integration
• Event Bridge
• Kinesis Data Streams
• SQS
• AppConfig
• Step Functions
Using Service Integrations with EventBridge
“Amazon EventBridge” https://aws.amazon.com/eventbridge/
Using Service Integrations with
EventBridge /Put Targerts
“Amazon EventBridge Put Targets” https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html
Using API Destinations with EventBridge
“Amazon EventBridge” https://aws.amazon.com/eventbridge/
Using API Destinations with EventBridge
“Using API destinations with Amazon EventBridge”
https://aws.amazon.com/de/blogs/compute/using-api-destinations-with-amazon-eventbridge/
EventBridge Filtering and Routing
“Reducing custom code by using advanced rules in Amazon EventBridge”
https://aws.amazon.com/de/blogs/compute/reducing-custom-code-by-using-advanced-rules-in-amazon-eventbridge/
S3 Event Notifications with EventBridge
https://aws.amazon.com/blogs/aws/new-use-amazon-s3-event-notifications-with-amazon-eventbridge/
SNS Message Filtering
https://aws.amazon.com/blogs/compute/simplify-pubsub-messaging-with-amazon-sns-message-filtering/
Native integration between SNS and
Kinesis Data Firehose
https://aws.amazon.com/de/blogs/compute/introducing-message-archiving-and-analytics-for-amazon-sns/
Step Functions Service Integration
“Service Integrations with AWS Step Functions” https://docs.aws.amazon.com/step-functions/latest/dg/concepts-service-integrations.html
AWS Step Functions Supports 200
AWS Services
https://aws.amazon.com/de/blogs/aws/now-aws-step-functions-supports-200-aws-services-to-enable-easier-workflow-automation/
arn:aws:states:::
aws-sdk:serviceName:apiAction.
<serviceIntegrationPattern>
Step Functions Workflow Studio – A Low-Code
Visual Tool for Building State Machines
“AWS Step Functions Workflow Studio”
https://aws.amazon.com/de/blogs/aws/new-aws-step-functions-workflow-studio-a-low-code-visual-tool-for-building-state-machines/
Filtering event sources for Lambda
functions
https://aws.amazon.com/blogs/compute/filtering-event-sources-for-aws-lambda-functions/
https://dev.to/aws-builders/trigger-lambda-functions-with-event-filtering-2pnb
Filtering is supported for the following event sources:
• Kinesis Data Streams
• DynamoDB Streams
• Amazon SQS
NoSQL Workbench for DynamoDB
https://aws.amazon.com/dynamodb/nosql-workbench/
Data Modeling Data Visualization Operation Building
Export DynamoDB Table Data to S3
https://aws.amazon.com/de/blogs/aws/new-export-amazon-dynamodb-table-data-to-data-lake-amazon-s3/
Amplify
“Amazon Amplify” https://aws.amazon.com/amplify
Amplify supports :
• web frameworks including JavaScript, React, Angular, Vue, Next.js
• mobile platforms including Android, iOS, React Native, Ionic, Flutter
Amplify and Admin GUI
https://docs.amplify.aws/console/adminui/intro#access-outside-the-aws-management-console/
AWS Amplify managed CI/CD
https://towardsaws.com/step-by-step-guide-to-deploy-your-web-application-with-auto-ci-cd-pipeline-using-aws-amplify-a87712756c2
Serverless Cloud Preview
https://www.serverless.com/blog/introducing-serverless-cloud-public-preview
Serverless Cloud Preview
https://www.serverless.com/blog/introducing-serverless-cloud-public-preview
Serverless Cloud Preview
https://www.serverless.com/blog/how-serverless-cloud-works-part-1
Serverless Cloud Preview
https://www.serverless.com/blog/introducing-serverless-cloud-public-preview
Common patterns
• Direct service integrations to reduce the amount of code written
• API Gateway, HTTP API, Step Functions, EventBridge, SNS,
Amplify
• Visual Studio/Tools to reduce the cognitive load
• Step Functions, Amplify, DynamoDB
• Automated CI/CD to focus on the business logic
• Amplify, SAM
• First steps in interpreting Infrastructure from Code
• Serverless Cloud
Focus on Business Value
Using Serverless ecosystem will
with the right engineering practices in place will significantly reduce
• extraneous and germane cognitive load
• the amount of code written
• the amount of dependencies (no execution runtime and web application server to
take care of)
Reducing dependencies doesn’t mean that you own nothing (you still
own things, but in general less)
• Lambda language runtime version will be retired from time to time
• Node.js <10.x, Java 8 runtime migration to Amazon Corretto
• Aurora with PostgreSQL/MySQL compatibilities will force you to
upgrade database version behind
• Retiring PostgreSQL version 9.6
plan and execute upgrades continuously and iteratively
Word of caution about the
Serverless ecosystem
How to be successful with Serverless
How to measure success
Let’s focus on software delivery and operational performance
(how to do the things right)
• Provide the managers and executives metrics, that we’re on the right path
• See from the developer’s perspective how to achieve it and improve
It’s also important to the right thing!
How to measure success
See DORA State of DevOps 2018-2019 Reports
Software Delivery and
Operational Performance
See DORA State of DevOps 2018-2019 Reports
Wardley Maps
Simon Wardley https://www.slideshare.net/swardley/why-the-fuss-about-serverless-88107645
Co-evolution of practices
to become productive with
Serverless
Co-evolution of practices with
Serverless 1/2
• True DevOps
• Complete infrastructure automation
• Chaos Engineering
• FinDev responsibilities in the teams
Sheen Brisals “Why the ‘WHY’ matters more than the ‘WHAT’ in Serverless!”
https://medium.com/lego-engineering/why-the-why-matters-more-than-the-what-in-serverless-2ef56c397962
DevOps Topologies: https://web.devopstopologies.com/
• Each team or even developer can have its own
(AWS test) account per feature or service
• Only minimal local testing (quick functional tests)
• Adopt “testing in production”
Michael Bryzek “What do you know about testing in production?” https://www.youtube.com/watch?v=z-ATZTUgaAo
Co-evolution of practices with
Serverless 2/2
www.iplabs.de
Accelerate Your Photo Business
Get in Touch

Writing less code with Serverless on AWS at OOP 2022

  • 1.
    Writing less codewith Serverless on Vadym Kazulkin, ip.labs, 1 February 2022
  • 2.
    Contact Vadym Kazulkin ip.labs GmbHBonn, Germany Co-Organizer of the Java User Group Bonn and Serverless Bonn Meetup [email protected] @VKazulkin https://www.linkedin.com/in/vadymkazulkin https://www.iplabs.de/
  • 3.
  • 4.
    Agenda • Challenges ofthe software development • Serverless and its value proposition • Dive deeper into “own less, build more” and “lower technical debt” aspects • Examples of AWS Serverless services and architectures for writing less code • How to be successful with Serverless
  • 5.
    Let’s talk aboutthe challenges of the software development in general first
  • 6.
    Cognitive Load – thetotal amount of mental effort being used in the working memory • Intrinsic • Extraneous • Germane
  • 7.
    Cognitive Load • Intrinsic •How to write a Java class or use a framework (Spring) • Extraneous • Germane
  • 8.
    • Intrinsic • Extraneous •How to automate tests (unit, integration, end-to-end, web, desktop, mobile) • How to build, package, deploy and run my application • How to configure monitoring, alerting, auto-scaling, logging and tracing • How to operate and maintain infrastructure • How to build-in fault-tolerance and resiliency • How to make the hardware, networking and application secure • Germane Cognitive Load
  • 9.
    • Intrinsic • Extraneous •Germane • Domain Knowledge (payment, e-commerce) • Business processes and workflows Cognitive Load
  • 10.
    • Intrinsic -> becomefluent in it • Extraneous -> minimize amount of what we implement/operate/support/own by ourselves • Germane -> minimize amount of what we have to implement by ourselves Cognitive Load
  • 11.
    What our bosswants from us? … that we are productive
  • 12.
    Productivity We are productiveif we regularly ship products, which are successfully used by our customers
  • 13.
    What is holdingus back from being productive? Technical Debt - reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer ”The Cost of Poor Quality Software in the US: A 2018 Report” https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
  • 14.
    Technical Debt • Evena perfect solution can become the technical debt over the time • Version of programming language comes out of support (Java 8, JS Frameworks) • Security considerations forces us to upgrade one of our dependencies (library or web application server version) • One of our dependencies (e.g. to open source project) is discontinued
  • 15.
    Think of whatcan happen to your software over the entire life cycle of our product Technical Debt
  • 16.
    • is relatedto amount of code written • is related to amount of dependencies used • open source projects, programming languages, databases, (web) application servers Technical Debt
  • 17.
    Legacy Systems aresystems that can’t evolve ”The Cost of Poor Quality Software in the US: A 2018 Report” https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf Legacy System
  • 18.
    Evolutionary Architecture– supports guided,incremental change across multiple dimensions • Incremental change • Appropriate architectural coupling • Fitness functions ”Architectural Coupling” https://learning.oreilly.com/library/view/building-evolutionary-architectures/9781491986356/ch04.html
  • 19.
    Evolutionary Architecture– Fitness functions •Source code metrics (such as measuring cyclomatic complexity) • Unit tests (% of coverage and % of success) • Performance metrics(such as API latency or throughput) • Security (encryption at rest, e.g. checking that all S3 buckets have encryption enabled, or automatic key rotation for all external APIs, with tools such as the AWS Secrets Manager) • ArchUnit, Sonar, CI/CD Tools • CodeCommit,…CodeDeploy, Jenkins Danilo Poccia „ Serverless + Evolutionary Architectures + Safe Deployments = Speed in the Right Direction” https://blog.usejournal.com/serverless-evolutionary-architectures-safe-deployments-speed-in-the-right-direction-7b4b01e27254
  • 20.
  • 21.
    The Value Propositionof Serverless But let’s talk about of Total Cost of Ownership of the Serverless paradigm
  • 22.
    TCO Full Picture NoInfrastructure Operation and Maintenance Auto Scaling and Fault Tolerance Built in Own less, build more Lower technical debt Faster Time to Market Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless Focus on Business Value and Innovation
  • 23.
    Own less, buildmore By heavily relying on the managed Serverless services you • Can do more with the same amount of people • Can more easily evolve your architecture Lower technical debt • Whatever code you write today is always tomorrow’s technical debt © Paul Johnston • Less code means lower technical debt • Less code means less code maintenance • Time and effort required for maintaining the solution over its whole lifecycle is by far much more than for developing it Jeff Atwood „The Best Code is No Code At All” https://blog.codinghorror.com/the-best-code-is-no-code-at-all/ Paul Johnston “Cloud 2.0: Code is no longer King — Serverless has dethroned it” https://medium.com/@PaulDJohnston/cloud-2-0-code-is-no-longer-king-serverless-has-dethroned-it-c6dc955db9d5
  • 24.
    • Write fewerLambda functions • use more direct service integrations in case the Lambda only calls the Service itself How to write less code with AWS Serverless services 1/2
  • 25.
    Less Lambda functionsmeans less: • code to write, test, run and maintain • CI/CD (deploy, rollback strategies) to maintain • Infrastructure as a Code (IAM policies, permission) to write and test • cold-start worries • point of failures and retries • security concerns • worries about Lambda limits (e.g. concurrency settings per AWS account) • spending on Lambda, CloudWatch and 3rd party SaaS on (AWS) (monthly) bill Sheen Brisals “Don’t wait for Functionless. Write less Functions instead” https://medium.com/lego-engineering/dont-wait-for-functionless-write-less-functions-instead-8f2c331cd651
  • 26.
    • Write fewerLambda functions • use more direct service integrations in case the Lambda only calls the Service itself • Write less Infrastructure as a Code by using AWS Services/Frameworks which provide meaningful abstractions, including managed I/CD • AWS Amplify and Serverless Cloud How to write less code with AWS Serverless services 2/2
  • 27.
    Examples how towrite less code with AWS Serverless services • API Gateway Service Integration • HTTP APIs Storage-First Service Integration • Step Functions Service Integration • Step Functions Workflow Studio • EventBridge with Service Integrations and API Destinations • Event Bridge Filtering and Routing • Filtering for Lambda Functions • NoSQL Workbench for DynamoDB • SNS message filtering and native integration between SNS and Kinesis Data Firehose • Amplify Framework • Serverless Cloud Preview
  • 28.
    Sheen Brisals “Don’twait for Functionless. Write less Functions instead” https://medium.com/lego-engineering/dont-wait-for-functionless-write-less-functions-instead-8f2c331cd651 API Gateway Service Integration
  • 29.
    API Gateway ServiceIntegration with Dynamo DB : Example ID generator 1/2 Sheen Brisals “Sequence Numbering in Serverless via API Gateway” https://medium.com/lego-engineering/sequence-numbering-in-serverless-via-api-gateway-40e5f6c83e93 Zac Charles “Quickly Build and Debug AppSync & API Gateway Mapping Templates” https://mappingtool.dev/
  • 30.
    API Gateway ServiceIntegration with Dynamo DB : Example ID generator 2/2 Sheen Brisals “Sequence Numbering in Serverless via API Gateway” https://medium.com/lego-engineering/sequence-numbering-in-serverless-via-api-gateway-40e5f6c83e93 Zac Charles “Quickly Build and Debug AppSync & API Gateway Mapping Templates” https://mappingtool.dev/
  • 31.
  • 32.
    Using Service Integrationswith EventBridge “Amazon EventBridge” https://aws.amazon.com/eventbridge/
  • 33.
    Using Service Integrationswith EventBridge /Put Targerts “Amazon EventBridge Put Targets” https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html
  • 34.
    Using API Destinationswith EventBridge “Amazon EventBridge” https://aws.amazon.com/eventbridge/
  • 35.
    Using API Destinationswith EventBridge “Using API destinations with Amazon EventBridge” https://aws.amazon.com/de/blogs/compute/using-api-destinations-with-amazon-eventbridge/
  • 36.
    EventBridge Filtering andRouting “Reducing custom code by using advanced rules in Amazon EventBridge” https://aws.amazon.com/de/blogs/compute/reducing-custom-code-by-using-advanced-rules-in-amazon-eventbridge/
  • 37.
    S3 Event Notificationswith EventBridge https://aws.amazon.com/blogs/aws/new-use-amazon-s3-event-notifications-with-amazon-eventbridge/
  • 38.
  • 39.
    Native integration betweenSNS and Kinesis Data Firehose https://aws.amazon.com/de/blogs/compute/introducing-message-archiving-and-analytics-for-amazon-sns/
  • 40.
    Step Functions ServiceIntegration “Service Integrations with AWS Step Functions” https://docs.aws.amazon.com/step-functions/latest/dg/concepts-service-integrations.html
  • 41.
    AWS Step FunctionsSupports 200 AWS Services https://aws.amazon.com/de/blogs/aws/now-aws-step-functions-supports-200-aws-services-to-enable-easier-workflow-automation/ arn:aws:states::: aws-sdk:serviceName:apiAction. <serviceIntegrationPattern>
  • 42.
    Step Functions WorkflowStudio – A Low-Code Visual Tool for Building State Machines “AWS Step Functions Workflow Studio” https://aws.amazon.com/de/blogs/aws/new-aws-step-functions-workflow-studio-a-low-code-visual-tool-for-building-state-machines/
  • 43.
    Filtering event sourcesfor Lambda functions https://aws.amazon.com/blogs/compute/filtering-event-sources-for-aws-lambda-functions/ https://dev.to/aws-builders/trigger-lambda-functions-with-event-filtering-2pnb Filtering is supported for the following event sources: • Kinesis Data Streams • DynamoDB Streams • Amazon SQS
  • 44.
    NoSQL Workbench forDynamoDB https://aws.amazon.com/dynamodb/nosql-workbench/ Data Modeling Data Visualization Operation Building
  • 45.
    Export DynamoDB TableData to S3 https://aws.amazon.com/de/blogs/aws/new-export-amazon-dynamodb-table-data-to-data-lake-amazon-s3/
  • 46.
    Amplify “Amazon Amplify” https://aws.amazon.com/amplify Amplifysupports : • web frameworks including JavaScript, React, Angular, Vue, Next.js • mobile platforms including Android, iOS, React Native, Ionic, Flutter
  • 47.
    Amplify and AdminGUI https://docs.amplify.aws/console/adminui/intro#access-outside-the-aws-management-console/
  • 48.
    AWS Amplify managedCI/CD https://towardsaws.com/step-by-step-guide-to-deploy-your-web-application-with-auto-ci-cd-pipeline-using-aws-amplify-a87712756c2
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
    Common patterns • Directservice integrations to reduce the amount of code written • API Gateway, HTTP API, Step Functions, EventBridge, SNS, Amplify • Visual Studio/Tools to reduce the cognitive load • Step Functions, Amplify, DynamoDB • Automated CI/CD to focus on the business logic • Amplify, SAM • First steps in interpreting Infrastructure from Code • Serverless Cloud
  • 54.
  • 55.
    Using Serverless ecosystemwill with the right engineering practices in place will significantly reduce • extraneous and germane cognitive load • the amount of code written • the amount of dependencies (no execution runtime and web application server to take care of)
  • 56.
    Reducing dependencies doesn’tmean that you own nothing (you still own things, but in general less) • Lambda language runtime version will be retired from time to time • Node.js <10.x, Java 8 runtime migration to Amazon Corretto • Aurora with PostgreSQL/MySQL compatibilities will force you to upgrade database version behind • Retiring PostgreSQL version 9.6 plan and execute upgrades continuously and iteratively Word of caution about the Serverless ecosystem
  • 57.
    How to besuccessful with Serverless
  • 58.
    How to measuresuccess Let’s focus on software delivery and operational performance (how to do the things right) • Provide the managers and executives metrics, that we’re on the right path • See from the developer’s perspective how to achieve it and improve It’s also important to the right thing!
  • 59.
    How to measuresuccess See DORA State of DevOps 2018-2019 Reports
  • 60.
    Software Delivery and OperationalPerformance See DORA State of DevOps 2018-2019 Reports
  • 61.
    Wardley Maps Simon Wardleyhttps://www.slideshare.net/swardley/why-the-fuss-about-serverless-88107645 Co-evolution of practices to become productive with Serverless
  • 62.
    Co-evolution of practiceswith Serverless 1/2 • True DevOps • Complete infrastructure automation • Chaos Engineering • FinDev responsibilities in the teams Sheen Brisals “Why the ‘WHY’ matters more than the ‘WHAT’ in Serverless!” https://medium.com/lego-engineering/why-the-why-matters-more-than-the-what-in-serverless-2ef56c397962 DevOps Topologies: https://web.devopstopologies.com/
  • 63.
    • Each teamor even developer can have its own (AWS test) account per feature or service • Only minimal local testing (quick functional tests) • Adopt “testing in production” Michael Bryzek “What do you know about testing in production?” https://www.youtube.com/watch?v=z-ATZTUgaAo Co-evolution of practices with Serverless 2/2
  • 65.