Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

wtconference

1,346 views

Published on

В тайните програмистки общества, старите илюминати винаги са казвали „Покажи си деплоймънта, за дати кажа в какво здравословно състояние е проектът ти.“
Подобно на кръвоносната система в един жив организъм, всеки проект има система, по която текат различните функционалности, минават през много хора и отдели и накрая стигат до потребителите. Последната и най-важна стъпка от тази система е когато със свито сърце разставяме новонаписания код, току що опечената база данни и каквото още се сетите пред треперещите пръсти на клиента. Много рядко се замисляме колко важна е тази стъпка и как на практика тя определя целия процес на разработка на софтуер.
Целта ни е да покажем как, обратно на популярните програмистки легенди, и ние и бизнеса печелим от въвеждането на чест deployment. Изглежда незначително, но тази промяна налага съвсем различен и, според много хора по-добър, работен процес.
Разглеждайки този процес ще се спрем на излекуването на един болен проект чрез тайни масонски ритуали за deployment без стрес като постоянна интеграция, автоматизация до дупка и тестване на всичко, което мърда.

Published in: Technology
  • Be the first to comment

wtconference

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

×