webcamp:back-end developers day - Денис Потапов "Простыми словами о...
Post on 14-Aug-2015
106 Views
Preview:
TRANSCRIPT
12-þêôüøú÷ыï ùúòõøðï÷òяíøüøìòöûя ô öêûшüêëý ò öòôúøûïúìòûêö
Îï÷òû Ùøüêùøì
12-þêôüøú÷ыï ùúòõøðï÷òяûøìúïöï÷÷øï ìïë ùúòõøðï÷òï øü heroku
ùøîôõючï÷òï ÷øìыÿ úêñúêëøüчòôøì ô ùúøïôüýùïúï÷øûòöøûüь öïðîý ûúïîêöò ìыùøõ÷ï÷òя÷ïùúïúыì÷øï úêñìïúüыìê÷òï
12-þêôüøú÷ыï ùúòõøðï÷òяûøìúïöï÷÷øï ìïë ùúòõøðï÷òï øü heroku
úêëøüê ÷ê ûøìúïöï÷÷ыÿ øëõêч÷ыÿ ùõêüþøúöêÿöêûшüêëòúøìêüьûя ëïñ òñöï÷ï÷òódeis, fortrabbitdocker
IÔøîøìêя ëêñê
Codebase
I. Øîò÷ úïùøñòüøúòó — ö÷øðïûüìøúêñìïúüыìê÷òó
ûòûüïöê ôø÷üúøõя ìïúûòóùúòõøðï÷òï — øîò÷ úïùøñòüøúòó÷ïûôøõьôø úïùøñòüøúòïì — úêûùúïîïõï÷÷êя ûòûüïöêøëщòó ôøî — ëòëõòøüïôê
I. Øîò÷ úïùøñòüøúòó — ö÷øðïûüìøúêñìïúüыìê÷òó
IIÑêìòûòöøûüò
Dependencies
II. éì÷ыï ò òñøõòúøìê÷÷ыï ñêìòûòöøûüòûòûüïö÷ыï ùêôïüыùêôïüы ùúòõøðï÷òя («vendoring»)ñêìòûòöøûüò ùúòõøðï÷òя яì÷ыï
II. éì÷ыï ò òñøõòúøìê÷÷ыï ñêìòûòöøûüòîïôõêúêцòя ñêìòûòöøûüïóòñøõяцòя ñêìòûòöøûüïóüøõьôø ûøìöïûü÷øï òûùøõьñøìê÷òïîêðï îõя «øëыч÷ыÿ» ùêôïüøì (curl, ImageMagic)
II. éì÷ыï ò òñøõòúøìê÷÷ыï ñêìòûòöøûüò ãäéêßïßõçþ çæíêþõçþ
NodeJS NPM NVM
Ruby Gem Bundler Gem Bundler, RVM
PHP Composer ?
IIIÔø÷þòíýúêцòя
Config
III. Ôø÷þòíýúêцòя — ûìøóûüìê ûúïîыìыùøõ÷ï÷òя
Cüúøíøï úêñîïõï÷òя ôø÷þòíýúêцòò ò ôøîê:
ôø÷þòíýúêцòя öï÷яïüûя öïðîý úêñìёúüыìê÷òя (ËÎ, ûüøúø÷÷òïûõýðëы, API)ôøî ÷ï öï÷яïüûя (öêúшúýüы, ôø÷üúøõõïúы)ôøî öøð÷ø øùýëõòôøìêüь ëïñ ôøöùúøöï÷üêцòò
III. Ôø÷þòíýúêцòя — ûìøóûüìê ûúïîыìыùøõ÷ï÷òяÔø÷ûüê÷üы ì ôøîï
Ôø÷þòíýúêцòø÷÷ыï þêóõы (config/database.yml):
ûøÿúê÷òüь ì ôøîï ùø øшòëôïúêñ÷ыï þøúöêüы ò öïûüêûùïцòþòч÷ы îõя яñыôê ò þúïóöìøúôê
III. Ôø÷þòíýúêцòя — ûìøóûüìê ûúïîыìыùøõ÷ï÷òя
Ôø÷þòíýúêцòя ì ùïúïöï÷÷ыÿ øôúýðï÷òя (env vars)/ / P H P$ d b H o s t = g e t e n v ( ' D B _ H O S T ' ) ;
/ / R u b yE N V [ " M Y _ C O N F I G " ]
ìûï ÷êûüúøóôò ûøëúê÷÷ы ì øî÷øö öïûüï÷ï ñêìòûяü øü яñыôê
III. Ôø÷þòíýúêцòя — ûìøóûüìê ûúïîыìыùøõ÷ï÷òя
Íúýùùòúøìôê ôø÷þòíýúêцòó (development, test, production)
úøûü ôøõòчïûüìê (staging, qa)ùøîîïúðôêôêðîêя ùïúïöï÷÷êя ÷ïñêìòûòöê
IVÛüøúø÷÷òï ûõýðëы
Backing Services
IV. Õøôêõь÷ыï ò ûüøúø÷÷òï ûõýðëы
IV. Õøôêõь÷ыï ò ûüøúø÷÷òï ûõýðëыÔøî ÷ï îïõêïü úêñõòчòó öïðîý õøôêõь÷ыöò ò ûüøúø÷÷òöò
ûõýðëêöò
ñêöï÷ê õøôêõь÷øíø ÷ê ûüøúø÷÷òó (SMTP, DB)úêûùøõøðï÷òï ò ýчïü÷ыï îê÷÷ыï ì ôø÷þòíýúêцòòúïûýúû öøð÷ø øüôõючêüь ò ùøîôõючêüь
VÛëøúôê, úïõòñ, ìыùøõ÷ï÷òï
Build, release, run
V. Ûüúøíøï úêñîïõï÷òï ûëøúôò, úïõòñê òìыùøõ÷ï÷òя
V. Ûüúøíøï úêñîïõï÷òï ûëøúôò, úïõòñê òìыùøõ÷ï÷òя
ûëøúôê öøðïü ëыüь ûõøð÷øó÷ïõьñя ì÷ïûüò òñöï÷ï÷òя ì úïõòñúïõòñы û òîï÷üòþòôêüøúøöìøñöøð÷øûüь øüôêüòüь úïõòñìыùøõ÷ï÷òï îøõð÷ø ëыüь ùúøûüыö
VIÙúøцïûûы
Processes
VI. Ùúòõøðï÷òï – ÷êëøú ùúøцïûûøì÷ï ûøÿúê÷яюü ì÷ýüúï÷÷ïï ûøûüøя÷òï (stateless)
÷ï òöïюü úêñîïõяïöыÿ îê÷÷ыÿ (share-nothing)
ûõïîýющòó ñêùúøû — îúýíøöý ùúøцïûûý
VI. Ùúòõøðï÷òï – ÷êëøú ùúøцïûûøìîê÷÷ыï ùøõьñøìêüïõя ì ËÎýùêôøìôê úïûýúûøì (asset) ÷ê эüêùï ûëøúôòûïûûòò ì ÿúê÷òõòщï (Memcached, Redis)
VIIÙúòìяñôê ùøúüøì
Port binding
VII. Ùúòõøðï÷òï ÷ï ñêìòûòü øü ûïúìïúêÙúòõøðï÷òï ì ôø÷üïó÷ïúï ìïë-ûïúìïúê
PHP ì Apache HTTPDJava ì Tomcat
VII. Ùúòõøðï÷òï ÷ï ñêìòûòü øü ûïúìïúêÙúòõøðï÷òï 12 þêôüøúøì эôûùøúüòúýïü HTTP ûïúìòû
øëъяìõï÷òï ñêìòûòöøûüò:Tornado ì PythonThin ì RubyJetty ì JavaReactPHP ì PHP
öøðïü ìыûüýùêüь ûüøúø÷÷ïó ûõýðëøó
VIIIÔø÷ôýúï÷ü÷øûüь
Concurrency
VIII. Öêûшüêë û ùøöøщью ùúøцïûûøì
VIII. Öêûшüêë û ùøöøщью ùúøцïûûøìùúøцïûûы — ûýщ÷øûüò ùïúìøíø ôõêûûêúêñõòч÷êя ÷êíúýñôê — úêñ÷ыï üòùы ùúøцïûûøìøüûýüûüìòï úêñîïõяïöыÿ îê÷÷ыÿ ùúò öêûшüêëï
VIII. Öêûшüêë û ùøöøщью ùúøцïûûøìÌыùøõ÷яóüï, ê ÷ï ñêùýûôêóüï, ùúøцïûûы
Run not start
ôø÷üúøõь ìыùøõ÷ï÷òяöêúшúýüòñêцòя ìыìøîêúïêíòúøìê÷òï ÷ê ùêîï÷òï
IXØî÷øúêñøìøûüь
Disposability
IX. Ëыûüúыó ñêùýûô ò ôøúúïôü÷øïñêìïúшï÷òï
öò÷òöêõь÷øï ìúïöя ñêùýûôêôøúúïôü÷øï ñêìïúшï÷òïýûüøóчòìыï ô ùêîï÷òю
IX. Ëыûüúыó ñêùýûô ò ôøúúïôü÷øïñêìïúшï÷òï
ôøúøüôòï HTTP ñêùúøûыþø÷øìыï ñêîêчò ìøñìúêщêüь ì øчïúïîьùøìüøú÷êя ìÿøîòöøûüь (üúê÷ñêôцòò)
XÙêúòüïü úêñúêëøüôò/úêëøüы
Dev/prod parity
X. Ùúòëõòñьüï úêñúêëøüôý ôúêñìïúüыìê÷òюúêñ÷øï ìúïöяúêñ÷ыï õюîòúêñ÷ыï ò÷ûüúýöï÷üы
X. Ùúòëõòñьüï úêñúêëøüôý ôúêñìïúüыìê÷òю
øî÷ø ìúïöяøî÷ò õюîòøî÷ò ò÷üûúýöï÷üы
X. Ùúòëõòñьüï úêñúêëøüôý ôúêñìïúüыìê÷òю
X. Ùúòëõòñьüï úêñúêëøüôý ôúêñìïúüыìê÷òю
êîêùüïúы (ActiveRecord, Celery)
ìыûøôêя ûüøòöøûüь ÷ïûøìöïûüòöøûüòùúøûüøüê ýûüê÷øìôò ûüøúø÷÷òÿ ûõýðë (Chef, Puppet, Vagrant …)êîêùüïúы üøõьôø îõя ùøúüòúøìê÷òя
XIÐýú÷êõòúøìê÷òï
Logs
XI. Ðýú÷êõ ì stdoutÐýú÷êõ – эüø ùøüøô ûøëыüòó ìûïÿ ûïúìòûøì
Ùúòõøðï÷òï ÷ï ÿúê÷òü ò ÷ï ùïúï÷êùúêìõяïü ðýú÷êõ
Ðýú÷êõ ëïñ ëýþïúòñêцòò ì stdout
XI. Ðýú÷êõ ì stdout
XI. Ðýú÷êõ ì stdoutÒ÷îïôûêцòя ò ê÷êõòñ ðýú÷êõøì
Splunk, Loggly, Hadoop/Hive
ùøòûôüúï÷îыøùøìïщï÷òя
XIIÙúøцïûûы êîöò÷òûüúòúøìê÷òя
Admin processes
XII. Ùúøцïûûы êîöò÷òûüúòúøìê÷òяöòíúêцòòôø÷ûøõьúêñøìыï ûôúòùüы
XII. Ùúøцïûûы êîöò÷òûüúòúøìê÷òяÑêùýûô ÷ê ýúøì÷ï úïõòñê
ôøîøìêя ëêñêôø÷þòíýúêцòяñêìòûòöøûüò
12-þêôüøú÷ыï ùúòõøðï÷òяI. Øîò÷ úïùøñòüøúòó — ö÷øðïûüìø úêñìïúüыìê÷òó
II. éì÷ыï ò òñøõòúøìê÷÷ыï ñêìòûòöøûüòIII. Ôø÷þòíýúêцòя — ûìøóûüìê ûúïîы ìыùøõ÷ï÷òяIV. Õøôêõь÷ыï ò ûüøúø÷÷òï ûõýðëыV. Ûüúøíøï úêñîïõï÷òï ûëøúôò, úïõòñê ò ìыùøõ÷ï÷òя
VI. Ùúòõøðï÷òï – ÷êëøú ùúøцïûûøì
12-þêôüøú÷ыï ùúòõøðï÷òяVII. Ùúòõøðï÷òï ÷ï ñêìòûòü øü ûïúìïúê
VIII. Öêûшüêë û ùøöøщью ùúøцïûûøìIX. Ëыûüúыó ñêùýûô ò ôøúúïôü÷øï ñêìïúшï÷òïX. Ùúòëõòñьüï úêñúêëøüôý ô úêñìïúüыìê÷òю
XI. Ðýú÷êõ ì stdoutXII. Ùúøцïûûы êîöò÷òûüúòúøìê÷òя
Ìøùúøûы?
top related