Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Is your Automation Infrastructure ‘Well Architected’?


Published on

Deck for my Selenium Conf Chicago 2018 track talk.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Is your Automation Infrastructure ‘Well Architected’?

  1. 1. Is your Automation Infrastructure ‘Well Architected’? Adam Goucher CTO, MobileXCo @adamgoucher
  2. 2. [Browser based] Automation was largely solved 6 years ago. The infrastructure and operational procedures around the automation environments remain a huge business risk.
  3. 3. Your Automation Infrastructure Automation
 Framework (scripts + runner + drivers) Application Under
 Test (your app) 3rd Party Services
 (things not in your control)
  4. 4. The ‘Well Architected Framework’ was designed by Amazon, but is [at a high level] cloud neutral.
  5. 5. The Five Pillars •Operational Excellence •Security •Reliability •Performance Efficiency •Cost Optimization
  6. 6. Operational Excellence
  7. 7. Perform operations as code Every time you provision or configure a piece of cloud infrastructure by hand, you are doing something wrong. Every time you log into a box to do something, you have found something you need to convert to code.
  8. 8. Annotate documentation If your infrastructure updates its documentation in real-time, it is one less thing for you to forget to do
  9. 9. Make frequent, small, reversible changes ‘and’ is a commit smell
  10. 10. Refine operations procedures frequently As infrastructure evolves to code, treat it as such with code reviews, etc. Schedule routine audit of tools, patterns, etc.
  11. 11. Anticipate Failure Failure happens. Accept it. No, embrace it. Enter the Chaos Monkey!
  12. 12. Learn from all operational failures It is only a mistake if you don’t learn from it.
  13. 13. Security
  14. 14. Implement a strong identity foundation Multi-factor auth all human interactions Short-lived tokens for CLI interactions. Service Roles for service-to-service interactions
  15. 15. Enable traceability Enable monitoring, alerting and auditing of your infrastructure… …and respond automatically!
  16. 16. Apply security at all layers There is no such thing as a ‘trusted’ network.
  17. 17. Automate security best practices Best Practices are constantly changing. (Apply the ones that are relevant to you, ignore the ones that don’t) Security controls as code.
  18. 18. Protect data in transit and at rest At aggregate, all data eventually becomes Personally Identifiable Information.
  19. 19. Prepare for security events You’re delusional if you think you’ll never have a security event. How are you going to react?
  20. 20. Reliability
  21. 21. Test recovery procedures Failure is not an option, its a feature.
  22. 22. Automatically recover from failures Self-diagnosing Self-healing
  23. 23. Scale horizontally to increase aggregate system availability Multiple smaller pieces are more desirable that a single larger one.
  24. 24. Stop guessing capacity Measure… …and respond automatically.
  25. 25. Manage change in automation Your infrastructure should not be a work of art. It should be painfully boring.
  26. 26. Performance Efficiency
  27. 27. Democratize advanced technologies As cool as learning a new tech is, your automation team likely doesn’t need to understand how it works. (Beyond how to test with it.)
  28. 28. Go global in minutes If your production infrastructure is globally distributed, so should your automation infrastructure.
  29. 29. Use serverless architectures (Or don’t.) Maybe ‘Service Doubles’?
  30. 30. Experiment more often (Or don’t.) Maybe proving ground for production changes? You know, actual DevOps.
  31. 31. Mechanical sympathy Before you can be efficient, need to understand what success means in your context… …and then do what enables success.
  32. 32. Cost Optimization
  33. 33. Adopt a consumption model Model your usage patterns and automate them.
  34. 34. Measure overall efficiency Does time have a measurable cost? Does confidence have a measurable cost?
  35. 35. Stop spending money on data centre operations (Except when you have to.)
  36. 36. Analyze and attribute expenditure ‘How much does our automation infrastructure cost’ should be an answerable question.
  37. 37. Use managed services to reduce cost of ownership Your time is the expensive part of automation. Sometimes its worth paying more to not have to worry about something.
  38. 38. So. Are you Well Architected?