deployment automation for an aws serverless
play

Deployment automation for an AWS Serverless project: SAM vs - PowerPoint PPT Presentation

Deployment automation for an AWS Serverless project: SAM vs CloudFormation vs Terraform vs ServerlessFramework Bruno Amaro Almeida | 9 Sept 2019 @bruno_amaro Community Day 2019 Sponsors FUTURE. CO-CREATED. Nordic Roots, Global Mindset


  1. Deployment automation for an AWS Serverless project: SAM vs CloudFormation vs Terraform vs ServerlessFramework Bruno Amaro Almeida | 9 Sept 2019 @bruno_amaro Community Day 2019 Sponsors

  2. FUTURE. CO-CREATED. Nordic Roots, Global Mindset PEOPLE NATIONALITIES 550+ 38 Ta Tampere Helsinki He Oslo Os St Stockholm OFFICES YoY GROWTH 8 30% Family of Companies Berlin Be Lo London Artificial Intelligence eCommerce & & Machine Learning Growth Hacking St Stuttgart Mu Munich

  3. Who is this guy? Pr Principal Ar Architect & Technology y Ad Advi visor @ Fu Futurice   native, based in Cloud, DevOps, Security, Data Engineering & AI Reach out on: @bruno_amaro B E R L I N · H E L S I N K I · L O N D O N · M U N I C H · O S L O · S T O C K H O L M · T A M P E R E @brunoamaroalmeida

  4. Why is Deployment Automation Important? AUTOMATE AND DEPLOY (…) provisions your resources in a safe, repeatable manner, allowing you to build and rebuild your infrastructure and applications, without having to perform manual actions or REASONS FOR AUTOMATING write custom scripts. INFRASTRUCTURE source: aws.amazon.com • Repeatable re-deployable infrastructure • Documented maintainable infrastructure • Scalable solutions • Huge Architectures • Complex systems source: google cloud platform

  5. [UNPOPULAR OPINION]: NOT EVERYTHING NEEDS TO BE AUTOMATED B E R L I N · H E L S I N K I · L O N D O N · M U N I C H · O S L O · S T O C K H O L M · T A M P E R E Photo by Steve Johnson on Unsplash

  6. A ”real-world" Serverless App Fr Front ntend nd • 1 x Static Website: • Displays different options • Allows the visitor to select an option. Ba Backend • 1 x API • Process the chosen option and stores the result. B E R L I N · H E L S I N K I · L O N D O N · M U N I C H · O S L O · S T O C K H O L M · T A M P E R E

  7. A Serverless App Wh What is is yo your fa favo vorite Ge German ca car br brand nd? ? Audi, Mercedes-Benz or BMW? Visit hello.devopssquad.com today 💛 B E R L I N · H E L S I N K I · L O N D O N · M U N I C H · O S L O · S T O C K H O L M · T A M P E R E

  8. Architecture @bruno_amaro

  9. Athena & QuickSight for Results @bruno_amaro

  10. “ AWS AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment. CloudFormation allows you to use a simple text file to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts. source: aws.amazon.com

  11. CloudFormation (optional) Pa Parame meters Re Resources (optional) Ou Outputs Other sections (optional): Tr Trans nsforms, , Ma Mappings, , Co Conditions, , et etc

  12. “ The AWS Se Serverless Application Model extends AWS CloudFormation to provide a simplified way of defining the Amazon API Gateway APIs, AWS Lambda functions, and Amazon DynamoDB tables needed by your serverless application.” source: aws.amazon.com

  13. Cl CloudFormation SAM SA Serverless Application Model AWS::IAM::Role AWS::Lambda::Function AWS::Lambda::Permission AWS::ApiGateway::RestApi AWS::Serverless::Api (*) AWS::ApiGateway:: Resource AWS:: Serverless ::Function AWS::ApiGateway::Method AWS::ApiGateway::Deployment AWS::ApiGateway::Stage AWS::ApiGateway::Method AWS::ApiGateway::ApiKey AWS::ApiGateway::UsagePlan AWS::ApiGateway::UsagePlanKey AWS::ApiGateway::DomainName AWS::ApiGateway::BasePathMapping AWS::Route53::RecordSetGroup AWS::S3::Bucket AWS::S3::BucketPolicy @bruno_amaro

  14. Serverless Application Model • Local debugging and testing • Zip the lambda dir & S3 upload • Outputs a new template file ( packaged.yaml ) • Allow publishing to public repository @bruno_amaro

  15. “ Te Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in- house solutions.” source: terraform.io

  16. Terraform • Open Source project from Ha Hashicorp • Multi-Cloud support (AWS, Azure, GCP, etc) • Multiple providers and services to be combined and composed • Separation between planning and execution phase • Module Registry

  17. Terraform In Init Pl Plan

  18. Terraform (Optional) Ge Generate re resourc urce gr graph Ap Appl y @bruno_amaro

  19. “ The Se Serverless Fr Fram amew ewor ork k helps you build serverless apps with radically less overhead and cost. It provides a powerful, unified experience to develop, deploy, test, secure and monitor your serverless applications. source: serverless.com

  20. Serverless Framework • Open Source project from Se ServerlessFramework • Basic Multi-Cloud support (AWS, Azure, GCP, etc) • Focus on the core serverless components (e.g. API GW, Lambda, etc) • Ability to include Cloud Formation to extend the functionality

  21. Serverless Framework @bruno_amaro

  22. CloudFormation vs SAM vs Terraform vs ServerlessFramework Terraform Serverless Framework CloudFormation Ser erver erles ess Appl pplica cation Mod odel Pro Pr Pro Pr Pro: Pr Pro: Pr • • Open Source project from Open Source project from Hashicorp • Extension of AWS • AWS Native ServerlessFramework CloudFormation • Module Registry • Fully supported by • Easy to get up and running with • Ability to local debugging AWS • Multiple providers can be combined basic resources and testing • Free of charge • Multi-Cloud support (AWS, Azure, GCP, etc) • Basic Multi-Cloud support (AWS, • Easier packaging Azure, GCP, etc) • JSON or YAML • AWS SAM Repository Con Co Con Co Con: Co • Not AWS Native and Support is paid Con : Co • Limited support (purely focused on • Hard to troubleshoot • Couple of workarounds here and there the traditional serverless • Only covers some AWS resources) Resources _( ツ )_ ¯\_( )_/¯ _( ツ )_ ¯\_( )_/¯ _( ツ )_ _( ツ )_ ¯\_( )_/¯ • ¯\_( )_/¯ Not so easy to write • Multi-Cloud support templates • • Two separate languages (ie. CF) You still end up writting the • Resource Graphs • usual CF to workaround Documentation is not • Agnostic infra tool ended up being a missing features at a good level • Separate planning and execution phase JS project with 1000+ of frequently updating npm dependencies • Remote state files (chicken or the egg) @bruno_amaro

  23. Thank you! Kiitos! Danke! Bruno Almeida Tack! PRINCIPAL ARCHITECT & TECHNOLOGY ADVISOR Cloud, Security, DevOps, Data Engineering & AI Reach out on: @bruno_amaro @brunoamaroalmeida B E R L I N · H E L S I N K I · L O N D O N · M U N I C H · O S L O · S T O C K H O L M · T A M P E R E

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend