Redditã®ãããã§ãAsk Me AnythingïŒAMAïŒåœ¢åŒã人æ°ãéããŠããŸã-倧èŠæš¡ã§äººæ°ã®ãããããžã§ã¯ããæ åœããå°é家ããŒã ãããã¹ãŠã®äººã«ä»äºããµãŒãã¹ã®å 容ã«ã€ããŠè³ªåãããããã«çã«ææ¡ãããšãé 眮ãããŸããã Habréã®æåã®AMA圢åŒã¯ãBadooã®éçºè ã«ãã£ãŠäœ¿çšãããŸããã ãŸããè©ŠããŠã¿ãããšã«ããŸããã ä»ã®äŒæ¥ãç§ãã¡ã®äŸã«åŸã£ãŠãèªè ã圌ãã®å ãªãå°æã«å ¥ãå§ããããšãé¡ã£ãŠããŸãã
Mail.Ru CloudããŒã ãšAMAãéå§ããããšã«ããŸããã ããã¯è¥ãã掻çºã«éçºãããŠãããããžã§ã¯ãã§ãããããã«ã€ããŠç§ãã¡ã¯åžžã«å€ãã®è³ªåããããŸãã ããã«ãããŒã³ãïŒ2013幎8æ以éïŒä»¥æ¥ãã¯ã©ãŠãã¯ãããžã§ã¯ãã®å€§ããªãã¡ããªãŒã«æé·ããŸããã
æŽå²çã«ãã¯ã©ãŠãã¯Webããã¹ã¯ããããããã³ã¢ãã€ã«ããŒãžã§ã³ãåããB2C補åãšããŠå§ãŸããŸããã ãã ããB2Bã¯éåžžã«ææãªåžå Žã§ããããŸãã ãããã£ãŠãCloud for archivesïŒIceboxïŒãCloud for workgroupsïŒTeamboxïŒãHot storageïŒHotboxïŒãªã©ãMail.Ru Groupã®ãã¹ãŠã®B2BãµãŒãã¹ãçµã¿åãããŠãããžãã¹çšã®Mail.Ruãã©ãããã©ãŒã ãéçºããŸããã
ãã®æ¥œãã家æã®éèŠãªæŽ»åãšç¹æ ã誰ãã©ã®ããã«æ£ç¢ºã«ä¿èšŒããããããŒã¿ã»ãã¥ãªãã£ãã©ã®ããã«éæãããããããã«ãããé«ããã¡ã€ã«ã¢ããããŒãé床ãšäœãã¬ã€ãã³ã·ãå®çŸããŸã-ãã®ããšã«ã€ããŠã¯ãèšäºããåŠã³ãèå³ã®ãã質åãããããšãã§ããŸãã
ãŸããå°ãæŽå²
ã¯ã©ãŠãã®èšè¿°ãéå§ãããšããMailãMy Worldãããã³ã³ã³ãã³ããããžã§ã¯ãã§äœ¿çšãããçµ±äžãããã³ãŒãããŒã¹ãåºç€ãšããŠããŸããã ãã®ã³ãŒãããŒã¹ãMpopãšåŒã³ãŸãã ããã¯Perlã©ã€ãã©ãªã®æã§ãã ãããŠæ°å¹ŽåãMail.Ru Groupã®ãã¹ãŠã®ããŒã¿ã«ãããžã§ã¯ãããã®äžã«ååšããŠããŸããã ããããã®ãããžã§ã¯ãã®Mpopã§äœãããªãã¡ã¯ã¿ãªã³ã°ããããšãä»ã®ãããžã§ã¯ãã«åœ±é¿ãäžããŸããã åŸã ã«ãåãããžã§ã¯ãã¯ãã®ããŒãžã§ã³ã®Mpopã«ç§»è¡ãããã®åŸãç§ãã¡ã¯ãããé¢ãå§ããŸããã ããšãã°ãã¡ãŒã«ã¯éšåçã«Goã«åãæ¿ããããŸããã ç§ãã¡ã¯ããšããšMpopã«ãäœãã§ããŸããããè¶ é«éPerlãµãŒããŒã®ãã¹ãŠãéãã«æžãæããŸããã å®å šã«éåæã®ã¢ãŒããã¯ãã£ããããAnyEventã䜿çšããŸãã ãããŠãPerlãç¥ã£ãŠãããªããç§ãã¡ã®ãšããã«æ¥ãŠãã ãããããããã®æ¥œãã¿ããããŸãã
ä»çµã¿
æ§é çã«ãMail.Ru Cloudã¯ããã€ãã®ããŒã ã§æ§æãããŠããŸãã
- ãµãŒããŒåŽãèšè¿°ããã¹ãã¬ãŒãžããã³ã¢ãã€ã«ã¯ã©ã€ã¢ã³ããšã®çžäºäœçšãæ§ç¯ããããŒã ã
- APIéçºããŒã ããµãŒããŒãšWebã®éã®ã¬ã€ã€ãŒã APIã¯ãIceboxãšTeamboxã®äž¡æ¹ã§äœ¿çšãããŸãã
- ãããããã¯ã¹éçºããŒã ã 圌女ã¯ãHotboxã§ãã±ãããšããŒãæäœããããã®ç®¡çã€ã³ã¿ãŒãã§ã€ã¹ãšãS3 APIã®äž¡æ¹ãéçºããŠããŸãã
- éçºããŒã ã®UIïŒãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒãšã¬ã€ã¢ãŠãã ã€ã³ã¿ãŒãã§ã€ã¹ã®çŸããããã®å®å®æ§ãé床ãæ©èœæ§ã«è²¬ä»»ãè² ããŸãã
- WindowsãLinuxãmacOSãã©ãããã©ãŒã çšã®ã¯ã©ãŠãã¯ã©ã€ã¢ã³ããäœæãããã¹ã¯ãããã¯ã©ã€ã¢ã³ãéçºããŒã ã ãŸãããã®ããŒã ã¯ã¹ã¯ãªãŒã³ã·ã§ãããšãã®ããã®ããŸããŸãªæ©èœã«åãçµãã§ããŸãã
- iOSãšAndroidã®ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ãäœæãããµãŒããŒåŽãšçŽæ¥ããåããã2ã€ã®ã¢ãã€ã«éçºããŒã ã
- æŒå€ãåããç®ãéããããšãªããããããã¹ãŠããµããŒããã管çè ããŒã ã
- ãŸãããã¹ãããŒã ãšãAPIã®èªåãã¹ããäœæããèªåãã¹ãããŒã ããããŸãã
ã¯ã©ãŠãã®Webããã³ãã¹ã¯ãããããŒãžã§ã³ã®å éš
Mail.Ru Cloudããã¯ãšã³ãã¯ãANSI CãPerlãLuaãããã³å°ãã®C ++ã§èšè¿°ãããŠããŸãã Perlã¯APIé¢é£ã®ã¿ã¹ã¯ã解決ããŸãã ããšãã°ãããã¥ã¡ã³ãã®ç·šéã ã¡ãªã¿ã«ããã€ãŠHabr ã§ããããªãã¯ã©ãŠãã§è¡šç€ºããæ¹æ³ã説æããŸãããã¯ã©ãŠãã®ãµãŒããŒéšåã¯Perl + Luaã§èšè¿°ãããŠããŸãã
ã¯ã©ãŠããäœæããããã«ã¿ã¹ã¯ãèšå®ãããåœåãããäž»ãªèŠä»¶ã®1ã€ã¯ãããŒã¿ããŒã¹ã§ã®é·ãæ€çŽ¢ã®æ¬ åŠãè¿œå ã®ã¿ã®ååã«ãããã£ã¹ã¯ããã³ã¹ãã¬ãŒãžã§ã®seek
ã®æ¬ åŠã§ããã èµ·åæã«ã¯ãããªãŒããŒã¿ã«é©ããããŒã¿ããŒã¹ãèŠã€ãããªãã£ãããããã¡ã€ã«ã·ã¹ãã ãè¡šãç¬èªã®ããŒã¿ããŒã¹ãäœæããŸããã
ããã«ããã€ãã®æ°åããããŸãïŒ
- ãŠãŒã¶ãŒã¯1æ¥ã«çŽ100ãã©ãã€ãã®ããŒã¿ãã¢ããããŒãããŸãã
- 1000å°ä»¥äžã®ãã£ã¹ã¯ã¹ãã¬ãŒãžãµãŒããŒããããŸããããã¯100ãã¿ãã€ã以äžã®ããŒã¿ã§ããã90å以äžã®ãã¡ã€ã«ãå«ãŸããŠããŸãã ããããæé©ã«åé¿ããã³æ€èšŒãããŠãŒã¶ãŒã³ã³ãã³ããå€æŽãªãã§å®å šã«ä¿åãããããã«ããå¿ èŠããããŸãã
- 1ãæãããã®ã¢ã¯ãã£ããŠãŒã¶ãŒã®æ°ã¯1800äžäººãè¶ ããŠããŸãã æ¯æ¥ãäœåäžãã®ãŠããŒã¯ãªäººã ããŠã§ãã蚪ããŸãã
- é±ã«å¹³å10åã®ãã£ã¹ã¯ãå€æŽãããããã®ããŒã¿ãåããŒã«ããŸãã
- ãããã¯ãŒã¯åž¯åå¹ -æ倧200 Gb / sïŒå¿ èŠã«å¿ããŠãæ°åã«å¢ããããšãã§ããŸãïŒã çŸåšãçŽ25ã®ã¬ããã/ç§ãããŠã³ããŒããããŠããŸãã
åœåãã¯ã©ãŠãã¯ãã¹ã¯ãããããã³ã¢ãã€ã«ã¯ã©ã€ã¢ã³ãã«çŠç¹ãåœãŠãŠäœæãããŸããã ãã®åŸããŠã§ãã¯ããçŽããå¿ èŠãªãã®ã§ããããšãæããã«ãªããŸããã ã¯ã©ãŠãã¯å®å šã«éåæã«æžãçŽãããŸããïŒäžè¬çã«ãANSI CããPerlã®AnyEventãŸã§ãã³ãŒãããŒã¹å šäœãéåæã§ãïŒã ããšãã°ãçŸåšãã¯ã©ãŠãã®WebããŒãžã§ã³ã¯ããŠãŒã¶ãŒæ°ãå€§å¹ ã«å¢å ããŠããã«ããããããã3幎åãšåãããŒã¹ã®ãµãŒããŒäžã«ãããŸãã ãã®åŸã圌ãã¯äœã®æºåãããã«ãªãœãŒã¹ã·ã§ã«ãã«æšªããããŸããã Hotboxãªã©ã®ä»ã®æ°è£œåããPerlã§äœæããŠããŸãã ãã®ãããªããšã
ã¢ãã€ã«ã¯ã©ãŠãã®å éš
Cloud iOSã¢ããªãäœæããããã«ãObjective-CãåŒãç¶ã䜿çšããŸãã ããã€ãã®çç±ã«ãããSwiftã«ã¯ãŸã 觊ããŠããŸããã
- ç§ãã¡ã¯ãŸã iOS 7ããµããŒãããŠããŸããã¯ããSwiftã¯ãã®ããŒãžã§ã³ã®OSã§æ¢ã«ãµããŒããããŠããŸãããSwiftäŸåé¢ä¿ã®æäœã¯éåžžã«å°é£ã§ãã
- Swiftã¯ãŸã äžå®å®ã§ãããFirefoxéçºããŒã ããã説æããŠããããã« ãæ°ããããŒãžã§ã³ã®èšèªãé©å¿ããããšããåæ¢ãªåæ¥ãç¹°ãè¿ãããã¯ãããŸããã
- çŸæç¹ã§Swiftã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºãå€§å¹ ã«å¢å ããŸããééãããã20 MBã§ããããšãèªãã«æããŸãã
- Objective-Cèšèªã®åçããããã£ãç©æ¥µçã«äœ¿çšããŠããŸãããSwiftã«ã¯é¡äŒŒç©ã¯ãããŸããã
Objective-Cã®ãã€ãããºã ã®é©çšäŸãšããŠã次ã®ãšããã§ãã
- ã¡ã¢ãªãªãŒã¯ã®åäœãã¹ããäœæããŸãã ããã¯ã POSAllocationTrackerã©ã€ãã©ãªã®ãããã§ãã åäœãã¹ãã§äœ¿çšããæ©èœã¯ã FBAllocationTrackerã«çŽé¢ããŠFacebookã®åçåãšæ¯èŒããŠæå©ã§ã ã
- ééã£ãã¹ããªãŒã ããã®ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ãèªåçã«æ€åºããŸãã POSRxã©ã€ãã©ãªã®POSSchedulableObjectã«å®è£ ãããŠããŸãã ã¡ãªã¿ã«ãã¡ã¢ãªãªãŒã¯ã®åäœãã¹ãã®æŠéäŸãèŠãããšãã§ããŸãã
iOSã¢ããªã±ãŒã·ã§ã³ã®ãã®ä»ã®ã¢ãŒããã¯ãã£æ©èœïŒ
- POSInputStreamLibraryã䜿çšããŠããããªãã¡ã€ã«ãã¯ã©ãŠãã«ã¢ããããŒãããŸãã 次ã®è¡šã¯ã2çš®é¡ã®ãããªãã¡ã€ã«ã®ããŠã³ããŒãã瀺ããŠããŸãã Orange Pillars â Photos.framework APIã䜿çšããŠã³ã³ãã³ããååŸãããããŠã³ããŒãã éãæ±-ALAssetsLibraryã䜿çšããŠååŸãããPOSInputStreamLibraryã«ã©ãããããã³ã³ãã³ãã ããã«ããã é·å¹Žã®èšäºã§èª¬æãããŠããããã«ãéããããªãã¡ã€ã«ã®ããŒããéåžžã«é«éã«ãªããŸãã
- çœå®³åŸ©æ§ãã¹ãã®äœ¿çšã ãããã¯ãŒã¯ã©ã€ãã©ãªã«ã¯ãã©ã³ãã ãããã¯ãŒã¯ãšã©ãŒãçæããããã®ã¡ã«ããºã ãçµã¿èŸŒãŸããŠããŸãã ãããã£ãŠããããã°ã¢ã»ã³ããªã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ç¢ºãã«500ãã400ã®ãµãŒãã¹ããé£ã³ãŸãã ããã«ããããããã®ãšããžã±ãŒã¹ã®åæ°æ©èœããã¹ãããªãããšã¯äºå®äžäžå¯èœã§ãã å®è£ ã¯ã POSRxã©ã€ãã©ãªã®POSHTTPGatewayãªããžã§ã¯ãã§èŠèŠçãªåœ¢åŒã§å©çšã§ããŸãã
ä»æ¥ã®iOSã¢ããªã±ãŒã·ã§ã³ã®äž»èŠãªã¢ãŒããã¯ãã£ã¿ã¹ã¯ã¯ã倧ããªã¯ã©ãŠãã§äœæ¥ããéã«ã¢ããªã±ãŒã·ã§ã³ã®ããªãŒãºãåãé€ãããšã§ãã ãã®åé¡ã解決ããããã®ããŒã«ãšããŠãæè¿Habréã§æžããSchedulable Architectureãã¿ãŒã³ããããŸãã å®è£ ããçµæãããã«ç¢ºèªããæ£ããæ¹åã«é²ãã§ããããšã確èªããããã«ããµã¹ãã³ã·ã§ã³ã®ç£èŠãè¡ããŸããã ãã³ã°ãæãé »ç¹ã«çºçããã¯ã©ã¹ã®ãªã¹ãã®åœ¢åŒã§ãæãåé¡ã®ããå Žæã®ã¹ã±ãžã¥ãŒã«ãæ¢ã«ãããŸãã 次ã®ããã«ãªããŸãã
HockeyAppã®ãã©ã°ã€ã³ã®ãããã§ãåãã³ã°ïŒã³ãŒã«ã¹ã¿ãã¯ãšãã°ïŒã«é¢ããå®å šãªæ å ±ãåŸãããŸãã
ã¯ã©ãŠãã®Androidã¯ã©ã€ã¢ã³ãã¯Javaã§å®å šã«éçºãããŠããŸãïŒKotlin'eã§ã®ã¡ãªããã¯ãŸã èŠã€ãããŸããïŒã ååãšããŠãã¢ãŒããã¯ãã£ã«ã¹ãŒããŒãã¡ãã·ã§ããã«ãªãã®ã¯ãããŸãããMVPããµãŒãã¹ã®ãããã¯ãŒã¯å±€å šäœãokhttpã䜿çšãããããã¯ãŒã¯ã§ã¯ãã®ã£ã©ãªãŒãé€ããããŒã¿ã¯SQLiteã«ä¿åãããŸãã 倧éã®ããŒã¿ãååšããå¯èœæ§ãããããããããããã£ãã·ã¥ããè¿ éã«åé€ããå¿ èŠããããŸãã ãããã£ãŠãã®ã£ã©ãªãŒã«ã¯samopisnyã·ãªã¢ã«åã䜿çšããŸãã ã¢ããªã±ãŒã·ã§ã³å ã®éä¿¡ã«ã¯ãã°ãªãŒã³ããããããã®ã€ãã³ããã¹ããããŸãã Androidã®æ°ããããŒãžã§ã³ã§ã®ããã¯ã°ã©ãŠã³ãã§ã®å¹æçãªäœæ¥ã®ããã«ãJobSchedulersã䜿çšããŸããããŸãæ°ãããã®ã§ã¯ãããŸãã-GcmNetworkManagerã
ããŒã»ã³ããŒãžã§æ©èœãå±éããããã«ãA / Bãã¹ããšããã€ãã®åæã®ããã«ãFirebaseã䜿çšããŸãã ãµãŒããŒãšã®å¯Ÿè©±ããããã°ããã«ã¯ãFacebook Stethoãã«ãã䜿çšããŸãã ææ°ããŒãžã§ã³ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã§ãã¯ã¿ãŒã°ã©ãã£ãã¯ã¹ã«ã»ãŒåãæ¿ããŸããã ããã€ãã®ããŒãžã§ã³ã§ã¯å®å šã«åãæ¿ãããšæããŸãã junitãuiautomatorãespressoã§ãã¹ããäœæããŸãã
B2Bã¯ã©ãŠãã®å éš
B2B-Cloudã¯3ã€ã®ç°ãªã補åã§ãã
- Teamboxã¯ãB2C-Cloudã«é¡äŒŒããã¯ãŒã¯ã°ã«ãŒãçšã®ã¯ã©ãŠãã§ããããã¡ã€ã³å ã®åã¢ã«ãŠã³ãã«å人çšã¹ããŒã¹ãå²ãåœãŠãéšéãåŸæ¥å¡ã°ã«ãŒãçšã®å ±æãã©ã«ããŒãäœæãããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãæ§æã§ããŸãã
- Hotboxã¯ãS3äºæã¢ã¯ã»ã¹ãããã³ã«ãè€æ°ã®ã³ããŒãåããåæ£ã¹ãã¬ãŒãžã99.99ïŒ ä¿èšŒSLAã䜿çšããŠãã¡ãã£ã¢ããã®ä»ã®é »ç¹ã«ããŠã³ããŒããããã³ã³ãã³ããé åžããããã®ã¯ã€ãã¯ã¢ã¯ã»ã¹ãªããžããªã§ãã
- Iceboxã¯ãã¢ãŒã«ã€ãçšã®ãªããžã§ã¯ãã¯ã©ãŠãã¹ãã¬ãŒãžã§ãããé·æçãªããŒã¿ã¹ãã¬ãŒãžãšã·ã³ãã«ãªWebã€ã³ã¿ãŒãã§ã€ã¹ã§ãã S3ãããã³ã«ããµããŒãããããã£ãã«äœ¿çšãããªãããŒã¿ãä¿åããã³ã¢ã¯ã»ã¹ããããã«èšèšãããŠãããå¿ èŠã«å¿ããŠè¿ éã«ã¢ã¯ã»ã¹ã§ããŸãã
B2B-Cloudã¯2ã€ã®éšåã§æ§æãããŠããŸããããã³ããšã³ãã¯ããžãã¹åããã©ãããã©ãŒã ã«çµã¿èŸŒãŸããããã³ããšã³ãã¯ã¯ã©ãŠãã®ç®¡çãšéçšãæäŸããŸãã ã¯ã©ãŠãã®æ©èœãæ åœããããã¯ãšã³ãã®éšåã¯Perlã§èšè¿°ããã管çãµããŒãã¯Pythonã§èšè¿°ãããŠããŸãã
biz.mail.ruããžãã¹ãã©ãããã©ãŒã ã¯ããã¹ãŠã®B2Bã¯ã©ãŠãã管çããããã®ã¢ã¯ã»ã¹ãæäŸããŸãã ãã©ãããã©ãŒã èªäœã¯ãMail.Ru B2BãµãŒãã¹ã®äžè¬çãªç®¡çããã«ã§ãããµã€ãã®ã¡ãŒã«ãäŒæ¥ã«ã¬ã³ããŒããšãŒãžã§ã³ããDNSãããã³B2Bã¯ã©ãŠãã§ãã ãã®ãã©ãããã©ãŒã ã¯ç®¡çè ã®å人ã¢ã«ãŠã³ããæäŸãããã©ã°ã€ã³ã®ååã«åºã¥ããŠå®è£ ãããŸã-å ±éã®èŠçŽ ïŒæ¿èªããããžã§ã¯ãããã³ãã¡ã€ã³ç®¡çããŠãŒã¶ãŒã®ãªã¹ãïŒããããã¡ãŒã«ãTeamboxãHotboxãIceboxãªã©ã®æ¥ç¶ãµãŒãã¹çšã®åå¥ã®ã»ã¯ã·ã§ã³ããããŸã ãã©ãããã©ãŒã ã«ã¯ç¬èªã®APIãšããã©ãããã©ãŒã ããã¯ãšã³ãããæ¥ç¶ããããµãŒãã¹ã®ããã¯ãšã³ãã«ãªã¯ãšã¹ãããããã·ããããã®ã¡ã«ããºã ããããŸãã ãããã£ãŠãç§ãã¡ã«ã¯å ±éã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãããããã®æ©èœã¯ããã°ã©ãã®ããŸããŸãªããŒã ã«ãã£ãŠéçºããããŠãŒã¶ãŒã¯ãã¹ãŠã®ç®¡çã1ã€ã®ç®¡çããã«ã«éããããŸãã
ã ããèããŠïŒ
äŒçµ±ã«ããã質åã«çããæéãæå®ããå¿ èŠããããŸãã ãããŠã1æ¥ã§ã¯ãªã2æ¥ãšããŸããä»æ¥ãšææ¥ã®12.00ãã19.00ïŒã¢ã¹ã¯ã¯æéïŒãŸã§ã§ãã ããããç¹ã«æ¿ããè°è«ã®å Žåãç§ãã¡ã¯ãã¡ãããã®ééã«èªåèªèº«ãå¶éããŸããã ãœãããŠã§ã¢ããµãŒããŒãããŒã ãAPIãªã©ã«ã€ããŠè³ªåããŠãã ããã è¡ããïŒ