(Go: >> BACK << -|- >> HOME <<)

SlideShare a Scribd company logo
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 Connect
Atlassian
 
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
Atlassian
 
Building Search for Bitbucket Cloud
Building Search for Bitbucket CloudBuilding Search for Bitbucket Cloud
Building Search for Bitbucket Cloud
Atlassian
 
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
 
Firebase with Android
Firebase with AndroidFirebase with Android
Firebase with Android
Fumihiko Shiroyama
 
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
Atlassian
 
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
Atlassian
 
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
Atlassian
 
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 Parse
DroidConTLV
 
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
Goran 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 Security
Jason 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-ons
Atlassian
 
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
Atlassian
 
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
Matt 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 Lab
Amazon Web Services
 
Node.js and Parse
Node.js and ParseNode.js and Parse
Node.js and Parse
Nicholas McClay
 
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 Android
Magda 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

Caring for the uncared
Caring for the uncaredCaring for the uncared
Cloudsrain
CloudsrainCloudsrain
Solar System Formation/Sun/Comets/Meteors
Solar System Formation/Sun/Comets/MeteorsSolar System Formation/Sun/Comets/Meteors
Solar System Formation/Sun/Comets/Meteors
Bantay's Earth Science!
 
cloud formation,types,causes.
cloud formation,types,causes.cloud formation,types,causes.
cloud formation,types,causes.
Hira Sumbal
 
Identifying types of clouds
Identifying types of cloudsIdentifying types of clouds
Identifying types of clouds
Kim Palocsay
 
Cloud Powerpoint
Cloud PowerpointCloud Powerpoint
Cloud Powerpoint
Websterc
 
Types of Clouds
Types of CloudsTypes of Clouds
Types of Clouds
Lyric Treco-Hanna
 
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
jdlowe78
 
Types of Cloud
Types of CloudTypes of Cloud
Types of Cloud
TonyCassidy
 
Precipitation presentation
Precipitation presentationPrecipitation presentation
Precipitation presentation
Hamza Ali
 
Cloud Types Presentation
Cloud Types PresentationCloud Types Presentation
Cloud Types Presentation
Maribeth Yoder
 

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 Maddox
AWS 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 Practices
Amazon 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 Varia
Amazon 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 Government
Amazon Web Services
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloud
Vladimir 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 Services
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
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
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
Amazon 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 ECS
Weaveworks
 
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
Amazon 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 Series
Amazon Web Services
 
Crossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdfCrossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdf
QAware GmbH
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket Pipelines
Atlassian
 

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

Innovate 2010-oslc-jazz
Innovate 2010-oslc-jazzInnovate 2010-oslc-jazz
Innovate 2010-oslc-jazz
David M. Johnson
 
Barcamprdu linkeddata
Barcamprdu linkeddataBarcamprdu linkeddata
Barcamprdu linkeddata
David M. Johnson
 
Whats New In Roller5
Whats New In Roller5Whats New In Roller5
Whats New In Roller5
David M. Johnson
 
Shindig for Blogs and Wikis
Shindig for Blogs and WikisShindig for Blogs and Wikis
Shindig for Blogs and Wikis
David M. Johnson
 
Social Software at work
Social Software at workSocial Software at work
Social Software at work
David M. Johnson
 
Beyond Blogging: Feeds in Action
Beyond Blogging: Feeds in ActionBeyond Blogging: Feeds in Action
Beyond Blogging: Feeds in Action
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

Supercomputing from the Desktop Workstation
Supercomputingfrom the Desktop WorkstationSupercomputingfrom the Desktop Workstation
Supercomputing from the Desktop Workstation
Larry Smarr
 
Leveraging AI for Software Developer Productivity.pptx
Leveraging AI for Software Developer Productivity.pptxLeveraging AI for Software Developer Productivity.pptx
Leveraging AI for Software Developer Productivity.pptx
petabridge
 
Blockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre timesBlockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre times
anupriti
 
STKI Israeli Market Study 2024 final v1
STKI Israeli Market Study 2024 final  v1STKI Israeli Market Study 2024 final  v1
STKI Israeli Market Study 2024 final v1
Dr. Jimmy Schwarzkopf
 
Getting Started Using the National Research Platform
Getting Started Using the National Research PlatformGetting Started Using the National Research Platform
Getting Started Using the National Research Platform
Larry Smarr
 
Metadata Lakes for Next-Gen AI/ML - Datastrato
Metadata Lakes for Next-Gen AI/ML - DatastratoMetadata Lakes for Next-Gen AI/ML - Datastrato
Metadata Lakes for Next-Gen AI/ML - Datastrato
Zilliz
 
Supplier Sourcing Presentation - Gay De La Cruz.pdf
Supplier Sourcing Presentation - Gay De La Cruz.pdfSupplier Sourcing Presentation - Gay De La Cruz.pdf
Supplier Sourcing Presentation - Gay De La Cruz.pdf
gaydlc2513
 
ASIMOV: Enterprise RAG at Dialog Axiata PLC
ASIMOV: Enterprise RAG at Dialog Axiata PLCASIMOV: Enterprise RAG at Dialog Axiata PLC
ASIMOV: Enterprise RAG at Dialog Axiata PLC
Zilliz
 
Chapter 3 - Static Testing (Review) V4.0
Chapter 3 - Static Testing (Review) V4.0Chapter 3 - Static Testing (Review) V4.0
Chapter 3 - Static Testing (Review) V4.0
Neeraj Kumar Singh
 
Day 5 - Making your Automation Journey Continuous and Beneficial.pdf
Day 5 - Making your Automation Journey Continuous and Beneficial.pdfDay 5 - Making your Automation Journey Continuous and Beneficial.pdf
Day 5 - Making your Automation Journey Continuous and Beneficial.pdf
UiPathCommunity
 
Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0
Neeraj Kumar Singh
 
Multimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with MilvusMultimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with Milvus
Zilliz
 
CNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My Identity
CNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My IdentityCNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My Identity
CNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My Identity
Cynthia Thomas
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
Larry Smarr
 
HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)
Alpen-Adria-Universität
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Database Management Myths for Developers
Database Management Myths for DevelopersDatabase Management Myths for Developers
Database Management Myths for Developers
John Sterrett
 
Lessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien RiouxLessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien Rioux
crioux1
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Product Listing Optimization Presentation - Gay De La Cruz.pdf
Product Listing Optimization Presentation - Gay De La Cruz.pdfProduct Listing Optimization Presentation - Gay De La Cruz.pdf
Product Listing Optimization Presentation - Gay De La Cruz.pdf
gaydlc2513
 

Recently uploaded (20)

Supercomputing from the Desktop Workstation
Supercomputingfrom the Desktop WorkstationSupercomputingfrom the Desktop Workstation
Supercomputing from the Desktop Workstation
 
Leveraging AI for Software Developer Productivity.pptx
Leveraging AI for Software Developer Productivity.pptxLeveraging AI for Software Developer Productivity.pptx
Leveraging AI for Software Developer Productivity.pptx
 
Blockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre timesBlockchain and Cyber Defense Strategies in new genre times
Blockchain and Cyber Defense Strategies in new genre times
 
STKI Israeli Market Study 2024 final v1
STKI Israeli Market Study 2024 final  v1STKI Israeli Market Study 2024 final  v1
STKI Israeli Market Study 2024 final v1
 
Getting Started Using the National Research Platform
Getting Started Using the National Research PlatformGetting Started Using the National Research Platform
Getting Started Using the National Research Platform
 
Metadata Lakes for Next-Gen AI/ML - Datastrato
Metadata Lakes for Next-Gen AI/ML - DatastratoMetadata Lakes for Next-Gen AI/ML - Datastrato
Metadata Lakes for Next-Gen AI/ML - Datastrato
 
Supplier Sourcing Presentation - Gay De La Cruz.pdf
Supplier Sourcing Presentation - Gay De La Cruz.pdfSupplier Sourcing Presentation - Gay De La Cruz.pdf
Supplier Sourcing Presentation - Gay De La Cruz.pdf
 
ASIMOV: Enterprise RAG at Dialog Axiata PLC
ASIMOV: Enterprise RAG at Dialog Axiata PLCASIMOV: Enterprise RAG at Dialog Axiata PLC
ASIMOV: Enterprise RAG at Dialog Axiata PLC
 
Chapter 3 - Static Testing (Review) V4.0
Chapter 3 - Static Testing (Review) V4.0Chapter 3 - Static Testing (Review) V4.0
Chapter 3 - Static Testing (Review) V4.0
 
Day 5 - Making your Automation Journey Continuous and Beneficial.pdf
Day 5 - Making your Automation Journey Continuous and Beneficial.pdfDay 5 - Making your Automation Journey Continuous and Beneficial.pdf
Day 5 - Making your Automation Journey Continuous and Beneficial.pdf
 
Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0Chapter 2 - Testing Throughout SDLC V4.0
Chapter 2 - Testing Throughout SDLC V4.0
 
Multimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with MilvusMultimodal Retrieval Augmented Generation (RAG) with Milvus
Multimodal Retrieval Augmented Generation (RAG) with Milvus
 
CNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My Identity
CNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My IdentityCNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My Identity
CNSCon 2024 Lightning Talk: Don’t Make Me Impersonate My Identity
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
 
HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Database Management Myths for Developers
Database Management Myths for DevelopersDatabase Management Myths for Developers
Database Management Myths for Developers
 
Lessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien RiouxLessons Of Binary Analysis - Christien Rioux
Lessons Of Binary Analysis - Christien Rioux
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Product Listing Optimization Presentation - Gay De La Cruz.pdf
Product Listing Optimization Presentation - Gay De La Cruz.pdfProduct Listing Optimization Presentation - Gay De La Cruz.pdf
Product Listing Optimization Presentation - Gay De La Cruz.pdf
 

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