일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jenkins
- Git
- Spring
- Oracle
- ReactJS
- jsp
- Spring Boot
- java
- 요리
- Design Patterns
- elasticsearch
- devops
- JVM
- Web Server
- it
- IntelliJ
- db
- Spring Batch
- AWS
- springboot
- php
- linux
- ubuntu
- MySQL
- Gradle
- tool
- redis
- 맛집
- laravel
- javascript
- Today
- Total
목록Infra/DevOps (39)
아무거나
Jenkins Pipeline + Nginx + Spring Boot(Maven) 무중단 배포 요새는 CI/CD 가 잘되어 있어서 jetbrains, aws, atlassian, jenkins 등.. 선택지가 많으나 비용이 적게드는 최소한의 방법으로 구성을 했던 내용을 복습하기 위해 해당 포스팅을 작성하게 된다. bitbucket webhook 을 통하여 소스 pr 후 merge 시에 trigger 가 발생하게 되는 구성으로 되어있으며 (해당 과정은 생략) 이후 jenkins pipeline 을 통하여 빌드하고 각 배포할 서버에 전송 후 구동 및 스위칭 스크립트를 작성하는 프로세스로 진행할 것이다. 배포할 서버에 빌드파일을 전송할 JenkinsFile 작성 (Maven)[Jenkinsfile]pipeli..
Spinnaker Spinnaker 란? Spinnaker 는 넷플릭스에서 개발하고 구글에서 확장한 오픈 소스화한 멀티 클라우드를 지원하는 CD(=Continuous Delivery) 플랫폼이다. 구글 클라우드, 아마존, 마이크로소프트 등 대부분의 메이져 기업의 클라우드를 지원하며 Kubernetes 또는 Openstack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시 지원한다. Spinnaker 아키텍처 Deck: Deck 컴포넌트는 UI 컴포넌트로, Spinnaker의 UI 웹사이트 컴포넌트이다. Gate: Spinnaker는 MSA 구조로, 모든 기능을 API 로 Expose 한다, Gate는 API Gateway로, Spinnaker의 기능을 API로 Expose 하는 역할을 한다..
평소 대략적으로만 이해하고있던 배포전략 개념에 관하여 좀 더 자세하게 정리하고자 포스팅을 작성하게 되었다. 배포전략(Rolling, Blue/Green, Canary) Rolling Rolling 배포는 서버를 한 대씩 구 버전에서 새 버전으로 교체해가는 전략이다. 서비스 중인 서버 한 대를 제외시키고 그 자리에 새 버전의 서버를 추가한다. 이렇게 구 버전에서 새 버전으로 트래픽을 점진적으로 전환한다. 이와 같은 방식은 서버 수의 제약이 있을 경우 유용하나 배포 중 인스턴스의 수가 감소 되므로 서버 처리 용량을 미리 고려해야 한다. Blue/Green Blue/Green 배포는 신 버전을 배포하고 일제히 전환하여 모든 연결을 신 버전을 바라보게 하는 전략이다. 구 버전, 신 버전 서버를 동시에 나란히 ..
Pinpoint Document 설명 Pinpoint란? 대규모 분산 시스템의 성능을 분석하고 문제를 진단, 처리하는 java 플랫폼 github: https://github.com/pinpoint-apm/pinpoint quick start: https://pinpoint-apm.github.io/pinpoint/quickstart.html#get-started 기능 서버 맵 - 대상 서버와 연결된 다른 서버와의 관계 다이어그램 스캐터 - 요청별 응답시간에 따른 그래프 request detail - 스캐터에서 선택된 요청의 스택트레이스 뷰 에러 발생 요청 표시 - 에러가 발생한 요청 빨간색으로 표시 서버의 jar목록 표시 - 서버에 접속하지 않아도 관련된 jar 목록 확인 가능 구성 DB - HBase..
Ngrinder Document 설명 Load Test 부하 테스트 혹은 스트레스 테스트라고 한다 일부러 시스템에 부하를 발생시킴 얼마만큼의 부하를 버틸 수 있는지 평가한다 Ngrinder란? Load Test를 하기위한 소프트웨어이다 NHN에서 개발 오픈소스 부하 테스트 도구인 grinder를 기반으로 작성 웹 기반으로 테스트를 진행할 수 있다 복수의 장비를 이용해서 대상 시스템에 큰 부하를 발생시킬 수 있다 스크립트를 작성하여 테스트 시나리오를 만들 수 있다 Ngrinder 구성요소 Controller 웹 기반 GUI 시스템 유저 관리(멀티 유저 기반) 에이전트 관리 부하 테스트 실시 & 모니터링 부하 시나리오를 작성하고 테스트한 내역을 저장하고 재활용 할 수 있다 Agent 부하를 발생시키는 대상 ..
해당 글은 CentOS7 기준으로 작성되었다. 고정 IP 할당 CentOS7 아래 이미지와 같이 네트워크 설정을 "어댑터에 브리지"로 변경한다. IP설정 파일 수정 sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 [ifcfg-enp0s3] ... # 고정IP 사용 BOOTPROTO="static" ... # 원하는 고정 아이피 추가 IPADDR=192.168.0.200 # 넷마스크 디폴트 설정 NETMASK = 255.255.255.0 # 게이트 웨이 주소 GATEWAY=192.168.0.1 # 기본DNS, 보조DNS -> KT로 맞춤 DNS1=168.126.63.1 DNS2=168.126.63.2 # 부팅시 자동 활성화 여부 ONBOOT="yes" netwo..
VirtualBox 에서 디스크 크기 변경하기 VirtualBox 에서 초기 디스크 용량을 적게 설정할 때 증가를 시키기위해 VirtualBox에서 기본적으로 제공하는 매니징툴을 사용하여 사이즈를 늘려보자. 1. VirtualBox가 설치된 폴더에서 VBoxManage.exe 를 실행하여 size를 변경해보자. // size단위는 MB로 입력하자. c:\{vm경로}>VBoxManage.exe modifyhd "{사용자경로(*.vdi가 생성되는경로)}" --resize 51400 2. "파일" -> "가상 미디어 관리자" -> "복사(C)" 를 하게되면 동적 확장 저장소가 생성된다. (속성에서도 사이즈 변경이 가능하다.) 3. 동적 할당 저장소가 생성되고 사이즈 변경을 실행하면 아래와 같이 완료된다. 4...
포트포워딩 리눅스 설치 후 openssh를 설치하자. // Ubuntu $ sudo apt-get install openssh-server // CentOS $ yum -y install openssh-server openssh-clients 포트 및 네트워크 동작여부 확인 // 22번 포트 동작여부 확인 // 또한 virtualbox는 기본적으로 이더넷 카드의 address는 10.0.2.15로 잡히게 된다. $ netstat -ntl "설정 -> 네트워크 -> 고급 -> 포트포워딩" 에서 규칙을 설정한다. ( 여기에선 ssl 테스트를 위해 2201 포트로 포워딩을 하겠다. )
Sentry Java 연동 Sentry란 오류 모니터링을 제공하는 오픈소스 플랫폼이다. 클라우드(=sentry.io)는 무료 및 비용별 과금을 제공하지만 자체 구축하면 무료로 사용할 수 있다. 다양한 언어를 제공하므로 유용하게 사용할 수 있다. sentry.io 에 접속하여 회원가입을 한다. 회원가입을하면 DSN 번호를 확인하자. Settings -> Client Keys (DSN) -> DSN 번호 확인 이제 java 경로인 resources 폴더에 sentry.properties 파일을 생성하고 하기 내용을 입력하자. dsn={myDSN} servername={serverName} stacktrace.app.packages={Package} 그 다음 resources 폴더경로에 logback-spri..
[springboot gradle 개발환경별 버저닝 빌드&배포] 개발환경 기준 : dev, stage, master(=live) 사용툴 : jenkins + s3 + codedeploy [빌드] 1. build.gradle에 저장될 jar이름 설정(안하면 jenkins item이름으로 기본정의됨) jar { archivesBaseName = "test" } 2. build 부분에서 Add build step -> Invoke Gradle script 선택 3. jekins item 설정에서 Build 부분에서 Use Gradle Wrapper 버튼 클릭하고 설정 - Make gradlew executable 체크 - Wrapper location: ${workspace} // ${workspace}는 ..