Как попасть на Production

Post on 12-Jun-2015

200 views 0 download

Tags:

description

Когда говорят о программировании обычно имеют ввиду процесс написания кода. Редко говорят о том как мы запускаем результаты нашей работы в «дикий мир» production’а. В командах с развитыми build-package-deploy циклом с момента написания до момента начала работы кода на production происходит масса интересных вещей.

Transcript of Как попасть на Production

Путь на production

Денис Баженов

Tuesday, May 22, 12

Путь ниндзи на production

Developer Production

Download

Upload

Tuesday, May 22, 12

Tuesday, May 22, 12

Tuesday, May 22, 12

index.php.bak.old.2кто_удалит_получит_по_морде.php

Tuesday, May 22, 12

Ниндзей быть невыгодно

Tuesday, May 22, 12

Релиз = исходники

Tuesday, May 22, 12

Релиз ≠ исходники

VCS Release

Tuesday, May 22, 12

Релиз ≠ исходники

Релиз обязан работать, исходники нет

Tuesday, May 22, 12

Что происходит?

Компиляция

Фильтрация и генерация ресурсов

Тестирование и верификация

Сборка

Публикация

Tuesday, May 22, 12

Хороший релиз

• работает!

• самодостаточен• обладает метаинформацией

• совместим с предыдущим релизом

Tuesday, May 22, 12

Tuesday, May 22, 12

Toolchain

• version control system

• build tool;

• репозиторий артефактов;

• Continuous Integration server.

Tuesday, May 22, 12

Continuous Integration

Tuesday, May 22, 12

Continuous Integration

VCS CI-server

CI-serverCI-serverBuild agents

poll

run

Tuesday, May 22, 12

Continuous Integration

Tuesday, May 22, 12

Continuous Integration

Tuesday, May 22, 12

Continuous Integration

Tuesday, May 22, 12

Continuous Integration

• не занимаются ресурсы dev. машин;

• более частые сборки;

• более сложные виды тестирования;

• может выступать в качестве репозитория артефактов

Tuesday, May 22, 12

VCSCI-server

Build Agent

Compile

Unit/Integration Testing

Package

Acceptance Testing

Publish

Static Analysis

Production

Maven

Developer

Tuesday, May 22, 12

На что еще стоит обратить внимание

Tuesday, May 22, 12

Pitfalls

• адекватный процесс тестирования;

• контроль времени требуемого на сборку;

• адекватные отчеты при проваленном релизе;

• разбиение release’а на отдельные стадии.

Tuesday, May 22, 12

Спасибо за внимание!Денис Баженов <denis@bazhenov.me>@denis_bazhenovhttp://bazhenov.me

Tuesday, May 22, 12