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 Środowisk...
Search
Marcin Dryka
February 06, 2014
Business
1
270
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
170
Other Decks in Business
See All in Business
Cloudbase Recruiting Deck / 採用資料
cloudbaseinc
0
450
ele&company_companydeck
eleand
0
390
株式会社10X - Company Deck
10xinc
89
1.5M
sample
mamiko
0
420
Spice Factory Inc. Culture Deck
spicefactory
0
11k
20250913_AWS アカウント 150 超の組織で取り組む Lambda EoL 対応
tsunojun
1
260
株式会社スムーズ会社紹介資料/Smooth COMPANY DECK
smoothinc
PRO
1
2k
快適なエンジニアリングライフ実現するための ワークもとい会社ハック / Work Hacks for a More Comfortable Engineering Life
nttcom
6
2.3k
営業職/新卒向け会社紹介資料(テックファーム株式会社)
techfirm
1
960
RightTouch_mind
righttouch
PRO
1
3.1k
[T2] 会社紹介資料 2025年9月
t2auto
0
7.6k
Terra Charge|会社紹介 / Terra Charge Company Profile
contents
0
12k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Building Adaptive Systems
keathley
43
2.8k
Rails Girls Zürich Keynote
gr2m
95
14k
A Tale of Four Properties
chriscoyier
160
23k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Become a Pro
speakerdeck
PRO
29
5.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
The Invisible Side of Design
smashingmag
301
51k
Navigating Team Friction
lara
189
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
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) ! " ! ! " ! " ! ! ! " ! ! " !