본 슬라이드는 Windows환경에서 NginX구동을 실습하기 위해, PHP를 예로 들어 진행하고 있습니다. NginX는 PHP 동적웹페이지에 대한 처리보다, 정적 HTTP 서버에 적합 합니다.
본 슬라이드는 시작과 구동에 초점을 맞추고 있습니다. 설정관련 내용은 아래 공식 문서를 참조할 수 있습니다.
http://nginx.org/en/docs/beginners_guide.html
[17.01.19] docker introduction (Korean Version)Ildoo Kim
Docker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
쉽고 빠른 웹앱 프로토타이핑을 진행할 수 있게 도와주는 툴입니다.
node.js 기반으로 주요 기능으로는 아래와 같습니다.
* 스케폴딩으로 인한 빠른 프로젝트 템플릿 구성
* LiveReload를 이용한 라이브 코딩
* 이미지 optimization
* Compass, CoffeeScript 자동 컴파일링
* JS 라이브러리의 의존성 체크 및 업데이트 관리
* 정적검사 및 유닛 테스트
* JS/CSS merge 및 minimize 그리고 dist 배포
본 슬라이드는 Windows환경에서 NginX구동을 실습하기 위해, PHP를 예로 들어 진행하고 있습니다. NginX는 PHP 동적웹페이지에 대한 처리보다, 정적 HTTP 서버에 적합 합니다.
본 슬라이드는 시작과 구동에 초점을 맞추고 있습니다. 설정관련 내용은 아래 공식 문서를 참조할 수 있습니다.
http://nginx.org/en/docs/beginners_guide.html
[17.01.19] docker introduction (Korean Version)Ildoo Kim
Docker(도커) 소개를 위해 사용했던 자료입니다.
제가 속한 개발팀에서는 도커 컨테이너를 기반으로 개발부터 배포까지 가능한 환경 및 인프라를 구축하여 개발팀에서 대다수의 오퍼레이션까지 관여하면서 Devops 형태로 운영합니다.
Docker(도커)를 처음 사용하거나 개념적으로 익숙하지 않은 초보를 위해 만든 자료입니다.
슬라이드에서 사용된 스크립트/코드는 아래에 있습니다.
https://github.com/ildoonet/docker_introduction
----
김일두, Software Engineer @ Kakao
Github : https://github.com/ildoonet
Linkedin : https://www.linkedin.com/in/ildoo-kim-56962034/
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
쉽고 빠른 웹앱 프로토타이핑을 진행할 수 있게 도와주는 툴입니다.
node.js 기반으로 주요 기능으로는 아래와 같습니다.
* 스케폴딩으로 인한 빠른 프로젝트 템플릿 구성
* LiveReload를 이용한 라이브 코딩
* 이미지 optimization
* Compass, CoffeeScript 자동 컴파일링
* JS 라이브러리의 의존성 체크 및 업데이트 관리
* 정적검사 및 유닛 테스트
* JS/CSS merge 및 minimize 그리고 dist 배포
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
# Part 1
개발자의 주위환경에 대해 살펴보고 Cloud Foundry overview, Cloud Foundry 를 구성하는 components 마지막으로 Deploy 환경에 대해 알아보겠습니다.
# Part 2
설치부터 코드까지, 데모찍은 동영상은 추후 제공예정
부족한 부분은 nanhap@gmail.com 으로 문의메일 주시면 성심성의껏 답변 드리겠습니다. 감사합니다.
2017년 12월 6일 W3C Conference에서 "Docker와 DevOps에서 Serverless와 NoOps로의 여정"라는 주제로 발표한 자료입니다.
데모로 시연한 샘플코드는 아래와 같습니다.
https://github.com/novemberde/serverless-webapp-demo
2. 로컬 개발 환경 구성
- PHP 웹 App 를 작성하기 위한 개개인의 작업 환경
- Apache, MySQL, PHP 기반
- Linux 의 경우 LAMP, Windows 는 MAMP
3. 로컬 개발 환경 구성
- 맥북 사용시 brew 로 간단하게 환경 구성 가능
- 모두 다 맥북 하나씩은 갖고 있죠?
4. 현실 – 개발자 PC 는 Windows 가 더 많음
- Windows 는 CLI 환경이 매우 불편
- 불편한 CLI 로 인해 자동화가 어려움
- Win10 부터 WSL (Windows Subsystem For Linux) 로 리눅스
지원이 편리해짐
5. 현실 – 너무 다양한 AMP 패키지
- EasyPHP
- AMPPS
- Bitnami WAMP
- Iz-WAMP
- MAMP
- 오토셋
- …
https://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
6. 현실 –모두가 PHP 개발자가 아님
- 프로젝트에 PHP 개발자만 있는 것은 아님
- 디자이너
- 퍼블리셔
- DBA
- Front End 개발자
- AMP 환경 구성이 익숙하지 않을 수 있음
7. AMP 설치가 끝이 아님
- Deploy 를 위해 Web Server 설정 익혀야 함(Virtual Host등)
- 운영 환경은 Apache 가 아닌 Nginx 도 많이 사용
- Apache 와 Nginx 의 설정 방법 상이
8. PHP Deploy 문제
- PHP 프레임워크나 솔루션에 따라 DocumentRoot 가 달라짐
- Wordpress – wp-config.php 가 ROOT
- Laravel – public 폴더
9. PHP 로컬 웹 서버
- php -S 0.0.0.0:8000
- 가상 호스트 설정의 어려움을 피하기 위한 간단한 방법
- 포트로 구분하므로 여러 개의 프로젝트가 있을 경우 헷갈림
(하나만 하면 좋겠지만 현실은…)
- 레거시 수정 필요시 개발 환경이 미리 잘 구성되어 있지 않
다면 꽤 헤맬수 있음
10. 솔루션 - Homestead
- 자동화 솔루션인 Vagrant 기반
- 가상 머신(Virtual Box) 에 Ubuntu 및
개발에 필요한 모든 패키지 자동 설치 및 설정
- 사용할 수 있다면 최고의 개발 환경 구성 도구
11. Homestead 단점
- 가상 머신에 대한 기본 적인 이해 필요
- VM이라 속도가 매우 많이 느림
- 안될 경우 해결이 너무 어려움
12. 솔루션 – Docker
- VM 에 비해서 매우 빠름
- LaraDock 등 Docker 기반 패키지 존재
- 하지만 Docker 를 배워야 하는 부담이 있음
13. Docker 단점
- Docker 학습 비용 발생
- 운영 배포면 모를까 docker 로 개발 환경 구성은 오버 스펙
(docker 에 익숙하다면 예외)
14. 솔루션 - Valet
- VM 이 아니므로 동작이 매우 빠름
- 부팅과 동시에 nginx 를 구동
- 자동으로 Virtual Host 설정(Valet Driver)
- 로컬 DNS 서버를 구성하여 브라우저에서 폴더명.dev 로 연
결
15. 솔루션 - Valet
- 개발 환경 구성(parking)은 valet 에 맡기고 개발에만 집중
가능
- OS X 만 지원
16. Valet for Windows
- Valet 의 Windows 포팅(https://github.com/cretueusebiu/valet-windows)
- nginx 와 PHP-FPM(사실은 php-cgi) 을 Windows 의 서비스
로 자동 등록
- Acrylic DNS 로 Local DNS 서버 기능 제공
17. 사전 준비 사항
- PHP, MySQL
- Composer
- Windows 용 패키지 관리자인 choco 가 있다면 다음 명령 실
행
- choco install php mysql composer–y
18. 설치
- cmd.exe 실행후 아래 명령 실행
composer global require cretueusebiu/valet-windows
- Valet 명령어가 설치된 경로를 PATH 에 추가
(%APPDATA%RoamingComposervendorbin)
- 관리자로 cmd.exe 실행 후 아래 명령어로 발렛 설치
valet install
- 에러 발생시 ~/.valet/Log 폴더의 로그 확인
19. 설정
- .dev 도메인으로 연결할 수 있도록 첫 번째 DNS 를
127.0.0.1 로 변경
- %USERPROFILE%.valetServices 의
phpfpmservice.xml 에 PHP 경로 설정
<service>
<id>valet_phpfpm</id>
<name>valet_phpfpm</name>
<description>Valet PHP-FPM</description>
<executable>d:develphpphp-7.1.8-Win32-VC14-x64php-cgi.exe</executable>
<!--
<executable>php-7.0.16-Win32-VC14-x64</executable>
<executable>php-5.6.30-Win32-VC11-x64</executable>
-->
<arguments>-b 127.0.0.1:9000</arguments>
<logpath>C:Userslesstif/.valetLog</logpath>
<logmode>reset</logmode>
<onfailure action="restart"/>
</service>
20. 사용 - park
- 특정 경로내(예: c:UserslesstifSites) 의 모든 폴더 자동으
로 등록
valet park
- 이제 폴더명.dev 로
연결 가능
21. 기본 도메인 변경
- 기본 도메인은 .dev 이며 변경을 원할 경우 아래 명령 실행
valet domain local
- 이제 폴더명.local 로 연결 가능
22. 로컬 사이트 외부에 공개
- ngrok 를 설치했다면 현재 로컬 개발 사이트를 쉽게 공유 가
능
- 공유할 프로젝트 폴더에서 다음 명령 실행
valet share
- ngrok에 표시된 URL 을 통해 외부에서 로컬 서버 연결 가능
23. 참고 자료 & QnA
• https://laravel.com/docs/5.5/valet
• https://github.com/cretueusebiu/valet-windows
• https://www.lesstif.com/x/iQRVAg