high availability at heroku
play

High ! Availability ! at ! Heroku Mark ! McGranaghan - PowerPoint PPT Presentation

High ! Availability ! at ! Heroku Mark ! McGranaghan


  1. High ! Availability ! at ! Heroku Mark ! McGranaghan

  2. ���

  3. ������� ������� ����

  4. ������� ������� ������� ������� ���� ���� ������� ������� ������� ������� ���� ����

  5. ��� ��� ��� ��� ��� ��� ��� ��� ������� ��� ��������� ������� ������� ����

  6. ��� ��� ��� ��� ��� ��� ��� ��� ������� ��� ��������� ������� ������� ����

  7. ��� ��� ��� ��� ��� ��� ��� ��� ������� ��� ��������� ������� ������� ����

  8. ��� ��� ��� ��� ��� ��� ��� ��� ������� ��� ��������� ������� ������� ����

  9. Scale ! & ! Scope

  10. O(1,000) ! instances O(1,000,000) ! apps

  11. Success ! & ! Failure

  12. Architecture Execution

  13. Architecture Execution

  14. ������� ������� ����

  15. Platform-Enabled HA ! Routing

  16. ��� ��� ��� ��� ��� ��� ��� ��� ������� ��� ��������� ������� ������� ����

  17. Crashes ! & Supervision

  18. Crashes ! as ! the ! only ! code ! path

  19. Crashes ! as ! a ! hot ! code ! path

  20. Error ! Kernel

  21. Layered ! design

  22. Message ! passing...

  23. {slug: “https://aws...”, cmd: “java ...”, env: {“JAVA_OPTS”: ..., “DATABASE_URL”: ..., “SESSION_SECRET”: ...}}

  24. ...of ! narrow, ! versioned ! values

  25. {slug: “https://s3...”, cmd: “java -cp ...”, env: {“JAVA_OPTS”: ..., “DATABASE_URL”: ..., “SESSION_SECRET”: ...}, flag: “extra_cpu”}

  26. No ! Stopping ! the ! World

  27. Load ! balancing Supervision Crash-only Error ! kernels Layered ! design Message-passing

  28. Erlang Designed ! for granular ! failure

  29. Distributed ! Systems Defined ! as granular ! failure

  30. Brokered ! Queueing

  31. Publish ! one ! / Subscribe ! many

  32. Distributed ! call ! graphs

  33. Read ! call ! graph Partial ! failure

  34. Write ! call ! graph de-synchronizing

  35. Architecture Execution

  36. Architecture Execution

  37. “...we ! deployed ! a ! code ! change... ...introduced ! a...problem... ...visible ! under ! unusual...conditions... ...engineers ! noticed ! a ! deviation... ...began ! to ! escalate... ...system...entered ! into ! a ! feedback ! loop... ...engineers...deactivated ! the ! feedback...

  38. Evolving Socio-Technical ! Systems

  39. ������� ������� ����

  40. ��� ��� ��� ��� ��� ��� ��� ��� ������� ��� ��������� ������� ������� ����

  41. Availability ! >> ! Architecture

  42. Failed ! deploys Bad ! visibility Cascading ! feedback

  43. Evolving Socio-Technical ! Systems

  44. Failed ! deploys Bad ! visibility Cascading ! feedback

  45. Deploy ! tooling Visibility ! services Feedback ! controls

  46. bin/ship

  47. bin/ship \ --component api \ --version v408

  48. Incremental ! deploys

  49. ��� ��� ���

  50. ��� ��� ���

  51. Incremental ! rollouts

  52. prep_launch - launch_without_lxc + launch-with_lxc monitor_launch

  53. if flag_on?(“lxc”) launch_with_lxc else launch_without_lxc

  54. app.flag_on(“lxc”) app.flag_off(“lxc”)

  55. ��� ���� ���

  56. ��� ��� ��� ��� ���� ���

  57. Real-time ! visibility

  58. Service-level ! assertions

  59. assert(index > 0)

  60. assert(index > 0) objects[index]

  61. assert(p99_latency < 50)

  62. assert(p99_latency < 50)

  63. assert(active_cons > 10)

  64. assert(active_cons > 10)

  65. Flow ! control & ! Backpressure

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend