AWS re:Invent 2016: VMware and AWS Together - VMware Cloud on AWS (ENT317)
ServerlessWebsite+ Publishing...
Transcript of ServerlessWebsite+ Publishing...
![Page 1: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/1.jpg)
Serverless Website Publishingwith AWS Code* Services
Steffen Grunwald
Solutions Architect, AWS
October 27, 2016
![Page 2: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/2.jpg)
Software Delivery Models evolved
![Page 3: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/3.jpg)
What do you need to move fast?
Automate provisioning of all environments and services
Automate the deploymentof application versions
Orchestrate the whole process
Re-use services,Architect for re-usability
Measure software qualityAutomate builds and tests
![Page 4: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/4.jpg)
Release processes levels
Source Build Test Production
Continuous integration
Continuous delivery
Continuous deployment
![Page 5: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/5.jpg)
Continuous Delivery Benefits
Improve developer productivity
Find and address bugs quickly
Deliver updates fasterAutomate the software release process
![Page 6: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/6.jpg)
Continuous delivery service for fast and reliable application updates
Model and visualize your software release process
Builds, tests, and deploys your code every time there is a code change
Integrates with 3rd party tools and AWS
AWS CodePipeline
![Page 7: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/7.jpg)
AWS CodePipeline Benefits
Improved quality
Rapid delivery Get started fast
Configurable workflow Easy to integrate
![Page 8: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/8.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
PipelineStage
Action
Transition
CodePipelineMyApplication
![Page 9: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/9.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
NotifyDevelopersLambda
CodePipelineMyApplication
Parallel actions
![Page 10: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/10.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
NotifyDevelopersLambda
TestAPIRunscope
CodePipelineMyApplication
Sequential actions
![Page 11: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/11.jpg)
Source
SourceGitHub
Build
JenkinsOnEC2Jenkins
Deploy
JavaAppElastic Beanstalk
CodePipelineMyApplication
Artifacts are passed via S3
![Page 12: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/12.jpg)
Demo: Publishing Workflow on AWS
Editing Markdown Versioning Build Publish
https://c9.io/ AWS CodeCommit Amazon S3https://jekyllrb.com/
![Page 13: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/13.jpg)
Pipeline Design
Commit/Push
https://c9.io/ AWS CodeCommit Amazon S3https://jekyllrb.com/
![Page 14: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/14.jpg)
Pipeline Design -‐ add Approval Stage Re-‐use Functionwith differentparameters
![Page 15: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/15.jpg)
150 LoC of Custom Job Worker Code at a Glance
loop:poll_for_jobs
acknowledge_jobtry:
download site sourcerun Jekyllupload build siteput_job_success
catch:put_job_failure
![Page 16: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/16.jpg)
Deploy Applications with AWS CodeDeploy
• Automates code deployments to any instance
• Handles the complexity of updating your applications
• Avoid downtime during application deployment
• Deploy to Amazon EC2 or on-‐premises servers, in any language and on any operating system
• Integrates with 3rd party tools and AWS
![Page 17: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/17.jpg)
Automate deployment with Built-‐In Actions
Watches for code changes
Triggers CodeDeploydeployment
![Page 18: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/18.jpg)
appspec.ymlversion: 0.0os: linuxfiles:- source: appdestination: /home/ec2-user/app
- source: scripts/siteBuilder.confdestination: /etc/init
permissions:- object: /home/ec2-user/appowner: ec2-usergroup: ec2-user
hooks:ApplicationStop:- location: deploy-hooks/stop.sh
AfterInstall:- location: deploy-hooks/reloadServices.sh- location: deploy-hooks/installBundles.shrunas: ec2-user
ApplicationStart:- location: deploy-hooks/start.sh
![Page 19: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/19.jpg)
appspec.ymlversion: 0.0os: linuxfiles:- source: appdestination: /home/ec2-user/app
- source: scripts/siteBuilder.confdestination: /etc/init
permissions:- object: /home/ec2-user/appowner: ec2-usergroup: ec2-user
hooks:ApplicationStop:- location: deploy-hooks/stop.sh
AfterInstall:- location: deploy-hooks/reloadServices.sh- location: deploy-hooks/installBundles.shrunas: ec2-user
ApplicationStart:- location: deploy-hooks/start.sh
Copy files to system-‐ Application
-‐ Upstart Config
Set file permissions
Execute scripts onapplication lifecycle
events
![Page 20: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/20.jpg)
AWS service integrationsSource Invoke Logic Deploy
AWS Elastic BeanstalkAWS CodeDeployAWS OpsWorks
Amazon S3AWS CodeCommit
AWS Lambda
![Page 21: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/21.jpg)
We have a strong partner list, and it’s growingSource Build Test Deploy
![Page 22: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/22.jpg)
Make Jekyll Serverless
We know:• Jekyll is written in Ruby• Ruby* runs on Java• Java runs on AWS Lambda
Deduction:Jekyll* runs on AWS Lambda
*some
![Page 23: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/23.jpg)
Packaging Jekyll
Java AWS Lambda Handler
JRuby Complete Distribution
Jekyll’s and Dependencies’
Gems
Jekyll Start Ruby Script
Uber JAR
![Page 24: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/24.jpg)
Packaging Jekyll
Java AWS Lambda Handler
JRuby Complete Distribution
Jekyll’s and Dependencies’
Gems
Jekyll Start Ruby Script
Uber JAR
Maven Build
dependency run jruby install @generate resources
src/main/java src/main/resources
src/assembly
![Page 25: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/25.jpg)
Provision with AWS CloudFormation
• Specify a collection of related AWS resources in a declarative way
• Put the configuration to version control
• Provision and update your infrastructure in a predictable fashion:• Additional Test Environments• Complete Pipelines
![Page 26: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/26.jpg)
Scaffolding with AWS CloudFormation Template
• Use a parameterized CloudFormation template• Create a stack of resources from scratch: pipeline,
S3 buckets, IAM roles, AWS Lambda functions, policies, etc.
Create a service adhering to best practices in minutes!
![Page 27: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/27.jpg)
AWS CloudFormation Example w/ Parameter(Excerpt)BuiltSiteCustomAction:Type: "AWS::CodePipeline::CustomActionType"Properties:Category: "Build"Provider:Fn::Join:-‐ ""-‐ -‐ Ref: AWS::StackName-‐ "-‐BuildActn"
Version: 1
![Page 28: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/28.jpg)
Summary• Infrastructure and application can be provisioned in
a fully automated fashion and allows for a fast start• AWS CodePipeline is very versatile and allows
integration of all almost services and tools• Going all serverless builds a fully cost aware
architecture
![Page 29: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/29.jpg)
Start now and benefit from AWS Free TierPay for what you use!
AWS services used are part of the AWS Free Tier:-‐ AWS CodePipeline-‐ AWS CodeCommit-‐ AWS Lambda-‐ Amazon Simple Storage Service (S3)See Terms at https://aws.amazon.com/free
![Page 30: ServerlessWebsite+ Publishing …aws-de-media.s3.amazonaws.com/images/_Munich_Loft_Slides/...2016/10/27 · with+AWS+Code*+Services Steffen&Grunwald Solutions&Architect,AWS October&27,2016](https://reader036.fdocuments.us/reader036/viewer/2022062415/5fe1b2df6d505b6b0f274642/html5/thumbnails/30.jpg)
Thank you!