Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Leaving the Ivory Tower: Research in the Real W...

Leaving the Ivory Tower: Research in the Real World

Academic research often has a reputation of being insular and seldom being used in the real world. At HashiCorp, we've had a long tradition of basing our tools and products on academic research. We look at research for the initial design of products, and for ongoing development of new features. Our industrial research group, HashiCorp Research, has even published novel work. In this talk we cover why we care, how we incorporate research, and what has been particularly useful for us.

Presented at QCon NY.

Armon Dadgar

June 24, 2019
Tweet

More Decks by Armon Dadgar

Other Decks in Technology

Transcript

  1. Copyright © 2018 HashiCorp ⁄ !3 HashiCorp Suite C++ Provision


    Operations Secure
 Security Deploy
 Development Connect
 Networking Private Cloud AWS Azure GCP Common Cloud Operating Model
  2. Standing on the Shoulder of Giants Or The Value of

    Research ▪ Discover the “State of the Art” ▪ Relevant works to challenge thinking ▪ Understand fundamental tradeoffs (e.g. FLP Theorem) ▪ Metrics for evaluation
  3. Common Solutions Circa 2012 ▪ Hard Coded IP of Host

    / Virtual IP / Load Balancer ▪ Config Management “Convergence Runs” ▪ Custom Zookeeper based systems
  4. Exploring the Literature Structured Unstructured Rings Spanning Trees Binary Trees

    Adaptive Structure Hybrid Structures Epidemic Broadcast Mesh Network Randomized
  5. Imposing Constraints Cloud Datacenter Environment Low Latency and High Bandwidth

    We are operating within a cloud datacenter, where we expect low latencies and high bandwidth, relative to IoT or Internet-wide applications. Few Nodes (< 5K) The operating environment was not large scale peer-to- peer public networks for file sharing, but private infrastructure. The scale is much smaller than some other target environments. Simple To Implement Keep It Simple Stupid (KISS) was a goal. We wanted the simplest possible implementation, and no simpler. Complex protocols are more difficult to implement correctly.
  6. SWIM Properties ▪ Completely Decentralized ▪ Unstructured, with Epidemic Dissemination

    ▪ Full Visibility, All Members Known ▪ Trades more bandwidth use for simplicity and fault tolerance
  7. Closely Considered ▪ Plumtree. Hybrid tree and epidemic style. ▪

    T-Man. Adaptive, can change internal style. ▪ HyParView. Limited view of membership. ▪ Complexity of implementation deemed not worthy ▪ Size of clusters not a concern for full view ▪ Expected traffic minimal
  8. Adaptations Used ▪ Bi-Modal Multicast. Active Push/Pull Synchronization. ▪ Steady

    State vs Recovery Messages. Optimize for efficient distribution in steady state. ▪ Lamport Clocks. Provide a causal relationship between messages. ▪ Vivaldi. Network Coordinates to determine “distance” of peers.
  9. Gossip For Service Discovery B C A D “Web” at

    IP1 “DB” at IP2 “Cache” at IP3 “LB” at IP4
  10. Serf in Practice ▪ (+) Immutable Simplified ▪ (+) Fault

    Tolerant, Easy to Operate ▪ (-) Eventual Consistency ▪ (-) No Key/Value Configuration ▪ (-) No “Central” API or UI
  11. Rethinking Architecture B C A D “Web” at IP1 “DB”

    at IP2 “Cache” at IP3 “LB” at IP4 Server
  12. Exploring The Literature ▪ Multi Paxos ▪ Egalitarian Paxos ▪

    Fast Paxos ▪ Cheap Paxos ▪ Generalized Paxos
  13. Consul Product (consul.io) Hybrid CP / AP Design - Strongly

    consistent servers (Raft) - Weekly consistent membership (SWIM) - Centralized API and State - Decentralized Operation
  14. Work Embedded in Consul (and Serf) ▪ Consensus ▪ Gossip

    Protocols ▪ Network Tomography ▪ Capabilities Based Security ▪ Concurrency Control (MVCC) ▪ Lamport / Vector Clocks
  15. Research across Products - Security Systems (Kerberos) - Security Protocols

    - Access Control Systems - Cryptography - Graph Theory - Type Theory - Automata Theory - Scheduler Design (Mesos, Borg, Omega) - Bin Packing - Pre-emption - Consensus - Gossip
  16. Focus on industrial research, working 18 to 24 months ahead

    of engineering, on novel work. HashiCorp Research Charter
  17. Reducing Sensitivity Exponential Convergence - Replace Fixed Timers - Use

    Redundant Confirmations - Insight from Bloom Filters, K independent hashes Local Health Awareness - Measure Local Health - Tune sensitivity as health changes Early Notification - Send Suspicion Early - Send Suspicion Redundant - Enable faster refute
  18. Fostering Research Culture ▪ Product / Engineering is 100x bigger

    than Research ▪ Cultural approach needed ▪ Consuming research
  19. Cultural Goals ▪ Build awareness of research ▪ Give access

    to published academic work ▪ Create channels to engage internally ▪ Promote involvement in external community ▪ Involve Research in Engineering, and visa versa
  20. Real world value ▪ Leverage the “State of the Art”,

    instead of naive design ▪ Apply domain constraints against fundamental tradeoffs ▪ Improve product performance, security, and usability
  21. Research used from Day 1 ▪ Academic research fundamental to

    HashiCorp Products ▪ Day 1 core designs based on the literature ▪ Day 2+ improvements from literature
  22. HashiCorp Research ▪ Focused on Industrial Research ▪ Publishing work,

    not just consuming ▪ Advocate for research culture internally ▪ Features like Lifeguard ▪ New products like Vault Advisor
  23. Promoting Research ▪ Build a culture around research ▪ Enable

    access, encourage consumption ▪ Create bridges between Research and Engineering ▪ Vocalize the benefits