SlideShare a Scribd company logo
1 of 42
Download to read offline
DevOps at Wayin
Orchestration with AWS Cloud Formation
David M. Johnson
Software Developer - Wayin, Inc.
Friday, June 21, 13
Agenda
•What is Cloud Orchestration
• Quick intro to Wayin Hub
• Wayin Hub deployment & application architecture
• How we scale, deploy and do backups
• About Cloud Formation Templates
• About vendor lock-in
• Designing for orchestration
Friday, June 21, 13
“Orchestration describes the
automated arrangement,
coordination, and management
of complex computer systems,
middleware, and services.
It is often discussed as having
an inherent intelligence or even
implicitly autonomic control, but
those are largely aspirations or
analogies rather than technical
descriptions.”
http://en.wikipedia.org/wiki/Orchestration_(computing)
Friday, June 21, 13
“cloud orchestration =
automation
+ integration
+ best practices”
https://www.ibm.com/developerworks/mydeveloperworks/blogs/9e696bfa-94af-4f5a-ab50-
c955cca76fd0/entry/orchestrating_the_cloud_to_simplify_and_accelerate_service_delivery1
Friday, June 21, 13
Cloud Orchestration is...
Automating the infrastructure
needed to provide a computing
service so that resources are
automatically allocated and de-
allocated to meet changing demand
Friday, June 21, 13
The Orchestra Analogy
Friday, June 21, 13
Benefits
•Saves money
•Saves time
•Repeatable, version-able process
•Less human intervention
•Fewer stupid mistakes
Friday, June 21, 13
Agenda
• What is Cloud Orchestration
•Quick intro to Wayin Hub
• Wayin Hub deployment & application architecture
• How we scale, deploy and do backups
• About Cloud Formation Templates
• About vendor lock-in
• Designing for orchestration
Friday, June 21, 13
Friday, June 21, 13
Friday, June 21, 13
Friday, June 21, 13
Friday, June 21, 13
Friday, June 21, 13
Friday, June 21, 13
Friday, June 21, 13
Agenda
• What is Cloud Orchestration
• Quick intro to Wayin Hub
•Wayin Hub deployment & app architecture
• How we scale, deploy and do backups
• About Cloud Formation Templates
• About vendor lock-in
• Designing for orchestration
Friday, June 21, 13
Glossary
• EC2 - server virtualization
• EBS - mountable block storage
• ELB - load balancer
• R53 - domain name services (DNS)
• S3 - file / bucket storage service
• CloudFront - content distribution network (CDN)
• Autoscale - automatically stop & start servers
• CloudWatch / Cloud Alarms - monitoring & triggering
• Security Group - restrict port access on group of instances
• SQS - Simple Queuing Service
Friday, June 21, 13
Application Architecture
Browser
Front
end
HTML5
jQuery
Backbone
Ubuntu
Back
end
Java, Jetty
Jersey
Guice
REST
HTTP
Ubuntu
Cassandra
Redis
Memcache
Queue Service
Twitter Feeds
Other Soc.
Nets
Friday, June 21, 13
Ubuntu
Jenkins
API Security Group
S3
R53CloudFront
ELB
EC2
Browser
Front
end
DB Security Group
EBS
SQS
TwitterFeeds
Tracker Security Group
Deployment Architecture
Cloud Formation
// CFN template
{
"Parameters": {
},
"Mappings": {
},
"Resources": {
}
}
Friday, June 21, 13
Cloud Formation
“An easy way to create and manage a collection of related
AWS resources, provisioning and updating them in an orderly
and predictable fashion.
You can use AWS CloudFormation’s sample templates or create
your own. Once deployed, you can modify and update the AWS
resources in a controlled and predictable way allowing you to
version control your AWS infrastructure in the same way as
you version control your software.
You can deploy and update a template and its associated collection
of resources (called a stack) via the AWS Management Console,
CloudFormation command line tools or APIs. CloudFormation is
available at no additional charge, and you pay only for the
AWS resources needed to run your applications.”
Friday, June 21, 13
Agenda
• What is Cloud Orchestration
• Quick intro to Wayin Hub
• Wayin Hub deployment & application architecture
•How we scale, deploy and do backups
• About Cloud Formation Templates
• About vendor lock-in
• Designing for orchestration
Friday, June 21, 13
Separate auto-scale groups
Ubuntu
API server
WAR
Jetty
Ubuntu
API server
WAR
Jetty
Ubuntu
API server
WAR
Jetty
Min: 3
Max: 9
Scale up (quickly):
CPU > X% forY minutes
Scale down (slowly):
CPU < A% for B minutes
Ubuntu
Cassandra
Redis
Memcache
DB serverUbuntu
Cassandra
Redis
Memcache
DB server
Min: 2
Max: 2
We decide when to scale
up and scale down our
DB server instances
Ubuntu
Tracker
WAR
Jetty
Ubuntu
Tracker
WAR
Jetty
Ubuntu
Tracker
WAR
Jetty
Min: 2
Max: 20
Scale up (quickly):
Queue has > X
messages forY minutes
Scale down (slowly):
Queue has < X message
forY minutes
Friday, June 21, 13
CFN Launches
new API server
instances
1
Self-configuring API servers
DB Security Group
S3 ELB
CloudInit script
downloads the
deployment bundle
2
CloudInit scripts
find DB servers by
Security Group,
starts Jetty
3
CloudInit
scripts put
server into
ELB rotation
4
API Security Group
CFN
Cloud
Watch
Friday, June 21, 13
Self-configuring DB servers
DB Security Group
S3
CloudInit scripts finds other
DB servers by Server Group
3
CloudInit scripts
download latest
deployment bundle
2Human runs the
command to increase
DB servers by one
1
Ubuntu
New DB server
New Cassandra node joins
cluster when ready
7
CFN
CloudInit scripts write
Memcache config, start it
4
MemcacheCloudInit scripts write Redis config,
assume first server is master, start it
5
Redis
CloudInit scripts write
Cassandra config, start it
6
Cassandra
Friday, June 21, 13
Automated deployment
API Security Group
GitDeveloper merges code
into deployment branch
1
Developer kicks off
Jenkins build
2
S3
Jenkins copies
bundle to S3 bucket
3
Developer kicks off
deployment build
4
Jenkins runs
deploy command
via SSH
5
On each server the script
runs locally, downloads
and installs the bundle
6
Ubuntu
Jenkins
Tracker Security Group
Friday, June 21, 13
Incremental backups
copied to S3 bucket
5
Automated Backups
S3
Jenkins runs
daily backup job
1
Backup script
creates EBS snapshot 3
DB Security Group
Cronjob kicks off
incremental backups
4
Cassandra snapshot
backups happen
simultaneously
2
Ubuntu
Jenkins
EBS
Friday, June 21, 13
Agenda
• What is Cloud Orchestration
• Quick intro to Wayin Hub
• Wayin Hub deployment & application architecture
• How we scale, deploy and do backups
•About Cloud Formation Templates
• About vendor lock-in
• Designing for orchestration
Friday, June 21, 13
CFN Template skeleton
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Example stack",
"Parameters": {
},
"Mappings": {
},
"Resources": {
}
}
Friday, June 21, 13
CFN Parameters
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "WayinHub Three Server-type Prod Stack",
"Parameters": {
"DnsName" : {
"Description" : "DNS name to be created",
"Type" : "String",
"Default": "stack-test"
},
"DnsDomain" : {
"Description" : "DNS domain to be used",
"Type" : "String",
"Default": "twt.pl"
},
"KeyPair" : {
"Description" : "EC2 Key Pair to allow SSH...",
"Type" : "String",
"Default": "wayin"
},
Friday, June 21, 13
CFN Parameters
"ReleaseBucket" : {
"Description" : "S3 Bucket of release bundle",
"Type" : "String",
"Default": "hub-deployment-release"
},
"ApiMinServers" : {
"Description" : "Minimum number of API servers",
"Type" : "Number",
"Default": "2",
"MinValue": "2"
},
"ApiMaxServers" : {
"Description" : "Maximum number API servers",
"Type" : "Number",
"Default": "5",
"MinValue": "2"
},
"ApiInstanceType": {
"Description": "EC2 instance type for API servers",
"Type": "String",
"Default": "m1.large",
"AllowedValues": ["m1.xlarge", "m3.xlarge"],
"ConstraintDescription": "must be a valid EC2 type."
},
Friday, June 21, 13
CFN Mappings
"Mappings": {
"AWSRegionArch2AMI": {
"us-east-1": { "64": "ami-e864da81" },
"us-west-2": { "64": "ami-50f97060" }
},
"TwoAZs": {
"us-east-1": {
"AZ1" : "us-east-1a", "AZ2" : "us-east-1b" },
"us-west-2": {
"AZ1" : "us-west-2a", "AZ2" : "us-west-2b" }
}
},
Friday, June 21, 13
CFN Resources
"Resources": {
"DbAutoScalingLaunchConfiguration": {
"Type": "AWS::AutoScaling::LaunchConfiguration",
},
"DbAutoScalingGroup": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
},
"ApiAutoScalingLaunchConfiguration": {
"Type": "AWS::AutoScaling:: LaunchConfiguration",
},
"ApiAutoScalingGroup": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
},
"ApiServerScaleUpPolicy" : {
"Type" : "AWS::AutoScaling::ScalingPolicy",
},
"ApiServerScaleDownPolicy" : {
"Type" : "AWS::AutoScaling::ScalingPolicy",
},
"CPUAlarmHigh": {
},
"CPUAlarmLow": {
},
Friday, June 21, 13
CFN Resources
"ApiAutoScalingLaunchConfiguration": {
"Type": "AWS::AutoScaling::LaunchConfiguration",
"Properties": {
"UserData": {
"Fn::Base64" : { "Fn::Join": [ "", [
"#!/bin/bash -exn",
"# Log all output from this scriptn",
"exec >/var/log/wayin-bootstrap.log 2>&1n",
"# Expose various environmental variables, etc.n",
"cat >/etc/profile.d/wayin-env.sh <<EOFn",
"export ELB_NAME=", { "Ref" : "ApiElasticLoadBalancer" }, "n",
"export EC2_REGION=", { "Ref" : "AWS::Region" }, "n",
"export DNS_NAME=", { "Ref" : "DnsName" }, "n",
"export DNS_DOMAIN=", { "Ref" : "DnsDomain" }, "n",
"EOFn",
"# Install various packagesn",
"apt-get updaten",
"apt-get -y install s3cmdn",
"n",
"# Download our application filesn",
"cd /usr/share/wayinhubn",
"s3cmd --config=/etc/s3cfg get s3://",{"Ref":"ReleaseBucket"},"/twithub.tgzn",
"tar xf twithub.tgzn",
"rm -fr twithub.tgzn",
"cd ./init_instancen",
"sh ./init_api_server.shn"
]]}
},
Friday, June 21, 13
CFN Console
Friday, June 21, 13
Agenda
• What is Cloud Orchestration
• Quick intro to Wayin Hub
• Wayin Hub deployment & application architecture
• How we scale, deploy and do backups
• About Cloud Formation Templates
•About vendor lock-in
• Designing for orchestration
Friday, June 21, 13
Lock-in in automation
• Cloud Formation itself is lock-in
• Plenty of AWS dependencies in our:
• Instance init scripts
• Deployment scripts
• Backup scripts
Friday, June 21, 13
No lock-in in app code
• Bulk of our code is in our application
• AWS dependencies are pluggable
Friday, June 21, 13
Agenda
• What is Cloud Orchestration
• Quick intro to Wayin Hub
• Wayin Hub deployment & application architecture
• How we scale, deploy and do backups
• About Cloud Formation Templates
• About vendor lock-in
•Designing for orchestration
Friday, June 21, 13
Choose right components
• Good
• Peer-to-peer
• Linear scalability
• Bad
• Master-slave
• “Special” servers
• Single point-of-failure
Friday, June 21, 13
Bootstrap everything
• Every instance must self-configure
• Make services easy to discover
Friday, June 21, 13
Keep it simple
• Minimize number of different...
• Server types
• External services
• Learning curves
Friday, June 21, 13
Questions?
Friday, June 21, 13

More Related Content

What's hot

What's New with Confluence Connect
What's New with Confluence ConnectWhat's New with Confluence Connect
What's New with Confluence ConnectAtlassian
 
Preparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsPreparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsAtlassian
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket CloudAtlassian
 
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Apigee | Google Cloud
 
Integration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsIntegration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsAtlassian
 
Bringing Server Add-ons to the Cloud and Back Again
Bringing Server Add-ons to the Cloud and Back AgainBringing Server Add-ons to the Cloud and Back Again
Bringing Server Add-ons to the Cloud and Back AgainAtlassian
 
Integrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteIntegrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteAtlassian
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Ville Seppänen
 
Building Android apps with Parse
Building Android apps with ParseBuilding Android apps with Parse
Building Android apps with ParseDroidConTLV
 
Windsor AWS UG Deep dive IAM 2 - no json101
Windsor AWS UG   Deep dive IAM 2 - no json101Windsor AWS UG   Deep dive IAM 2 - no json101
Windsor AWS UG Deep dive IAM 2 - no json101Goran Karmisevic
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Varun Torka
 
Amazon Web Services Security
Amazon Web Services SecurityAmazon Web Services Security
Amazon Web Services SecurityJason Chan
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsAtlassian
 
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 201910 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019Matt Raible
 
Become a Cloud Security Ninja - RedLock Lab
Become a Cloud Security Ninja - RedLock LabBecome a Cloud Security Ninja - RedLock Lab
Become a Cloud Security Ninja - RedLock LabAmazon Web Services
 
10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...
10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...
10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...Matt Raible
 
Using Java to interact with Firebase in Android
Using Java to interact with Firebase in AndroidUsing Java to interact with Firebase in Android
Using Java to interact with Firebase in AndroidMagda Miu
 

What's hot (20)

What's New with Confluence Connect
What's New with Confluence ConnectWhat's New with Confluence Connect
What's New with Confluence Connect
 
Preparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom DomainsPreparing for Data Residency and Custom Domains
Preparing for Data Residency and Custom Domains
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket Cloud
 
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
Building a Mobile Data Platform with Cassandra - Apigee Under the Hood (Webcast)
 
Firebase with Android
Firebase with AndroidFirebase with Android
Firebase with Android
 
Integration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsIntegration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real Things
 
Bringing Server Add-ons to the Cloud and Back Again
Bringing Server Add-ons to the Cloud and Back AgainBringing Server Add-ons to the Cloud and Back Again
Bringing Server Add-ons to the Cloud and Back Again
 
Integrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code SuiteIntegrating Jira Software Cloud With the AWS Code Suite
Integrating Jira Software Cloud With the AWS Code Suite
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)
 
Building Android apps with Parse
Building Android apps with ParseBuilding Android apps with Parse
Building Android apps with Parse
 
Windsor AWS UG Deep dive IAM 2 - no json101
Windsor AWS UG   Deep dive IAM 2 - no json101Windsor AWS UG   Deep dive IAM 2 - no json101
Windsor AWS UG Deep dive IAM 2 - no json101
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)
 
Amazon Web Services Security
Amazon Web Services SecurityAmazon Web Services Security
Amazon Web Services Security
 
Ten Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-onsTen Battle-Tested Tips for Atlassian Connect Add-ons
Ten Battle-Tested Tips for Atlassian Connect Add-ons
 
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 201910 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
 
Become a Cloud Security Ninja - RedLock Lab
Become a Cloud Security Ninja - RedLock LabBecome a Cloud Security Ninja - RedLock Lab
Become a Cloud Security Ninja - RedLock Lab
 
Node.js and Parse
Node.js and ParseNode.js and Parse
Node.js and Parse
 
10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...
10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...
10 Excellent Ways to Secure Your Spring Boot Application - The Secure Develop...
 
Using Java to interact with Firebase in Android
Using Java to interact with Firebase in AndroidUsing Java to interact with Firebase in Android
Using Java to interact with Firebase in Android
 

Viewers also liked

Viewers also liked (11)

Caring for the uncared
Caring for the uncaredCaring for the uncared
Caring for the uncared
 
Cloudsrain
CloudsrainCloudsrain
Cloudsrain
 
Solar System Formation/Sun/Comets/Meteors
Solar System Formation/Sun/Comets/MeteorsSolar System Formation/Sun/Comets/Meteors
Solar System Formation/Sun/Comets/Meteors
 
cloud formation,types,causes.
cloud formation,types,causes.cloud formation,types,causes.
cloud formation,types,causes.
 
Identifying types of clouds
Identifying types of cloudsIdentifying types of clouds
Identifying types of clouds
 
Cloud Powerpoint
Cloud PowerpointCloud Powerpoint
Cloud Powerpoint
 
Types of Clouds
Types of CloudsTypes of Clouds
Types of Clouds
 
Cloud formation - How clouds form and different types of clouds
Cloud formation - How clouds form and different types of cloudsCloud formation - How clouds form and different types of clouds
Cloud formation - How clouds form and different types of clouds
 
Types of Cloud
Types of CloudTypes of Cloud
Types of Cloud
 
Precipitation presentation
Precipitation presentationPrecipitation presentation
Precipitation presentation
 
Cloud Types Presentation
Cloud Types PresentationCloud Types Presentation
Cloud Types Presentation
 

Similar to Wayin devops-2013

AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)Amazon Web Services
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...Amazon Web Services
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS Riyadh User Group
 
Architecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesArchitecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesAmazon Web Services
 
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAmazon Web Services
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudVladimir Ilic
 
AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...
AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...
AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...Amazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesAmazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesAmazon Web Services
 
Infrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationInfrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationAmazon Web Services
 
Infrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationInfrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationAmazon Web Services
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...Amazon Web Services Korea
 
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...Codemotion
 
Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...
Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...
Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...Codemotion
 
Monitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesAmazon Web Services
 
Crossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdfCrossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdfQAware GmbH
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesAtlassian
 

Similar to Wayin devops-2013 (20)

AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
 
Architecting for the Cloud: Best Practices
Architecting for the Cloud: Best PracticesArchitecting for the Cloud: Best Practices
Architecting for the Cloud: Best Practices
 
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloud
 
AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...
AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...
AWS re:Invent 2016: How to Launch a 100K-User Corporate Back Office with Micr...
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
Infrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationInfrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormation
 
Infrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormationInfrastructure Continuous Delivery Using AWS CloudFormation
Infrastructure Continuous Delivery Using AWS CloudFormation
 
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECSWeaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
Weaveworks at AWS re:Invent 2016: Operations Management with Amazon ECS
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
 
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
 
Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...
Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...
Max Körbächer - AWS EKS and beyond master your Kubernetes deployment on AWS -...
 
Monitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar Series
 
Crossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdfCrossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdf
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket Pipelines
 

More from David M. Johnson

More from David M. Johnson (6)

Innovate 2010-oslc-jazz
Innovate 2010-oslc-jazzInnovate 2010-oslc-jazz
Innovate 2010-oslc-jazz
 
Barcamprdu linkeddata
Barcamprdu linkeddataBarcamprdu linkeddata
Barcamprdu linkeddata
 
Whats New In Roller5
Whats New In Roller5Whats New In Roller5
Whats New In Roller5
 
Shindig for Blogs and Wikis
Shindig for Blogs and WikisShindig for Blogs and Wikis
Shindig for Blogs and Wikis
 
Social Software at work
Social Software at workSocial Software at work
Social Software at work
 
Beyond Blogging: Feeds in Action
Beyond Blogging: Feeds in ActionBeyond Blogging: Feeds in Action
Beyond Blogging: Feeds in Action
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 

Wayin devops-2013

  • 1. DevOps at Wayin Orchestration with AWS Cloud Formation David M. Johnson Software Developer - Wayin, Inc. Friday, June 21, 13
  • 2. Agenda •What is Cloud Orchestration • Quick intro to Wayin Hub • Wayin Hub deployment & application architecture • How we scale, deploy and do backups • About Cloud Formation Templates • About vendor lock-in • Designing for orchestration Friday, June 21, 13
  • 3. “Orchestration describes the automated arrangement, coordination, and management of complex computer systems, middleware, and services. It is often discussed as having an inherent intelligence or even implicitly autonomic control, but those are largely aspirations or analogies rather than technical descriptions.” http://en.wikipedia.org/wiki/Orchestration_(computing) Friday, June 21, 13
  • 4. “cloud orchestration = automation + integration + best practices” https://www.ibm.com/developerworks/mydeveloperworks/blogs/9e696bfa-94af-4f5a-ab50- c955cca76fd0/entry/orchestrating_the_cloud_to_simplify_and_accelerate_service_delivery1 Friday, June 21, 13
  • 5. Cloud Orchestration is... Automating the infrastructure needed to provide a computing service so that resources are automatically allocated and de- allocated to meet changing demand Friday, June 21, 13
  • 7. Benefits •Saves money •Saves time •Repeatable, version-able process •Less human intervention •Fewer stupid mistakes Friday, June 21, 13
  • 8. Agenda • What is Cloud Orchestration •Quick intro to Wayin Hub • Wayin Hub deployment & application architecture • How we scale, deploy and do backups • About Cloud Formation Templates • About vendor lock-in • Designing for orchestration Friday, June 21, 13
  • 16. Agenda • What is Cloud Orchestration • Quick intro to Wayin Hub •Wayin Hub deployment & app architecture • How we scale, deploy and do backups • About Cloud Formation Templates • About vendor lock-in • Designing for orchestration Friday, June 21, 13
  • 17. Glossary • EC2 - server virtualization • EBS - mountable block storage • ELB - load balancer • R53 - domain name services (DNS) • S3 - file / bucket storage service • CloudFront - content distribution network (CDN) • Autoscale - automatically stop & start servers • CloudWatch / Cloud Alarms - monitoring & triggering • Security Group - restrict port access on group of instances • SQS - Simple Queuing Service Friday, June 21, 13
  • 19. Ubuntu Jenkins API Security Group S3 R53CloudFront ELB EC2 Browser Front end DB Security Group EBS SQS TwitterFeeds Tracker Security Group Deployment Architecture Cloud Formation // CFN template { "Parameters": { }, "Mappings": { }, "Resources": { } } Friday, June 21, 13
  • 20. Cloud Formation “An easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion. You can use AWS CloudFormation’s sample templates or create your own. Once deployed, you can modify and update the AWS resources in a controlled and predictable way allowing you to version control your AWS infrastructure in the same way as you version control your software. You can deploy and update a template and its associated collection of resources (called a stack) via the AWS Management Console, CloudFormation command line tools or APIs. CloudFormation is available at no additional charge, and you pay only for the AWS resources needed to run your applications.” Friday, June 21, 13
  • 21. Agenda • What is Cloud Orchestration • Quick intro to Wayin Hub • Wayin Hub deployment & application architecture •How we scale, deploy and do backups • About Cloud Formation Templates • About vendor lock-in • Designing for orchestration Friday, June 21, 13
  • 22. Separate auto-scale groups Ubuntu API server WAR Jetty Ubuntu API server WAR Jetty Ubuntu API server WAR Jetty Min: 3 Max: 9 Scale up (quickly): CPU > X% forY minutes Scale down (slowly): CPU < A% for B minutes Ubuntu Cassandra Redis Memcache DB serverUbuntu Cassandra Redis Memcache DB server Min: 2 Max: 2 We decide when to scale up and scale down our DB server instances Ubuntu Tracker WAR Jetty Ubuntu Tracker WAR Jetty Ubuntu Tracker WAR Jetty Min: 2 Max: 20 Scale up (quickly): Queue has > X messages forY minutes Scale down (slowly): Queue has < X message forY minutes Friday, June 21, 13
  • 23. CFN Launches new API server instances 1 Self-configuring API servers DB Security Group S3 ELB CloudInit script downloads the deployment bundle 2 CloudInit scripts find DB servers by Security Group, starts Jetty 3 CloudInit scripts put server into ELB rotation 4 API Security Group CFN Cloud Watch Friday, June 21, 13
  • 24. Self-configuring DB servers DB Security Group S3 CloudInit scripts finds other DB servers by Server Group 3 CloudInit scripts download latest deployment bundle 2Human runs the command to increase DB servers by one 1 Ubuntu New DB server New Cassandra node joins cluster when ready 7 CFN CloudInit scripts write Memcache config, start it 4 MemcacheCloudInit scripts write Redis config, assume first server is master, start it 5 Redis CloudInit scripts write Cassandra config, start it 6 Cassandra Friday, June 21, 13
  • 25. Automated deployment API Security Group GitDeveloper merges code into deployment branch 1 Developer kicks off Jenkins build 2 S3 Jenkins copies bundle to S3 bucket 3 Developer kicks off deployment build 4 Jenkins runs deploy command via SSH 5 On each server the script runs locally, downloads and installs the bundle 6 Ubuntu Jenkins Tracker Security Group Friday, June 21, 13
  • 26. Incremental backups copied to S3 bucket 5 Automated Backups S3 Jenkins runs daily backup job 1 Backup script creates EBS snapshot 3 DB Security Group Cronjob kicks off incremental backups 4 Cassandra snapshot backups happen simultaneously 2 Ubuntu Jenkins EBS Friday, June 21, 13
  • 27. Agenda • What is Cloud Orchestration • Quick intro to Wayin Hub • Wayin Hub deployment & application architecture • How we scale, deploy and do backups •About Cloud Formation Templates • About vendor lock-in • Designing for orchestration Friday, June 21, 13
  • 28. CFN Template skeleton { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Example stack", "Parameters": { }, "Mappings": { }, "Resources": { } } Friday, June 21, 13
  • 29. CFN Parameters { "AWSTemplateFormatVersion": "2010-09-09", "Description": "WayinHub Three Server-type Prod Stack", "Parameters": { "DnsName" : { "Description" : "DNS name to be created", "Type" : "String", "Default": "stack-test" }, "DnsDomain" : { "Description" : "DNS domain to be used", "Type" : "String", "Default": "twt.pl" }, "KeyPair" : { "Description" : "EC2 Key Pair to allow SSH...", "Type" : "String", "Default": "wayin" }, Friday, June 21, 13
  • 30. CFN Parameters "ReleaseBucket" : { "Description" : "S3 Bucket of release bundle", "Type" : "String", "Default": "hub-deployment-release" }, "ApiMinServers" : { "Description" : "Minimum number of API servers", "Type" : "Number", "Default": "2", "MinValue": "2" }, "ApiMaxServers" : { "Description" : "Maximum number API servers", "Type" : "Number", "Default": "5", "MinValue": "2" }, "ApiInstanceType": { "Description": "EC2 instance type for API servers", "Type": "String", "Default": "m1.large", "AllowedValues": ["m1.xlarge", "m3.xlarge"], "ConstraintDescription": "must be a valid EC2 type." }, Friday, June 21, 13
  • 31. CFN Mappings "Mappings": { "AWSRegionArch2AMI": { "us-east-1": { "64": "ami-e864da81" }, "us-west-2": { "64": "ami-50f97060" } }, "TwoAZs": { "us-east-1": { "AZ1" : "us-east-1a", "AZ2" : "us-east-1b" }, "us-west-2": { "AZ1" : "us-west-2a", "AZ2" : "us-west-2b" } } }, Friday, June 21, 13
  • 32. CFN Resources "Resources": { "DbAutoScalingLaunchConfiguration": { "Type": "AWS::AutoScaling::LaunchConfiguration", }, "DbAutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", }, "ApiAutoScalingLaunchConfiguration": { "Type": "AWS::AutoScaling:: LaunchConfiguration", }, "ApiAutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", }, "ApiServerScaleUpPolicy" : { "Type" : "AWS::AutoScaling::ScalingPolicy", }, "ApiServerScaleDownPolicy" : { "Type" : "AWS::AutoScaling::ScalingPolicy", }, "CPUAlarmHigh": { }, "CPUAlarmLow": { }, Friday, June 21, 13
  • 33. CFN Resources "ApiAutoScalingLaunchConfiguration": { "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "UserData": { "Fn::Base64" : { "Fn::Join": [ "", [ "#!/bin/bash -exn", "# Log all output from this scriptn", "exec >/var/log/wayin-bootstrap.log 2>&1n", "# Expose various environmental variables, etc.n", "cat >/etc/profile.d/wayin-env.sh <<EOFn", "export ELB_NAME=", { "Ref" : "ApiElasticLoadBalancer" }, "n", "export EC2_REGION=", { "Ref" : "AWS::Region" }, "n", "export DNS_NAME=", { "Ref" : "DnsName" }, "n", "export DNS_DOMAIN=", { "Ref" : "DnsDomain" }, "n", "EOFn", "# Install various packagesn", "apt-get updaten", "apt-get -y install s3cmdn", "n", "# Download our application filesn", "cd /usr/share/wayinhubn", "s3cmd --config=/etc/s3cfg get s3://",{"Ref":"ReleaseBucket"},"/twithub.tgzn", "tar xf twithub.tgzn", "rm -fr twithub.tgzn", "cd ./init_instancen", "sh ./init_api_server.shn" ]]} }, Friday, June 21, 13
  • 35. Agenda • What is Cloud Orchestration • Quick intro to Wayin Hub • Wayin Hub deployment & application architecture • How we scale, deploy and do backups • About Cloud Formation Templates •About vendor lock-in • Designing for orchestration Friday, June 21, 13
  • 36. Lock-in in automation • Cloud Formation itself is lock-in • Plenty of AWS dependencies in our: • Instance init scripts • Deployment scripts • Backup scripts Friday, June 21, 13
  • 37. No lock-in in app code • Bulk of our code is in our application • AWS dependencies are pluggable Friday, June 21, 13
  • 38. Agenda • What is Cloud Orchestration • Quick intro to Wayin Hub • Wayin Hub deployment & application architecture • How we scale, deploy and do backups • About Cloud Formation Templates • About vendor lock-in •Designing for orchestration Friday, June 21, 13
  • 39. Choose right components • Good • Peer-to-peer • Linear scalability • Bad • Master-slave • “Special” servers • Single point-of-failure Friday, June 21, 13
  • 40. Bootstrap everything • Every instance must self-configure • Make services easy to discover Friday, June 21, 13
  • 41. Keep it simple • Minimize number of different... • Server types • External services • Learning curves Friday, June 21, 13