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.

Cvent: Building a microservice deployment pipeline – Couchbase Connect 2016

437 views

Published on

Cvent, Inc. is the world's leading provider of cloud-based software for meetings and event management. From online event registration to meeting site selection to web surveys, we manage it all. Couchbase is a key technology in our next-generation software platform with eight clusters deployed. But to maintain fast go-to-market for our features, deploying using microservices is a must. This is for not just application changes but changes to the database itself. In this session, I will go through how to manage a deployment pipeline for microservices. I will also cover best practices, configuration, development, index management, and deployment from our real-world experience.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Cvent: Building a microservice deployment pipeline – Couchbase Connect 2016

  1. 1. Building a Microservice Deployment Pipeline with Couchbase Howard Uman
  2. 2. 166,000+ worldwide active users 1.4 million events managed 1,900+ worldwide employees $1 billion+ market capitalization HQ — Tysons Corner, VA London, UK New Delhi, India Sydney, Australia Austin, TX Portland, OR Atlanta, GA Santa Barbara, CA New Brunswick, Canada
  3. 3. Why Couchbase? • Memcached compatibility • Clients / Ease of use • Ease of administration • Scalability • Indexing (Views & N1QL)
  4. 4. Where Couchbase fits in @ Cvent
  5. 5. What we have… • 8 Couchbase clusters • 215+ applications • 100 environments • 45 teams
  6. 6. Microservices
  7. 7. What is a Microservice? • Modular • Decentralized • Scalable • Well defined interface
  8. 8. Microservices @ Cvent Ease of Development Scalability Testability Connected
  9. 9. Microservices @ Cvent Ease of Development Scalability Testability Connected
  10. 10. Microservices @ Cvent Ease of Development Scalability Testability Connected
  11. 11. Microservices @ Cvent Ease of Development Scalability Testability Connected
  12. 12. Microservices @ Cvent Ease of Development Scalability Testability Connected
  13. 13. Microservices @ Cvent Ease of Development Scalability Testability Connected
  14. 14. Microservices @ Cvent Ease of Development Scalability Testability Connected
  15. 15. Microservices @ Cvent Ease of Development Scalability Testability Connected
  16. 16. Microservices @ Cvent Ease of Development Scalability Testability Connected
  17. 17. Microservices @ Cvent Ease of Development Scalability Testability Connected
  18. 18. Dropwizard Retrofit Refit Microservice Stack @ Cvent
  19. 19. Microservices at Cvent • Java • Dropwizard • Dropwizard-Couchbase & other libraries • Retrofit / Refit • Jenkins • Dropkick • View Management • N1QL Index Management • Build & Deploy
  20. 20. Best Practices
  21. 21. Microservice Best Practices • Managed Schema • Provide Clients • Configuration • Service Discovery • Utility • Enforcement
  22. 22. Bucket Best Practices • 1 Thread Per Bucket • Shared across applications • Document key prefix: region, application, and type ex: Staging::Events::Wizard::{id} • Chose bucket based on nature of data
  23. 23. Indexing Best Practices • 1 Thread Per Design Document, Share. • Give your indexes Application-Entity-based names. • Indexes should leverage the document prefixes to reduce data: function(doc, meta) { var idArray = meta.id.split("::"); var applicationName = idArray[1]; var objectName = idArray[2]; if (applicationName === "YOUR_APPLICATION" && objectName === "DESIRED_OBJECT" ...) { // Do your processing / emit } } • Deploy indexes together to minimize scans. • Deploy to DR cluster at the same time (production)
  24. 24. Configuration
  25. 25. Configuration
  26. 26. Configuration
  27. 27. Configuration
  28. 28. Configuration
  29. 29. Configuration
  30. 30. Deployment
  31. 31. Service Deployment Pipeline
  32. 32. Service Deployment Pipeline
  33. 33. Service Deployment Pipeline
  34. 34. Service Deployment Pipeline
  35. 35. Service Deployment Pipeline
  36. 36. Service Deployment Pipeline
  37. 37. Service Deployment Pipeline
  38. 38. Service Deployment Pipeline
  39. 39. Service Deployment Pipeline
  40. 40. Building a Service Demo
  41. 41. Managing Services
  42. 42. Jenkins • Backups • Copy/Transform data • Delete Documents • Manage Views (Update / Delete) • Manage GSI (Update / Delete)
  43. 43. Jenkins
  44. 44. Managing Services Demo
  45. 45. Monitoring
  46. 46. Monitoring • Service Discovery queries services (/ok) • Datadog dashboard (next) for NOC • Datadog alerts (Couchbase integration) • Couchbase alerts • Custom monitoring (Datadog Agent Checks)
  47. 47. Thank you! Howard Uman @unhuman human@cvent.com

×