рд╡рд┐рджрд╛рдИ, microservices: рдПрдХ рд╕реМ рд╕рдорд╕реНрдпрд╛ рдмрдЪреНрдЪреЛрдВ рд╕реЗ рдПрдХ рд╕реБрдкрд░рд╕реНрдЯрд╛рд░ рддрдХ

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЧреБрдлрд╛ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рдЖрдЬ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИред рд╢реБрд░реБрдЖрддреА рджреМрд░ рдореЗрдВ рдЗрд╕ рдкреНрд░рд╡реГрддреНрддрд┐ рдХрд╛ рд╡рд┐рдХрд╛рд╕, рд╕реЗрдЧрдореЗрдВрдЯ рдЙрддреНрдкрд╛рдж рдореЗрдВ рд╕рд╛рде рд╣рдо рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЕрдкрдирд╛рдпрд╛ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд▓реНрдж рд╣реА рджреЗрдЦреЗрдВрдЧреЗ рдирд╣реАрдВ рдЗрддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдореЗрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, microservices рдПрдХ рд╕реЗрд╡рд╛-рдЙрдиреНрдореБрдЦ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдИ рдПрдХрд▓-рдХрд╛рд░реНрдп, рдиреНрдпреВрдирддрдо рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓рд╛рдн рдореЗрдВ рд╕реБрдзрд╛рд░ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛, рд╕рд░рд▓реАрдХреГрдд рдкрд░реАрдХреНрд╖рдг, рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░рдЪрдирд╛, рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдЯреАрдореЛрдВ рдХреА рд╕реНрд╡рд╛рдпрддреНрддрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡рд┐рдкрд░реАрдд рдПрдХ рдЕрдЦрдВрдб рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рд╕реЗрд╡рд╛ рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг, рддреИрдирд╛рддреА рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддреА рд╣реИред

2017 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рд╕реЗрдЧрдореЗрдВрдЯ рдЙрддреНрдкрд╛рдж рдХреЗ рдереЛрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд┐рдкрд┐рдВрдЧ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдПред рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╣рдо рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рдкреЗрдбрд╝ рд╕реЗ рдЧрд┐рд░ рд░рд╣реЗ рд╣реИрдВ, рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдХреЛ рдорд╛рд░ рд░рд╣реЗ рд╣реИрдВред рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЫреЛрдЯреА рдЯреАрдо рдмрдврд╝рддреА рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдПрдХ рдмреЛрдЭ рдмрди рдЧрдП рд╣реИрдВред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдорд╛рд░реА рдЧрддрд┐ рдЧрд┐рд░рддреА рдЧрдИ, рджреЛрд╖реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рддреА рдЧрдИред

рдирддреАрдЬрддрди, рдЯреАрдо рддреАрди рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛ рдкрд╛рдИ рдЬреЛ рдЕрдкрдирд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХреЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдмрд┐рддрд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рддреЛ рдмрджрд▓рдирд╛ рд╣реА рдерд╛ред рдпрд╣ рдкреЛрд╕реНрдЯ рдПрдХ рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╣рдордиреЗ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд▓рд┐рдпрд╛ рдФрд░ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛рдпрд╛ рдЬреЛ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдЯреАрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛред

рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ


рд╕реЗрдЧрдореЗрдВрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдбреЗрдЯрд╛ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╝рд╛рд░реЛрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рднрд╛рдЧреАрджрд╛рд░ рдПрдкреАрдЖрдИ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХрд╣рддреЗ рд╣реИрдВред рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ Google Analytics, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд▓реА рдпрд╛ рдХрд╕реНрдЯрдо рд╡реЗрдм рд╣реБрдХред

рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ, рдЬрдм рдЙрддреНрдкрд╛рдж рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕рд░рд▓ рдереАред рдПрдХ рдПрдкреАрдЖрдИ рдерд╛ рдЬреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рддрд░рд┐рдд рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдореЗрдВ рднреЗрдЬрддрд╛ рдерд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рдШрдЯрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдпрд╛ рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╡реЗрдм рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдереАред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреЗрд▓реЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

{
  "type": "identify",
  "traits": {
    "name": "Alex Noonan",
    "email": "anoonan@segment.com",
    "company": "Segment",
    "title": "Software Engineer"
  },
  "userId": "97980cfea0067"
}

, , . API , , , тАУ Segment API, , . Segment .

, . , . , , , . , HTTP 500, -. , , , , . , .



, , , , . , , , .

, X -. , , X, . , , . , X . , .



, . -, . , , , . , , , .

image


API , . тАУ X traits.dob, API traits.birthday. X :

const traits = {}
traits.dob = segmentEvent.birthday

Segment, . , API . , , XML .

, , . , , . , . . , .

. .


50 50 . , , HTTP , .

, , event.name() . name Name. , firstName, first_name, FirstName. , .

Identify.prototype.name = function() {
  var name = this.proxy('traits.name');
  if (typeof name === 'string') {
    return trim(name)
  }
  
  var firstName = this.firstName();
  var lastName = this.lastName();
  if (firstName && lastName) {
    return trim(firstName + ' ' + lastName)
  }
}

. .

. . . , , . .

, . , . . , , .

, . , тАУ . , .

, , - , .

, , , . , . .


140 . . , .

, . , , . Centrifuge. Centrifuge .

image


, , , . , .

120 . . , .

, . , . .

, . , .

, . HTTP , , , .

, . , . , HTTP , . , . . , , .


HTTP . , . 5 . 140 .

Traffic Recorder. Traffic Recorder yakbak, . , , . . , . , HTTP , .

, , Traffic Recorder. , 140+ . . .


, . , . 140+ . .

. 2016, , 32 . 46. 6 , 2016 .

. , . , , .


, :

  1. . , , , . , . , , .
  2. . , , , . 3000+ , . - Redis , . , .


, . , . , . , .

, . , , , .

  1. . , , . , , .
  2. , , , . , .

. , , . .

Source: https://habr.com/ru/post/hi416819/


All Articles