Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPers 6.02.2014 Jeszcze Sprytniejsze Środowisko Deweloperskie
Search
Marcin Dryka
February 06, 2014
Business
1
260
PHPers 6.02.2014 Jeszcze Sprytniejsze Środowisko Deweloperskie
czyli: DLACZEGO NIE POWINIENEM TRACIĆ CZASU NA ADMINISTRACJĘ Localhostem?
Marcin Dryka
February 06, 2014
Tweet
Share
More Decks by Marcin Dryka
See All by Marcin Dryka
Jak odnaleźć się w zespole projektowym
drymek
0
130
Git
drymek
1
150
Other Decks in Business
See All in Business
newmo 採用資料 / Join Our Team
newmo
0
210
アプリビジネスとプラットフォーム規制の最新動向20240411
kenjisugiura
0
160
KADOKAWA Connected|会社紹介資料/Corporate Introduction
kadokawaconnected
4
49k
Recruitment_information2024
hdn_tocci
0
170
株式会社ハロー - Company Deck
helloinc
PRO
0
1.5k
Findy - 人生で熱くなれるなにかを探している誰かへ / Letter from Findy
findyinc
6
110k
株式会社CINC 会社案内/Company introduction
cinchr
5
32k
Pictoria 会社紹介・採用資料
pictoria
2
260
AnyMind Group Credential Deck(EN)
anymind
1
77k
株式会社CAMPFIRE|会社紹介資料
campfire
0
59k
しくじり先生 〜ふりかえり手法はチームのイマとコネクトして〜
electricsatie
0
210
【キャリア採用】BuySell Technologies会社説明資料
buyselltechnologies
2
60k
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
The Language of Interfaces
destraynor
151
23k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
How to name files
jennybc
64
92k
The Invisible Side of Design
smashingmag
293
49k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
Scaling GitHub
holman
457
140k
RailsConf 2023
tenderlove
1
530
How to train your dragon (web standard)
notwaldorf
71
5.1k
Transcript
JESZCZE SPRYTNIEJSZE ŚRODOWISKO DEWELOPERSKIE CZYLI: DLACZEGO NIE POWINIENEM TRACIĆ CZASU
NA ADMINISTRACJĘ LOCALHOSTEM?
MARCIN DRYKA • Project Manager • @drymek • http://marcin.dryka.pl/ •
pragmatyk Codifico http://codifico.pl
JAKUB ZALAS @JAKUB_ZALAS
ASCII ART ___ ,-'" "`-. ,'_ `. / / \
,- \ __ | \_0 --- | / | | | \ \ `--.______,-/ | ___) \ ,--"" ,/ | / _ \ \-_____,- / \__-/ \ | `. ,' \___/ < '--------' \__/\ | \__//
WOJTEK WÓJCIK @WOJTASWOJCIK
http://www.flickr.com/photos/flem007_uk/452806412/ http://www.flickr.com/photos/lenore-m/2515800654/ http://www.flickr.com/photos/liftarn/1438863938/
VAGRANT łatwe, powtarzalne i przenośne środowiska pracy
PROBLEM #1 Zależności
WIADOMOŚĆ OD KLIENTA
http://www.flickr.com/photos/92334668@N07/11123538363/
http://www.flickr.com/photos/dgoomany/6338142380/
$ ./beanstalkd -l 10.0.1.5 -p 11300
POTRZEBNY CZAS • uzyskanie dostępu do serwera, • debugowanie serwera
produkcyjnego, • rozwiązanie problemu; 2h x liczba problemów
• kolejki, • bazy danych, • biblioteki, • frameworki; Zależności
projektów zmieniają się w czasie
ROZWIĄZANIE?
ZARZĄDZANIE ZALEŻNOŚCIAMI
PROBLEM #2 Różnice w konfiguracji
OTWARCIE APLIKACJI WEB
OTWARCIE APLIKACJI WEB
POTRZEBNY CZAS • przeglądanie całego kodu i sprawdzanie wszystkich
metod i funkcji ??? • włączenie raportowania błędów na produkcji ??? ∞h x liczba problemów
• Warning: Cannot send session cookie – headers already sent
• Notice: Undefined variable: $name • Notice: Use of undefined constant name - assumed 'name' • Notice: Undefined index in ...
ROZWIĄZANIE?
JEDNOLITA KONFIGURACJA
PROBLEM #3 Przyjście do firmy nowego pracownika
MOŻESZ MI TO ZAINSTALOWAĆ? http://www.flickr.com/photos/juhansonin/5784102806/in/photostream/
POTRZEBNY CZAS • zainstalowanie wszystkich zależności, • szybka konfiguracja aplikacji,
• konfiguracja, połączenie i dane do bazy danych, • wszystko inne o czym zapomnieliśmy kilka godzin x liczba pracowników
• grafik, Frontend, Artysta, van Gogh, • szef, przełożony, •
każda nowa osoba w zespole;
ROZWIĄZANIE?
POWTARZALNE ŚRODOWISKA PRACY
http://www.flickr.com/photos/jdhancock/3432525439/in/photostream/
http://www.flickr.com/photos/tonythemisfit/3052219034/in/photostream/
http://www.flickr.com/photos/extraketchup/459020985/in/photostream/
KTO MA (DZISIAJ!) AKTUALNĄ DOKUMENTACJĘ KONFIGURACJI? http://www.flickr.com/photos/rufino_uribe/61706536/in/photostream/
DOKUMENTACJA KONFIGURACJI • README.md • Skrypt instalujący, sprawdzający zależności •
CHANGELOG • dpkg -l
ALBO…
ZAWSZE AKTUALNA KONFIGURACJA VAGRANTA
KONFIGUROWANIE APLIKACJI PRODUKCYJNEJ • README.md • Skrypt instalujący, sprawdzający zależności
• CHANGELOG • apt-get install *
ALBO…
ŚRODOWISKO PRODUKCYJNE
TESTOWANIE APLIKACJI PRODUKCYJNEJ • Zakładanie konta w systemie produkcyjnym ?
• Dublowanie infrastruktury ? • Los szczęścia ?
ALBO…
ŚRODOWISKO TESTOWE ZBLIŻONE DO PRODUKCYJNEGO
– Thomas A. Edison „We will make electricity so cheap
that only the rich will burn candles.” „Zrobimy elektryczność tak tanią, że tylko bogaci będą palić świeczki.”
None
ZARZĄDZANIE URUCHAMIANIEM I ZAMYKANIEM ŚRODOWISKA
– Winston Churchill „To improve is to change; to be
perfect is to change often” „Ulepszanie to zmiana; żeby być doskonałym trzeba zmieniać często”
None
WERSJONOWANIE ŚRODOWISKA
! KEEP CALM IT WORKS ON MY MACHINE
Vagrantfile $ vagrant ZASADA DZIAŁANIA Konfiguracja Provider Provisioner Puppet, Chef,
fabric VirtualBox, VMWare, KVM, lxc, aws, rackspace
VIRTUALBOX • https://www.virtualbox.org/ VirtualBox is a powerful x86 and AMD64/Intel64
virtualization product for enterprise as well as home use.
PUPPET • http://puppetlabs.com/ Puppet is a configuration management tool that
is extremely powerful in deploying, configuring, managing, maintaining, a server machine.
$ vagrant up done ZASADA DZIAŁANIA DLA UŻYTKOWNIKA KOŃCOWEGO Zainstaluj
co tam trzeba
PODSTAWY VAGRANTA $ vagrant init $ vagrant up $ vagrant
provision $ vagrant ssh $ vagrant halt
$ puppet apply \ --modulepath=vagrant/modules \ vagrant/manifests/demo.pp ŚRODOWISKO PRODUKCYJNE
JĘZYK PUPPETA • Zasoby (Resources) • Klasy (Classes) • Węzły
(Nodes)
RESOURCES • cron • exec • file • notify •
package • service
LOCALHOST VS REMOTE VS VAGRANT
LOCALHOST REMOTE VAGRANT Porządek lokalnym w systemie Jednolite środowisko Możliwość
pracy offline Czas dostępu do plików Czas konfiguracji (nowy projekt) ! " ! ! " ! " ! ! ! " ! ! " !