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.

AWS Summit Auckland - Smaller is Better - Microservices on AWS

516 views

Published on

AWS Summit Auckland - Smaller is Better - Microservices on AWS

Published in: Technology
  • Download The Complete Lean Belly Breakthrough Program with Special Discount. ★★★ http://scamcb.com/bkfitness3/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

AWS Summit Auckland - Smaller is Better - Microservices on AWS

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Craig S. Dickson, Solutions Architect, Amazon Web Services John Sullivan, Product Development Manager, Online SME and Practice Solutions, MYOB Australia Smaller IS Better – Exploiting Microservices on AWS Technical 201
  2. 2. Business 101 Technical 201 Technical 301 Technical 401 Technical Session Depth
  3. 3. Presentation Takeaways When you leave today, you will be able to answer the following questions: • What are Microservices? • What do they look like on AWS? • What problems can you address using a Microservices Architecture? • Is there a Customer Success Story I can Leverage? • How do I get “Microserviced”?
  4. 4. Who Are You? • Architect • Developer • SysOps / Server Admin / Networking • Development Manager • CTO
  5. 5. What is a Microservice?
  6. 6. Google has been Getting a Workout … https://www.google.com/trends/explore#q=microservices
  7. 7. High Expectations … Microservices https://www.gartner.com/doc/3102217/hype-cycle-application-architecture-
  8. 8. “Microservices are the first post DevOps revolution architecture” – Neal Ford (Director, Software Architect, and Meme Wrangler at ThoughtWorks) Image: http://nealford.com/bio
  9. 9. Why does everyone hate me?  Image: 1869/ptwo/license
  10. 10. What’s Wrong with a Monolith? Self Contained Tightly Coupled Lacks Modularity
  11. 11. A Definition of Microservices “… is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.” - Martin Fowler (Chief Scientist, ThoughtWorks) - James Lewis (Principal Consultant, ThoughtWorks)
  12. 12. “Say hello to my micro friend!” - Tony Montaña (Cuban Software Architect) Image: http://www.amazon.com/Scarface-Limited-Edition-Blu-ray-Digital/dp/B0019N94X6
  13. 13. Umm, isn’t this just SOA? SOA Microservices Smart pipes, dumb endpoints Simple pipes, smart endpoints Centralised governance (ESB) Minimal governance Proprietary standards Open standards Services provide myriad functions Services are single purposed Distributed monoliths?
  14. 14. A Well-Architected Microservice on AWS 1. Cannot be made any smaller • has a single functional purpose • has minimised total lines of code, architecture components, etc. • is cost optimised 2. Is vertically isolated • runs in its own process • uses the best fit-for-purpose architecture (app. & infra.) • uses the best fit-for-purpose programming language • uses the best fit-for-purpose persistance option(s)
  15. 15. A Well-Architected Microservice on AWS (2) 3. Has a well defined interface (API) • can be versioned • provides SDKs & documentation for clients • no backdoors 4. Is automatically and independently deployed • first deploy and all updates • to all environments, not just test and dev. 5. Is automatically tested thoroughly • functional, integration, performance, etc. • baseline metrics collected and evaluated
  16. 16. A Well-Architected Microservice on AWS (3) 6. Is operationally mature • horizontally scalable • self healing • metrics & logs collected centrally • elegantly handles failures of downstream services 7. Is managed by a small team (2 pizzas?) • co-located & cross-functional • back-end devs, UX, ops, DBA, etc. • with cradle-to-grave responsibilities
  17. 17. Microservice Patterns on AWS
  18. 18. The Poor-Man’s Microservice Clients Elastic IP RDS HTTP REST Running EC2 Instance Auto Scaling Group AZ-A AZ-B Min = 1, Max = 1 Future EC2 Instance
  19. 19. The Traditional Microservice Clients RDS HTTP REST EC2 Instance Auto Scaling Group AZ-A AZ-B Min > 1 Elastic Load Balancing EC2 Instance AWS OpsWorks AWS Elastic Beanstalk And don’t forget … .
  20. 20. That’s nice, but can we make it smaller? Image: http://www.nowverybad.com/honey-i-shrunk-the-kids-1989/
  21. 21. The Elastic Container Service Microservice Clients RDS HTTP REST ECS Fleet AZ-A AZ-B Elastic Load Balancing
  22. 22. Servers? Where we’re going, we don’t need servers - Doc Brown (Early Cloud Adopter) Image: http://memorydelta.wikia.com/wiki/Emmett_Brown
  23. 23. “No server is easier to manage than no server” - Werner Vogels (CTO, Amazon.com) Image: 20081108 DDP Werner_Vogels/Guido van Nispen/license
  24. 24. The Serverless Microservice Clients HTTP REST AWS Lambda RDS Never pay for idle!
  25. 25. The Serverless Microservice API Amazon API GatewayClients HTTP REST AWS Lambda Amazon S3 Amazon DynamoDB Amazon Machine Learning Amazon SNS Amazon SQS Amazon Kinesis Lambda Blueprints
  26. 26. The Hybrid Microservice API Amazon API GatewayClients HTTP REST Amazon EC2 AWS Lambda Lambda Blueprints Amazon ECS Elastic Load Balancing
  27. 27. The Micro-Microservice API Clients Amazon API Gateway Free Amazon API Gateway Premium Amazon API Gateway Partner Amazon API Gateway Experimental Amazon EC2 Amazon ECS AWS Lambda Lambda Blueprints
  28. 28. Exploiting Microservices to Address Business Problems
  29. 29. • Product Management has a great idea • Even better: Product Management has many great ideas, but are not sure which ones are winners • Takes weeks, months or worse to get them in front of a customer • A massive barrier to innovation Problem: Long Feature Cycle Times • Create an architecture that enables rapid change, inherently supports agility and encourages innovation Exploit Microservices to …
  30. 30. Conway’s Law “organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” - Melvin Conway Image: https://twitter.com/conways_law
  31. 31. • Large pieces of software, require large teams • Increased inertia, lack of agility • Hard to integrate work from other teams • Many problems are actually people problems, not technology problems Problem: Large Teams • Create an architecture that encourages smaller software components • Better align team size and responsibilities to services Exploit Microservices to …
  32. 32. “Being woken up at 3am every night by your pager is certainly a powerful incentive to focus on quality when writing your code.” - Martin Fowler Image: https://en.wikipedia.org/wiki/Martin_Fowler
  33. 33. • Monoliths lead to “shared” responsibilities • Focus is on project deliverables, not full lifecycle Problem: Lack of Ownership • Create small teams working on small pieces of functionality • Provide an opportunity for cradle-to-grave ownership • Foster a “You build it, you run it” philosophy Exploit Microservices to …
  34. 34. • Geographically, Temporally, Organisationally • Burden of orchestration Problem: Distributed Teams • Provide a mechanism to divide work up so that only co-located teams have to collaborate heavily • Define service level APIs that allow distributed teams to move at different velocities Exploit Microservices to …
  35. 35. • Upskilling takes time • Unable to make use of temporary resources Problem: Inelastic Human Capacity • Reduce the surface area that individuals need to understand at any one time • Enable temporary resources to work quickly and integrate easily Exploit Microservices to …
  36. 36. Netflix slide
  37. 37. • Lack of Availability = Loss of Revenue • Small issues rendering whole applications unusable Problem: Availability • Encourage a design-for-failure attitude • Enable individual services to implement appropriate fall-back plans and continue to provide value to customers Exploit Microservices to …
  38. 38. • Cannot create à la carte application offerings to users • Cannot easily get feedback about new ideas before investing large resources Problem: Product Management • Enable flexibility for product management and increase innovation • Quickly test ideas by combining strategies such as Feature Toggling and A/B Testing Exploit Microservices to …
  39. 39. Exploiting Microservices to Address Technical Problems
  40. 40. "I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” - Abraham Maslow (1966) Maslow’s Hammer Image: DSC_1607/Justin Baeder/license
  41. 41. “Give a small boy a hammer, and he will find that everything he encounters needs pounding.” - Abraham Kaplan (1964) Image: Thor and his hammer/tenthousandcubans/license
  42. 42. • Different teams forced to use/learn technologies that they are not effective with, just because it is “the standard” • Inability to adopt different or emerging technologies Problem: Single Technology Syndrome • Encourage a polyglot attitude • Allow the best solution for each problem to be selected Exploit Microservices to …
  43. 43. • Fear of deployments due to assumed risk • Large deployment sizes due to dependencies Problem: Constrained Delivery Velocities • Allow different parts of applications to move at different speeds for development and deployment activities • Minimise risk by reducing the deployment sizes down to single services Exploit Microservices to …
  44. 44. • Large functional surface area • All potential failure scenarios are hard to define • Long running tests delay feedback Problem: Lack of Testability • Provide well defined APIs that can be deployed in isolation • Allow for quicker, yet more complete testing Exploit Microservices to …
  45. 45. • Standardising onto limited EC2 instance types • Using generic scaling strategies • Scaling every thing, every time • Failing to use existing AWS services Problem: Inefficient Scaling • Allow the correct scaling option for each service to be selected • Scale services independently • Quickly adopt new AWS services Exploit Microservices to …
  46. 46. • Inability to easily/safely try new algorithms or patterns • Inability to quickly adopt disruptive technologies Problem: Lack of Technical Innovation • To encourage vertical decoupling of components • Evolve individual services quickly without interfering with other parts of an application Exploit Microservices to …
  47. 47. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. John Sullivan – Product Development Manager, Online SME and Practice Solutions, MYOB Australia MYOB’s Journey to Microservices An AWS Customer Success Story
  48. 48. MYOB & Microservices? “Why Microservices” came together like a puzzle: • Move to online • Demand for feature richness • Functionality reuse • Skills reuse • Hosting products
  49. 49. Microservices: The Tool not The Destination
  50. 50. Safety Gear
  51. 51. Evolving to Microservices
  52. 52. Microservices may not be the right choice for you. http://insec.in/blog/2015/01/09/discounts-ethical-hacking-course-in-kolkata/shocked-woman-1/
  53. 53. Before Adopting Microservices • Are you are a startup? • Is this a brand new green field project? • Do you have a deep understanding of the domain? • Is your organisational structure compatible? • Have you adopted DevOps practices? Consider these questions …
  54. 54. “A microservices-first approach for a brand new project that we didn’t fully understand the domain for led to a lot of unexpected complexity. We are however, having great success on another project refactoring an existing monolithic service into microservices.” - Mark Bond (Group Architect, Dominos Pizza Enterprises)
  55. 55. Mo’ services, mo’ problems The Notorious B.I.G. (Influential East-Coast Software Architect) Image: http://www.neontommy.com/news/2014/03/notorious-big-top-ten-songs
  56. 56. Focus on DevOps and Automation • Even a medium scale microservices architecture (10s or 100s of services) is difficult to manage by hand • Invest in automating EVERYTHING • Code builds and testing (CI) • Code deployments to all environments (CD) • Operational monitoring • CloudWatch Metrics, CloudWatch Logs, custom dashboards etc. • A/B testing, function toggling
  57. 57. Focus on Your Organisation • Evolve team sizes and responsibilities • Moving towards smaller, cross-functional teams • With cradle-to-grave responsibilities • Integrate Product Management, QA, Ops, etc.
  58. 58. Focus on Your Services • Business capability, rather than technical function • Everything fails, all the time • retry, fail-over and service down scenarios • the circuit-breaker pattern • Netflix Hystrix • Centralised metrics and logging collection
  59. 59. Conclusion
  60. 60. µ Summary 7 Tenets 7 Architecture Patterns 8 Business Problems 6 Technical Problems 1 Great Customer Story 1 Big Warning 3 Tips for Evolving 13 Awesome Jokes (at least)
  61. 61. What You Should Do Next µ AWS Lambda Amazon API Gateway Identify problems Hunt MonolithsChampion Microservices Get Help
  62. 62. Resources • Microservices – Martin Fowler & James Lewis • http://martinfowler.com/articles/microservices.html • Introduction to Microservices – Chris Richardson • https://www.nginx.com/blog/introduction-to-microservices/ • Are You Well Architected? – AWS Blog • https://aws.amazon.com/blogs/aws/are-you-well-architected/ • Netflix Hystrix • https://github.com/Netflix/Hystrix
  63. 63. AWS Training & Certification Intro Videos & Labs Free videos and labs to help you learn to work with 30+ AWS services – in minutes! Training Classes In-person and online courses to build technical skills – taught by accredited AWS instructors Online Labs Practice working with AWS services in live environment – Learn how related services work together AWS Certification Validate technical skills and expertise – identify qualified IT talent or show you are AWS cloud ready Learn more: aws.amazon.com/training
  64. 64. Your Training Next Steps:  Visit the AWS Training & Certification pod to discuss your training plan & AWS Summit training offer  Register & attend AWS instructor led training  Get Certified AWS Certified? Visit the AWS Summit Certification Lounge to pick up your swag Learn more: aws.amazon.com/training
  65. 65. Thank you!

×