SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Shiva Narayanaswamy, Solution Architect, Amazon Web Services
Nick Walker, Systems Engineer, Vend
Application Delivery Patterns for
Developers
Technical 401
Business
101 Technical
201 Technical
301 Technical
401 Technical
Session Depth
Agenda: Application Delivery Patterns
‱ Why?
‱ What?
‱ How?
‱ The Vend Journey
‱ What the
?
‱ X Commandments
‱ What next?
Mission Statement
Deliver better features to customers, quickly, securely,
more reliably, and cheaper.
http://www.space.com/images/i/000/034/954/original/blue-origin-test-fires-new-rocket-engine-3.jpg
Deliver “Hello World”
package main
import “fmt”
func main() {
fmt.Printf(“Hello, World.n”)
}
#!/path/to/python
print “Hello World!”
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1 {
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello, world!");
Console.ReadLine()
}
}
}
#!/path/to/ruby
puts "Hello World!";
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Worldn');
}).listen(8080);
Development Lifecycle
REPOSITORY
PM SYSTEM
CI SYSTEM
DEVELOPER
LOOKUP
TASKS
SUBMIT
CODE
SCHEDULE BUILD
AUTOMATIC
BUILD
BUILD
RESULTS
BUILD
ARTEFACTS
CLOUDFORMATION,
PUPPET,
CHEF,
ANSIBLE.
CONTAINERS,
AMIs
EXE, MSI,
RPM, DEB,
ZIP, TAR
Delivery Lifecycle
REPOSITORY
PM SYSTEM
DEPLOYMENT
SYSTEM
DEVELOPER
LOOKUP
TASKS
SUBMIT
CODE
SCHEDULE BUILD
BUILD /
ARTEFACTS
BUILD
RESULTS
CI SYSTEM
ENVIRONMENTS
SYSTEST
PRE-PROD
PRODUCTION
DEPLOYMENT
RESULTS
DEPLOYMENT
CONFIG
TRIGGER A
PUSH / PULL
Delivery Lifecycle
REPOSITORY
PM SYSTEM
DEPLOYMENT
SYSTEM
DEVELOPER
LOOKUP
TASKS
SUBMIT
CODE
SCHEDULE BUILD
BUILD /
ARTEFACTS
BUILD
RESULTS
CI SYSTEM
ENVIRONMENTS
SYSTEST
PRE-PROD
PRODUCTION
DEPLOYMENT
RESULTS
DEPLOYMENT
CONFIG
ATOMIC UNIT OF DELIVERY
 FUNCTIONAL CODE
 UNIT TESTS
 API
 BUILD CONFIG
 RUNTIME CONFIG
 INFRASTRUCTURE CODE
 DELIVERY PIPELINE
PUSH / PULL
PUSH / PULL
Delivery Lifecycle
REPOSITORY
PM SYSTEM
DEPLOYMENT
SYSTEM
DEVELOPER
LOOKUP
TASKS
SUBMIT
CODE
SCHEDULE BUILD
BUILD /
ARTEFACTS
BUILD
RESULTS
CI SYSTEM
ENVIRONMENTS
SYSTEST
PRE-PROD
PRODUCTION
DEPLOYMENT
RESULTS
DEPLOYMENT
CONFIG
ATOMIC UNIT OF
DEPLOYMENT
 DEPLOYABLE ARTEFACT
 API
 TEST SCRIPTS
 BUILD CONFIG
 RUNTIME CONFIG
 INFRASTRUCTURE CODE
 DELIVERY PIPELINE
 ENVIRONMENT CONFIG
 SECURITY CONFIG
 MONITORING CONFIG
 BACKUP CONFIG
 AVAILABILITY CONFIG
 SLA CONFIG
Application Deployment Patterns
Arbitrary Snowflakes Periodic deployments Blue Green Deployments
Canary Deployment Dark Launch /
Feature Toggle
Environment Promotion
Orchestrate Delivery with Pipelines
A pipeline models your release process as a series of stages that promote
changes along a set of environments into the hands of your customers.
A pipeline is a model of your standard procedure for deploying software.
Pipeline
Stage
Action
Pipeline
Run
Source change
‱ starts a run; and
‱ creates an artifact to be used by other actions.
Manual trigger
Stage transition
Parallel Actions
Pipeline Concepts – AWS CodePipeline
Characteristics of a Good Pipeline
Fast Feedback Validation Idempotent
SecureDesired State
Consistency
Roll Forward API Driven Visualisation ExtensibleAs Code
Pipeline Design
Blockers
Simple Integral Security
Metrics Driven
Chained
Andon Cord Process Events
Loosely Coupled
Corollary to Conways Law :
Your pipelines design will be a copy of your organization's communication structure.
Pipeline Metrics
‱ Number of Builds
‱ Number of Deployments
‱ Average Time For Changes to Reach Production
‱ Average Time From First Pipeline Stage to Each Stage
‱ Number of Changes Reaching Production
‱ Average Build Time
Let us Deliver a Polyglot Beast
Packer/Puppet/Chef scripts
Foundation SOE pipeline
Foundation SOE AMI/Container
Nginx SOE
pipeline
Java SOE
pipeline
Tomcat SOE
pipeline
Developer
SOE pipeline
Nginx SOE Java SOE Tomcat SOE Developer
Workstation
Nginx SOE Java SOE Tomcat SOE HAProxy SOE
Let us Deliver a Polyglot Beast
IIS SOE
Application 1
on EC2
Application 2
on ECS
Application 3
on Beanstalk
Introduction to Vend
SaaS Point-of-Sale, Ecommerce and
Reporting
18,000+ retail stores in 150+ countries
I’m part of the Platform team - we’re
responsible for internal dev platform
Pipeline Goals / Metrics
We try to release features as fast as possible, while limiting risk and retaining quality
Important metrics:
Developer Velocity
Release Quality
Developer Happiness
What Slows Developers Down?
Fear of breaking things
Application complexity and coupling
Constantly re-inventing the wheel
Vend Deployment Pipeline
Push to GitHub
Build container
Run unit tests
Run integration tests (against other containers)
Deploy to AWS ECS if master
Containerisation
Start shaping the unit of testing and deployment
Forces developers to think about interfaces and
bounded contexts
Makes it easier to create development and test
environments
Standardisation
Containers without a sprinkle of best
practices are a recipe for disaster
Developers have to learn “this is how we do
things in this service!”
Our early containerisation approach - great
for Dev, terrible for Ops
What we Standardised
Authentication
Logging
Configuration Injection
Request Routing
Monitoring
Request Routing
Our routing layer handles API requests from
the edge to port on a container
Authentication, Authorisation and Rate Limiting
all handled
Common libraries in a few languages to parse
authentication tokens
Container Configuration
Standardised config directory location
Bake development configuration into
the container
Container platform mounts volume over
the top of the config directory
Feature Management
Simple conditional around a “risky” piece of
code
Control the conditional by some external
process
Decouples deployment from feature
releases - less nervous developers!
if (hasFeature("new_thing")) {
// New code path
} else {
// Old path
}
Feature Management Rules
Feature true/false can be driven by a set of
rules, considering the context of the user
- Percentage of all customers
- Time (n customers per y time)
- Account Size / Value
- Market / Region
- Opt in attributes
Monitoring Service Health and Usage
Is my service up? Is it logging errors?
Statsd, Kibana, Redash
Are people using it in the way that I
expect?
We should check that our assumptions
about user behaviour are correct
We’re Still Improving
Docker Compose / Docker for Mac instead
of Vagrant
Automated service discovery
Dynamic configuration instead of static
Puppet-based ones
Lessons Learned
Start with a automated pipeline, optimise the slow
parts as you find them
Going down the container route? Create a “best
practices” document!
Decouple feature releases from deployment and
stage rollouts to reduce risk
Salutations to the Demo Gods
BuildKite
Application Delivery from Outer Space
Cost Aware Serverless
Shared Experience Observer PatternThrottles
Location Aware
Some Tools
AWS Codepipeline BuildKite
Commandments for Application Delivery
I. Acknowledge time. Version control everything
II. Be the master of your dependencies
III. Externalising configurations shall set you free
IV. Don’t be a prisoner of state
V. Loosely couple
VI. Audits that don’t kill you, make you stronger
VII. Everyone sees everything, all the time
VIII. Measure success
IX. Continuous practice
X. Own your Destiny, end to end
How Do I Start?
THINK BIG
START SMALL
ACT NOW
AWS Training & Certification
Intro Videos & Labs
Free videos and labs to
help you learn to work
with 30+ AWS services
– in minutes!
Training Classes
In-person and online
courses to build
technical skills –
taught by accredited
AWS instructors
Online Labs
Practice working with
AWS services in live
environment –
Learn how related
services work
together
AWS Certification
Validate technical
skills and expertise –
identify qualified IT
talent or show you
are AWS cloud ready
Learn more: aws.amazon.com/training
Your Training Next Steps:
 Visit the AWS Training & Certification pod to discuss your
training plan & AWS Summit training offer
 Register & attend AWS instructor led training
 Get Certified
AWS Certified? Visit the AWS Summit Certification Lounge to pick up your swag
Learn more: aws.amazon.com/training
Thank You!

Weitere Àhnliche Inhalte

Was ist angesagt?

AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
Amazon Web Services
 

Was ist angesagt? (20)

Leveraging elastic web scale computing with AWS
 Leveraging elastic web scale computing with AWS Leveraging elastic web scale computing with AWS
Leveraging elastic web scale computing with AWS
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Deep Dive on Elastic Load Balancing
Deep Dive on Elastic Load BalancingDeep Dive on Elastic Load Balancing
Deep Dive on Elastic Load Balancing
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
State of Union - Containerz
State of Union - ContainerzState of Union - Containerz
State of Union - Containerz
 
Introduction to Docker on AWS
Introduction to Docker on AWSIntroduction to Docker on AWS
Introduction to Docker on AWS
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
Building a CI/CD Pipeline for Containers - DevDay Los Angeles 2017
 
Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017
Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017
Building CICD Pipelines for Serverless Applications - DevDay Los Angeles 2017
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
AWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipelineAWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipeline
 
DevOps in Amazon.com
DevOps in Amazon.com DevOps in Amazon.com
DevOps in Amazon.com
 
From One to Many: Evolving VPC Design
From One to Many: Evolving VPC DesignFrom One to Many: Evolving VPC Design
From One to Many: Evolving VPC Design
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
 

Andere mochten auch

Pgbr 2013 postgres on aws
Pgbr 2013   postgres on awsPgbr 2013   postgres on aws
Pgbr 2013 postgres on aws
Emanuel Calvo
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
Eberhard Wolff
 

Andere mochten auch (20)

Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
 
Pgbr 2013 postgres on aws
Pgbr 2013   postgres on awsPgbr 2013   postgres on aws
Pgbr 2013 postgres on aws
 
How Sumo Logic And Anki Build Highly Resilient Services On AWS To Manage Mass...
How Sumo Logic And Anki Build Highly Resilient Services On AWS To Manage Mass...How Sumo Logic And Anki Build Highly Resilient Services On AWS To Manage Mass...
How Sumo Logic And Anki Build Highly Resilient Services On AWS To Manage Mass...
 
Amazon Elastic Beanstalk
Amazon Elastic BeanstalkAmazon Elastic Beanstalk
Amazon Elastic Beanstalk
 
Ram Disk
Ram DiskRam Disk
Ram Disk
 
ENT203 Integrating On-Premise Resources - AWS re: Invent 2012
ENT203 Integrating On-Premise Resources - AWS re: Invent 2012ENT203 Integrating On-Premise Resources - AWS re: Invent 2012
ENT203 Integrating On-Premise Resources - AWS re: Invent 2012
 
Scaling by Design: AWS Web Services Patterns
Scaling by Design:AWS Web Services PatternsScaling by Design:AWS Web Services Patterns
Scaling by Design: AWS Web Services Patterns
 
AWS Summit Auckland -Key steps for Setting up your AWS Journey For Success
AWS Summit Auckland -Key steps for Setting up your AWS Journey For SuccessAWS Summit Auckland -Key steps for Setting up your AWS Journey For Success
AWS Summit Auckland -Key steps for Setting up your AWS Journey For Success
 
Getting Started with Windows Workloads on Amazon EC2
 Getting Started with Windows Workloads on Amazon EC2 Getting Started with Windows Workloads on Amazon EC2
Getting Started with Windows Workloads on Amazon EC2
 
Application Delivery on Amazon Web Services for Developers
Application Delivery on Amazon Web Services for DevelopersApplication Delivery on Amazon Web Services for Developers
Application Delivery on Amazon Web Services for Developers
 
AWS Storage and Content Delivery Services
AWS Storage and Content Delivery ServicesAWS Storage and Content Delivery Services
AWS Storage and Content Delivery Services
 
AWS Summit Auckland Keynote
AWS Summit Auckland KeynoteAWS Summit Auckland Keynote
AWS Summit Auckland Keynote
 
Getting Started with EC2 Spot - November 2016 Webinar Series
Getting Started with EC2 Spot - November 2016 Webinar SeriesGetting Started with EC2 Spot - November 2016 Webinar Series
Getting Started with EC2 Spot - November 2016 Webinar Series
 
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
 
Getting Started with Windows Workloads on Amazon EC2
Getting Started with Windows Workloads on Amazon EC2Getting Started with Windows Workloads on Amazon EC2
Getting Started with Windows Workloads on Amazon EC2
 
Getting Started with Amazon QuickSight
Getting Started with Amazon QuickSightGetting Started with Amazon QuickSight
Getting Started with Amazon QuickSight
 
Creating Your Virtual Data Center: VPC Fundamentals
Creating Your Virtual Data Center: VPC FundamentalsCreating Your Virtual Data Center: VPC Fundamentals
Creating Your Virtual Data Center: VPC Fundamentals
 
äœżç”š Amazon Athena ç›ŽæŽ„ćˆ†æžć„Čć­˜æ–Œ S3 çš„ć·šé‡èł‡æ–™
äœżç”š Amazon Athena ç›ŽæŽ„ćˆ†æžć„Čć­˜æ–Œ S3 çš„ć·šé‡èł‡æ–™äœżç”š Amazon Athena ç›ŽæŽ„ćˆ†æžć„Čć­˜æ–Œ S3 çš„ć·šé‡èł‡æ–™
äœżç”š Amazon Athena ç›ŽæŽ„ćˆ†æžć„Čć­˜æ–Œ S3 çš„ć·šé‡èł‡æ–™
 
Microservices on AWS: Divide & Conquer for Agility and Scalability
 Microservices on AWS: Divide & Conquer for Agility and Scalability Microservices on AWS: Divide & Conquer for Agility and Scalability
Microservices on AWS: Divide & Conquer for Agility and Scalability
 
What’s New with AWS Mobile Services
What’s New with AWS Mobile ServicesWhat’s New with AWS Mobile Services
What’s New with AWS Mobile Services
 

Ähnlich wie AWS Summit Auckland - Application Delivery Patterns for Developers

Ähnlich wie AWS Summit Auckland - Application Delivery Patterns for Developers (20)

Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401
 
Application Delivery Patterns
Application Delivery PatternsApplication Delivery Patterns
Application Delivery Patterns
 
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
 
Achieving DevOps Success with Chef Automate
Achieving DevOps Success with Chef AutomateAchieving DevOps Success with Chef Automate
Achieving DevOps Success with Chef Automate
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
A Bit of Everything Chef
A Bit of Everything ChefA Bit of Everything Chef
A Bit of Everything Chef
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
 
AWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps PresentationAWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps Presentation
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Dev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - TorontoDev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - Toronto
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 
Operations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningOperations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from Happening
 

Mehr von Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Mehr von Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalitĂ  Server...
Big Data per le Startup: come creare applicazioni Big Data in modalitĂ  Server...Big Data per le Startup: come creare applicazioni Big Data in modalitĂ  Server...
Big Data per le Startup: come creare applicazioni Big Data in modalitĂ  Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloudℱ on AWS: i miti da sfatare
Database Oracle e VMware Cloudℱ on AWS: i miti da sfatareDatabase Oracle e VMware Cloudℱ on AWS: i miti da sfatare
Database Oracle e VMware Cloudℱ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

KĂŒrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

KĂŒrzlich hochgeladen (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

AWS Summit Auckland - Application Delivery Patterns for Developers

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Shiva Narayanaswamy, Solution Architect, Amazon Web Services Nick Walker, Systems Engineer, Vend Application Delivery Patterns for Developers Technical 401
  • 2. Business 101 Technical 201 Technical 301 Technical 401 Technical Session Depth
  • 3. Agenda: Application Delivery Patterns ‱ Why? ‱ What? ‱ How? ‱ The Vend Journey ‱ What the
? ‱ X Commandments ‱ What next?
  • 4. Mission Statement Deliver better features to customers, quickly, securely, more reliably, and cheaper. http://www.space.com/images/i/000/034/954/original/blue-origin-test-fires-new-rocket-engine-3.jpg
  • 5. Deliver “Hello World” package main import “fmt” func main() { fmt.Printf(“Hello, World.n”) } #!/path/to/python print “Hello World!” using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello, world!"); Console.ReadLine() } } } #!/path/to/ruby puts "Hello World!"; var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello Worldn'); }).listen(8080);
  • 6. Development Lifecycle REPOSITORY PM SYSTEM CI SYSTEM DEVELOPER LOOKUP TASKS SUBMIT CODE SCHEDULE BUILD AUTOMATIC BUILD BUILD RESULTS BUILD ARTEFACTS CLOUDFORMATION, PUPPET, CHEF, ANSIBLE. CONTAINERS, AMIs EXE, MSI, RPM, DEB, ZIP, TAR
  • 7. Delivery Lifecycle REPOSITORY PM SYSTEM DEPLOYMENT SYSTEM DEVELOPER LOOKUP TASKS SUBMIT CODE SCHEDULE BUILD BUILD / ARTEFACTS BUILD RESULTS CI SYSTEM ENVIRONMENTS SYSTEST PRE-PROD PRODUCTION DEPLOYMENT RESULTS DEPLOYMENT CONFIG TRIGGER A PUSH / PULL
  • 8. Delivery Lifecycle REPOSITORY PM SYSTEM DEPLOYMENT SYSTEM DEVELOPER LOOKUP TASKS SUBMIT CODE SCHEDULE BUILD BUILD / ARTEFACTS BUILD RESULTS CI SYSTEM ENVIRONMENTS SYSTEST PRE-PROD PRODUCTION DEPLOYMENT RESULTS DEPLOYMENT CONFIG ATOMIC UNIT OF DELIVERY  FUNCTIONAL CODE  UNIT TESTS  API  BUILD CONFIG  RUNTIME CONFIG  INFRASTRUCTURE CODE  DELIVERY PIPELINE PUSH / PULL
  • 9. PUSH / PULL Delivery Lifecycle REPOSITORY PM SYSTEM DEPLOYMENT SYSTEM DEVELOPER LOOKUP TASKS SUBMIT CODE SCHEDULE BUILD BUILD / ARTEFACTS BUILD RESULTS CI SYSTEM ENVIRONMENTS SYSTEST PRE-PROD PRODUCTION DEPLOYMENT RESULTS DEPLOYMENT CONFIG ATOMIC UNIT OF DEPLOYMENT  DEPLOYABLE ARTEFACT  API  TEST SCRIPTS  BUILD CONFIG  RUNTIME CONFIG  INFRASTRUCTURE CODE  DELIVERY PIPELINE  ENVIRONMENT CONFIG  SECURITY CONFIG  MONITORING CONFIG  BACKUP CONFIG  AVAILABILITY CONFIG  SLA CONFIG
  • 10. Application Deployment Patterns Arbitrary Snowflakes Periodic deployments Blue Green Deployments Canary Deployment Dark Launch / Feature Toggle Environment Promotion
  • 11. Orchestrate Delivery with Pipelines A pipeline models your release process as a series of stages that promote changes along a set of environments into the hands of your customers. A pipeline is a model of your standard procedure for deploying software.
  • 12. Pipeline Stage Action Pipeline Run Source change ‱ starts a run; and ‱ creates an artifact to be used by other actions. Manual trigger Stage transition Parallel Actions Pipeline Concepts – AWS CodePipeline
  • 13. Characteristics of a Good Pipeline Fast Feedback Validation Idempotent SecureDesired State Consistency Roll Forward API Driven Visualisation ExtensibleAs Code
  • 14. Pipeline Design Blockers Simple Integral Security Metrics Driven Chained Andon Cord Process Events Loosely Coupled Corollary to Conways Law : Your pipelines design will be a copy of your organization's communication structure.
  • 15. Pipeline Metrics ‱ Number of Builds ‱ Number of Deployments ‱ Average Time For Changes to Reach Production ‱ Average Time From First Pipeline Stage to Each Stage ‱ Number of Changes Reaching Production ‱ Average Build Time
  • 16. Let us Deliver a Polyglot Beast Packer/Puppet/Chef scripts Foundation SOE pipeline Foundation SOE AMI/Container Nginx SOE pipeline Java SOE pipeline Tomcat SOE pipeline Developer SOE pipeline Nginx SOE Java SOE Tomcat SOE Developer Workstation
  • 17. Nginx SOE Java SOE Tomcat SOE HAProxy SOE Let us Deliver a Polyglot Beast IIS SOE Application 1 on EC2 Application 2 on ECS Application 3 on Beanstalk
  • 18.
  • 19. Introduction to Vend SaaS Point-of-Sale, Ecommerce and Reporting 18,000+ retail stores in 150+ countries I’m part of the Platform team - we’re responsible for internal dev platform
  • 20. Pipeline Goals / Metrics We try to release features as fast as possible, while limiting risk and retaining quality Important metrics: Developer Velocity Release Quality Developer Happiness
  • 21. What Slows Developers Down? Fear of breaking things Application complexity and coupling Constantly re-inventing the wheel
  • 22. Vend Deployment Pipeline Push to GitHub Build container Run unit tests Run integration tests (against other containers) Deploy to AWS ECS if master
  • 23. Containerisation Start shaping the unit of testing and deployment Forces developers to think about interfaces and bounded contexts Makes it easier to create development and test environments
  • 24. Standardisation Containers without a sprinkle of best practices are a recipe for disaster Developers have to learn “this is how we do things in this service!” Our early containerisation approach - great for Dev, terrible for Ops
  • 25. What we Standardised Authentication Logging Configuration Injection Request Routing Monitoring
  • 26. Request Routing Our routing layer handles API requests from the edge to port on a container Authentication, Authorisation and Rate Limiting all handled Common libraries in a few languages to parse authentication tokens
  • 27. Container Configuration Standardised config directory location Bake development configuration into the container Container platform mounts volume over the top of the config directory
  • 28. Feature Management Simple conditional around a “risky” piece of code Control the conditional by some external process Decouples deployment from feature releases - less nervous developers! if (hasFeature("new_thing")) { // New code path } else { // Old path }
  • 29. Feature Management Rules Feature true/false can be driven by a set of rules, considering the context of the user - Percentage of all customers - Time (n customers per y time) - Account Size / Value - Market / Region - Opt in attributes
  • 30. Monitoring Service Health and Usage Is my service up? Is it logging errors? Statsd, Kibana, Redash Are people using it in the way that I expect? We should check that our assumptions about user behaviour are correct
  • 31. We’re Still Improving Docker Compose / Docker for Mac instead of Vagrant Automated service discovery Dynamic configuration instead of static Puppet-based ones
  • 32. Lessons Learned Start with a automated pipeline, optimise the slow parts as you find them Going down the container route? Create a “best practices” document! Decouple feature releases from deployment and stage rollouts to reduce risk
  • 33.
  • 34. Salutations to the Demo Gods BuildKite
  • 35. Application Delivery from Outer Space Cost Aware Serverless Shared Experience Observer PatternThrottles Location Aware
  • 37. Commandments for Application Delivery I. Acknowledge time. Version control everything II. Be the master of your dependencies III. Externalising configurations shall set you free IV. Don’t be a prisoner of state V. Loosely couple VI. Audits that don’t kill you, make you stronger VII. Everyone sees everything, all the time VIII. Measure success IX. Continuous practice X. Own your Destiny, end to end
  • 38. How Do I Start? THINK BIG START SMALL ACT NOW
  • 39. AWS Training & Certification Intro Videos & Labs Free videos and labs to help you learn to work with 30+ AWS services – in minutes! Training Classes In-person and online courses to build technical skills – taught by accredited AWS instructors Online Labs Practice working with AWS services in live environment – Learn how related services work together AWS Certification Validate technical skills and expertise – identify qualified IT talent or show you are AWS cloud ready Learn more: aws.amazon.com/training
  • 40. Your Training Next Steps:  Visit the AWS Training & Certification pod to discuss your training plan & AWS Summit training offer  Register & attend AWS instructor led training  Get Certified AWS Certified? Visit the AWS Summit Certification Lounge to pick up your swag Learn more: aws.amazon.com/training
  • 41.