ÕªÒª£ºÍ¬ºÜ¶à³õ´´²úÆ·Ò»Ñù£¬ÃÀÑ¿ÉçÇøÒ²ÓÐÈý¸ö³£¼ûµÄÌØµã£º½ÏСµÄÓû§¹æÄ£¡¢¿ìËÙµÄÐèÇó±ä»¯ÒÔ¼°ÉÐδÍêÉÆµÄÍŶӡ£Ãæ¶ÔÕâÑùµÄ¾³¿ö£¬Ïà±È½Ï´úÂëµÄÖ´ÐÐЧÂÊ»òÏßÉϽӿڵÄÏìӦЧÂÊ£¬¸üÎª×¢ÖØ¿ª·¢Ð§ÂÊÊÇÃÀÑ¿µÄÓ¦¶ÔÖ®²ß¡£
¡¾±àÕß°´¡¿ÃÀÑ¿×÷Ϊһ¸öÃÀ×±ÊÓÆµÉçÇø£¬ÔÚ 2 Ô·ÝÉÏÏßÖ®ºó£¬¼«ÊÜÅ®ÐÔÓû§µÄ»¶Ó¡£´Ë´ÎÃÀÑ¿ CTO Ò¦¶«ÐñÔÚ UPYUN Open Talk ÏÃÃų¡·ÖÏíÁËÃÀÑ¿´ÓÁãµ½Ò»µÄÕû¸ö²úÆ·ÉúÃüÖÜÆÚ£¬´ø¸ø´´Òµ¹«Ë¾ºÜ¶àÖµµÃ½è¼øµÄµØ·½¡£
ÒÔÏÂΪÕýÎÄ
ÃÀÑ¿ÔÚÃÈÑ¿¹ý³ÌÖУ¬Í¬ºÜ¶à³õ´´²úÆ·Ò»Ñù£¬Óг£¼ûµÄÈý¸öÌØµã£º½ÏСµÄÓû§¹æÄ£¡¢¿ìËÙµÄÐèÇó±ä»¯ÒÔ¼°ÉÐδÍêÉÆµÄÍŶӡ£
1. ½ÏСµÄÓû§¹æÄ£¡£ËäȻżÓÐÀýÍ⣬ƩÈç¡°×ã¼£¡±µÄ±¬·¢Ê½Ôö³¤£¬´«ÑÔ DAU ÓÐ 300 Íò£¬¶øÒ»°ãµÄ²úÆ·²»»áÓÐÕâÖÖÔËÆø£»
2. ¿ìËÙµÄÐèÇó±ä»¯¡£³õ´´²úÆ·Ô̺¬ºÜ¶àµÄ²»È·¶¨ÐÔ¡£ÎÞ·¨Í¬Ê±¼æ¹Ë²úƷϸ½Ú£¬Ò²ÎÞ·¨Ôڽ϶Ìʱ¼äÄÚ½«¹¦Äܼ«¾¡ÍêÉÆ£¬Òò¶øÍ¨³£Çé¿öÏ»ᾡ¿ìÍÆÏòÊг¡£¬ÒÔÑéÖ¤Ïë·¨µÄÕýÈ·ÐÔ£»
3. ÉÐδÍêÉÆµÄÍŶӡ£»¥ÁªÍø´´Òµ¹«Ë¾¶ÔÓÚ¼¼ÊõÈËÔ±µÄÇ¿ÁÒÐèÇó£¬ÓëÊг¡µÄ¹©²»Ó¦Çó£¬ÓÐ×ÅÄÑÒÔÏû½âµÄì¶Ü¡£¼ÓÉÏ´´Òµ¹«Ë¾ÎÞ·¨¸ß¼ÛÇëÈË£¬Í¨³£Çé¿öϵÄÓ¦¶ÔÖ®²ßÖ»ÄÜÊÇÒ»È˶àÓá£
Ãæ¶ÔÕâÑùµÄ¾³¿ö£¬Ïà±È½Ï´úÂëµÄÖ´ÐÐЧÂÊ»òÏßÉϽӿڵÄÏìӦЧÂÊ£¬¸üÎª×¢ÖØ¿ª·¢Ð§ÂÊÊÇÃÀÑ¿µÄÓ¦¶ÔÖ®²ß¡£¶øÓ°Ï쿪·¢Ð§ÂÊÖ÷Òª°üÀ¨Èý·½Ã棺һÊǹµÍ¨³É±¾£¬ÒÔ¿Í»§¶ËºÍºó¶ËͬѧµÄ¹µÍ¨ÎªÖ÷£»¶þÊÇÖØ¸´ÂÖ×Ó£¬ÒѾÓгÉÊìµÄ¿ªÔ´ÊµÏÖÁË£¬È´ÓÃ×Ô¼ºµÄ´úÂëÖØ¸´ÊµÏÖÁË£»ÈýÊǹý¶ÈÉè¼Æ¡£
¹µÍ¨³É±¾£ºÐÒé / Á÷³Ì
1. ÐÒé
ÔÚÐÒé·½Ãæ£¬ºÜ¶àÏîÄ¿ÔÚÉè¼ÆÇ°ºó¶Ë½»»¥ÐÒéʱ·Ç³£ËæÒ⣬±ÈÈç /Post/Show/xx £¬ÊµÏÖÆðÀ´Ò²Ã»ÓÐͳһ±ê×¼¡£

´ÓÇëÇóÎÞ·¨Ã÷È·¿´³ö¸ÃÒÔÄÄÖÖ·½Ê½»ñÈ¡Êý¾Ý£¬¿Í»§¶Ëͬѧ±ØÐëѯÎÊ·þÎñ¶Ë£¬»òÕßÔÚÎĵµÀïÇåÎúµÄÃèÊö³öÀ´¡£ÌرðÊǶÔÓÚмÓÈëµÄ¿ª·¢Õߣ¬ÐèÒªÒ»¸öÊìϤµÄ¹ý³Ì¡£±ÈÈçɾ³ýÒ»¸öÌû×Ó£¬Ê¹Óà DELETE »ò GET ·½·¨£¬Ò²²¢Ã»ÓÐͳһµÄ±ê×¼£¬Õë¶ÔÕâ¸öÎÊÌ⣬ÃÀÑ¿ÊÇÑ¡Óà REST·ç¸ñ¡£
REST¿ÉÒÔ·ÒëΪ±íÏÖ²ã״̬ת»¯£¬ÕâÀïÓ¦¸Ã»¹ÓиöÖ÷ÓÄǾÍÊÇ Resource£¨×ÊÔ´£©£¬ÌØÖ¸ÍøÂçÉϵľßÌåÐÅÏ¢£¬±ÈÈçÌû×ÓºÍÆÀÂÛ¡£ÃÀÑ¿ÔÚÉè¼Æ¿Í»§¶ËÇëÇó½Ó¿ÚµÄʱºò¶¼ÊÇÕë¶ÔÒ»¸ö×ÊÔ´×ö²Ù×÷¡£REST¶¨ÒåÁËÒ»¸ö¶Ô×ÊÔ´²Ù×÷µÄ±ê×¼£¬Ê¹Óà HTTP µÄËĸö¶¯´Ê±íʾ¶Ô×ÊÔ´µÄ²Ù×÷£¬GET£¬POST£¬DELETE£¬PUT¡£ÒÔÓû§Ìû×ÓΪÀý£º

GET /posts »ñÈ¡Ìû×ÓÁÐ±í£¬
GET /posts/id »ñÈ¡±àºÅΪ id Ìû×ÓµÄÄÚÈÝ£¬
POST /posts ·¢²¼Ìû×Ó£¬
DELETE /posts/id ɾ³ý±àºÅΪ id µÄÌû×Ó£¬
PUT /posts/id Ð޸ıàºÅΪ id µÄÌû×Ó¡£
ÎÞÂÛмÓÈκι¦ÄÜÄ£¿é£¬°üÀ¨ÆÀÂÛ»òµãÔ޵ȶ¼Ö´ÐÐÕâÒ»±ê×¼¡£ÔÚ¿ª·¢¿Í»§¶ËµÄ¹ý³ÌÖУ¬¾Í±ÜÃâÁËÌí¼Óй¦ÄÜʱ¶Ô½Ó¿Ú×öÆäËûµÄÔ¼¶¨¡£

ÒÔÄ£ÐÍ Post ¾ÙÀý£¬½Ó¿Ú¿ÉÒÔ±ä³ÉÔÚ»ñÈ¡Ìû×Óʱ£¬½« id ´«¹ýÈ¥£¬·µ»ØÀ´¾ÍÊÇÐèÒªµÄ¶ÔÏó¡£Ìû×ÓÔÚºó¶Ë»òÊý¾Ý¿âÖеÄ×ֶΣ¬ÔÚ¿Í»§¶Ë¶ÔÓ¦µÄ¾ÍÊÇ Post Ä£Ð͵ÄÊôÐÔ¡£
²»ÔÙÐèÒªÓÐÎĵµÈ¥½éÉÜËü£¬Ö»ÐèÒª×Ô¶¯Éú³ÉÒ»·ÝÊý¾Ý¿â×Öµä¾Í°ÑËùÓж«Î÷½â¾öÁË£¬ÉÙÁ˺ܶàÖмä³É±¾¡£ÔÚ¿Í»§¶ËÒª´´½¨Ìû×ӾͱäµÃ¼«Æä¼òµ¥£¬¿Í»§¶ËÓö¨ÒåºÃµÄ·½·¨ÇëÇ󵽺ó¶Ë£¬·þÎñ¶ËÊÕµ½ÇëÇóºó¾ÍÍùÊý¾Ý¿âÀïн¨Ò»¸ö×ÊÔ´¡£ÃÀÑ¿ÔÚ¿Í»§¶Ë½Ó¿ÚÉè¼ÆµÄʱºò¶¼ÊÇÕë¶Ô×ÊÔ´²Ù×÷¡£
×ܽáÀ´Ëµ£¬½Ó¿ÚÉè¼ÆÃæÏò×ÊÔ´¡¢¶ø·Ç¹¦ÄÜ¡£ÔÚ¿Í»§¶ËÓи÷ÖÖ¹¦ÄܺͲÙ×÷£¬ÔÚ½Ó¿ÚÉÏÃæ¿Ï¶¨²»ÄÜËùÓеĶ«Î÷¶¼°´¿Í»§¶ËµÄÒªÇóÉè¼Æ£¬ÕâÑù»áÔö¼ÓºÜ´ó³É±¾¡£ÎÒÃÇÔÚ½Ó¿ÚÉè¼ÆÉÏÖ»¹Ø×¢Êý¾Ý£¬ÖÁÓÚÔõô²Ù×÷Êǿͻ§¶ËµÄÊÂÇ飬½«Êý¾ÝºÍ±íÏÖ·ÖÀë¡£
2. Á÷³Ì
¿ª·¢Á÷³Ì£¬¸Õ³öµÀµÄʱºòÓÉÓÚÁ÷³Ì²»ÍêÉÆ£¬»á³öÏÖ¸÷ÖÖÎÊÌ⣬±ÈÈç¸ÕÉÏÏߵĴúÂë»ò¸ÕÐÞÕýÁËÒ»¸ö BugËæÒâ·¢²¼£¬·¢²¼ÉÏÈ¥ºóÓÖ·¢ÏÖÓÐÎÊÌâ¡£

Õë¶ÔÕâµã£¬ÃÀÑ¿ÖÆ¶¨Á˱¾µØ»·¾³ - ¿ª·¢»·¾³ - Ô¤·¢»·¾³ - Éú²ú»·¾³Ëĸö»·½Ú¡£Ã¿¸öÈËÔÚ±¾µØ»·¾³Íê³Éºó½«´úÂëÌá½»£¬»á×Ô¶¯·¢²¼µ½¼¯³É¿ª·¢»·¾³£»Ô¤·¢»·¾³µÄ´æÔÚ£¬ÊÇÏëÔÚÉÏÏß֮ǰ£¬ÔÚͬÑùµÄÉú²ú»·¾³Ï£¬×ö×îÖÕµÄÈ·ÈÏ£¬Ö®ºóÔÙ¸üе½Óû§»·¾³ÖС£

´úÂë¹ÜÀíµÄÁ÷³Ì£¬´Ó²Ö¿âÀ´Ëµ£¬Ê×ÏÈÓÐ master ºÍ dev Á½¸ö³¤ÆÚ·ÖÖ§£¬master ÊÇÖ÷¸É·ÖÖ§£¬dev ÊÇ¿ª·¢µÄ¼¯³É»·¾³ ¡£µ±ÒªÐÞ¸Ä bug»òÕß¿ª·¢ÐÂÌØÐÔʱ»áн¨Ò»¸öзÖÖ§£¬ÎÊÌâÐÞ¸´ºóÐèÒª½«Õâ¸ö·ÖÖ§ merge µ½ dev ·ÖÖ§£¬ÐèÒªÉÏÏßʱ¾ÍºÏ²¢µ½ master£¬ÕâÊÇÒ»¸öÌØ¶¨µÄÉúÃüÖÜÆÚ¡£
´úÂëÔÚÍÆÏòÔ¤·¢»·¾³Ç°Òª¾¹ýÆäËû³ÉÔ±µÄÉóºË£¬ÉóºËÖ®ºó²Å»áºÏ²¢¡£ºÏ²¢ºóʹÓà git hooks ¹¤¾ß£¬×Ô¶¯½«´úÂë¸üе½Ô¤·¢»·¾³£¬ÔÚApp¿Í»§¶Ë ÄÚ²¿»á×öһЩ¿ª¹Ø¿ØÖÆËüÓÃÄĸö»·¾³¡£

ÔÚÕû¸ö¹ý³ÌÖУ¬¶ÔËùÓÐͬѧ¶¼ÊÇ͸Ã÷µÄ£¬ÎÒÃÇʹÓÃÁË Slack ×÷ΪÏûÏ¢ÊàŦ£¬Slack ¶©ÔÄÁË Github ֪ͨʼþ¡£ÍŶÓÀïÃæµÄÿһλ³ÉÔ±£¬Ö»Òª¹Ø×¢ÏîÄ¿¶¼»á¿´µ½ËùÓеĶ¯Ì¬£¬°üÀ¨ÌØÐÔÉÏÏß¡¢BugÐÞ¸´µÈ¡£»¹ÓÐÒ»¸ö¹¤¾ß fabric£¬ ÕâÊÇÒ»¸ö Òì³£Éϱ¨ ×é¼þ£¬¿Í»§¶Ë¼¯³É fabric sdkºó¾Í¿ÉÒÔ½«Òì³£Éϱ¨µ½ fabric£¬fabricÔÙ֪ͨµ½ Slack, ÍŶӳÉÔ±¾ÍÄÜÔÚ slack Öп´µ½¿Í»§¶ËÔËÐж¯Ì¬ÁË¡£
ÖØ¸´ÂÖ×Ó£º¿ò¼Ü / Àà¿â / ¿ªÔ´Èí¼þ
¿ò¼Ü
ÆäÒ»£¬ÎªÁ˱£Ö¤¿ª·¢Ð§ÂÊ£¬Ï£Íû¿ò¼ÜʹÓÃÆðÀ´Äܹ»×ã¹»¼òµ¥£¬ÐµÄÍŶӳÉÔ±Ò²Äܹ»ºÜºÃµØÊÊÓ¦¡£¹ØÓÚÆÄÊÜÕùÒéµÄ ORM ÐèÒª¹Û²ìËüµÄÊÊÓÃÇé¿ö£¬ÔÚÓû§¹æÄ£ÉÐС¡¢Êý¾ÝÁ¿½ÏСʱ£¬ORM Äܹ»¿ìËÙʵÏÖÒµÎñÐèÇ󣬶øµ±Á¿¼¶½¥³¤¾Í¸Ã¹û¶ÏÉáÆú£»Æä¶þ£¬¿ò¼Ü±ØÐë±£Ö¤¹¦ÄÜÇ¿´ó£¬ÒÔ¾¡¿ÉÄܼõÉÙ¿ª·¢Á¿¡£»ùÓÚÒÔÉϵÄ×ۺϿ¼ÂÇ£¬ÃÀѿѡÔñÑ¡ÔñʹÓÃÁËÒÔÏÂPHP¿ò¼ÜºÍ¹¤¾ß£º

2. DB migration£¬Õâ¸öÊÇÐÞ¸ÄÊý¾Ý±í½á¹¹µÄÒ»¸ö¹¤¾ß¡£¸Õ¸ÕÌá¼°µÄÐèÇó»á½Ï²»Îȶ¨£¬¾³£»áÓöµ½×ֶεÄÔö¼õ£¬¶ø´ËÀà²Ù×÷Èç¹ûÖ»ÊÇÊÖ¶¯Ð޸쬲¢ÐèҪͬ²½µ½ÆäËü»·¾³£¬½«¼«Æä²»ÀûÓÚ¹ÜÀí¡£DB migration Õâ¸ö»úÖÆÊÇÓÃÒª´úÂë±íʾÊý¾Ý¿â×ֶεÄÔöɾ¡£

Æ©ÈçÔÚÔöÉè×Ö¶Îʱ£¬ÐÂÔöÒ»¸öÀà±íʾ¶ÔÊý¾Ý±íµÄ²Ù×÷£¬ÆäÖУ¬up ·½·¨¾ÍÊÇÖ´ÐÐÐ޸ģ¬down ÊǻعöÐ޸ġ£µÈµ½ÉÏÏßʱ£¬¾ÍÖ»Ðè¸üРPHP´úÂ룬Õâ¾ÍͳһÁ˱í½á¹¹µÄͳһ²Ù×÷£¬ËùÓеĶ«Î÷¶¼ÓôúÂë³ÊÏÖ£¬³ÊÏÖÓÖÊÇÎı¾£¬¿ÉÒÔ½øÐа汾¹ÜÀí¡£ÈËÔ±¶ÔÊý¾Ý¿âµÄËùÓвÙ×÷¶¼Óмͼ¡£
3. Command¡£±ÈÈ磬¿ª·¢Ò»¸öÃüÁîÐй¤¾ß£¬ÈÃÓû§ÊäÈëÒ»¸öÃû×Ö£¬¸ù¾ÝÃû×Öµ÷ÓÃÐÅÏ¢£¬ÐèÒª°üº¬ÊäÈë²ÎÊý£¬ºÍÑ¡Ïî²ÎÊýÒÔ¼°Êä³ö¡£Command »á½«ÕâЩ¶«Î÷×ö°ü×°£¬²»ÐèÒª¿ª·¢³ýÁ˲úÆ·ÒµÎñÂß¼Ö®ÍâµÄ¶«Î÷¡£

4. Queue£¬½øÐкܶà²Ù×÷ʱ²»ÄÜͬ²½µÈ´ý£¬±ÈÈçÍÆËÍÒ»ÌõÏûÏ¢£¬·¢²¼Ò»ÌõÆÀÂÛÈöԷ½ÊÕµ½ÏûϢ֪ͨ£¬¿Ï¶¨²»ÄÜÔÚÇëÇóÀïͬ²½´¦Àí£¬¶øÊÇÒª·Åµ½¶ÓÁÐÀïÒì²½Ö´ÐУ¬ÔÙÍÆË͵½Æ»¹ûµÄ·þÎñÆ÷×îºóÍÆË͵½Óû§¡£Õâ¸öÀý×ÓÊÇÏîÄ¿ÖÐÓõģ¬ÎÒÃÇÌí¼Ó¶ÓÁеÄʱºòÖ»ÐèÔÚ·þÎñÆ÷ÉÏÖ´ÐÐÒ»ÌõÃüÁî´ò¿ªÕâ¸ö¶ÓÁС£

5. Tinker£¬ÕâÒ²ÊÇÃüÁîÐеŤ¾ß£¬¿ÉÒÔ×öµ½ÔÚÖ´ÐÐÕâÌõÃüÁîµÄʱºò£¬°ÑÕû¸öÏîÄ¿»·¾³¼ÓÔØ½øÈ¥¡£¶øÇÒÊÇÒ»¸ö½»»¥Ê½µÄ²Ù×÷£¬±ÈÈçҪȡһ¸ö¶ÔÏó¾Í¿ÉÒÔÖ±½Ó²éѯ£¬°ÑÐÅÏ¢´ò³öÀ´¡£Ïà±È½Ïµ÷ÊÔ´úÂëʱÓÃurl»òÕßÌí¼Ó¸÷ÖÖ²ÎÊý£¬ÕâÖÖ´¦Àí·½Ê½»á·Ç³£·½±ã¡£

6. »¹ÓÐÒ»¸öÊÇ¶Ô Log µÄ´¦Àí£¬Ê¹ÓÃʱֻÐèÒªÅäÖÃһϣ¬ÔÚµ±Ç°»·¾³ÏÂÐèÒª´òµÄ Log ¼¶±ð£¬ÔÚ´úÂëÖÐÖ±½ÓʹÓü´¿É£¬»òÕßÔÚÉú²úÖн«ÕâÀàÐÅÏ¢¶¼±£Áô¡£

ÉÏÃæÊ¹ÓõÄÿһÏî¶¼²»ÊÇÌ«¸´ÔÓ£¬»òÕßÄѶÈÌØ±ð´ó£¬×Ô¼º×öÒ²¶¼¿ÉÒÔ¡£µ«ÔÚ×ÊÔ´ÓÐÏÞµÄÇé¿öÏ£¬³õ´´ÍŶӸüÖØÒªµÄÊÇͶÈë¸ü´óµÄʱ¼äºÍ¾«Á¦ÔÚÒµÎñÉÏ¡£Õâ¸ö¿ò¼ÜÊǼ¯³ÉÁË¿ª·¢ÖÐһЩͨÓõÄÄÚÈÝ£¬¼õÉÙÁ˺ܶà¶îÍâµÄ¿ª·¢¹¤×÷¡£

ËäÈ»¿´ÉÏÈ¥ Laravel ¿ò¼Ü·Ç³£ÃÀºÃ£¬µ«ÃÀºÃ¶¼ÊÇÓдú¼ÛµÄ£¬Laravel ¿ò¼Ü·Ç³£µÄÂý¡£ÒòΪËüÌṩÁ˸÷ÖÖ·â×°¡¢¼ÓÔØÁ˺ܶණÎ÷£¬µ¼ÖÂÒ»¸ö¿ÕµÄ½Ó¿ÚÏìӦʱ¼äÒ²ÐèÒª¼¸Ê®ºÁÃë¡£ËùÒÔ¸üÊʺÏÁ¿²»´óµÄ³õ´´²úÆ·¡£µ«Óë´Ëͬʱ£¬ÃÀѿҲÕýÔÚ»ý¼«½â¾öЧÂÊÎÊÌâ¡£
ÔÙÀ´¿´ iOS Àà¿â£¬REST Ö»ÊǶ¨ÒåÁ˱ê×¼£¬¶øÃ»ÓÐÌṩÍêÕûµÄ¹¤¾ßÀ´ÊµÏÖ£¬Í¨³£·þÎñ¶Ë·µ»ØµÄÊÇ JSON ¸ñʽÊý¾Ý£¬¿Í»§¶Ë½«ÊÕµ½µÄ JSON ¸ñʽת»»³É NSDictionary£¬ÔÙÓÉ NSDictionary ת»»³É NSObject, Õâ¿ÉÄܶÔÓ¦µ½¿Í»§¶ËµÄÒ»¸ö Model »òÕßÒ»¸ö¾ßÌå¶ÔÏ󣻿ͻ§¶Ë·¢ÇëÇóµ½·þÎñ¶Ëʱ£¬¾ÍÐèÒª½« NSObject ת»¯³É NSDictionary£¬ ÔÙת»»³É JSON ¸ñʽ£¬È»ºó·¢Ë͵½·þÎñ¶Ë¡£Õâ¸ö¹ý³Ì·Ç³£·³Ëø£¬¶øÇÒÐèÒª¶Ôÿ¸öÀ඼ʵÏÖÒ»Ì× encode decode µÄÂß¼£¬¶øÊµÖÊÉÏÎÒÃǹØÐĵÄÖ»ÊÇ Value ¶øÒÑ¡£ÎÒÃÇÒý½øÁË Mantle ¿â£¬Õâ¸ö¿â»á°ïÄãʵÏÖÕâһϵÁзâ°ü½â°üµÄ¹ý³Ì¡£

ÔÙ¼ÓÉÏ TMCache AFNetworking ÕâÁ½¸ö¿â£¨Ç°ÕßÓÃÀ´ÊµÏÖ¿ìËٵĶÔÏ󻺴棬¶øºóÕß»ù±¾ÉÏÿ¸ö iOS ³ÌÐòÔ±¶¼ÊìϤµÄÒ»¸öÍøÂç¿ò¼Ü£©£¬¾ÍÄÜʵÏÖÕû¸ö²úÆ·µÄ Model ²ã¡£

×îºó½éÉÜÒ»Ì׿ªÔ´Èí¼þ ELK(Elasticsearch Logstash Kibana)£¬ÕâÒ»Ì×Èí¼þÖ÷ÒªÓÃÀ´´¦ÀíÈÕÖ¾£¬½ø¶ø·ÖÎöÎÊÌ⣬ÆäÖÐElasticsearch ¸ºÔð´æ´¢+ËÑË÷¡¢Logstash ¸ºÔðËѼ¯¡¢Kibana ¸ºÔðչʾ£¬Í¨¹ý ELKÎÒÃÇ¿ÉÒÔËæÊ±¹Û²ìʼþµÄ·¢Éú£¬²¢×÷³ö¼°Ê±Í×µ±µÄ´¦Àí¡£

±ÈÈç¿Í»§¶Ë·ÃÎÊ·þÎñÆ÷ʱ·µ»ØÏµÍ³·±Ã¦ÕâЩ´íÎ󣬻òÕßÊÇÌû×Ó¼ÓÔØ¹ýÂýÕâЩÎÊÌâ¶¼¿ÉÒÔͨ¹ýÕâÒ»Ì×Èí¼þչʾ³öÀ´¡£ËäÈ»¿´ËƸ´ÔÓ£¬µ«Êµ¼Ê²Ù×÷È´¼«Æä¼òµ¥£¬ÏÖÔÚÎÒÃÇÖ÷Òª·ÖÎö³ÌÐòÄÚ²¿ÈÕÖ¾£¬Nginx access log ºÍ Nginx error log¡£

ÕâЩÈÕÖ¾»áÏÈͨ¹ý logstash ²É¼¯£¬´æ´¢µ½ ES ÉÏ£¬ÔÙͨ¹ý Kibana չʾ³öÀ´¡£
ͬʱ£¬ÕâÒ»Ì×¹¤¾ß»¹ÓжÔÔËÓªÊý¾Ý·ÖÎöµÄÖ§³Ö¡£½ÓÈëÕâÌ×¹¤¾ß£¬ÃÀѿʵÏÖÁ˸÷ÖÖÒµÎñµÄ¼òµ¥Í³¼Æ£¬°üÀ¨×¢²áͳ¼Æ¡¢µØÇø·ÖÎö¡¢Ê±¼ä·ÖÎö¡¢Óû§»îԾʱ¼äµÈµÈ¡£½ÓÈë ELK Ò²ÊǷdz£¼òµ¥µÄ£¬Ö»Ð轫ÔʼÊý¾Ýµ¼È룬µ÷ÓÃһЩ²éѯÓï¾ä¾Í¿ÉÒÔÕ¹ÏÖ£¬Ö»ÐèÒªµ÷ÓÃһϽӿڡ¢ÌîÈëͳ¼ÆÊý¾Ý¼´¿É£¬ÒµÎñÉϲ»ÐèÒª×öʲô²Ù×÷ºÍÐ޸쬏üÎÞÐèÐÞ¸ÄÊý¾Ý¿âºÍ´úÂëÖ÷Âß¼¡£

ÃÀÑ¿ÕûÌåºê¹Û¼Ü¹¹ÈçÏÂͼËùʾ£ºÃÀÑ¿Óû§Í¨¹ý APP »òÕßPC °æ¸ú Nginx ½»»¥ÔÙ·ÃÎÊ API£¬ÕâÀïËù²úÉúµÄÈÕÖ¾¶¼»áдÎļþ£¬ÔÚÎļþдÈëÖ®ºó¾Í»áÓÐ Logstash Agent »á·Òë³É¹Ì¶¨µÄ¸ñʽ´æµ½ Elsearch£¬ ͬʱ API ÄÚ²¿Ò²»á½«ÈÕÖ¾»áÏÈÊä³öµ½ÏûÏ¢¶ÓÁÐÖУ¬ÓÉÏûÏ¢¶ÓÁÐÔÙÒì²½Êä³öµ½ Logstash Agent£¬Dashboard »áµ÷Óà kibana µÄ½Ó¿Ú£¬ÒÔÔËÓªÄܽÓÊܵÄÐÎʽչÏÖ³öÀ´£¬ÈçÏÂͼ£º

»á¹ÜÀíÏßÉÏ·þÎñÆ÷µÄ¿Í»§¶Ë¿ª·¢£¬²ÅÊÇÒ»ÃûºÃÔËά
ÌØ±ð½éÉÜÏÂÃÀÑ¿µÄÔËά£¬¾¡Ò»È˶àÓÃÖ®ÄÜÊ£¬ÔËάҲ¼æ×ö¿ª·¢¡£ÔÚ´úÂëµÄÉÏÏßÁ÷³ÌÖв¢²»ÐèÒªÔËάµÄ²ÎÓ룬µ«Èí¼þ°²×°¡¢ÅäÖøüоÍÐèÒªÔËά´¦Àí¡£ÃÀÑ¿µÄÔËά£¬Ö÷ÒªÊÇͨ¹ý Saltstack£¬Óà YAML À´ÃèÊö·þÎñÆ÷µÄ״̬¡£YAML ×÷ΪһÖֱȽϼò½àµÄÊý¾Ý¸ñʽ£¬ÊÇ´¿Îı¾µÄ£¬Ò²¾ÍÊÇ˵·þÎñÆ÷µÄËùÓÐ״̬¶¼¿ÉÒÔ½øÐа汾¹ÜÀí£¬·þÎñÆ÷µÄ״̬¿É¸ù¾Ýÿ¸ö°æ±¾ÀïÃæµÄÅäÖÃÎļþÌåÏÖ³öÀ´·þÎñÆ÷µ±Ç°ÊÇʲôÑùµÄ״̬¡£
¿´ÏÂÃæÒ»¸ö¼òµ¥µÄʾÀý£¬ÏÂͼÊÇÒ»¸ö logstash µÄ saltstack ÅäÖãº

Ê×ÏÈÊÇÓÐÒ»¸ö master ½Úµã£¬ÕâÊÇÒ»¸öÖÐÐĽڵ㣬ȻºóÓкܶàµÄ minion ½ÚµãÐèÒª±»¸üС£

Ö´ÐÐÒÔÏÂÒ»ÌõÃüÁî¾Í¿ÉÒÔ½«ËùÓÐµÄ minion ¸üÐÂÁË£¬ÃüÁîÓÐÁ½¸ö²ÎÊý£¬Ò»¸öÊÇ prod£¬ÊÇÒ»¸ö·Ö×éµÄ¸ÅÄ±ÈÈçÎą̊·þÎñÆ÷£¬°ÑÎą̊·þÎñÆ÷¶¼·Åµ½·Ö×éÀïÃæ£»ºóÃæÒ»¸ö²ÎÊý production, ´ú±íÉú²ú»·¾³¡£²Ù×÷ʱ£¬Ç°°ë²¿·ÖÊÇÕë¶ÔÎą̊·þÎñÆ÷×öµÄ¹¤×÷¡£

×÷Õß¼ò½é£ºÒ¦¶«Ðñ£¬ÃÀÑ¿ CTO£¬ÔÌÚѶ¹¤³Ìʦ£¬ÔøÔÚ QQ »áÔ±ÒÔ¼°Î¢ÔƲúÆ·ÖÐÐÄ×öÑз¢¹¤×÷£¬ÓÉÓÚ¸öÈËÐËȤÒÔ¼°¹¤×÷ÔÒò£¬×ö¹ý¸÷ÖÖÆ½Ì¨µÄ¿ª·¢£¬Ä¿Ç°Ö÷Òª¹Ø×¢ DevOps¡¢ÍŶӿª·¢Ð§ÂÊÒÔ¼°´úÂëÖÊÁ¿±£Ö¤µÈÁìÓò¡£ |