Командная работа и Deployment

Занятие 9

Профессия
Node.js & React.js developer
продвинутый курс

1

  • VCS
  • GIT
  • GIT сервисы
  • Попрактикуемся
  • Deploy

План

2

VCS

Version Control System

Version Control System

  • Graph structure

  • Specialized strategies

  • Atomic operations

  • File locking

  • Version merging

Apache Subversion (SVN)

  • 2004

  • Apache

  • software versioning and revision control

  • Server - origin

Git

  • 2005

  • Linus Torvalds

  • distributed revision control system it is aimed at speed, data integrity, and support for distributed, non-linear workflows

Dropbox & Google Docs

3

GIT

Git

GIT NO FF

Origins

Как читать графы?

Case0

Case1

Case2

Case3

Case4 - 2 origin

Case5 - 2 origin

Case6

GIT Flow

GIT Flow

4

Сервисы GIT

  • Tom Preston-Werner, Chris Wanstrath, and PJ Hyatt
  • Git based repository hosting platform
  • 2008
  • 38+ million projects 
  • github.com
  • 2008 by an Australian startup (Mercurial projects)
  • 2010 Bitbucket was acquired by Atlassian (GIT)
  • bitbucket.com
  • Dmitriy Zaporozhets and Valery Sizov
  • 2012
  • gitlab.com

Сравним

Сравним

Фишки

Markdown

Markdown Editors

Issues

Команды

Issues

Contribution activity

Stars

Forks

Pull request

Forks Info

Stars library

GIST

GitHub Pages

GitHub Pages

Deploy access keys

Deploy access keys

Bitbucket as private NPM

...
"lsk-general": "0.6.16",
"lsk-quiz": "git+ssh://git@bitbucket.org/mgbeta/lsk-quiz.git#2.0.10",
"mobx": "3.1.7",
...

GitHub != Coding

GitHub as CMS

GitHub as Data Storage

What else?

  • Git hooks
  • Webhooks
  • Member privileges
  • TODO

Как работаю я?

  • GitHub
    • OpenSource проекты
    • Fork as NPM package
    • Соц. активность
    • Stars, Pages, GIST
  • BitBucket
    • Private проекты
    • Команда 5-7 чел
    • Private NPM packages
  • GitLab
    • Эксперименты

5

Попрактикуемся

6

Deployment

Production build

# deploy.sh

NODE_ENV=production yarn run build &&
cd ./build &&
NODE_ENV=production yarn &&
cd .. &&
rsync -avz ./build/* s3:/projects/lsk/app &&
ssh s3 'cd /projects/lsk && docker-compose stop && docker-compose up' &&
echo 'ok'

lsk-build

Rsync

  1. Как ssh (hosts, keys)
  2. Ключ -a - с поддиректориями
  3. Ключ -z - с компрессией
  4. Ключ -v - в verbose режиме

Программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости.

rsync -avz ./build/* s3:/projects/lsk/app

Deploy

  1. webpack build
  2. yarn install
  3. Rsync
  4. ...
  5. node start OR     pm2 start

 

  1. webpack build
  2. docker add ./build
  3. docker run "yarn install"
  4. docker build, tag, push
  5. ...
  6. docker pull
  7. docker run

 

  1. webpack build
  2. yarn install
  3. Rsync
  4. ...
  5. docker run

 

Deploy

  1. docker add src
  2. docker run webpack build
  3. ...
  4. docker add ./build
  5. docker run "yarn install"
  6. docker build, tag, push
  7. ...
  8. docker pull
  9. docker run

 

7

Про практику

Игорь Суворов

Thanks!

any questions?

программист-предприниматель

Made with Slides.com