배포 전략 비즈니스 환경 변화에 탄력있게 대응하기 위해 많은 기업들이 Agile, DevOps, MSA 등 다양한 기반 기술을 도입하고 있지만, 실상은 많은 시행착오를 겪고 있는 것도 사실이다. 서비스는 사용자 경험 향상을 위해 하루에도 수번에서 수십번 버전을 업그레이드하거나, 버그를 픽스하는 등 여러 경우에서 변화가 발생할 수 있다. 이때 사용자가 느끼지 못할 정도로 서비스의 중단 없이 배포를 진행해야 하는 경우가 있고, 때로는 다운타임을 가져가야 할 경우도 있다. 서비스를 제공하는 제공자 입장에서 어플리케이션의 새 버전을 성공적으로 릴리즈하기 위해 어플리케이션 특성과 리소스, 비용 등을 종합적으로 고려하여 다양한 배포 전략을 고민해야 한다. 각각의 배포 방식은 특징을 갖고 있고, 적합한 환경과 프로젝..
개요 큰 규모의 프로젝트에서는 개발자가이드나 코드리뷰 만으로 소스코드 내에 산재되어 있는 잠재적인 문제점을 모두 찾아내기 어렵다. 따라서 소스코드 전체를 일괄로 스캔하여 문제가 되는 패턴을 자동으로 찾아서 수정할 수 있는 도구의 도입은 반드시 필요하다. 대표적인 정적분석 도구 중 하나인 PMD에 대해 알아보도록 하자. PMD, SpotBugs(FindBugs), SonarQube 등 정적분석도구는 소스코드에 대한 inspection을 강화하여 이후 발생가능한 이슈들을 개발단계에서 점검하는 도구이다. STS(Spring-Tool-Suit) PMD Plugin 적용 1) Help > Eclipse Marketplace 2) Search > PMD > PMD Install 한 차례 리스타트 후 pmd 정적분석..
개요 DevOps는 최근 가속화 되고 있는 추세이다. 특히 조직의 변화가 어려운 기업에서도 DevOps에 관심을 갖고 체계를 수립해 보고자 변화의 자세를 갖고 있다. 현재 프로젝트 중인 a은행에서도 DevOps에 대한 제언을 요청하고 있으며, 조직과 프로세스 그리고 도구 관점에서 제언할 수 있는 부분들을 지속적으로 검토하고 있다. 특히 Security 관점에서 DecSecOps에 대한 논의 역시 이루어지고 있다. 전체 프로세스에 대한 부분은 이후 다시한번 다뤄보도록 하고, 이번 포스팅에서는 Ops 관점에서 지속적인 배포 프로세스의 속도 개선을 위한 체계 개선 방안 중 하나인 GitOps에 대해 알아보도록 하자. DevOps를 위해 많은 도구들이 도입되고 활용되고 있지만, 그 중 대표적인이면서, 클라우드 ..
개요 이번 포스팅에서는 Tekton Pipeline을 실제로 구축해 보도록 하자. 여러 단계에 걸쳐 Tekton에서 수행될 Task를 Pipeline으로 연결하고, 최종적으로 EKS에 배포하는 과정까지 알아보도록 한다. 먼저 이번 포스팅에서는 Docker Image를 생성하고 Docker Registry에 Push하는 과정에 대해 알아보자. git-clone maven build image build image push 0. 구성 전 준비사항 > Kubernetes 1.16 이상 버전 구축 : Amazon EKS(Kubernetes 1.19) > Service Account 권한 부여 : GitHub / DockerHub > Workspace 용 pv, pvc 준비: 공유 데이터 저장소 apiVersio..
개요 아키텍트는 대규모 프로젝트에서 원하는 목표를 달성하기 위해 다양한 영역의 아키텍처를 설계하는 것은 물론 개발 생산성 향상을 위해 개발절차를 확정하고 개발에 필요한 환경과 가이드를 제공하는 등 담당해야 할 과제들이 존재한다. 이때 개발절차를 확정하기 위해 선행되어야하는 것이 있는데 바로 SCM 정책수립이다. SCM(Source Code Management)은 소스코드 저장소에 대한 수정 사항을 추적하고 여러 개발자의 소스코드 병합과정에서 발생가능한 Conflict를 해결하는데 도움을 주는 도구이다. 특히 대규모 프로젝트일수록 필수적으로 고려되어야 한다. 최근 클라우드 환경 특히 마이크로서비스 아키텍처 환경으로 접어들어가며, 배포독립성, 민첩성이 강조되는 환경에서 Git이 떠올랐으며, 신규로 시작되는 ..
서론 Jenkins Job 중 Multibranch Pipeline을 활용하면 여러 Branch를 통합하여 하나의 Job 처럼 관리할 수 있다. 특히 Git flow와 같은 Branch 전략을 활용하기에 적합한 Job이라 할 수 있다. Feature Branch와 같은 LifeCycle이 짧은 Branch와 Developer/Master와 같은 LifeCycle이 긴 Branch를 하나의 Pipeline으로 통합하여 관리할 수 있다. 지금부터는 Jenkins에서 Multibranch Pipeline을 활용하여 GitHub Branch를 배포하는 과정에 대해 알아보자. MultiBranch Pipeline 구성 Jenkins 설치 방법은 다음 포스팅을 참고한다. [Jenkins] Jenkins 설치 가이드..
개요 앞서 살펴본 포스팅을 통해 Tekton에 대해 알아보았다. 사실 오픈소스의 시장 점유율이 높아짐에 따라 CNCF에 공개된 Cloud Native 소프트웨어들은 주목도가 높아지고 있는 것이 사실이다. Tekton Previous Posting : Tekton Pipeline 작성 CNCF : https://landscape.cncf.io/ 이와 같은 맥락으로 Continuous Develivery에 대해 관리하는 CDF라는 조직을 통해 현재 Tekton은 물론 CD 진영의 주요 활동에 대해 알아 볼 수 있다. CDF : https://cd.foundation/ 현재 CD Foundation Project로 등록되어 있는 오픈소스 소프트웨어는 Jenkins, Jenkins X, Spinnaker 그리고..
Overview Tekton은 CI/CD를 위한 클라우드 네이티브 솔루션으로 CSP 3사는 물론, On-premise 환경의 Kubernetes를 모두 지원하며, build, test, deploy를 기능을 제공한다. Tekton은 언어 및 배포 환경 전반에서 CI / CD 도구 및 프로세스를 표준화한다. 특히 복잡한 MSA 환경에서 배포 환경을 통합하여 구성하기 용이한 구조로 되어 있다. Jenkins, Jenkins X, Spinnker, Skaffold, Knative 등 다양한 CI/CD 도구와 통합할 수 있다. Tekton은 Step, Task, Pipeline, Pipeline Resource로 구성되어 있으며, Task와 Pipeline을 기동하는 TaskRun, PipelineRun 오브젝..
개요 Bamboo Plan은 Jenkins의 파이프라인과 같이 여러 Stage를 하나로 묶어 서로 다른 컴포넌트의 동작을 하나처럼 움직이도록 하는 빌드/배포 방식이다. Jenkins의 경우 Pipeline → Stage → Step → Script로 단계를 관리한다. 이와 마찬가지로 Bamboo는 Plan → Stage → Job → Task로 단계를 관리한다. 지금부터는 이 관계도를 기반으로 어떻게 Bamboo Plan을 구성하고 실행하는지 살펴보도록 하자. Bamboo 빌드/배포 이제 본격적으로 Bamboo를 구축해 보도록 하자. 모든 Bamboo의 배포 체계를 Plan을 생성함으로써 시작되며, 이미 생성되어 있는 Plan에 Stage를 추가하여 배포를 변경할 수 있다. Bamboo Plan > Cr..
개요 Atlassian(아틀라시안) 도구는 소프트웨어 개발 및 개발자간 협업을 지원하는 다양한 컴포넌트를 제공한다. 대표적인 개발, 빌드 및 배포 지원 도구로 Bitbucket / Bamboo / Jira / SourceTree 등이 있다. Bitbucket Bitbucket은 소스 형상관리 도구로 익히 알고 있는 git을 기반으로 하고 있다. 크게 3가지 형태의 버전을 제공한다. a.Bitbucket Cloud Bitbucket Cloud는 Github와 같이 Atlassian에서 직접 웹 환경에서 제공해 주는 버전이다. (https://bitbucket.org/dashboard/overview) Public 환경에서 접근이 가능할 경우 유용하게 사용할 수 있다. Bitbucket Private Rep..
- Total
- Today
- Yesterday
- webtob
- 오픈스택
- API Gateway
- JEUS6
- SWA
- aa
- aws
- SA
- 마이크로서비스
- TA
- kubernetes
- openstack tenant
- JBoss
- k8s
- JEUS7
- jeus
- apache
- git
- Architecture
- MSA
- 마이크로서비스 아키텍처
- wildfly
- Da
- 아키텍처
- 쿠버네티스
- node.js
- openstack token issue
- nodejs
- OpenStack
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |