SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
HERDING CATS IN THE CLOUD
MAINTAINING OPERATIONAL SANITY IN A CLOUDY, DEVOPS WORLD
Dewey Sasser
Consulting Cloud Architect
Algined Software
ABOUT THIS TALK
Public Clouds can give developers unprecedented levels
of power
“With Great Power Comes Great Responsibility”
You must structure your development and production
deployment process to use this power well
How do we do this? Experience from a large deployment
ABOUT DEWEY
Distributed Application Developer for 20 years
Doing build/release/software process for about that long
Accidentally doing devops out of self-defense
Wandered in operations about 5 years ago
Built some private cloud for dev
Built some private cloud for prod
Starting architecting using public cloud for everything
ABOUT THE COMPANY
Company Policy: don’t talk for the company
Therefore, these slides don't mention The Company.
There is no information here that is not otherwise publicly available.
Whoever it is, I don't speak for them
Major Gaming Company, multiple AAA titles
History in MMOs
All in on mobile now
ROADMAP
What we Did
What we're Doing
What we might do Next
WE'RE COMING FROM...
Traditionally MMOs in colo
Windows (ugh!) based servers
All in cloud now: mobile, cloud, Docker, MongoDB, Phoenix
Servers, Chaos Monkey, (...other popular buzzwords)
GOALS
100% uptime: players want to play
No more: Patch days, "Down for maintenance"
Profit ( = revenue – cost)
SCALE
$100ks of monthly spend
Many hundreds of instances
Around 500TB of monthly transfer
Peak to 12k tps (for a single title)
Around 1 PB of storage
Approximately 5 billion I/Os monthly
USAGE/LOAD PATTERN
Traditional SAS assumes starting small and scaling. Scaling
quickly is a problem, but a good problem.
Games are weird
Peak usage is release day, it tails off after that
You must be able to scale out of the gate. Users that cannot use
it the first day will often never be back!
PLATFORMS
Swarm pattern
Pods of services
Python/NGINX
Batch Processing pattern
Vertica
Elastic Map/Reduce
Work Queue (Kafka)
NoSQL (MongoDB – ugh!)
Gaming Platform
CoreOS/Docker
Strong Phoenix Server pattern
PROCESS/SOCIAL APPROACH
Must be (people) scalable
Working on 3 new games at any one time
Still supporting old games
Supporting services for the larger company
Don't create a bottleneck
“I'm waiting for a VM”. Bad process. No biscuit.
There are too many controls to get least privilege right!
Validation, not prevention (WHAT???)
POLICIES ARE GREAT, BUT...
They change over time
Are hard to get exactly right up front
Always have exceptions
The space of AWS permissions is HUGE. Permutations are deadly.
So...measure what you care about.
What you care about will change over time.
Trust...and verify
POWER TO THE PEOPLE (OR DEVELOPERS)
Don't gate productivity on fine points of arbitrary policies
Keep responsibility with dev team
domain expertise
put the pain where the control is
Stuff gets automated!!!
APPROACH
Cloud Environment
Multiple accounts (~ 2 dozen right now)
1 central services account
1 account per title
All environments in different VPCs (Dev, QA, Perf, Staging, Prod)
DEV TEAMS RESPONSIBLE FOR...
Developing, validating, deploying and running their games
Responding to production issues
PRODUCTION cost control
CENTRAL "CLOUD SERVICES" TEAM
“Owns”
Metrics, Monitoring, Alerting
Enables use of central services & good practices
Composable components used by the teams
Native packaging -- make it easy
Manages good practices
Their job is to be cloud experts
But they're not the only ones in the company
LOTS of conversation!
Automates everything non-project specific
New account creation, ...
OWNERSHIP/RESPONSIBILITY
Clearly align authority and responsibility.
If a Dev is getting up in the middle of the night to fix
something, they have to have full power to fix it.
On a related note, that means the teams get approval
control over a great deal
GREAT, HOW?
CRITICAL TOOL: RULES & WORKFLOWS
Custom developed rules/workflow system
Rules are small, stateless snippets of Python code that
trigger workflows
But can be company public and extensible by pull request
Workflows are potentially long running, stateful
operations that trigger list of changes.
Can also be company public, but tighter controls around
changes.
Changes can be reviewed manually or automatically.
CRITICAL TOOL: RULES & WORKFLOWS
Runtime is HIGHLY privileged – keep it tight!
This tool can destroy the world – but it
actually keeps it running.
(you have everything automated to recreate the
world, right?)
USER ACCESS CONTROL
Automate user management/creation from source in GIT
Define membership rules as intersection of desired group and
account characteristics (MFA anyone?)
Rules/Workflow enforces MFA. Central team doesn't have to
Remove your MFA, get demoted to “User”
USER ACCESS CONTROL
Don't try for least privilege – you won't get it right and it will be different tomorrow
There are a small number of access levels and people are sorted into those levels per
account
User
ReadOnly (Manager)
Finance
Developer
DevOps
FullAdmin
USER ACCESS CONTROL NG
Federation? Yes, but there are issues
SSO? Likewise
We'll probably go to a SAML based federated MFA
gateway
We might go to AD based access
NETWORK ACCESS CONTROL
VPN into the cloud
Bastion hosts
Private VPCs
Shared root keys
Yup, shared.
No user management on individual nodes
Cattle, not cats
COST CONTROL
It's a thing.
It's a really BIG THING!
COST CONTROL
Tagging policy
Owner (who to go to)
Environment (Dev, Prod, QA, …)
Project (Cost Center – DO NOT USE THIS FOR AUTOMATIOLN!)
Enforce tagging by rules/workflow process
Measure compliance, escalate to GM
Kill off instances that don't comply
With lots of warning
Now tools will give good data
CloudHealth (there are others)
WHAT YOU CARE ABOUT WITH
COSTS (AWS SPECIFIC)
Reserved Instances
Go for about 80% of always on – Leave room to optimize
Periodically review it and move RIs
Turn off developer systems overnight – small but significant.
Stay on current generation (instance type and OS)
Better performance/$, results in lower $
Pay attention to traffic – inter AZ as well as outbound.
Compression!
Do cost estimates based on loads – have guidelines
ACTUALLY HERDING THE CATS
Devops Working Group
Senior engineers
No managers: If you can't put hands on a keyboard to fix something going
wrong, this is not the place for you
Things are brought up, opinions are formed. Don’t attribute to individuals.
Discuss cross-cutting needs
GREAT place for the central cloud team to mine for new work
ACTUALLY HERDING THE CATS
Central Cloud Team
Is ½ service organization and ½ cloud owner
Be nice, or the cats will go away and ignore you.
The cats are your scouts and your customers. Listen to them
so you know what's important.
RESULTS
PROs
Maximizes velocity, agility
Scalable
Can try out different working
patterns
CONs
Inconsistent
Have to be careful about
responsibilities
You always have some weeds in
the garden
You're always trying to keep up
with developers
But at least you know it
And you're not in the way
RESOURCES
AWS Enterprise Support
Expensive, but good
Cloud based services – lots of options here
OpEX, not CapEX (except for Ris?)
Metrics (Librato)
Cost Exploration (CloudHealth)
TOOLS
Automated Rules/Workflow
Github Enterprise – it's Github that makes your security geeks happy.
Docker
Quay (Private Docker Hub)
Jenkins (for network Cron)
Chef (not much use any more)
NEXT STEPS
Cloud Services Liaisons
Send a member of cloud central to each team's sprint planning
"Lunch and Learn"
Goes both ways -- NOT just the cloud central team
More Policy Automation!!!
LESSONS LEARNED
Start when you're small – fixing the problem
after the fact is much harder
Automate everything, even when you don't “have”
to – it makes things easier to change
Have a Central Services Team to deal with cross-
cutting concerns
Put the power in the hands of people who can
make things better
QUESTIONS?
PHOTO CREDITS
• https://www.flickr.com/photos/pelican/6180235561
• https://www.youtube.com/watch?v=puijCrETsrY
• https://www.flickr.com/photos/afu007/2398217277
• https://www.flickr.com/photos/jurvetson/5419597546
• https://commons.wikimedia.org/wiki/File:Catch_cats_3.JPG
• https://pixabay.com/en/photos/pet/?cat=industry
• https://commons.wikimedia.org/wiki/File:White_Cat_and_a_mouse.jpg
• https://www.flickr.com/photos/dan4th/2839915202
• https://pixabay.com/en/cat-annoyed-mauzen-teeth-stress-1370024/
• https://et.wikipedia.org/wiki/Pilt:PR_Siriuksen_EeroCurl_ACS_ds_09_24_1.JPG
• https://commons.wikimedia.org/wiki/File:PR_Siriuksen_EeroCurl_ACS_ds_09_24_2.JPG
• https://commons.wikimedia.org/wiki/File:Tunnel_cat_(6414878527).jpg
• https://www.flickr.com/photos/petsadviser-pix/8652859754
• https://commons.wikimedia.org/wiki/File:Antu_mongodb.svg
• https://www.flickr.com/photos/michael-broad/4642745499
• http://maxpixel.freegreatpicture.com/Cat-Animal-Kennel-Cats-Eyes-Cute-Cat-Animals-
269047
• http://maxpixel.freegreatpicture.com/Cat-Kitty-Kitten-Cute-Pipe-Curious-Tube-Feline-
568593
• https://www.flickr.com/photos/santamonicamtns/16613805934
• http://maxpixel.freegreatpicture.com/Surprise-Kitten-Kittens-Cat-Money-Animals-Pet-
602944
• https://www.pexels.com/photo/animals-cat-pets-7792/
• https://commons.wikimedia.org/wiki/File:Cat_into_the_box.jpg
• https://commons.wikimedia.org/wiki/File:White_cat_over_water_2012.jpg
• https://pixabay.com/en/black-cat-reading-white-paper-33843/
• https://pixabay.com/en/photos/hidden/
• https://www.flickr.com/photos/editor/1195653047
• https://en.wikipedia.org/wiki/File:Exponential_Decay_Function.png
• Other Photos by Chris Williams, Dewey Sasser, and Jennifer Moore
All photos found by Google Images marked for commercial reuse, or by personal permission

Mais conteúdo relacionado

Mais procurados

Chaos Engineering – why we should all practice breaking things on purpose by ...
Chaos Engineering – why we should all practice breaking things on purpose by ...Chaos Engineering – why we should all practice breaking things on purpose by ...
Chaos Engineering – why we should all practice breaking things on purpose by ...Alex Cachia
 
IMPLEMENTATION OF SCALED AGILE AND DEVOPS
IMPLEMENTATION OF SCALED AGILE AND DEVOPSIMPLEMENTATION OF SCALED AGILE AND DEVOPS
IMPLEMENTATION OF SCALED AGILE AND DEVOPSSQLI DIGITAL EXPERIENCE
 
Embrace chatOps, stop installing deployment software
Embrace chatOps, stop installing deployment softwareEmbrace chatOps, stop installing deployment software
Embrace chatOps, stop installing deployment softwareGeshan Manandhar
 
WSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of view
WSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of viewWSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of view
WSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of viewWSO2
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale ArchitectureRightScale
 
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...MeasureWorks
 
Open is as Open does
Open is as Open doesOpen is as Open does
Open is as Open doesAndrew Shafer
 
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows ConferenceWinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows ConferenceWinOps Conf
 
DevOps Transformations
DevOps TransformationsDevOps Transformations
DevOps TransformationsErnest Mueller
 
The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)dev2ops
 
Own Your Own Impact: Incident Response at Airbnb [FutureStack16]
Own Your Own Impact: Incident Response at Airbnb [FutureStack16]Own Your Own Impact: Incident Response at Airbnb [FutureStack16]
Own Your Own Impact: Incident Response at Airbnb [FutureStack16]New Relic
 
Agile2015: Introduction to DevOps with Chocolate and Lego Game
Agile2015: Introduction to DevOps with Chocolate and Lego GameAgile2015: Introduction to DevOps with Chocolate and Lego Game
Agile2015: Introduction to DevOps with Chocolate and Lego GameDana Pylayeva
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at FrosconKris Buytaert
 
Building Internet-scale Applications
Building Internet-scale ApplicationsBuilding Internet-scale Applications
Building Internet-scale ApplicationsGaveen Prabhasara
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447Steve Poole
 
All Change! How the new economics of Cloud will make you think differently ab...
All Change! How the new economics of Cloud will make you think differently ab...All Change! How the new economics of Cloud will make you think differently ab...
All Change! How the new economics of Cloud will make you think differently ab...Steve Poole
 
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf
 
Using AWS, Eucalyptus and Chef for the Optimal Hybrid Cloud
Using AWS, Eucalyptus and Chef for the Optimal Hybrid CloudUsing AWS, Eucalyptus and Chef for the Optimal Hybrid Cloud
Using AWS, Eucalyptus and Chef for the Optimal Hybrid Clouddboze
 

Mais procurados (20)

Chaos Engineering – why we should all practice breaking things on purpose by ...
Chaos Engineering – why we should all practice breaking things on purpose by ...Chaos Engineering – why we should all practice breaking things on purpose by ...
Chaos Engineering – why we should all practice breaking things on purpose by ...
 
IMPLEMENTATION OF SCALED AGILE AND DEVOPS
IMPLEMENTATION OF SCALED AGILE AND DEVOPSIMPLEMENTATION OF SCALED AGILE AND DEVOPS
IMPLEMENTATION OF SCALED AGILE AND DEVOPS
 
Embrace chatOps, stop installing deployment software
Embrace chatOps, stop installing deployment softwareEmbrace chatOps, stop installing deployment software
Embrace chatOps, stop installing deployment software
 
WSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of view
WSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of viewWSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of view
WSO2Con EU 2015: Keynote - Cloud Native Apps… from a user point of view
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
 
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
MeasureWorks - Velocity Conference Europe 2012 - a Web Performance dashboard ...
 
Open is as Open does
Open is as Open doesOpen is as Open does
Open is as Open does
 
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows ConferenceWinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
 
SRE From Scratch
SRE From ScratchSRE From Scratch
SRE From Scratch
 
DevOps Transformations
DevOps TransformationsDevOps Transformations
DevOps Transformations
 
The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)The History of DevOps (and what you need to do about it)
The History of DevOps (and what you need to do about it)
 
Own Your Own Impact: Incident Response at Airbnb [FutureStack16]
Own Your Own Impact: Incident Response at Airbnb [FutureStack16]Own Your Own Impact: Incident Response at Airbnb [FutureStack16]
Own Your Own Impact: Incident Response at Airbnb [FutureStack16]
 
Agile2015: Introduction to DevOps with Chocolate and Lego Game
Agile2015: Introduction to DevOps with Chocolate and Lego GameAgile2015: Introduction to DevOps with Chocolate and Lego Game
Agile2015: Introduction to DevOps with Chocolate and Lego Game
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Building Internet-scale Applications
Building Internet-scale ApplicationsBuilding Internet-scale Applications
Building Internet-scale Applications
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447
 
All Change! How the new economics of Cloud will make you think differently ab...
All Change! How the new economics of Cloud will make you think differently ab...All Change! How the new economics of Cloud will make you think differently ab...
All Change! How the new economics of Cloud will make you think differently ab...
 
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps successWinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
WinOps Conf 2015 - John Rakowski - Militarise It for #DevOps success
 
Epidemic Failures
Epidemic FailuresEpidemic Failures
Epidemic Failures
 
Using AWS, Eucalyptus and Chef for the Optimal Hybrid Cloud
Using AWS, Eucalyptus and Chef for the Optimal Hybrid CloudUsing AWS, Eucalyptus and Chef for the Optimal Hybrid Cloud
Using AWS, Eucalyptus and Chef for the Optimal Hybrid Cloud
 

Semelhante a Herding cats in the Cloud

UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015Christopher Curtin
 
Moving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesMoving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesKP Kaiser
 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedis Labs
 
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...Amazon Web Services
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018Christophe Rochefolle
 
quicloud Apr 20 2010 Boulder New Tech Presentation
quicloud Apr 20 2010 Boulder New Tech Presentationquicloud Apr 20 2010 Boulder New Tech Presentation
quicloud Apr 20 2010 Boulder New Tech PresentationrICh morrow
 
10 tips for success with private cloud
10 tips for success with private cloud10 tips for success with private cloud
10 tips for success with private clouddmarelia
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)VMware Tanzu
 
AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...
AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...
AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...DiUS
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsMatteo Emili
 
Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)VMware Tanzu
 
Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2VMware Tanzu
 
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...apidays
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...eZ Systems
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudMark Hinkle
 
Sai devops - the art of being specializing generalist
Sai   devops - the art of being specializing generalistSai   devops - the art of being specializing generalist
Sai devops - the art of being specializing generalistOdd-e
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAmazon Web Services
 
Security for AWS : Journey to Least Privilege (update)
Security for AWS : Journey to Least Privilege (update)Security for AWS : Journey to Least Privilege (update)
Security for AWS : Journey to Least Privilege (update)dhubbard858
 
Security for AWS: Journey to Least Privilege
Security for AWS: Journey to Least PrivilegeSecurity for AWS: Journey to Least Privilege
Security for AWS: Journey to Least PrivilegeLacework
 

Semelhante a Herding cats in the Cloud (20)

UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Moving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed TracesMoving to Microservices with the Help of Distributed Traces
Moving to Microservices with the Help of Distributed Traces
 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
 
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
AWS Summit Sydney 2014 | The Path to Business Agility for Vodafone: How Amazo...
 
Micro services
Micro servicesMicro services
Micro services
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018
 
quicloud Apr 20 2010 Boulder New Tech Presentation
quicloud Apr 20 2010 Boulder New Tech Presentationquicloud Apr 20 2010 Boulder New Tech Presentation
quicloud Apr 20 2010 Boulder New Tech Presentation
 
10 tips for success with private cloud
10 tips for success with private cloud10 tips for success with private cloud
10 tips for success with private cloud
 
Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)Evolving to Cloud-Native - Nate Schutta (2/2)
Evolving to Cloud-Native - Nate Schutta (2/2)
 
AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...
AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...
AWS Summit Melbourne 2014 | The Path to Business Agility for Vodafone: How Am...
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)Evolving to Cloud-Native - Nate Schutta (1/2)
Evolving to Cloud-Native - Nate Schutta (1/2)
 
Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2Evolving to Cloud-Native - Nate Schutta 1/2
Evolving to Cloud-Native - Nate Schutta 1/2
 
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
 
Sai devops - the art of being specializing generalist
Sai   devops - the art of being specializing generalistSai   devops - the art of being specializing generalist
Sai devops - the art of being specializing generalist
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
 
Security for AWS : Journey to Least Privilege (update)
Security for AWS : Journey to Least Privilege (update)Security for AWS : Journey to Least Privilege (update)
Security for AWS : Journey to Least Privilege (update)
 
Security for AWS: Journey to Least Privilege
Security for AWS: Journey to Least PrivilegeSecurity for AWS: Journey to Least Privilege
Security for AWS: Journey to Least Privilege
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 

Herding cats in the Cloud

  • 1. HERDING CATS IN THE CLOUD MAINTAINING OPERATIONAL SANITY IN A CLOUDY, DEVOPS WORLD Dewey Sasser Consulting Cloud Architect Algined Software
  • 2. ABOUT THIS TALK Public Clouds can give developers unprecedented levels of power “With Great Power Comes Great Responsibility” You must structure your development and production deployment process to use this power well How do we do this? Experience from a large deployment
  • 3. ABOUT DEWEY Distributed Application Developer for 20 years Doing build/release/software process for about that long Accidentally doing devops out of self-defense Wandered in operations about 5 years ago Built some private cloud for dev Built some private cloud for prod Starting architecting using public cloud for everything
  • 4. ABOUT THE COMPANY Company Policy: don’t talk for the company Therefore, these slides don't mention The Company. There is no information here that is not otherwise publicly available. Whoever it is, I don't speak for them Major Gaming Company, multiple AAA titles History in MMOs All in on mobile now
  • 5. ROADMAP What we Did What we're Doing What we might do Next
  • 6. WE'RE COMING FROM... Traditionally MMOs in colo Windows (ugh!) based servers All in cloud now: mobile, cloud, Docker, MongoDB, Phoenix Servers, Chaos Monkey, (...other popular buzzwords)
  • 7. GOALS 100% uptime: players want to play No more: Patch days, "Down for maintenance" Profit ( = revenue – cost)
  • 8. SCALE $100ks of monthly spend Many hundreds of instances Around 500TB of monthly transfer Peak to 12k tps (for a single title) Around 1 PB of storage Approximately 5 billion I/Os monthly
  • 9. USAGE/LOAD PATTERN Traditional SAS assumes starting small and scaling. Scaling quickly is a problem, but a good problem. Games are weird Peak usage is release day, it tails off after that You must be able to scale out of the gate. Users that cannot use it the first day will often never be back!
  • 10. PLATFORMS Swarm pattern Pods of services Python/NGINX Batch Processing pattern Vertica Elastic Map/Reduce Work Queue (Kafka) NoSQL (MongoDB – ugh!) Gaming Platform CoreOS/Docker Strong Phoenix Server pattern
  • 11. PROCESS/SOCIAL APPROACH Must be (people) scalable Working on 3 new games at any one time Still supporting old games Supporting services for the larger company Don't create a bottleneck “I'm waiting for a VM”. Bad process. No biscuit. There are too many controls to get least privilege right! Validation, not prevention (WHAT???)
  • 12. POLICIES ARE GREAT, BUT... They change over time Are hard to get exactly right up front Always have exceptions The space of AWS permissions is HUGE. Permutations are deadly. So...measure what you care about. What you care about will change over time. Trust...and verify
  • 13. POWER TO THE PEOPLE (OR DEVELOPERS) Don't gate productivity on fine points of arbitrary policies Keep responsibility with dev team domain expertise put the pain where the control is Stuff gets automated!!!
  • 14. APPROACH Cloud Environment Multiple accounts (~ 2 dozen right now) 1 central services account 1 account per title All environments in different VPCs (Dev, QA, Perf, Staging, Prod)
  • 15. DEV TEAMS RESPONSIBLE FOR... Developing, validating, deploying and running their games Responding to production issues PRODUCTION cost control
  • 16. CENTRAL "CLOUD SERVICES" TEAM “Owns” Metrics, Monitoring, Alerting Enables use of central services & good practices Composable components used by the teams Native packaging -- make it easy Manages good practices Their job is to be cloud experts But they're not the only ones in the company LOTS of conversation! Automates everything non-project specific New account creation, ...
  • 17. OWNERSHIP/RESPONSIBILITY Clearly align authority and responsibility. If a Dev is getting up in the middle of the night to fix something, they have to have full power to fix it. On a related note, that means the teams get approval control over a great deal
  • 19. CRITICAL TOOL: RULES & WORKFLOWS Custom developed rules/workflow system Rules are small, stateless snippets of Python code that trigger workflows But can be company public and extensible by pull request Workflows are potentially long running, stateful operations that trigger list of changes. Can also be company public, but tighter controls around changes. Changes can be reviewed manually or automatically.
  • 20. CRITICAL TOOL: RULES & WORKFLOWS Runtime is HIGHLY privileged – keep it tight! This tool can destroy the world – but it actually keeps it running. (you have everything automated to recreate the world, right?)
  • 21. USER ACCESS CONTROL Automate user management/creation from source in GIT Define membership rules as intersection of desired group and account characteristics (MFA anyone?) Rules/Workflow enforces MFA. Central team doesn't have to Remove your MFA, get demoted to “User”
  • 22. USER ACCESS CONTROL Don't try for least privilege – you won't get it right and it will be different tomorrow There are a small number of access levels and people are sorted into those levels per account User ReadOnly (Manager) Finance Developer DevOps FullAdmin
  • 23. USER ACCESS CONTROL NG Federation? Yes, but there are issues SSO? Likewise We'll probably go to a SAML based federated MFA gateway We might go to AD based access
  • 24. NETWORK ACCESS CONTROL VPN into the cloud Bastion hosts Private VPCs Shared root keys Yup, shared. No user management on individual nodes Cattle, not cats
  • 25. COST CONTROL It's a thing. It's a really BIG THING!
  • 26. COST CONTROL Tagging policy Owner (who to go to) Environment (Dev, Prod, QA, …) Project (Cost Center – DO NOT USE THIS FOR AUTOMATIOLN!) Enforce tagging by rules/workflow process Measure compliance, escalate to GM Kill off instances that don't comply With lots of warning Now tools will give good data CloudHealth (there are others)
  • 27. WHAT YOU CARE ABOUT WITH COSTS (AWS SPECIFIC) Reserved Instances Go for about 80% of always on – Leave room to optimize Periodically review it and move RIs Turn off developer systems overnight – small but significant. Stay on current generation (instance type and OS) Better performance/$, results in lower $ Pay attention to traffic – inter AZ as well as outbound. Compression! Do cost estimates based on loads – have guidelines
  • 28. ACTUALLY HERDING THE CATS Devops Working Group Senior engineers No managers: If you can't put hands on a keyboard to fix something going wrong, this is not the place for you Things are brought up, opinions are formed. Don’t attribute to individuals. Discuss cross-cutting needs GREAT place for the central cloud team to mine for new work
  • 29. ACTUALLY HERDING THE CATS Central Cloud Team Is ½ service organization and ½ cloud owner Be nice, or the cats will go away and ignore you. The cats are your scouts and your customers. Listen to them so you know what's important.
  • 30. RESULTS PROs Maximizes velocity, agility Scalable Can try out different working patterns CONs Inconsistent Have to be careful about responsibilities You always have some weeds in the garden You're always trying to keep up with developers But at least you know it And you're not in the way
  • 31. RESOURCES AWS Enterprise Support Expensive, but good Cloud based services – lots of options here OpEX, not CapEX (except for Ris?) Metrics (Librato) Cost Exploration (CloudHealth)
  • 32. TOOLS Automated Rules/Workflow Github Enterprise – it's Github that makes your security geeks happy. Docker Quay (Private Docker Hub) Jenkins (for network Cron) Chef (not much use any more)
  • 33. NEXT STEPS Cloud Services Liaisons Send a member of cloud central to each team's sprint planning "Lunch and Learn" Goes both ways -- NOT just the cloud central team More Policy Automation!!!
  • 34. LESSONS LEARNED Start when you're small – fixing the problem after the fact is much harder Automate everything, even when you don't “have” to – it makes things easier to change Have a Central Services Team to deal with cross- cutting concerns Put the power in the hands of people who can make things better
  • 36. PHOTO CREDITS • https://www.flickr.com/photos/pelican/6180235561 • https://www.youtube.com/watch?v=puijCrETsrY • https://www.flickr.com/photos/afu007/2398217277 • https://www.flickr.com/photos/jurvetson/5419597546 • https://commons.wikimedia.org/wiki/File:Catch_cats_3.JPG • https://pixabay.com/en/photos/pet/?cat=industry • https://commons.wikimedia.org/wiki/File:White_Cat_and_a_mouse.jpg • https://www.flickr.com/photos/dan4th/2839915202 • https://pixabay.com/en/cat-annoyed-mauzen-teeth-stress-1370024/ • https://et.wikipedia.org/wiki/Pilt:PR_Siriuksen_EeroCurl_ACS_ds_09_24_1.JPG • https://commons.wikimedia.org/wiki/File:PR_Siriuksen_EeroCurl_ACS_ds_09_24_2.JPG • https://commons.wikimedia.org/wiki/File:Tunnel_cat_(6414878527).jpg • https://www.flickr.com/photos/petsadviser-pix/8652859754 • https://commons.wikimedia.org/wiki/File:Antu_mongodb.svg • https://www.flickr.com/photos/michael-broad/4642745499 • http://maxpixel.freegreatpicture.com/Cat-Animal-Kennel-Cats-Eyes-Cute-Cat-Animals- 269047 • http://maxpixel.freegreatpicture.com/Cat-Kitty-Kitten-Cute-Pipe-Curious-Tube-Feline- 568593 • https://www.flickr.com/photos/santamonicamtns/16613805934 • http://maxpixel.freegreatpicture.com/Surprise-Kitten-Kittens-Cat-Money-Animals-Pet- 602944 • https://www.pexels.com/photo/animals-cat-pets-7792/ • https://commons.wikimedia.org/wiki/File:Cat_into_the_box.jpg • https://commons.wikimedia.org/wiki/File:White_cat_over_water_2012.jpg • https://pixabay.com/en/black-cat-reading-white-paper-33843/ • https://pixabay.com/en/photos/hidden/ • https://www.flickr.com/photos/editor/1195653047 • https://en.wikipedia.org/wiki/File:Exponential_Decay_Function.png • Other Photos by Chris Williams, Dewey Sasser, and Jennifer Moore All photos found by Google Images marked for commercial reuse, or by personal permission