design reviews for operations - velocity europe 2014

38
Design Review Best Practices Mandi Walls Consulting Director, EMEA, Chef [email protected] Velocity Barcelona 2014

Upload: mandi-walls

Post on 02-Jul-2015

1.940 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Design Reviews for Operations - Velocity Europe 2014

Design Review Best Practices

Mandi Walls

Consulting Director, EMEA, Chef

[email protected]

Velocity Barcelona 2014

Page 2: Design Reviews for Operations - Velocity Europe 2014

whoami

• Mandi Walls

• Professional Services for Chef

• @lnxchk

Page 3: Design Reviews for Operations - Velocity Europe 2014

Why Design Reviews?

• Your opportunity to get a look at an incoming project

• Hopefully early enough to have influence!

Talk to development before it’s too late to make changes to support Ops

Page 4: Design Reviews for Operations - Velocity Europe 2014

What You Want

• Maximize the conversation

• Get a good feel for important details

• Don’t get too in the weeds, focus on what alleviates the most

headaches

Page 5: Design Reviews for Operations - Velocity Europe 2014

Set Your Goals

• Initial deployment of the application

• Runtime management and day-to-day operations

• Releases and upgrades

• Handling Outages

Page 6: Design Reviews for Operations - Velocity Europe 2014

Have A Checklist

• Combination of global requirements and needs specific to the project

• Doesn’t have to be exhaustive, or hit everything the first time

• Sample: http://bit.ly/lnxchk_reviewcklist

• Sets goals by layer

• You can also set goals by activity

• It’s a living document

• Make changes as you learn, launch more projects

Page 7: Design Reviews for Operations - Velocity Europe 2014

Some Application

FE

Web Tier

LB

App Tier

External

Services

BIData Tier

Page 8: Design Reviews for Operations - Velocity Europe 2014

Investigating Layer by Layer

• Different components will require different focus!

• Some topics will hit all layers

Page 9: Design Reviews for Operations - Velocity Europe 2014

Frontend Entry Point

• To look at during deploy

• Gathering all FQDNs

• Determining SSL Requirements

• Looking at Geographic Topologies

Page 10: Design Reviews for Operations - Velocity Europe 2014

FE Gotchas: Rewrite Rules, Divided Farms

• Sophisticated load balancing equipment allow for lots of cleverness

• Documentation of intent is key

• Later migrations, requirements changes are more difficult

/foo/bar

Page 11: Design Reviews for Operations - Velocity Europe 2014

Web Tier

• Server type and version

• Access methods to other tiers

• Caching?

• Locations

• Modules and their configurations

Page 12: Design Reviews for Operations - Velocity Europe 2014

Web Insanity: Custom HTTP Servers

https://www.flickr.com/photos/16210667@N02/13973604274

Page 13: Design Reviews for Operations - Velocity Europe 2014

Application Tier

• Basics: server type and version, port requirements, protocols

• Outbound connections to outside services

• User affinity

• Necessary libraries and their release cycles

Page 14: Design Reviews for Operations - Velocity Europe 2014

App Tier Gotchas

• Things that affect scaling, replacement of hosts

• Whitelisting! Why!?

• What changes require restarts?

• New FE connections? New BE connections to cache? To DB?

Page 15: Design Reviews for Operations - Velocity Europe 2014

Data Tier – Our Data

• In multi-location topologies, where is the master?

• Is there whitelisting or other app authorization?

• What are compliance/reporting requirements?

• SOX? HIPAA? PCI?

• Will schemas be versioned?

Page 16: Design Reviews for Operations - Velocity Europe 2014

Doing Horrible Things to Data

• Premature optimization can hamstring a project

• Are the data tiers susceptible to queuing?

• Management of data should be automated

Page 17: Design Reviews for Operations - Velocity Europe 2014

Data Tier – Imports and ETL

• Schedules

• Measuring successful load

• Contact information for upstream provider

• Storage locations and intended size

Page 18: Design Reviews for Operations - Velocity Europe 2014

Operationalizing ETL

• Some of the fiddliest fiddly bits

https://www.flickr.com/photos/joming/2182022195

Page 19: Design Reviews for Operations - Velocity Europe 2014

Data Tier – Exports, Reporting, BI

• Packaging

• Scheduling

• Live replica versus full dump and export

• Should have no impact on production operation of the datastore!

Page 20: Design Reviews for Operations - Velocity Europe 2014

External APIs - Consumer

• Relying on services you don’t own is tricky business

• Account name and owner

• SLA of service provider

• Contact info for outages

Page 21: Design Reviews for Operations - Velocity Europe 2014

Graceful Degradation

• What does the App do if the external service is unavailable?

• Shouldn’t hang

• Should log some message

• Should have some reasonable timeout, plus a hold down

• Users shouldn’t notice

Page 22: Design Reviews for Operations - Velocity Europe 2014

Red Button

• Can you completely disconnect the code from a broken service?

• Who can make the call?

https://www.flickr.com/photos/bluetsunami/535781178

Page 23: Design Reviews for Operations - Velocity Europe 2014

Gotchas for All Tiers

• Host firewalls

• Application user accounts – in the central service?

• Logging policy

• Metrics collection

• Backups

• OS Versions

Page 24: Design Reviews for Operations - Velocity Europe 2014

Alerts

• A stacktrace is not an alertable event

• Log hygiene is important – what’s in the prod logs needs to be useful

• If it’s worth writing to disk, someone should know what to do with it

2014-06-01:16:44:00:UTC ERROR: $$$$$$$$2014-06-01:16:44:07:UTC ERROR: Host Not Found

Page 25: Design Reviews for Operations - Velocity Europe 2014

Releases

• Schedule – Over night? Weekends? Rolling continuous deploy?

• Getting operations requirements into Dev cycle

• Security requirements

• Upgrades and patches

• Service restarts

• Graceful horizontal restarts

• Full-zone downtime

Page 26: Design Reviews for Operations - Velocity Europe 2014

Nightmare: Attaching Prod App to Dev DB

• All artifacts should ship production ready

• Localized configurations ready in advance

• Lean on config management tools for other environments

https://www.flickr.com/photos/garon/121923087

Page 27: Design Reviews for Operations - Velocity Europe 2014

Software Library

• Set organizational standards

• Rely on your OS vendors when possible

• Pre-check that all dependencies are available in all repos for all

environments

• Suppress the urge to build special packages for absolutely

everything

• Streamlined, repeatable, reliable installs

Page 28: Design Reviews for Operations - Velocity Europe 2014

Spelunking Through History

• Keeping up with OS releases makes later scaling, replacement of

dead hosts smoother

• Always be current or no more than one release back in all envs

Page 29: Design Reviews for Operations - Velocity Europe 2014

Performance and Tuning

• Hard to be concise with new projects

• Performance regression should be part of the testing process!

• Know in advance what tunables exist, what their indicators are

• Heap

• GC

• Network stacks

• In-memory caching

Page 30: Design Reviews for Operations - Velocity Europe 2014

Outage Planning

• Known failure patterns and indicators

• Who is oncall from Dev?

• Who is oncall from Product or other decision-making stakeholders?

Page 31: Design Reviews for Operations - Velocity Europe 2014

The Dark Art of Healthchecks

• At some point, there should be a check that works back through the

whole stack for status

• These can be expensive

• You have to know, when you hit the FE, that it is able to serve all the

components of the app

Page 32: Design Reviews for Operations - Velocity Europe 2014

Static Failover Pages

• Mechanism for not serving up 500s or blanks during downtime

• Set to non-cachable, show a picture, give a better experience

Page 33: Design Reviews for Operations - Velocity Europe 2014

Other Team Info

• Know who’s who

• Dev teams should have some sort of oncall in case of problems Ops

can’t fix

• Intake process for bug reports, feedback, getting Ops issues fixed

• Like those crazy log messages!

• Get invited to team meetings! Go occasionally!

Page 34: Design Reviews for Operations - Velocity Europe 2014

Success Metrics

• What will success actually look like after launch?

• Is the product team watching a particular set of KPIs?

• How will the data for success be collected

• BI, beacons, third party collectors

Page 35: Design Reviews for Operations - Velocity Europe 2014

Things That are Challenging to Find in Review

• Bottlenecks

• That flat table-top graph isn’t a good thing

• Impact of third-party inclusions

• Rigor of the integration testing environment

• What parts of the system users are really going to use

• People might like something you thought was going to be minor

Page 36: Design Reviews for Operations - Velocity Europe 2014

Learn From Experience

• Over time, the infrastructure build out will get easier

• Operations teams develop their own heuristics for difficulty

• Always be learning and improving

• Give everyone a chance to learn and improve too

• Create standards so you don’t have to investigate all dark corners

• Update your checklist periodically

Page 37: Design Reviews for Operations - Velocity Europe 2014

Thanks!

Page 38: Design Reviews for Operations - Velocity Europe 2014