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

Modern Art of Serverless Architecture, ServerlessDays Istanbul 2019

Modern Art of Serverless Architecture, ServerlessDays Istanbul 2019


Slobodan Stojanović

October 03, 2019

More Decks by Slobodan Stojanović

Other Decks in Programming


  1. None
  2. @slobodan_ Impressionism today is the subject of widespread acclaim, encompassing

    such famous artists as Monet, Degas and Renoir. But in today’s climate of admiration, it’s easy to forget that this was once a widely derided form of art.
  3. @slobodan_ Critics called the impressionists untalented lunatics!

  4. @slobodan_ Édouard Manet (1832-1883) was a Paris-born French painter known

    for his modernist approach to painting.
  5. @slobodan_ His work was rejected by the art establishment and

    refused a place in the ‘salon’, or exhibition, of the Royal Academy of Painting and Sculpture.
  6. @slobodan_ Instead he was allowed a place in the 1868

    Salon des Refusés – or ‘salon of the rejected’ – where his painting Luncheon on the Grass was widely criticised.
  7. Luncheon on the Grass,
 Édouard Manet

  8. Modern Art The Starry Night,
 Vincent van Gogh

  9. Modern Art of Serverless Architecture The Starry Night,
 Vincent van

  10. @slobodan_ But, before we continue let me introduce your exhibition

  11. Slobodan Stojanović CTO @ Cloud Horizon & CTO @ Vacation

    Tracker co-author of Serverless Applications with Node.js book AWS Serverless Hero @slobodan_
  12. @slobodan_ What is Modern Art?

  13. @slobodan_

  14. @slobodan_ There is no precise definition of the term "Modern

    Art": it remains an elastic term, which can accommodate a variety of meanings.
  15. @slobodan_ it is traditional to say that "Modern Art" means

    works produced during the approximate period 1870-1970.
  16. @slobodan_ What is Serverless?

  17. @slobodan_ There is no precise definition of the term "Serverless":

    it remains an elastic term, which can accommodate a variety of meanings.
  18. @slobodan_ it is traditional to say that "Serverless" is a

    cloud-computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources.
  19. @slobodan_ Pricing is based on the actual amount of resources

    consumed by an application, rather than on pre-purchased units of capacity.
  20. @slobodan_

  21. @slobodan_ What makes Modern Art different?

  22. @slobodan_ • New Types of Art • Use of New

    Materials • Expressive Use of Color • New Techniques
  23. @slobodan_ What makes Serverless different?

  24. @slobodan_ • New Types of Architecture • Use of New

    Tools • Expressive Use of Events • New Techniques
  25. @slobodan_

  26. @slobodan_ When does "Modern Art" begin?

  27. @slobodan_ The 19th century was a time of significant and

    rapidly increasing change.
  28. @slobodan_ As a result of the Industrial Revolution (c.1760-1860) enormous

    changes in manufacturing, transport, and technology began to affect how people lived, worked, and travelled, throughout Europe and America.
  29. @slobodan_ Sounds familiar?

  30. @slobodan_ https://wardleymaps.com/

  31. @slobodan_

  32. @slobodan_ Modern Art genres

  33. @slobodan_ Modern Art of Serverless Architecture genres

  34. @slobodan_ Note: Following examples are not chronological, and sometimes not

    100% accurate. They are made for fun!
  35. IMPRESSIONISM Impression, Sunrise,
 Claude Monet

  36. @slobodan_ "Widely considered the catalyst for modern art, Impressionism challenged

    the rigid rules and realistic depictions of academic painting."
  37. @slobodan_ 2014 AWS Lambda

  38. @slobodan_

  39. @slobodan_ 2015 AWS Lambda + API Gateway

  40. @slobodan_ First frameworks: • Serverless Framework • Claudia.js • Apex

    • And many others
  41. @slobodan_ Critics called serverless …

  42. @slobodan_ "Serverless is cgi-bin" https://github.com/ghuntley/serverless-to-cgi-bin

  43. @slobodan_ "Lambda and serverless is one of the worst forms

    of proprietary lock-in we've ever seen in the history of humanity" https://www.theregister.co.uk/2017/11/06/coreos_kubernetes_v_world/
  44. @slobodan_ "Serverless is awesome (if you overlook inflated costs, dislike

    distributed computing, love vendor lock-in), say boffins" https://www.theregister.co.uk/2018/12/19/serverless_computing_study/
  45. @slobodan_ "There’s A Server In Every Serverless Platform" https://www.linux.com/tutorials/theres-server-every-serverless-platform/

  46. @slobodan_ vendor lock-in cold start servers fraud inflated costs expensive

    cgi-bin slow opaque not new not really “massive scale” hype
  47. @slobodan_ Fortunately, a few "untalented lunatics" started building awesome things,

    then many more joined
  48. @slobodan_ https://cloudonaut.io/serverless-image-resizing-at-any-scale/ Resize images

  49. https://medium.com/statuscode/serverless-ice-cream-or-create-your-serverless-node-js-micro-service-with-a-database-17a6946251e0 Simple API

  50. @slobodan_ https://www.fr!codecamp.org/news/express-js-and-aws-lambda-a-serverless-love-story-7c77ba0eaa35/ Serverless Express.js

  51. @slobodan_ https://github.com/apex/up Serverless proxy for any app with Apex Up

  52. @slobodan_ https://www.thorntech.com/2017/03/serverless-slack-chatbot/ Serverless chatbots

  53. @slobodan_ And many more…

  54. POST-IMPRESSIONISM A Sunday Afternoon on the Island of La Grande

 Georges Seurat
  55. @slobodan_ "Inspired by the artistic freedom introduced by the Impressionists,

    artists like Paul Cézanne, Paul Gauguin, and Vincent van Gogh began working in distinctive, unconventional styles."
  56. @slobodan_ One of the main characteristics: Distinctive Brushstrokes

  57. @slobodan_ https://manning.com/books/serverless-applications-with-node-js Smaller services and lambda functions

  58. @slobodan_ https://twitter.com/theburningmonk/status/806425780112728064 More complex serverless applications

  59. @slobodan_ https://twitter.com/theburningmonk/status/826726037543383040 More complex serverless applications

  60. https://thundra.io Tools for visualizing and monitoring app infrastructure

  61. https://speakerdeck.com/slobodan/serverless-a-backend-thing-that-gives-superpowers-to-fronend-developers-css-minsk-js?slide=83 Pointillism a.k.a. single purpose functions

  62. @slobodan_ https://winterwindsoftware.com/serverless-migration-journal-part2/ Legacy to serverless


  64. @slobodan_ "Shortly before World War I, painters in Germany and

    Austria began to take an experimental approach to their practice. Eventually known as Expressionists, these artists adopted and adapted the unprecedented characteristics of other modern movements."
  65. @slobodan_ https://serverless.com/blog/running-scalable-reliable-graphql-endpoint-with-serverless/ Serverless GraphQL

  66. @slobodan_ https://www.slideshare.net/SimonaCotin/build-scalable-apis-using-graphql-and-serverless-172329195 Serverless GraphQL

  67. @slobodan_ https://thenewstack.io/bustle-migrated-100-mi"ion-events-per-day-product-serverless/ Some people scaled Serverless GraphQL to the next

  68. @slobodan_ https://thenewstack.io/bustle-migrated-100-mi"ion-events-per-day-product-serverless/ Bustle uses Serverless GraphQL to manage 52 million

    monthly visitors
  69. @slobodan_

  70. @slobodan_ Is serverless GraphQL an anti-pattern?

  71. @slobodan_ Well, maybe it could be considered as an anti-pattern

    at the beginning. But then AWS introduced AWS AppSync.
  72. @slobodan_ https://aws.amazon.com/appsync/ AppSync - AWS Serverless GraphQL as a Service

  73. @slobodan_ https://www.infoq.com/articles/serverless-sea-change/ Joe Emisson: "Serviceful Serverless"

  74. @slobodan_ "Oh, and I only hire front-end developers at this

    point. I have been the sole DevOps/backend/middle-tier developer in the last two companies I started, and it’s been fine." Joe Emison @JoeEmison
  75. @slobodan_ "With AppSync I could continue to be the CTO,

    do all the backend and middle-tier code, and support up to probably about a hundred front-end developers before I would need a dedicated backend developer." Joe Emison @JoeEmison
  76. @slobodan_

  77. @slobodan_ But that wasn't all…

  78. @slobodan_ https://aws.amazon.com/amplify/ AWS Amplify

  79. @slobodan_ https://www.slideshare.net/AmazonWebServices/build-your-apps-in-lean-and-agile-way-using-aws-amplify AWS Amplify

  80. CUBISM

  81. @slobodan_ "Characterized by deconstructed, fractured forms, Cubism marked modern art’s

    shift toward abstraction."
  82. @slobodan_

  83. @slobodan_

  84. @slobodan_

  85. @slobodan_

  86. @slobodan_ "When we discovered Cubism, we did not have the

    aim of discovering Cubism. We only wanted to express what was in us." Pablo Picasso
  87. @slobodan_ https://medium.com/@ThisisZone/azure-durable-functions-before-and-after-b7266d51ed4d Serverless orchestration - Azure Durable Functions

  88. @slobodan_ https://aws.amazon.com/step-functions/ Serverless orchestration - AWS Step Functions

  89. @slobodan_ https://aws.amazon.com/step-functions/ Serverless orchestration - AWS Step Functions

  90. @slobodan_ "Let's combine AppSync and Step Functions"

  91. @slobodan_ https://pages.awscloud.com/GLOBAL-devstrategy-OE-BuildOnServerless-2019-reg-event.html Build on Serverless - Architect an Airline Booking

    Application, End-to-End
  92. @slobodan_ "Let's combine AppSync and Step Functions" Heitor Lessa

  93. @slobodan_ "New" architectures

  94. @slobodan_ https://claudiajs.com/tutorials/designing-testable-lambdas.html Hexagonal architecture: Designing Testable Lambda Functions

  95. @slobodan_ https://vacationtracker.io/blog/big-bad-serverless-vendor-lock-in/ Hexagonal architecture / ports and adapters

  96. @slobodan_ https://vacationtracker.io/blog/big-bad-serverless-vendor-lock-in/ Hexagonal architecture: testing

  97. @slobodan_ https://read.acloud.guru/serverless-event-sourcing-at-nordstrom-ea69bd8fb7cc Serverless Event Sourcing

  98. @slobodan_ https://theburningmonk.com/2019/08/a-simple-event-sourcing-example-with-snapshots-using-lambda-and-dynamodb/ Serverless Event Sourcing with snapshots

  99. @slobodan_ https://medium.com/@richard.j.gobbett/serverless-cqrs-in-azure-p1-e0f2c423f071 CQRS

  100. @slobodan_ https://medium.com/@richard.j.gobbett/serverless-cqrs-in-azure-p1-e0f2c423f071 CQRS

  101. @slobodan_ Event driven apps are natural fit for serverless

  102. @slobodan_ https://aws.amazon.com/eventbridge/ Amazon Event Bridge

  103. @slobodan_ Is it too late for new architectures and patterns?

  104. @slobodan_ https://twitter.com/tima"enwagner/status/1179100685977022465 Serverless Mullet Architectures from 2 days ago


  106. @slobodan_ "In the 1920s, visual artists Salvador Dalí, Max Ernst,

    Man Ray, Joan Miró, and Yves Tanguy came together to found Surrealism, a movement rooted in the subconscious."
  107. @slobodan_ "Lacking any control exercised by reason, exempt from any

    aesthetic or moral concern, the genre culminated in a diverse collection of dream-like depictions straight from the artists’ imaginations."
  108. @slobodan_ https://github.com/prisma-archive/chromeless Chromium in AWS Lambda

  109. @slobodan_ Wait, browser in a serverless function?

  110. @slobodan_ https://dzone.com/articles/never-too-late-for-some-opencv-and-clojure-on-aws Cat or Dog? Deep Neural Networks With OpenCV

    and Clojure on AWS Lambda
  111. @slobodan_ https://hackernoon.com/how-did-i-hack-aws-lambda-to-run-docker-containers-7184dc47c09b Docker in AWS Lambda

  112. @slobodan_ https://www.bluage.com/news/f0015an-serverless-cobol Serverless Cobol

  113. @slobodan_ https://twitter.com/shortjared/status/1069662839063891968 Brainfuck and LOLCODE custom runtimes for AWS Lambda

  114. @slobodan_

  115. @slobodan_ https://twitter.com/hichaelmart/status/1177955924402724866 What are the limits?


  117. @slobodan_ "In the middle of the 20th century, an innovative

    group of artists forewent figurative styles of painting for an original, abstract aesthetic. Known as Abstract Expressionists, these painters placed artistic emphasis not only on modernist characteristics like color, composition, and emotion, but on the creative process itself."
  118. @slobodan_ Remember browser in a serverless function?

  119. @slobodan_ https://www.fr!codecamp.org/news/wi"-it-blend-or-how-to-run-google-chrome-in-aws-lambda-2c960f!8b74/ Serverless screenshots

  120. @slobodan_ Meet Lambda Layers!

  121. @slobodan_ https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html AWS Lambda Layers

  122. @slobodan_ https://hackernoon.com/running-selenium-and-headless-chrome-on-aws-lambda-layers-python-3-6-bd810503c6c3 Selenium and Headless Chrome on AWS Lambda

  123. @slobodan_ https://serverless.pub/lambda-utility-layers/ FFmpeg, ImageMagick, Pandoc and RSVG for AWS Lambda

  124. @slobodan_ Now that we have browser in a serverless function,

    can we do server side rendering?
  125. @slobodan_ https://aws.amazon.com/lambda/edge/ Or something even crazier: Lambda@edge

  126. @slobodan_ But JavaScript is not cool enough anymore…

  127. @slobodan_ https://blog.cloudflare.com/webassembly-on-cloudflare-workers/ WebAssembly on Cloudflare Workers

  128. @slobodan_

  129. @slobodan_ What's next? Serverless apps that can build themselves?

  130. @slobodan_ Well.. You asked for it…

  131. @slobodan_ Well.. You asked for it… Alexa, ask the computer

    to create a serverless app.
  132. @slobodan_ https://thecomputer.ai Meet The Computer: Serverless app that builds serverless

  133. @slobodan_

  134. @slobodan_ POSTMODERNISM

  135. POP ART

  136. @slobodan_ https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html Gradual Code Deployment

  137. @slobodan_ https://medium.com/buildit/a-b-testing-on-aws-cloudfront-with-lambda-edge-a22dd82e9d12 Serverless A/B testing

  138. https://aws.amazon.com/blogs/aws/building-serverless-apps-with-components-from-the-aws-serverless-application-repository/ Don't repeat yourself: Serverless Application Repository

  139. @slobodan_

  140. @slobodan_ What's next?

  141. @slobodan_ It's your turn!

  142. @slobodan_ Quick summary?

  143. @slobodan_ Quick summary?

  144. @slobodan_ Serverless today is not the same as it was

    yesterday. Serverless tomorrow will be even more different.
  145. @slobodan_ All the crazy serverless things we do today can

    become normal or even patterns tomorrow!
  146. @slobodan_ It's up to us to decide how serverless will

    evolve. Go, experiment, and do some crazy things with serverless.
  147. @slobodan_ It's up to us to decide how serverless will

    evolve. Go, experiment, and do some crazy things with serverless. Build some amazing products and have fun!
  148. One more thing!

  149. @slobodan_ Serverless Applications with Node.js Use claudia40 promo code for

    40% off serverless.pub/book @slobodan_