Convince your boss to go
Serverless
by Vadym Kazulkin, ip.labs AWS User Group Tirupathi & Serverless Bangalore Meetup, 27 February 2021
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
@ServerlessBonn (Meetup)
https://www.linkedin.com/in/vadymkazulkin/
https://www.iplabs.de/
ip.labs GmbH
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
https://teamtopologies.com/
Cognitive Load
• Intrinsic
• How to write a Java class or use a framework
(Spring)
• Extraneous
• Germane
Cognitive Load
• 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 domains what we have to
implement by ourselves
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) and update requires some code changes
• Security considerations forces us to upgrade one of our
dependencies (library or web application server version)
• One of our dependencies (i.e. to open source project) is
discontinued
Technical Debt
Think of what can happen to your software over
the entire life cycle of your 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
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
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
Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
No Infrastructure Maintenance
Is infrastructure maintenance and
operation your core competency ?
TCO Full Picture
No Infrastructure
Operation and
Maintenance
Auto Scaling and
Fault Tolerance
Built in
Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
Auto Scaling And Fault Tolerance
Built In
• Can you get capacity planning
and auto scaling right?
• Do you want to solve the hard problem
of fault tolerance by yourself?
TCO Full Picture
No Infrastructure
Operation and
Maintenance
Auto Scaling and
Fault Tolerance
Built in
Own less,
build more
Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
Own less, build more
By heavily relying on the managed
Serverless services you
• Need fewer engineers to start
implementing your new product idea
• Can do more with the same amount of
people
TCO Full Picture
No Infrastructure
Operation and
Maintenance
Auto Scaling and
Fault Tolerance
Built in
Own less,
build more
Lower technical
debt
Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
Lower technical debt
• Whatever code you write today is always tomorrow’s technical
debt © Paul Johnston
• Less code means lower technical debt
• 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
TCO Full Picture
No Infrastructure
Operation and
Maintenance
Auto Scaling and
Fault Tolerance
Built in
Own less,
build more
Lower technical
debt
Focus on Business
Value and Innovation
Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
Focus On Business Value and
Innovation
Every organization wants exactly this!
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
Faster Time To Market
• Time To Market is the key differentiator in
today’s business!
• Ask yourself: what is core for your business
and what you can get as Commodity +(Utility)
as a Service?
Serverless Mindset at ip.labs
“Accelerate Innovation and Maximize Business Value with Serverless Applications”
https://www.slideshare.net/AmazonWebServices/accelerate-innovation-and-maximize-business-value-with-serverless-applications-srv212r1-aws-reinvent-2018
How to measure success
Let’s focus on software delivery and operational performance
(how to do the things right)
• Provide the boss 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
Example: strategies to reduce
time to restore service
See DORA State of DevOps 2018-2019 Reports
Blue-Green
deployment
“Win-Win Deployment Strategies for Modern Apps” https://rollbar.com/blog/deployment-strategies/
Canary
deployment
AWS Lambda Deployment
Best Practices:
• API Gateway Stage variables and Lambda
Aliases
• Lambda Alias Traffic Shifting
Chris Munns: “Testing and Deployment Best Practices for AWS Lambda-Based Applications”
https://www.youtube.com/watch?v=zJQDAsWm-5k&list=LLYgjRSI2oCzI9eooyFrWR7A&index=1
AWS Lambda Deployment
Best Practices
• AWS Lambda Alias Canary and Linear Traffic
Shifting & AWS SAM Safe Deployments
• CloudWatch Rollback Alarms & Lambda hooks
Chris Munns: “Testing and Deployment Best Practices for AWS Lambda-Based Applications”
https://www.youtube.com/watch?v=zJQDAsWm-5k&list=LLYgjRSI2oCzI9eooyFrWR7A&index=1
Time Spent
See DORA State of DevOps 2018-2019 Reports
Measure if Serverless increasses the time spent on
New Work (producing business value and innovation)
Using Serverless ecosystem will
with the right engineering practices in place will
significantly reduce
• extraneous and germane cognitive load
• the amount “staff” owned
• the amount of code written
How to write less code with
AWS Serverless services 1/2
• Write fewer Lambda functions
• use direct AWS service integrations in case the Lambda only
calls the AWS service itself
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
How to write less code with
AWS Serverless services 2/2
• Write fewer Lambda functions
• use more direct service integrations in case the Lambda only calls the
Service itself
• Write less Infrastructure as a Code
• applies not only for Lambda but also to other services like AWS Amplify
• Use (AWS) Services/Frameworks which provide meaningful abstractions
• Amplify Framework or Serverless Framework Components
Concrete examples how to write less code with
AWS Serverless services
• API Gateway Service Integration
• HTTP APIs Storage-First Service
Integration
• Step Functions Service Integration
• Event Bridge Filtering and Routing
• Lambda Destinations
• Export DynamoDB Table Data to S3
• Native integration between SNS
and Kinesis Data Firehose
• Amplify Framework
• Serverless Framework
Components
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
https://github.com/ToQoz/api-gateway-mapping-template
API Gateway Service Integration with
Dynamo DB : Example ID generator
Sheen Brisals “Sequence Numbering in Serverless via API Gateway”
https://medium.com/lego-engineering/sequence-numbering-in-serverless-via-api-gateway-40e5f6c83e93
https://github.com/ToQoz/api-gateway-mapping-template
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
Step Functions Service Integration
“Service Integrations with AWS Step Functions” https://docs.aws.amazon.com/step-functions/latest/dg/concepts-service-integrations.html
Event Bridge 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/
Lambda Destinations
“Introducing AWS Lambda Destinations” https://aws.amazon.com/de/blogs/compute/introducing-aws-lambda-destinations/
https://www.trek10.com/blog/lambda-destinations-what-we-learned-the-hard-way
Export DynamoDB Table Data to S3
https://aws.amazon.com/de/blogs/aws/new-export-amazon-dynamodb-table-data-to-data-lake-amazon-s3/
Native integration between SNS
and Kinesis Data Firehose
https://aws.amazon.com/de/blogs/compute/introducing-message-archiving-and-analytics-for-amazon-sns/ /
Amplify Framework
AppSync and Direct Lambda
Resolvers
https://aws.amazon.com/de/appsync
“Introducing Direct Lambda Resolvers: AWS AppSync GraphQL APIs without VTL” https://aws.amazon.com/de/blogs/mobile/appsync-direct-lambda/
AWS Amplify and Admin GUI
https://docs.amplify.aws/console/adminui/intro#access-outside-the-aws-management-console/
Serverless Framework Components
https://www.serverless.com/blog/what-are-serverless-components-how-use
Serverless with the focus on you
core domains will enable
• iterative development mind set
• experimentation culture
• focus on business value, innovation (New
Work), and faster time to market
• evolutionary architectures
Your boss will ask you after all that
Is Serverless a silver bullet ?
Image: https://stock.adobe.com
1. Application lifecycle
2. Workloads
3. Programming Model
4. Platform limitations
5. Cost at scale
6. Organizational environment
7. Platform and tooling maturity
Decision Checklist: understand your…
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
1. Application lifecycle
2. Workloads
3. Programming Model
4. Platform limitations
5. Cost at scale
6. Organizational environment
7. Platform and tooling maturity
Decision Checklist: understand your…
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Understand
Application
lifecycle
Christian Posta „Be as serverless as you can, but not more than that” https://blog.christianposta.com/serverless/its-not-about-microservices-vs-serverless/
Explore phase
• Quickly validate
hypotheses
• Rapidly experiment
• Run experiments as
cheaply as possible
Serverless is a perfect fit
Image: burst.shopify.com/photos/a-look-across-the-landscape-with-view-of-the-sea Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Exploit phase
• Built something that does
provide customer value
• Build it on scale
• Build a profitable product
around it
partly serverless and partly not
serverless architecture
Image: Robert Scoble via Flickr Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Application lifecycle
• How much of my stack should I own
to be able to deliver business value?
• What should I outsource to my
service provider : SLA, regulatory
compliance, price, and roadmap?
Vadym Kazulkin @VKazulkin , ip.labs GmbH
Existing
applications
• You can’t magically move
them to the cloud providers
(especially make your
application Serverless)
• You can try to modernize
parts of them
Vadym Kazulkin @VKazulkin , ip.labs GmbH
Strangler
Pattern
• Add a proxy (API
Gateway or Application
Loadbalancer), which
sits between the legacy
application and the user
• Add new services and
link it to the proxy
Marin Fowler „StrangerFigApplication” https://martinfowler.com/bliki/StranglerFigApplication.html Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
FinDev Concept
Activity-based costing on a
digital operation-by-operation
basis
• Figure out features which deliver
business value comparing to their
cost
Aleksander Simovic & Mark Schwarz „FinDev and Serverless Microeconomics: Part 1”
https://aws.amazon.com/de/blogs/enterprise-strategy/findev-and-serverless-microeconomics-part-1/
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
1. Application lifecycle
2. Workloads
3. Programming Model
4. Platform limitations
5. Cost at scale
6. Organizational environment
7. Platform and tooling maturity
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
The reality is…
Lambda is often just a
small percentage
of your total cost.
Even more with recently
introduced 1ms billing
granularity
Vadym Kazulkin, @VKazulkin
Understand your cost at scale
• Lambda
• API Gateway
• Dynamo DB capacity choices
• Event Sources (SQS, SNS,
EventBridge, Kinesis)
• Step Functions
Vadym Kazulkin @VKazulkin , ip.labs GmbH
Understand your cost at scale
• Logging costs (AWS CloudWatch Logs)
• Monitoring costs (AWS CloudWatch)
• Tracing (AWS X-Ray)
• Remote API calls / 3rd party services
price models
Vadym Kazulkin @VKazulkin , ip.labs GmbH
1. Application lifecycle
2. Workloads
3. Programming Model
4. Platform limitations
5. Cost at scale
6. Organizational environment
7. Platform and tooling maturity
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Understand organizational
environment (structure,
reponsibilities, knowledge,
culture)
• Do you already embrace
DevOps best practices?
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Charity Majors: „The Future of Ops careers“
• Advocates for the internal observability team (even if you pay for
SaaS observability solution and you use Serverless-first approach)
• team should write libraries, generate examples, and drive
standardization; ushering in consistency, predictability, and usability
• team should partner with internal teams to evaluate use cases. They
might also write glue code and helper modules to connect different
data sources and create cohesive visualizations
• team becomes an integration point between your organization and the
outsourced work
Charity Majors „The Future of Ops Careers”
https://thenewstack.io/the-future-of-ops-careers
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Tom McLaughlin Talk:
What do we do when
the server goes away?
• Observability (Logging,
Monitoring, Tracing, & Alerting
• Chaos Engineering & Game Days
• Help understand constraints
of AWS services & choose the right
one
Tom McLaughlin „What do we do when the server goes away”
https://speakerdeck.com/tmclaugh/serverless-devops-what-do-we-do-when-the-server-goes-away
Charity Majors „The Future of Ops Careers” https://thenewstack.io/the-future-of-ops-careers Vadym Kazulkin @VKazulkin , ip.labs GmbH
Help understand constraints of AWS services &
choose the right one. Example Event Sources:
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
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/
Co-evolution of practices with
Serverless 2/2
• 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
Invest in Software Delivery and
Operational Performance Excellence
See DORA State of DevOps 2018-2019 Reports
1. Application lifecycle
2. Workloads
3. Programming Model
4. Platform limitations
5. Cost at scale
6. Organizational environment
7. Platform and tooling maturity
Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
Serverless platform and tooling maturity
• Infrastructure-as-a-Code
solutions maturity
• with AWS Cloud Formation, AWS CDK
• Development environment &
framework maturity
• with AWS SAM, AWS Amplify and
Serverless Framework
Image: http://tea.solgenomics.net/anatomy_viewer/microscopy/slm82_fruit Vadym Kazulkin @VKazulkin , ip.labs GmbH
Serverless platform and tooling maturity
• CI/CD
• with AWS CodeCommit, CodeBuild,
CodePipeline and CodeDeploy
• Observability (Logging,
Monitoring, Tracing, Alerting)
• with AWS CloudWatch and X-Ray
• Integration with 3rd party SaaS
• with AWS Lambda Extensions (Epsagon,
HashiCorp, Lumigo, Thundra, Datadog)
• with AWS EvenBridge (PagerDuty,
Zendesk, Shopify, Datadog)
Image: http://tea.solgenomics.net/anatomy_viewer/microscopy/slm82_fruit
AWS Lambda Extensions https://aws.amazon.com/de/about-aws/whats-new/2020/10/aws-lambda-extensions-integrate-operational-tools/
Vadym Kazulkin @VKazulkin , ip.labs GmbH
Thank You!

Convince your boss to go Serverless at AWS User Group Tirupathi and Serverless Bangalore Meetup

  • 1.
    Convince your bossto go Serverless by Vadym Kazulkin, ip.labs AWS User Group Tirupathi & Serverless Bangalore Meetup, 27 February 2021
  • 2.
    Contact Vadym Kazulkin ip.labs GmbHBonn, Germany Co-Organizer of the Java User Group Bonn and Serverless Bonn Meetup v.kazulkin@gmail.com @VKazulkin @ServerlessBonn (Meetup) https://www.linkedin.com/in/vadymkazulkin/ https://www.iplabs.de/
  • 3.
  • 4.
    Let’s talk aboutthe challenges of the software development in general first
  • 5.
    Cognitive Load – thetotal amount of mental effort being used in the working memory • Intrinsic • Extraneous • Germane https://teamtopologies.com/
  • 6.
    Cognitive Load • Intrinsic •How to write a Java class or use a framework (Spring) • Extraneous • Germane
  • 7.
    Cognitive Load • 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
  • 8.
    Cognitive Load • Intrinsic •Extraneous • Germane • Domain Knowledge (payment, e-commerce) • Business processes and workflows
  • 9.
    Cognitive Load • Intrinsic-> become fluent in it • Extraneous -> minimize amount of what we implement/operate/support/own by ourselves • Germane -> minimize amount of domains what we have to implement by ourselves
  • 10.
    What our bosswants from us? … that we are productive
  • 11.
    Productivity We are productiveif we regularly ship products, which are successfully used by our customers
  • 12.
    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
  • 13.
    Technical Debt • Evena perfect solution can become the technical debt over the time • Version of programming language comes out of support (Java 8) and update requires some code changes • Security considerations forces us to upgrade one of our dependencies (library or web application server version) • One of our dependencies (i.e. to open source project) is discontinued
  • 14.
    Technical Debt Think ofwhat can happen to your software over the entire life cycle of your product
  • 15.
    Technical Debt • isrelated to amount of code written • is related to amount of dependencies used • open source projects, programming languages, databases, (web) application servers
  • 16.
    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
  • 17.
    Evolutionary Architecture – supportsguided, 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
  • 18.
    Evolutionary Architecture – Fitnessfunctions • 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
  • 19.
    The Value Propositionof Serverless But let’s talk about of Total Cost of Ownership of the Serverless paradigm
  • 20.
    TCO Full Picture NoInfrastructure Operation and Maintenance Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
  • 21.
    No Infrastructure Maintenance Isinfrastructure maintenance and operation your core competency ?
  • 22.
    TCO Full Picture NoInfrastructure Operation and Maintenance Auto Scaling and Fault Tolerance Built in Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
  • 23.
    Auto Scaling AndFault Tolerance Built In • Can you get capacity planning and auto scaling right? • Do you want to solve the hard problem of fault tolerance by yourself?
  • 24.
    TCO Full Picture NoInfrastructure Operation and Maintenance Auto Scaling and Fault Tolerance Built in Own less, build more Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
  • 25.
    Own less, buildmore By heavily relying on the managed Serverless services you • Need fewer engineers to start implementing your new product idea • Can do more with the same amount of people
  • 26.
    TCO Full Picture NoInfrastructure Operation and Maintenance Auto Scaling and Fault Tolerance Built in Own less, build more Lower technical debt Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
  • 27.
    Lower technical debt •Whatever code you write today is always tomorrow’s technical debt © Paul Johnston • Less code means lower technical debt • 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
  • 28.
    TCO Full Picture NoInfrastructure Operation and Maintenance Auto Scaling and Fault Tolerance Built in Own less, build more Lower technical debt Focus on Business Value and Innovation Forrest Brazeal „The Business Case For Serverless” https://www.trek10.com/blog/business-case-for-serverless
  • 29.
    Focus On BusinessValue and Innovation Every organization wants exactly this!
  • 30.
    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
  • 31.
    Faster Time ToMarket • Time To Market is the key differentiator in today’s business! • Ask yourself: what is core for your business and what you can get as Commodity +(Utility) as a Service?
  • 32.
    Serverless Mindset atip.labs “Accelerate Innovation and Maximize Business Value with Serverless Applications” https://www.slideshare.net/AmazonWebServices/accelerate-innovation-and-maximize-business-value-with-serverless-applications-srv212r1-aws-reinvent-2018
  • 33.
    How to measuresuccess Let’s focus on software delivery and operational performance (how to do the things right) • Provide the boss 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!
  • 34.
    How to measuresuccess See DORA State of DevOps 2018-2019 Reports
  • 35.
    Software Delivery and OperationalPerformance See DORA State of DevOps 2018-2019 Reports
  • 36.
    Example: strategies toreduce time to restore service See DORA State of DevOps 2018-2019 Reports
  • 37.
    Blue-Green deployment “Win-Win Deployment Strategiesfor Modern Apps” https://rollbar.com/blog/deployment-strategies/ Canary deployment
  • 38.
    AWS Lambda Deployment BestPractices: • API Gateway Stage variables and Lambda Aliases • Lambda Alias Traffic Shifting Chris Munns: “Testing and Deployment Best Practices for AWS Lambda-Based Applications” https://www.youtube.com/watch?v=zJQDAsWm-5k&list=LLYgjRSI2oCzI9eooyFrWR7A&index=1
  • 39.
    AWS Lambda Deployment BestPractices • AWS Lambda Alias Canary and Linear Traffic Shifting & AWS SAM Safe Deployments • CloudWatch Rollback Alarms & Lambda hooks Chris Munns: “Testing and Deployment Best Practices for AWS Lambda-Based Applications” https://www.youtube.com/watch?v=zJQDAsWm-5k&list=LLYgjRSI2oCzI9eooyFrWR7A&index=1
  • 40.
    Time Spent See DORAState of DevOps 2018-2019 Reports Measure if Serverless increasses the time spent on New Work (producing business value and innovation)
  • 41.
    Using Serverless ecosystemwill with the right engineering practices in place will significantly reduce • extraneous and germane cognitive load • the amount “staff” owned • the amount of code written
  • 42.
    How to writeless code with AWS Serverless services 1/2 • Write fewer Lambda functions • use direct AWS service integrations in case the Lambda only calls the AWS service itself
  • 43.
    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
  • 44.
    How to writeless code with AWS Serverless services 2/2 • Write fewer Lambda functions • use more direct service integrations in case the Lambda only calls the Service itself • Write less Infrastructure as a Code • applies not only for Lambda but also to other services like AWS Amplify • Use (AWS) Services/Frameworks which provide meaningful abstractions • Amplify Framework or Serverless Framework Components
  • 45.
    Concrete examples howto write less code with AWS Serverless services • API Gateway Service Integration • HTTP APIs Storage-First Service Integration • Step Functions Service Integration • Event Bridge Filtering and Routing • Lambda Destinations • Export DynamoDB Table Data to S3 • Native integration between SNS and Kinesis Data Firehose • Amplify Framework • Serverless Framework Components
  • 46.
    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
  • 47.
    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 https://github.com/ToQoz/api-gateway-mapping-template
  • 48.
    API Gateway ServiceIntegration with Dynamo DB : Example ID generator Sheen Brisals “Sequence Numbering in Serverless via API Gateway” https://medium.com/lego-engineering/sequence-numbering-in-serverless-via-api-gateway-40e5f6c83e93 https://github.com/ToQoz/api-gateway-mapping-template
  • 49.
    Eric Johnson “https://aws.amazon.com/de/blogs/compute/building-storage-first-applications-with-http-apis-service-integrations/” HTTPAPIs Storage-First Service Integration • Event Bridge • Kinesis Data Streams • SQS • AppConfig • Step Functions
  • 50.
    Step Functions ServiceIntegration “Service Integrations with AWS Step Functions” https://docs.aws.amazon.com/step-functions/latest/dg/concepts-service-integrations.html
  • 51.
    Event Bridge Filteringand 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/
  • 52.
    Lambda Destinations “Introducing AWSLambda Destinations” https://aws.amazon.com/de/blogs/compute/introducing-aws-lambda-destinations/ https://www.trek10.com/blog/lambda-destinations-what-we-learned-the-hard-way
  • 53.
    Export DynamoDB TableData to S3 https://aws.amazon.com/de/blogs/aws/new-export-amazon-dynamodb-table-data-to-data-lake-amazon-s3/
  • 54.
    Native integration betweenSNS and Kinesis Data Firehose https://aws.amazon.com/de/blogs/compute/introducing-message-archiving-and-analytics-for-amazon-sns/ /
  • 55.
    Amplify Framework AppSync andDirect Lambda Resolvers https://aws.amazon.com/de/appsync “Introducing Direct Lambda Resolvers: AWS AppSync GraphQL APIs without VTL” https://aws.amazon.com/de/blogs/mobile/appsync-direct-lambda/
  • 56.
    AWS Amplify andAdmin GUI https://docs.amplify.aws/console/adminui/intro#access-outside-the-aws-management-console/
  • 57.
  • 58.
    Serverless with thefocus on you core domains will enable • iterative development mind set • experimentation culture • focus on business value, innovation (New Work), and faster time to market • evolutionary architectures
  • 59.
    Your boss willask you after all that Is Serverless a silver bullet ?
  • 60.
  • 61.
    1. Application lifecycle 2.Workloads 3. Programming Model 4. Platform limitations 5. Cost at scale 6. Organizational environment 7. Platform and tooling maturity Decision Checklist: understand your… Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 62.
    1. Application lifecycle 2.Workloads 3. Programming Model 4. Platform limitations 5. Cost at scale 6. Organizational environment 7. Platform and tooling maturity Decision Checklist: understand your… Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 63.
    Understand Application lifecycle Christian Posta „Beas serverless as you can, but not more than that” https://blog.christianposta.com/serverless/its-not-about-microservices-vs-serverless/
  • 64.
    Explore phase • Quicklyvalidate hypotheses • Rapidly experiment • Run experiments as cheaply as possible Serverless is a perfect fit Image: burst.shopify.com/photos/a-look-across-the-landscape-with-view-of-the-sea Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 65.
    Exploit phase • Builtsomething that does provide customer value • Build it on scale • Build a profitable product around it partly serverless and partly not serverless architecture Image: Robert Scoble via Flickr Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 66.
    Application lifecycle • Howmuch of my stack should I own to be able to deliver business value? • What should I outsource to my service provider : SLA, regulatory compliance, price, and roadmap? Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 67.
    Existing applications • You can’tmagically move them to the cloud providers (especially make your application Serverless) • You can try to modernize parts of them Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 68.
    Strangler Pattern • Add aproxy (API Gateway or Application Loadbalancer), which sits between the legacy application and the user • Add new services and link it to the proxy Marin Fowler „StrangerFigApplication” https://martinfowler.com/bliki/StranglerFigApplication.html Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 69.
    FinDev Concept Activity-based costingon a digital operation-by-operation basis • Figure out features which deliver business value comparing to their cost Aleksander Simovic & Mark Schwarz „FinDev and Serverless Microeconomics: Part 1” https://aws.amazon.com/de/blogs/enterprise-strategy/findev-and-serverless-microeconomics-part-1/ Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 70.
    1. Application lifecycle 2.Workloads 3. Programming Model 4. Platform limitations 5. Cost at scale 6. Organizational environment 7. Platform and tooling maturity Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 71.
    The reality is… Lambdais often just a small percentage of your total cost. Even more with recently introduced 1ms billing granularity Vadym Kazulkin, @VKazulkin
  • 72.
    Understand your costat scale • Lambda • API Gateway • Dynamo DB capacity choices • Event Sources (SQS, SNS, EventBridge, Kinesis) • Step Functions Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 73.
    Understand your costat scale • Logging costs (AWS CloudWatch Logs) • Monitoring costs (AWS CloudWatch) • Tracing (AWS X-Ray) • Remote API calls / 3rd party services price models Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 74.
    1. Application lifecycle 2.Workloads 3. Programming Model 4. Platform limitations 5. Cost at scale 6. Organizational environment 7. Platform and tooling maturity Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 75.
    Understand organizational environment (structure, reponsibilities,knowledge, culture) • Do you already embrace DevOps best practices? Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 76.
    Charity Majors: „TheFuture of Ops careers“ • Advocates for the internal observability team (even if you pay for SaaS observability solution and you use Serverless-first approach) • team should write libraries, generate examples, and drive standardization; ushering in consistency, predictability, and usability • team should partner with internal teams to evaluate use cases. They might also write glue code and helper modules to connect different data sources and create cohesive visualizations • team becomes an integration point between your organization and the outsourced work Charity Majors „The Future of Ops Careers” https://thenewstack.io/the-future-of-ops-careers Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 77.
    Tom McLaughlin Talk: Whatdo we do when the server goes away? • Observability (Logging, Monitoring, Tracing, & Alerting • Chaos Engineering & Game Days • Help understand constraints of AWS services & choose the right one Tom McLaughlin „What do we do when the server goes away” https://speakerdeck.com/tmclaugh/serverless-devops-what-do-we-do-when-the-server-goes-away Charity Majors „The Future of Ops Careers” https://thenewstack.io/the-future-of-ops-careers Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 78.
    Help understand constraintsof AWS services & choose the right one. Example Event Sources: Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 79.
    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/
  • 80.
    Co-evolution of practiceswith Serverless 2/2 • 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
  • 81.
    Invest in SoftwareDelivery and Operational Performance Excellence See DORA State of DevOps 2018-2019 Reports
  • 82.
    1. Application lifecycle 2.Workloads 3. Programming Model 4. Platform limitations 5. Cost at scale 6. Organizational environment 7. Platform and tooling maturity Christian Bannes and Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 83.
    Serverless platform andtooling maturity • Infrastructure-as-a-Code solutions maturity • with AWS Cloud Formation, AWS CDK • Development environment & framework maturity • with AWS SAM, AWS Amplify and Serverless Framework Image: http://tea.solgenomics.net/anatomy_viewer/microscopy/slm82_fruit Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 84.
    Serverless platform andtooling maturity • CI/CD • with AWS CodeCommit, CodeBuild, CodePipeline and CodeDeploy • Observability (Logging, Monitoring, Tracing, Alerting) • with AWS CloudWatch and X-Ray • Integration with 3rd party SaaS • with AWS Lambda Extensions (Epsagon, HashiCorp, Lumigo, Thundra, Datadog) • with AWS EvenBridge (PagerDuty, Zendesk, Shopify, Datadog) Image: http://tea.solgenomics.net/anatomy_viewer/microscopy/slm82_fruit AWS Lambda Extensions https://aws.amazon.com/de/about-aws/whats-new/2020/10/aws-lambda-extensions-integrate-operational-tools/ Vadym Kazulkin @VKazulkin , ip.labs GmbH
  • 86.