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

Serverless and Software Craftsmanship

Serverless and Software Craftsmanship

From ServerlessConf New York 2017

Florian Motlik

October 11, 2017
Tweet

More Decks by Florian Motlik

Other Decks in Technology

Transcript

  1. SERVERLESS AND
    SOFTWARE CRAFTSMANSHIP

    View full-size slide

  2. WHO AM I
    Florian Motlik
    ‣Co-Founder and former CTO of Codeship
    ‣Former CTO of Serverless Inc
    AWS/Serverless/Development Process Consultant

    Need help in your infrastructure:
    [email protected]
    T W I T T E R : @ F L O M O T L I K
    W E B S I T E : T H E S E R V E R L E S S WAY. C O M
    E M A I L : F L O @ T H E S E R V E R L E S S WAY. C O M

    View full-size slide

  3. HOW TOOLING WILL MAKE OR
    BREAK SERVERLESS
    INFRASTRUCTURE

    View full-size slide

  4. LET’S FOCUS ON
    US TODAY

    View full-size slide

  5. On-Prem
    Virtual Cloud Servers
    Private Cloud
    Serverless
    Cloud-Native

    View full-size slide

  6. PAST
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER

    View full-size slide

  7. PAST
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    Application cluster
    Database cluster
    Data and ETL Pipeline

    View full-size slide

  8. SERVERLESS INFRASTRUCTURE
    Service A
    F1 F2 F3
    Service C
    F1 F2
    Service B
    F1
    Service E
    F1 F2 F3
    Service D
    F1 F2 F3 F4 F5
    S3
    Kinesis
    DynamoDB
    Api Gateway
    Server
    ECS Cluster
    C1 C2 C3

    View full-size slide

  9. WHY ARE WE
    DOING THIS?

    View full-size slide

  10. WELL, PRODUCTIVITY

    View full-size slide

  11. WHAT IS
    PRODUCTIVITY?

    View full-size slide

  12. EFFICIENTLY IMPLEMENTING THE
    MOST EFFECTIVE SOLUTION FOR
    OUR CUSTOMERS

    View full-size slide

  13. SHITTY QUALITY ISN’T
    EFFECTIVE OR EFFICIENT

    View full-size slide

  14. FIREFIGHTING IS NOT
    PRODUCTIVE WORK

    View full-size slide

  15. OK SO EFFECTIVENESS?

    View full-size slide

  16. HOW CAN WE BE EFFECTIVE
    ▸ Understanding our Customers
    ▸ Working with them to continuously understand their needs
    ▸ Having the time to do it!

    View full-size slide

  17. OK SO WHAT ABOUT
    EFFICIENCY?

    View full-size slide

  18. MAKE GOOD STUFF HAPPEN
    FAST OVER A LONG TIME

    View full-size slide

  19. SO HOW DOES SOFTWARE
    CRAFTSMANSHIP APPLY HERE?

    View full-size slide

  20. MANIFESTO FOR SOFTWARE CRAFTSMANSHIP
    ▸ Not only working software, but also well-crafted software
    ▸ Not only responding to change, but also steadily adding value
    ▸ Not only individuals and interactions, but also a community of professionals
    ▸ Not only customer collaboration, but also productive partnerships



    http://manifesto.softwarecraftsmanship.org/

    View full-size slide

  21. WE ARE TIRED OF
    WRITING CRAP!

    View full-size slide

  22. WHAT THAT MEANS FOR CODE
    ▸ Well written code
    ▸ Well tested code
    ▸ Well documented (where necessary) code
    ▸ Easy to change
    ▸ …

    View full-size slide

  23. INFRASTRUCTURE IS
    NOW PART OF OUR CODE

    View full-size slide

  24. OUR INFRASTRUCTURE IS AN EXTENSION OF OUR CODE
    Service A
    F1 F2 F3
    Service C
    F1 F2
    Service B
    F1
    Service E
    F1 F2 F3
    Service D
    F1 F2 F3 F4 F5
    S3
    Kinesis
    DynamoDB
    Api Gateway
    Server
    ECS Cluster
    C1 C2 C3

    View full-size slide

  25. IT’S ALL ABOUT THE
    GLUE

    View full-size slide

  26. WHAT THAT MEANS FOR INFRASTRUCTURE
    ▸ Well automated infrastructure
    ▸ Well monitored infrastructure
    ▸ Well operated infrastructure
    ▸ Well documented (where necessary) infrastructure
    ▸ Easy to change
    ▸ …

    View full-size slide

  27. EQUALLY IMPORTANT TO
    THE QUALITY OF OUR CODE

    View full-size slide

  28. AND WE ARE
    RESPONSIBLE FOR IT

    View full-size slide

  29. NOT JUST DIFFERENT TOOLING,
    BUT DIFFERENT WAY TO WORK

    View full-size slide

  30. PAST
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    SERVER
    Application cluster
    Database cluster
    Data and ETL Pipeline

    View full-size slide

  31. SERVERLESS INFRASTRUCTURE
    Service A
    F1 F2 F3
    Service C
    F1 F2
    Service B
    F1
    Service E
    F1 F2 F3
    Service D
    F1 F2 F3 F4 F5
    S3
    Kinesis
    DynamoDB
    Api Gateway
    Server
    ECS Cluster
    C1 C2 C3

    View full-size slide

  32. AND ITS GETTING MORE
    COMPLICATED

    View full-size slide

  33. NEW FEATURES COME IN ALL THE TIME AND WE HAVE TO DEAL WITH IT

    View full-size slide

  34. SERVICES BECOME
    EASIER TO USE THOUGH

    View full-size slide

  35. HEAVY TECH LIFTING IS
    DONE BY SERVICE PROVIDER

    View full-size slide

  36. OUR JOB IS TO
    GLUE IT TOGETHER

    View full-size slide

  37. SKILLS WE NEED TO
    GLUE IT TOGETHER

    View full-size slide

  38. SKILLS WE NEED TO BE CAPABLE OF
    ▸ Insight
    ▸ Resource Management
    ▸ Authorisation
    ▸ Monitoring
    ▸ Operations

    View full-size slide

  39. HOW FAST CAN YOU LEARN STUFF
    ABOUT YOUR DEPLOYED RESOURCES
    INSIGHT

    View full-size slide

  40. INSIGHT
    >3 Seconds is a Problem

    View full-size slide

  41. CREATING AND UPDATING
    RESOURCES IN SERVICES IN THE CLOUD
    RESOURCE MANAGEMENT

    View full-size slide

  42. RESOURCE MANAGEMENT
    ▸ Automation
    ▸ Automation
    ▸ Automation
    ▸ Automation
    ▸ Automation
    ▸ And Yes, Automation

    View full-size slide

  43. IT'S AUTOMATED,
    THEREFORE IT IS!

    View full-size slide

  44. LEAST PRIVILEGE IS
    CORRECT PRIVILEGE
    AUTHORISATION

    View full-size slide

  45. IAM REALLY ISN’T
    THAT COMPLEX

    View full-size slide

  46. WTF IS GOING ON HERE?
    MONITORING

    View full-size slide

  47. HOW DO I FIX THIS?
    OPERATIONS

    View full-size slide

  48. WHAT DO I NEED
    TO LEARN ON AWS?

    View full-size slide

  49. AWS CORE SERVICES AND TOOLS
    ▸ AWS CLI
    ▸ CloudFormation
    ▸ IAM
    ▸ CloudWatch

    View full-size slide

  50. INSIGHT
    AWS CLI

    View full-size slide

  51. AUTOMATION
    CLOUDFORMATION

    View full-size slide

  52. AUTHORISATION
    IAM

    View full-size slide

  53. MONITORING AND OPERATIONS
    CLOUDWATCH

    View full-size slide

  54. THE CLOUD IS STANDARDISED,
    SO CUSTOMISE YOUR TOOLS

    View full-size slide

  55. BASIC SHELL TOOLING
    ▸ Make
    ▸ xargs
    ▸ JQ
    ▸ Sed
    ▸ AWK

    View full-size slide

  56. WHY CAN’T I LEAVE THIS
    TO SOME SMART TOOL?

    View full-size slide

  57. NEW FEATURES COME IN ALL THE TIME AND WE HAVE TO DEAL WITH IT

    View full-size slide

  58. DOESN’T MEAN YOU CAN’T
    USE HIGH LEVEL TOOLS

    View full-size slide

  59. TOOLING IS MORE
    POWERFUL THAN EVER

    View full-size slide

  60. SO WHERE DO I START
    TO LEARN THIS?

    View full-size slide

  61. AWS DOCUMENTATION ISN’T
    AS COMPLEX AS IT SEEMS

    View full-size slide

  62. THESERVERLESSWAY.COM

    View full-size slide

  63. GUIDES
    ▸ Serverless
    ▸ AWSCli
    ▸ CloudFormation
    ▸ IAM
    ▸ More to come…

    View full-size slide

  64. THE SERVERLESS WAY TOOL SUITE
    ▸ Formica - CloudFormation client
    ▸ AWSInfo - The AWS Console in your terminal
    ▸ AWSIE - CloudFormation aware AWS CLI Wrapper
    ▸ Former - The easiest way to get CloudFormation Resource definitions
    ▸ More to come…

    View full-size slide

  65. CONCLUSIONS
    ▸ Learn the AWS Core Services and Tools
    ▸ Custom tools for standard infrastructure components
    ▸ Think about your own productivity as a Serverless developer
    ▸ Don’t build crap
    ▸ Check out theserverlessway.com
    ▸ Join the Serverless-Forum on Slack (https://wt-serverless-
    seattle.run.webtask.io/serverless-forum-signup?webtask_no_cache=1)

    View full-size slide

  66. THANK YOU
    Florian Motlik
    Questions?
    AWS/Serverless/Development Process Consultant

    Need help in your infrastructure:
    [email protected]
    T W I T T E R : @ F L O M O T L I K
    W E B S I T E : T H E S E R V E R L E S S WAY. C O M
    E M A I L : F L O @ T H E S E R V E R L E S S WAY. C O M

    View full-size slide

  67. FURTHER READING
    ‣ https://martinfowler.com/bliki/CraftmanshipAndTheCrevasse.html
    ‣ http://blog.cleancoder.com/uncle-bob/2011/01/17/software-craftsmanship-is-
    about.html
    ‣ https://dannorth.net/2011/01/11/programming-is-not-a-craft/
    ‣ http://blog.gdinwiddie.com/2011/01/17/trades-crafts-and-certification/

    View full-size slide