DEPLOYMENT-ЪТ КАТО
ИНДИКАТОР ЗА ЗДРАВЕ НА
       ПРОЕКТА.
     Христо Дешев - @hdeshev
     Петьо Иванов - @petyosi
AGILE?



• Изисква   итеративен подход

•И   всяка итерация завършва с deployment
БЕЗ DEPLOYMENT - НЕ СМЕ
         AGILE
МАЛКО ИЗВЕСТНИ ФАКТИ
     ЗА DEPLOYMENT-A


• Той   е наша (програмистка) отговорност

• Сам   по себе си е feature на проекта
ДОБЪР DEPLOYMENT?


• Чест

• Лесен   (автоматизиран)

• Прост
ЛОШ?

• Ръчен

• Труден

•С   възможност за грешка

• “поп-фолк” деплоймънт

• Заради   което, обикновено - рядък
wtconference
КАКЪВ Е МОЯТ?


• Колко   лесно можете да оправите проблем/бъг?

•А колко лесно вашите колеги могат да оправят ваш
 проблем/бъг?

• Дали   всички в тима го “могат”?
АНАТОМИЯТА
  НА ЕДИН
DEPLOYMENT
SOURCE CONTROL
                КАЗАРМА


• Всякаква   работа по проекта се извършва през source
 control.

• Задължително!!!!
wtconference
SOURCE CONTROL
               КАЗАРМА

• Всекиcommit причинява deployment. Различни branch-ове
 съответсват на различни среди.

• Промяна в сорс контрола е единствения (нормален) начин
 да деплойнем.
ТЕСТОВЕ


• Къде   без тях?

• Ако   тестовете не минат, deployment-а се прекъсва.

•И   хвърчат глави (иска ни се).
wtconference
ОБНОВЯВАНЕ НА САЙТА

• Kодът   на сървъра - копие от source control.

• Взимаме    новия код в чиста директория;

• Пренасочваме    сайта към новото място;

•И   пазим старото, ако се наложи.

• Symlink   - ваш приятел (има го и за Windows)
БАЗАТА - МИГРАЦИЙ


• Добре   де, миграции.

• Закон   в Ruby on Rails. Харесвана от всички.

• Има   го и за вашия език.

• Автоматизиран    бекъп преди миграцията.
$: ls -1 db/migrate
20100124115439_create_users.rb
20100206144447_create_expenses.rb
20100207123935_create_categories.rb
class CreateUsers < ActiveRecord::Migration
 def self.up
   create_table :users do |t|
    t.string :email
    t.string :crypted_password
    t.string :password_salt
    t.string :persistence_token
    t.timestamps
   end
 end

 def self.down
  drop_table :users
 end
end
СЛЕД DEPLOYMENT


• Рестартиране   на процеси, при нужда

• Разпращане   на съобщения до щастливците

• Диагностични   тестове
ЗНАЧЕНИЕ



• За   вас

•И     за другите
• Търсите  съвет как да си организирате деплоймънта?
 http://groups.google.com/group/software-craftsmanship-
 bulgaria/
ВЪПРОСИ?

More Related Content

PPT
Presentation
PPT
Benchmarkingzen1
PDF
46730 Si Review The Kelly Story Mar11[1]
PPT
Presentation of GST_HKBU Public Administration,HKBU/CASS POLS 7050
PDF
За руби с любов
PDF
BIONIC University & Jansen IT Research
PPT
Какво трябва да знае всеки Drupal новак
ODP
Mozllla Labs presentation
Presentation
Benchmarkingzen1
46730 Si Review The Kelly Story Mar11[1]
Presentation of GST_HKBU Public Administration,HKBU/CASS POLS 7050
За руби с любов
BIONIC University & Jansen IT Research
Какво трябва да знае всеки Drupal новак
Mozllla Labs presentation

Similar to wtconference (15)

PDF
Life In the cloud
PDF
VarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
PDF
Пет неща, които всеки програмист трябва да знае
PPTX
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
PPTX
DrupalCamp Sofia 2015
DOCX
Programirane i organizaciq
PDF
Managing Technical Debt
PDF
Неволята Учи
PPTX
JavaScript навсякъде
PDF
работа с Ruby on rails
PDF
Penetration testing for dummies
PDF
Владимир Драгиев. SEO предизвикателствата стоящи пред големите проекти.
PDF
Ruby 0
PPT
Introduction to Reverse Engineering
PPTX
TestOps - BurgasConf 2017
Life In the cloud
VarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
Пет неща, които всеки програмист трябва да знае
Курс по програмиране за напреднали (2012) - 9. Добър и лош код. Преработка и ...
DrupalCamp Sofia 2015
Programirane i organizaciq
Managing Technical Debt
Неволята Учи
JavaScript навсякъде
работа с Ruby on rails
Penetration testing for dummies
Владимир Драгиев. SEO предизвикателствата стоящи пред големите проекти.
Ruby 0
Introduction to Reverse Engineering
TestOps - BurgasConf 2017
Ad

wtconference

  • 1. DEPLOYMENT-ЪТ КАТО ИНДИКАТОР ЗА ЗДРАВЕ НА ПРОЕКТА. Христо Дешев - @hdeshev Петьо Иванов - @petyosi
  • 2. AGILE? • Изисква итеративен подход •И всяка итерация завършва с deployment
  • 3. БЕЗ DEPLOYMENT - НЕ СМЕ AGILE
  • 4. МАЛКО ИЗВЕСТНИ ФАКТИ ЗА DEPLOYMENT-A • Той е наша (програмистка) отговорност • Сам по себе си е feature на проекта
  • 5. ДОБЪР DEPLOYMENT? • Чест • Лесен (автоматизиран) • Прост
  • 6. ЛОШ? • Ръчен • Труден •С възможност за грешка • “поп-фолк” деплоймънт • Заради което, обикновено - рядък
  • 8. КАКЪВ Е МОЯТ? • Колко лесно можете да оправите проблем/бъг? •А колко лесно вашите колеги могат да оправят ваш проблем/бъг? • Дали всички в тима го “могат”?
  • 9. АНАТОМИЯТА НА ЕДИН DEPLOYMENT
  • 10. SOURCE CONTROL КАЗАРМА • Всякаква работа по проекта се извършва през source control. • Задължително!!!!
  • 12. SOURCE CONTROL КАЗАРМА • Всекиcommit причинява deployment. Различни branch-ове съответсват на различни среди. • Промяна в сорс контрола е единствения (нормален) начин да деплойнем.
  • 13. ТЕСТОВЕ • Къде без тях? • Ако тестовете не минат, deployment-а се прекъсва. •И хвърчат глави (иска ни се).
  • 15. ОБНОВЯВАНЕ НА САЙТА • Kодът на сървъра - копие от source control. • Взимаме новия код в чиста директория; • Пренасочваме сайта към новото място; •И пазим старото, ако се наложи. • Symlink - ваш приятел (има го и за Windows)
  • 16. БАЗАТА - МИГРАЦИЙ • Добре де, миграции. • Закон в Ruby on Rails. Харесвана от всички. • Има го и за вашия език. • Автоматизиран бекъп преди миграцията.
  • 17. $: ls -1 db/migrate 20100124115439_create_users.rb 20100206144447_create_expenses.rb 20100207123935_create_categories.rb
  • 18. class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :email t.string :crypted_password t.string :password_salt t.string :persistence_token t.timestamps end end def self.down drop_table :users end end
  • 19. СЛЕД DEPLOYMENT • Рестартиране на процеси, при нужда • Разпращане на съобщения до щастливците • Диагностични тестове
  • 20. ЗНАЧЕНИЕ • За вас •И за другите
  • 21. • Търсите съвет как да си организирате деплоймънта? http://groups.google.com/group/software-craftsmanship- bulgaria/

Editor's Notes

  • #2: &amp;#x41A;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x438; &amp;#x441;&amp;#x43C;&amp;#x435;, &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x43A;&amp;#x443;&amp;#x432;&amp;#x430;&amp;#x43C;&amp;#x435; agile development. &amp;#x41F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x437;&amp;#x432;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x43C;&amp;#x435; web-&amp;#x431;&amp;#x430;&amp;#x437;&amp;#x438;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438; &amp;#x443;&amp;#x441;&amp;#x43B;&amp;#x443;&amp;#x433;&amp;#x438;, &amp;#x438; &amp;#x441;&amp;#x43C;&amp;#x435; &amp;#x449;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x432;&amp;#x438; &amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x430;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x438;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x43C;&amp;#x435;, &amp;#x447;&amp;#x435; &amp;#x445;&amp;#x438;&amp;#x43B;&amp;#x44F;&amp;#x434;&amp;#x438; &amp;#x445;&amp;#x43E;&amp;#x440;&amp;#x430; &amp;#x433;&amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x437;&amp;#x432;&amp;#x430;&amp;#x442;.
  • #5: (&amp;#x41F;&amp;#x43E; &amp;#x441;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x430;&amp;#x442;&amp;#x430; &amp;#x43D;&amp;#x430; &amp;#x441;&amp;#x43B;&amp;#x430;&amp;#x439;&amp;#x434;&amp;#x430; - &amp;#x425;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x438; &amp;#x437;&amp;#x430; build maister). Feature &amp;#x435; &amp;#x43F;&amp;#x43E; &amp;#x441;&amp;#x44A;&amp;#x449;&amp;#x438;&amp;#x44F; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x438;&amp;#x43D;, &amp;#x43F;&amp;#x43E; &amp;#x43A;&amp;#x43E;&amp;#x439;&amp;#x442;&amp;#x43E; security &amp;#x438;&amp;#x43B;&amp;#x438; (god forbid) Search Engine Optimization.
  • #7: &amp;#x41F;&amp;#x43E;&amp;#x43F;-&amp;#x444;&amp;#x43E;&amp;#x43B;&amp;#x43A; - &amp;#x43D;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x43A;&amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x442;&amp;#x438;&amp;#x440;&amp;#x430;&amp;#x43D;, &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x43D;&amp;#x434;&amp;#x438;, &amp;#x43A;&amp;#x43E;&amp;#x438;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x43D;&amp;#x435; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435; &amp;#x447;&amp;#x435; &amp;#x441;&amp;#x430; &amp;#x438;&amp;#x437;&amp;#x43F;&amp;#x44A;&amp;#x43B;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;. &amp;#x421;&amp;#x430;&amp;#x43D;&amp;#x434;&amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x43D; &amp;#x441; &amp;#x434;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x430; &amp;#x43D;&amp;#x43E;&amp;#x436;&amp;#x430;! &amp;#x420;&amp;#x44F;&amp;#x434;&amp;#x44A;&amp;#x43A; - &amp;#x425;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x43E;.
  • #9: &amp;#x425;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x43E; - &amp;#x437;&amp;#x430; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x442;&amp;#x43E;.
  • #21: &amp;#x412;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;&amp;#x442;&amp;#x43E; &amp;#x43A;&amp;#x44A;&amp;#x43C; deployment-a &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x438; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x437;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x441;, &amp;#x438; &amp;#x437;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x448;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x446;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;. &amp;#x41F;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x43E;&amp;#x43B;&amp;#x44F;&amp;#x432;&amp;#x430; &amp;#x43D;&amp;#x438; &amp;#x434;&amp;#x430; &amp;#x434;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x44F;&amp;#x43C;&amp;#x435; &amp;#x441;&amp;#x43E;&amp;#x444;&amp;#x442;&amp;#x443;&amp;#x435;&amp;#x440; &amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x43E;-&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43E;, &amp;#x43F;&amp;#x43E;-&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x443;&amp;#x435;&amp;#x43C;&amp;#x43E;. &amp;#x41A;&amp;#x43E;&amp;#x435;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x431;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x43B;&amp;#x43D;&amp;#x438;, &amp;#x437;&amp;#x430;&amp;#x449;&amp;#x43E;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x438;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x430; &amp;#x432; &amp;#x43D;&amp;#x430;&amp;#x448;&amp;#x430;&amp;#x442;&amp;#x430; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;. &amp;#x418; &amp;#x442;&amp;#x43E;&amp;#x432;&amp;#x430; (&amp;#x43E;&amp;#x431;&amp;#x438;&amp;#x43A;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43E;) &amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x438; &amp;#x434;&amp;#x43E; &amp;#x43F;&amp;#x43E;-&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x43A;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x441; &amp;#x437;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x441;. &amp;#x41E;&amp;#x442;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435; &amp;#x431;&amp;#x438; &amp;#x435; &amp;#x442;&amp;#x440;&amp;#x443;&amp;#x434;&amp;#x43D;&amp;#x43E; (&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x441;&amp;#x438;&amp;#x447;&amp;#x43A;&amp;#x43E; &amp;#x435;), &amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434; &amp;#x43D;&amp;#x44F;&amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x44A;&amp;#x442;&amp;#x438; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x430; &amp;#x43B;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x43E;. (&amp;#x41F;&amp;#x435;&amp;#x442;&amp;#x44C;&amp;#x43E;) &amp;#x415; &amp;#x43B;&amp;#x435;&amp;#x441;&amp;#x435;&amp;#x43D; &amp;#x438;&amp;#x43D;&amp;#x434;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x440;, &amp;#x441; &amp;#x43A;&amp;#x43E;&amp;#x439;&amp;#x442;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x435; &amp;#x434;&amp;#x430; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x446;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x444;&amp;#x438;&amp;#x440;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x430; &amp;#x438; &amp;#x445;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x430; &amp;#x441;&amp;#x440;&amp;#x435;&amp;#x449;&amp;#x443; &amp;#x432;&amp;#x430;&amp;#x441;.