Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> workflow
smagul
post 20.01.2016, 18:39:48
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 4
Dołączył: 17.02.2009

Ostrzeżenie: (0%)
-----


Witam, chciał bym zaczerpnąć więcej wiedzy na temat pracy w dużych zespołach nad produktami. Dokładniej chodzi workflow zarówno od strony organizacyjnej (tutaj dość łatwo można znaleźć coś w internetach) jak i od strony technicznej (no i tutaj coś konkretnego znaleźć jest cieżko).
Jeśli chodzi o organizacje to tutaj mamy dość prosty i popularny gitflow: http://nvie.com/posts/a-successful-git-branching-model/ [moze jakieś inne polecicie?]
Natomiast od strony technicznej, wygląda to dużo trudniej. Środowiska produkcyjne, testowe i preprodukcyjne są raczej proste, natomiast środowiska developerskie są nieco trudniejszą sprawą. Do głowy przychodzi mi vagrant lub VPSy. Problemem jest natomiast skala. Jeśli zespół jest 5 osobowy i mamy ze 2 produkty, to jest to tylko 10 środowisk na serwerach lub ściągamy developerom te 2 produkty na lokalny sprzęt. Natomiast jeśli programistów jest 50 a produktów 20, to mamy 1000 środowisk developerskich do ogarnięcia lub musimy lokalnie ściągnąć 20 produktów co wiązać się będzie ze sporym wydatkiem na sprzęt.
Jak żyć? jak ktoś ma własne doświadczenia to chętnie je przeczytam, dobrą literaturą też nie pogardzę. Nie musi być koniecznie po polsku.

Z góry przepraszam, jeśli temat był poruszany. Używałem szukajki ale nic nie znalazłem związanego z tym zagadnieniem.
Go to the top of the page
+Quote Post
Crozin
post 20.01.2016, 18:57:35
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Tak na szybko, jak to wygląda u mnie:
1. Środowisko deweloperskie jest zainstalowane na maszynie programisty i w miarę możliwości zawiera wszystko co potrzebne do odpalenia w pełni funkcjonalnego projektu.
2. Wszystkie środowiska (prod/test/dev) zarządzane są przez pojedynczą konfigurację w Chefie (możesz skorzystać również z Puppeta czy Ansible'a).
Go to the top of the page
+Quote Post
by_ikar
post 21.01.2016, 08:32:06
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat
Do głowy przychodzi mi vagrant lub VPSy. Problemem jest natomiast skala. Jeśli zespół jest 5 osobowy i mamy ze 2 produkty, to jest to tylko 10 środowisk na serwerach lub ściągamy developerom te 2 produkty na lokalny sprzęt.


Docker to the rescue. Środowisko dev na którym pracuje ma postawionych 8 "maszyn" (kontenerów), działa to dobrze nawet na laptopie. Kwestia tego aby przesiąść się na linuksa. Różnicy pomiędzy środowiskami prawie nie ma, z wyjątkiem produkcyjnej wersji, gdzie każdy kontener jest na osobnej maszynie. Konfiguracja jest prawie ta sama, różni się niektórymi zmiennymi środowiskowymi (wiadomo), postawienie środowiska developerskiego, to kwestia wykonania komendy docker-compose up -d i poczekania aż stosowne obrazy się pobiorą (coś ala vagrant). Jeżeli do wszystkich kontenerów jest stosowany jeden system, to wszystko ładnie się uruchamia. 2-3 sekundy na wystartowanie 8 kontenerów (mongodb, redis, nodejs x3, nginx, php, haproxy).

Wcześniej pracowaliśmy na vagrancie, ale kiedy przyszło nam testować klastrowanie niektórych usług, zaczęło być niefajnie, a ludzie na laptopach zaczęli płakać. Aktualnie siedzimy na maszynach za jakieś ~2.5 tyś zł (razem z monitorami), a docker śmiga aż miło. Nawet odpalenie i 100 kontenerów nie będzie żadnym wyzwaniem. Więc porównanie z vagrantem jest spore. Dzięki temu mogę odpalić lokalnie konfigurację produkcyjną, i sprawdzić czy mongodb lub redis w klastrze będą działać. Im dalej w ten temat się zagłębiam, tym bardziej nie chce wracać do vagranta lub windowsa. Cholera nawet CI mamy postawione jako kontener, który buduje kontenery (incepcja).

Tak na szybko tutaj masz przykład jak to mniej więcej wygląda u mnie: https://www.airpair.com/docker/posts/effici...-docker-compose z tą różnicą, że nie używamy submodułów, bo ich aktualizacja jest problematyczna.

Ten post edytował by_ikar 21.01.2016, 08:38:32
Go to the top of the page
+Quote Post
Pyton_000
post 21.01.2016, 08:36:04
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


@by_Ikar chyba na korepetycje z Dockera się uśmiechę biggrin.gif
Go to the top of the page
+Quote Post
by_ikar
post 21.01.2016, 13:56:14
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


@Pyton_000 chętnie mogę wytłumaczyć pewne kwestie, które będą niezrozumiałe, lub będzie jakiś brak informacji na ich temat. Docker jest na prawdę świetny, zwłaszcza ostatnie aktualizacje z łączeniem kontenerów pomiędzy różnymi hostami, że kontenery będąc na różnych maszynach, będą miały ze sobą połączenie, jakby to była odpalona lokalna sieć (vxlan). Śmiało można jakiś wątek założyć (lub nawet dział), pewnie jest jeszcze sporo innych osób które chętnie w tym temacie by się wypowiedziały.
Go to the top of the page
+Quote Post
darko
post 21.01.2016, 15:25:57
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Zależy na jakim etapie jest projekt, na etapie rozwoju lub wdrożenia:
1. polecam model pracy z gitem: git-flow: http://nvie.com/posts/a-successful-git-branching-model/
2. korzystanie z pull requestów oraz code review w popularnych nakładkach na gita np. bitbucket.org lub gitlab
3. używanie systemów ticketowych np. redmine albo jira i zintegrowanie ich z np. hipchatem (jira - hipchat), używanie w nich sprintów
4. do tego dochodzi standardowa poczta, codzienne spotkania w SCRUMie, raz w tygodniu planningi
5. należyte opisywanie zadań w systemach ticketowych, używając user stories oraz kryteriów akceptacyjnych


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 19:17