git

Git은 소프트웨어 개발에서 발생하는 소스 코드의 변화를 추적하기 위한 분산 버전 관리 시스템이다. 프로그래머 간의 소스코드 작업을 조정하기 위해서 설계되었지만 바이너리 파일을 포함한 모든 파일의 변경 사항을 추적하는데 사용 할 수 있다. Git의 목표는 속도, 데이터 무결성, 분산 워크플로우의 지원이다. Git은 리누즈 토발즈(Linus Torvalds...

Nexus3로 private maven repository 구성

사내에서 Git, Docker Image Registry, Maven Repository, PyPI, Gem, YUM, DEB등의 저장소를 운영하려면 격리된 환경에 각 목적에 맞는 소프트웨어를 설치해서 운영해야 한다. 엄청나게 귀찮은 작업이 아닐 수 없다. 하지만 이런 저런 이유로 Private Repository 시스템을 구성이 필요한 경우가 있다. 금융...

Grafana, InfuxDB, Telegraf를 이용한 모니터링 시스템 구성

원래는 Prometheus를 기반으로 모니터링 시스템을 구성할 계획이었으나 여러 이유로 influxDB를 기반으로 하는 모니터링 시스템을 구성하게 됐다. 구성 과정을 기록으로 남긴다. 운영 중인 www.joinc.co.kr를 모니터링 한다. www.joinc.co.kr 서버는 에 위치하고 있으므로 이론상 CloudWatch 만으로 모니터링 시스템 구성이 가...

Vault 소개

Vault를 공부해보려 한다. 여기에서는 진짜 컨셉만 다룬다.Vault는 HashiCorp에 의해서 개발된 크로스플랫폼 패스워드 및 인증 관리 시스템이다. 공개되면 안되는 비밀번호, API 키, 토큰 등을 저장하고 관리한다.스토리지 백엔드는 암호화된 데이터를 저장하기 위한 스토리지를 담당한다. Vault는 스토리지의 종류, 가용성 등을 책임지지 않는다. 어...

SRE 적용

Cloud Native 환경에서 SRE를 적용해 보려 한다. 다양한 사례들을 수집하고, 수집한 내용들을 운용중인 AWS에 접목하기 위한 나의 고민들로 채워진다. SRE에 대한 이론적인 내용보다는 실질적인 내용을 주로 다룰 것이다. 아주 먼 옛날에 IT 회사는 개발과 운영이 서로 분리돼 있었다. 좀 더 들어가보면 개발, 운영, 설계, 기획, 마케팅 등이 전부...

Terraform workspace

서비스 인프라를 구성 할 때, 프러덕션 인프라 하나만 구성하는 경우는 없다. CICD 환경울 구성했다면 최소 두 단계, 일반적으로 3단계의 인프라가 구성된다. Dev QA Production 클라우드 환경에서는 인프라도 소프트웨어 구성요소다. 개발이 여러 단계를 거치는 것처럼, 인프라도 여러 단계를 거치면서 테스트, 피드백, 개선의 작업을 거쳐야 한다....

SRE - Site Reliability Engineering

Site Reliability Engineering(이하 사이트 신뢰성 엔지니어링 혹은 SRE로 표기한다.)는 소프트웨어 엔지니어링 기술들을 인프라 및 운영에 적용하는 것을 의미한다. SRE 팀을 이끌고 있는 Google의 Ben Trenor에 따르면, SRE는 "소프트웨어 엔지니어가 이전에는 작업이라고 불렀던 일을 처리 할 때 어떤 일이 일어날지"에 대한...

Continuous integration

소프트웨어 엔지니어링에서 CI는 모든 개발자의 작업 사본을 공유하고, 하루에 여러 번(수시로 혹은 짧은 간격으로) 병합하는 프로세스를 말한다. 1991년 Grady Booch가 CI라는 용어를 처음 제안했으나 당시에는 여러 번 통합하는 것을 권유하지는 않았다. XP(eXtreme programming)에서는 하루에 한번이상 통합할 것을 권하고 있다. CI는...

Continuous delivery

Continuous delivery(CD 혹은 CDE, 지속적인 전달)는 팀이 짧은 주기로 소프트웨어를 생산하는 방식으로 소프트웨어를 안정적으로 출시할 수 있도록하는 엔지니어링 방식이다. 빠른 속도와 잦은 빈도로 소프트웨어를 개발하고, 테스트를 끝내고 출시하는게 목표다. 이 접근법을 이용하면 응용 프로그램을 보다 점진적으로 개선하고 변경 사항을 업데이트 할...

Opsgenie를 이용한 AWS 인프라 이벤트 관리 시스템 구성

나는 인터넷 서비스의 품질을 확보하기 위한 가장 중요한 활동을 아래와 같이 정의 한다. 문서화 테스트가 포함된 모니터링, 관제 시스템 및 장애(인시던트)관리 프로세스 모니터링 결과는 결국 알람과 인시던트의 형태로 출력된다. 알람과 인시던트는 업무처리 시스템에 따라서 처리를 해야 한다 대략적인 프로세스는 아래와 같을 것이다. 이벤트, 경고(alert),...