서론 DevSecOps란 개발, 보안, 운영이라는 세가지 중요한 측면을 원활하게 수행하기 위한 방식 또는 조직을 의미한다. DevOps에서 확장된 개념이라 볼 수 있다. 이는 전체 어플리케이션 라이프 사이클을 공동 책임으로 관리한다는 조직관리 관점에서 확장된 것이지만, 사실 확장이라는 개념에 어울리지 않게, 그간 우리는 보안이라는 요소를 기술의 Sub System 정도로 취급해 왔던 것이 사실이다. 특히 컨테이너 기술에 대한 이해가 높지 않은 상황에서 보안을 논의하기 보다는 기술의 완성도를 높이는데에만 집중해 오지 않았나 싶다. 최근 프로젝트에서 DevSecOps가 논의된 적이 있다. 당시 마이크로서비스를 설계하는 아키텍처 입장에서 나부터 보안에 대한 고려가 깊지 않았다는 생각을 하게 됐다. 이제는 그 ..
서론 마이크로서비스 환경에서 서비스를 잘 모델링하는 것 만큼 중요한 것이 바로 컨테이너 이미지를 설계하는 것이다. 어플리케이션을 잘 설계하여 소스도 경량화 되고, 확장성을 확보했다고 생각할 수 있지만, 사실은 어플리케이션을 감싸고 있는 컨테이너 이미지가 최적화되어 있지 않을 경우 어플리케이션의 경량화는 의미가 퇴색될 수 있다. 지금부터 살펴볼 내용은 컨테이너 이미지를 생성할때 고려해야 할 사항에 대해 본인의 노하우를 섞어 알아보도록 하자. 첫번째, 경량화 역시나 첫번째로 고려해야 할 부분은 바로 컨테이너 이미지의 경량화이다. 이미 수도 없이 강조했지만, 컨테이너 이미지는 작으면 작을 수록 좋다. Scalability를 강조하기 위해서는 무엇보다 가벼운 이미지가 중요하며 경량화를 위한 노력을 무엇보다 지속..
docker container는 host kernel을 공유하지만, 때로는 구분된 limit 정보를 구성해야할 경우가 발생한다. 예를 들어, nofile(open files)나 nproc(max user processes)의 경우 application의 요구사항에 따라 또는 솔루션의 요구사항에 따라 변경하여 적용할 필요가 있다. 아래는 docker container를 사용할 경우 ulimit을 일괄 변경하는 방법에 대해 알아보도록 하자. systemctl show docker 먼저, docker의 variable 정보를 확인한다. [root@ip-192-168-114-198 ~]# systemctl show docker Type=notify Restart=always NotifyAccess=main Re..
개요 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..
Kubeflow 란? Kubeflow는 Kubernetes 환경에서 머신러닝을 분석할 수 있는 오픈소스 기계 학습 플랫폼이다. Kubeflow를 이용하면, 손쉽게 분석환경을 구축할 수 있으며, 직접 커스터마이징한 이미지를 구동하여 접속할 수 있는 대시보드 환경을 제공한다. kubeflow가 제공하는 다양한 기능에 대해서는 하나씩 구축해 나가면서 알아보기로 하자. Minimum system requirements 먼저 Kubeflow 구축 과정이다. 앞서 이야기한데로 Kubeflow가 구성되기 위해서는 Kubernetes 환경이 사전에 구축되어 있어야 한다. 실제로 Kubeflow는 복잡한 시스템을 배포, 확장 및 관리하기 위해 Kubernetes를 기반환경으로 사용한다. Kubeflow는 Kubernet..
서론 Amazon EKS는 Kubernetes를 기반으로 동작하는 PaaS 플랫폼으로 Kubernetes가 제공하는 Rolling Update 방식을 그대로 적용하여 기본 제로 다운타임 배포를 구현할 수 있다. 다만, EKS 자체의 제로 다운타임배포는 가능하지만 배포 장애에 대한 대응방안과 Managed Service 간의 배포 호환성 등의 검증은 여전히 필요하다. 예를 들어 EKS의 Ingress type으로 ALB Ingress Controller 등과 연계하여 아키텍처를 설계할때 Pod로 라우팅하는 ALB Ingress의 TargetGroup이 재생성 되는 과정에서 연결 장애가 발생할 수 있기 때문이다. 즉 EKS는 연결되어 있는 Managed Service를 포함하여 제로 다운타임을 함께 고민해야..
서론 Legacy 환경에서 각 환경별(개발, 테스트, 운영)로 설정을 구분하기 위해 우리는 Property를 활용해 왔다. Property를 적용하기 위해 application.properties나 application.yml과 같은 설정 파일 기반으로 적용하거나 @Configuration 어노테이션을 사용하여 각 환경 별 구분된 환경 정보를 가져갈 수 있었다. 이러한 방식은 모두 애플리케이션 레벨에서 환경 설정을 관리하는 방법이라 할 수 있다. 최근 애플리케이션은 Cloud Native하게 개발하기 위해 개발방식도 변화되어 가고 있다. 특히 Spring Boot 기반의 가볍고 빠른 개발을 지원하는 Runtime Framework의 활용도가 높아지고 있으며, 이는 Cloud Platform에 빠르게 이식..
서론Docker는 Container를 기동하는 표준으로써 오랜기간 자리잡아 왔다. 특히 Kubernetes가 Docker를 Runtime Container로 활용하면서 그 위상은 점점 커져왔다. 그 위상은 지속될 것이라 생각해 왔고, 여전히 최선의 방법이자, 최고의 방법이지만, 최근 Docker의 CE 버전 중단 선언, 무거운 기능, SPOF 등의 문제들이 계속 대두되며, 다양한 Runtime Container 들이 대안으로써 떠오르고 있다. 특히 Kubernetes에서 정식으로 Docker 이외에 RKT, Containerd 그리고 오늘 알아볼 CRI-O 등을 Runtime Container로 채택하며, Docker의 자리를 위협하고 있다. Docker 단점1) High & Low Level Runti..
서론 Knative는 Kubernetes 환경에서 동작하는 서버리스 클라우드 네이티브 애플리케이션(Severless CNA)을 배포, 실행, 관리하기 위한 오픈소스 소프트웨어이다. Knative의 구성 요소는 Kubernetes를 기반으로 구축되어 복잡한 세부 사항을 추상화하고 개발자가 비즈니스 개발에만 집중할 수 있도록 하여, 개발자의 생산성을 높일 수 있다. 또한 Knative는 Serverless Computing으로 요청이 있을 때만 코드를 실행하고, 요청이 많을 경우에는 그에 비례하는 자원을 동적으로 Scale In-Out 또는 Zero 상태까지 유지하도록 하여 사용률과 확장성을 극대화할 수 있으며, 인프라 비용을 효과적으로 절감할 수 있다. Public Cloud의 대표적인 Serverless..
- Total
- Today
- Yesterday
- aws
- git
- k8s
- 마이크로서비스
- aa
- openstack tenant
- SWA
- API Gateway
- OpenStack
- 마이크로서비스 아키텍처
- openstack token issue
- SA
- JBoss
- 아키텍처
- wildfly
- kubernetes
- jeus
- JEUS6
- JEUS7
- nodejs
- Da
- apache
- 쿠버네티스
- node.js
- 오픈스택
- TA
- webtob
- MSA
- Docker
- Architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |