= Development + Operation :
1. 개발 담당자와 운영 담당자가 연계하여 협력하는 개발 방법론
2. 시스템 개발자와 운영을 담당하는 정보 기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트 웨어 개발 방법론
3. 애자일 소프트웨어(Agile Software = 실질적인 코딩을 기반으로 한 일정한 주기에 따라 계속적으로 프로토타입을 형성하고 필요한 요구사항을 파악하며 이에 따라 즉시 수정사항을 적용하여 결과적으로 하나의 큰 소프트웨어를 개발하는 적응형 개발방법) 개발과 지속적인 통합(Continuous Intergration = 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는 개발 초기부터 실행이 가능한 상태로 코드를 유지하는 것)의 개념과도 관련
= 이점 :
1. 작업 속도가 빨라지면서 시장 변화에 잘 적응하고 효율적으로 비즈니스 성과 창출
2. 새로운 기능의 릴리스 버그 수정 속도가 빨라질수록 신속한 제공으로 경쟁 우위 가능
3. 애플리케이션 업데이트와 인프라 변경의 품질 보장, 지속적 통합 및 지속적 전달과 같은 방식을 통해 변경사항이 제대로 안전하게 작동하는지 테스트를 통한 안정성 확보
4. 규모에 따라 인프라와 개발 프로세스 운영 관리 등 확장 가능
5. 개발자와 운영 부서간의 협력을 통해 효과적인 팀 구축을 통한 협업 강화
6. 자동화된 규정 준수 정책, 세분화된 제어 및 구상 관리 기술 사용으로 보안 강화
서비스를 작게 나눈 것
독립적으로 실행 및 배치가 가능한 작은 단위로 나누어 서비스를 제공하는 것을 뜻
서비스와 서비스의 통신은 보통 경량 메커니즘 (HTTP, REST API, Message Queue)을 사용
각 서비스들의 연계 유연성을 위해 API Gateway 서버 기능을 적용.
장점 | 단점 |
---|---|
모놀리틱 구조의 복장성의 해소할 수 있다. / 각각의 서비스별로 배,재배포가 자유롭다. /서비스 별로 확장이 용이하다. | 서비스를 분해하기 위한 설계를 잘 고려해야 한다./각 서비스 별로 분산된 시스템으로 구성되어 많은 WEB/WAS 시스템이 증가하고 모니터링 대상도 증가하게 된다./서비스가 분산되어 있고, 서비스 별로 자체 데이터 저장소를 가지고 있어 데이터베이스 트랜잭션 관리가 어렵다./모놀리틱 구조보다 애플리케이션 테스트가 어렵다. |
클라우드의 기본이 되는 IaaS에서 구성 및 서비스 성격에 따라 나뉨
공용 클라우드(Public Cloud) | 사설 클라우드(Private Cloud) | 하이브리드 클라우드(Hybrid Cloud) |
---|
공용 클라우드(Public Cloud)
누구나 함께 이용할 수 있게 구축된 대규모 클라우드서비스로 사용자는 필요한 때에 필요한 만큼의 클라우드 자원을 할당받아 이용할 수 있도록 제공하는 서비스 방식, 필요한 서버를 즉시 생성하여 이용할 수 있으며, 트래픽 및 자원 사용량 증가 시 바로 확장이 가능한 확장성, 저렴한 서비스 비용으로 인한 경제성, 시스템 유지보수나 장애 대응을 위한 효율성과 같은 클라우드서비스의 장점에 최적화된 서비스
일반적인 웹 서비스나, 게임, 동영상 서비스가 주로 공용(퍼블릭) 클라우드 환경으로 구성
= KT ucloud biz, 아마존 AWS , IBM Softlayer
사설 클라우드(Private Cloud)
자사의 내부에 직접 클라우드 인프라를 구축한 형태로 클라우드 인프라에 대한 직접적인 통제 권한을 가진 클라우드 서비스 구축 방식
일반적으로 사설 클라우드를 구축하는 경우에는 보안을 위해 외부의 인터넷망과의 IT 인프라를 분리하거나, 운영 회사에서 원하는 형태로 보안 시스템과 내부 IT 인프라를 구성
그러나 공용(퍼블릭) 클라우드와 달리 구성된 여유 자원이 한정되어
있으므로 예기치 않은 사건(자원의 필요량 증가)에 따른 확장에 제약이 있을 수 있으며, 직접 구축으로 인한 비용의 증가와 클라우드 인프라를 관리하기 위한 관리 인력이 필요
많은 기업과 공공기관들이 보안에 대한 민감도가 높은 IT 시스템을 운영하기 위해 사설 클라우드(Private Cloud)를 구축&운영
주로 외부의 접속이 필요없이 회사 내부 서비스를 위한 그룹웨어, ERP와 같은 서비스들이 주로 사설 클라우드 환경으로 구성
= KT ucloudbiz를 포함한 일부 공용 클라우드 서비스 역시 개인정보 보호를 위한 기술적 보호조치를 충족하기 위해 Private Zone으로 망을 분리하고 H/W IPS(침입차단시스템), H/W 방화벽, VPN(가상사설망), 보안관제와 같은 보안 장비를 구성한 형태의 사설 클라우드(Private Cloud) 서비스를 직접 제공하고 있음
하이브리드 클라우드 (Hybrid Cloud)
: 내부에 사설 클라우드를 구축하여 운영하다가 필요에 따라 외부의 공용 클라우드를 함께 이용 하는 것을 일반적으로 하이브리드 클라우드라고 하지만, 여기에 기존의 물리 서버를 포함하여 비즈니스 환경에 따라 공용, 사설, 물리 서버 중 두 가지 이상의 클라우드를 혼용하여 구성
예를 들어 공용 서비스를 위한 웹, WAS 등의 서버는 공용 클라우드를 이용하여 클라우드의 장점(특히 비용과 확장성)에 최적화시키고, 보안이 중요한 서버(특히 Database 와 같은 경우)들은 사설 클라우드 환경으로 구성하여 외부의 직접적인 접속을 차단
또한 기존에 운영 중이거나, 높은 성능을 필요로 하는 물리 서버들과 연동하여 사용자의 요구에 맞는 최적의 인프라를 설계할 수 있는 장점
외부 서비스와 보안이 모두 중요한 금융, 개인정보 취급 웹서비스, 쇼핑몰, 교육 시스템들이 하이브리드 클라우드 환경으로 구성
클라우드 서비스 종류 (Public Cloud / Private Cloud / Hybrid Cloud)|작성자 디딤365\ https://blog.naver.com/didim365_/220603372846
모든 언어의 조합과 소스코드 리포지토리(Repository)에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위한 간단한 방법을 제공
다른 일상적인 개발 작업을 자동화할 뿐 아니라 파이프라인(Pipeline)을 사용해 거의 모든 언어의 조합과 소스코드 리포지토리에 대한 지속적인 통합과 지속적인 전달 환경을 구축하기 위한 간단한 방법을 제공
각각의 단계에 대한 스크립트 작성의 필요성을 없애주지는 않지만, 사용자가 쉽게 구축할 수 있는 것보다 더 빠르고 더 강력하게 빌드(Build), 테스트, 그리고 배포(deployment) 도구 등 체인 전체를 통합할 수 있는 방법을 제공
오늘날 젠킨스는 온갖 종류의 개발 작업을 지원하기 위한 약 1,400가지의 플러그인을 가지고 있는 선두적인 오픈소스 자동화 서버다. 가와구치가 애초에 해결하려 했던 지속적인 통합과 지속적인 자바 코드 전달, 즉 프로젝트 빌드, 테스트 실행, 정적 코드 분석 시행, 그리고 배포 작업은 사람들이 젠킨스를 사용해 자동화하고 있는 여러 가지 프로세스들 가운데 한가지일 뿐이다. 이 1,400개의 플러그인은 5가지 영역을 포괄
(플랫폼, UI, 관리, 소스코드 관리, 그리고 가장 많이 사용되는 빌드 관리).
동작 방식
젠킨스는 주요 운영체제용 자바 8 WAR 아카이브와 설치 패키지, 홈브루(Homebrew) 패키지, 도커 이미지, 그리고 소스코드 형태로 사용
소스코드는 대부분 자바이며, 몇 개의 그루브(Groovy), 루비(Ruby), 그리고 앤틀러(Another Tool For Language Recognition, ANTLR) 파일이 존재
WAR를 단독으로 또는 톰캣 같은 자바 애플리케이션 서버에서 서버렛(Serverlet)으로 실행 가능
둘 가운데 어느 경우든, 웹 사용자 인터페이스(UI)를 생성하며 REST API에 대한 호출을 받아들임
우선, 젠킨스는 무료 오픈소스이고, 뱀부는 상용 소프트웨어다. 젠킨스가 더 큰 커뮤니티와 더 많은 플러그인을 소유.
반면에, 뱀부 상용 라이선스에는 아틀라시안의 지원이 포함되어 있으며, 뱀부는 빗버킷(Bitbucket), 지라(Jira), 그리고 컨플루언스(Confluence) 같은 다른 아틀라시안의 제품들과 기본적으로 통합
예전에는 뱀부를 온프레미스 환경뿐 아니라 클라우드 서비스로도 사용가능 했지만, 2017년 1월자로 뱀부 클라우드는 더 이상 사용 x
대신, 아틀라시안은 클라우드 기반 소프트웨어 개발용으로 빗버킷 파이프라인을 제공
출처 사이트 : https://www.itworld.co.kr/news/107527#csidx3e672a2a375bfb8b8a2509119f421a0
https://velog.io/@seven800/0.-쿠버네티스-시작하기
https://www.samsungsds.com/kr/insights/220222_kubernetes1.html
SCM(Supply Chain Management) = 공급망 관리 경영전략시스템
1. 오늘날 디지털 기반 SCM 시스템에는 제품 및 서비스 제작, 주문 이행, 정보 추적의 모든 관련 당사자, 즉 공급자, 제조자, 도매업체, 운송 및 물류 공급 업체, 소매업체를 위한 자재 처리와 소프트웨어가 포함
2. 공급망 활동은 조달, 제품 수명 주기 관리, 공급망 계획(재고 계획 및 기업 자산 및 생산 라인의 유지 관리 포함), 물류(운송 및 차량 관리 포함), 주문 관리를 모두 포괄
3. SCM은 글로벌 공급업체 관리 및 다국적 생산 프로세스와 같은 글로벌 무역 관련 활동으로 확장 가능
4. SCM 및 클라우드 관련성
오늘날의 SCM 매개 변수를 사용하면 클라우드 기반 애플리케이션이 본질적으로 더 유연하고 변화에 적응할 수 있기 때문에 부분적으로는 클라우드가 자연스러운 동반자입니다. 예기치 않은 소싱 문제와 같이 오늘날의 엔터프라이즈 환경에서 정기적으로 발생하는 변동적인 상황에 대응하여 온-프레미스 및 사용자 지정 코딩된 애플리케이션을 조정하는 것은 매우 어렵습니다. 클라우드 솔루션은 또한 본질적으로 Industry 4.0 모델에서 널리 보급되고 있는 기술을 더 잘 활용할 수 있도록 설계되었습니다. 이러한 기술이 레거시 애플리케이션에서 작동할 수 있도록 환경을 개조하는 것은 복잡하고 비용이 많이 듭니다.
클라우드를 SCM 시스템에 통합할 때의 또 다른 중요한 이점은 전체 규모 마이그레이션을 수행하지 않고도 특정 비즈니스 요구 사항에 따라 클라우드 기반 SCM 요소를 채택할 수 있다는 것입니다. 많은 기업이 클라우드로의 이전을 합리화해야 하는 단기적 필요성을 느끼고 있습니다. 최고의 SCM 시스템은 현재 자산에서 더 많은 가치를 추출하고 현재와 미래의 SCM 요구 사항에 맞게 클라우드 통합을 사용자 정의하는 데 도움이 됩니다.
= 블록체인을 통한 추적성, 거부 및 신뢰
항상 공급망의 모든 측면에서 무슨 일이 일어나고 있는지 알아야 합니다. 지능형 SCM 솔루션은 이러한 기능을 제공합니다. SCM 솔루션을 고려할 때 SCM 프로세스에 바로 이러한 기능을 구축하여 가시성과 통찰력을 쉽게 제공하는 블록체인을 사용하는 시스템을 찾으세요. 이를 통해 공급 네트워크 전체에서 추적성, 거부 및 신뢰가 보장됩니다.
특히 식품 산업은 이러한 유형의 SCM으로부터 큰 혜택을 볼 수 있습니다. 예를 들어, LiDestri Food and Drink는 회사와 고객 간에 더 깊은 신뢰를 구축하는 동시에 가시성 향상, 더 정확한 예측 및 수익성 향상을 위해 매우 복잡한 공급망을 관리하는 데 도움이 되었습니다.
오늘날의 첨단 SCM 시스템은 기업이 하나의 완전한 에코 시스템으로 공급망을 관리하고 최적화하는 데 도움이 되는 종단 간, 즉 엔드투엔드 제품군입니다. 완전히 통합된 클라우드 기술이기 때문에 이러한 시스템은 공급망 전체에서 100% 가시성을 지원하고 시장 상황에 대응하기 위해 확장 또는 축소합니다. 현대적인 수요 중심 공급망을 통해 고객 기대치 증가, 제품 수명주기 단축, 수요 변동 등의 문제를 해결할 수 있습니다.
= SCM의 미래
미래의 공급망은 선형 모델이 아닌 네트워크 내에서 이해하고 관리하는 대응 성과 고객 경험에 관한 것입니다. 네트워크의 모든 노드는 소비자의 요구에 맞게 조정되고 유연해야 하며 소싱, 무역 정책, 배송 모드 등과 같은 요소를 처리할 수 있어야 합니다.
이 네트워크 전체의 투명성과 가시성을 개선하고 연결 및 SCM 활용을 더욱 활성화하기 위해 고급 기술이 점점 더 많이 사용될 것입니다. 전체 SCM 계획 기능은 소비자의 요구를 고려하기 위해 더 지능적으로 진화할 것입니다. 적응 능력은 필수입니다.
과거에는 공급망 계획이 주기적인 비즈니스 활동이었습니다. 미래로 향하는 것은 계속될 것입니다. 미래의 SCM 시스템은 또한 계획과 실행 사이의 긴밀한 조정을 가져올 것입니다. 이는 대부분의 기업에서 현재 상태가 아니기에 SCM의 속도와 정확성에 대한 요구는 증가할 것으로 전망
이해 영상 : https://youtu.be/NpP4OdRKmFI
출처 사이트 : https://www.oracle.com/kr/scm/what-is-supply-chain-management/
1.각 개발 언어들의 ecviroment disparity 문제를 해결해줌
2.한개의 서버에 수많은 컨테이너
3.docker덕분에 매번 새로운 서비스를 만들떄 마다 새로운 서버 설정 x = docker로 새로운 서버 설정 가능 o
4.컨테이너들은 각자 독립되어 있음
5.쿠버네티스는 컨테이너를 모니터링 함, 자동 재시작 가능
6.웹 니즈에 맞춰 컨테이너 준비 및 컨테이너를 지정해둔 최소 숫자로 자동 조정 가능
7.원하는 개발 환경을 파일에 저장하면 docker는 이를 너가 원하는 어떤 머신에든 해당 환경을 시뮬레이션 해준다
8.이렇나 환경들은 각기 독립적으로 존재하기 때문에, 원하는 무슨 환경이든 모듈식으로 관리가 가능하다
https://www.samsungsds.com/kr/insights/220222_kubernetes1.html
CDN(Content Delivery Network) = 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술을 의미
1. CDN은 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화
2. CDN은 각 지역에 캐시 서버(PoP, Points of presence)를 분산 배치해, 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달
예를 들어 미국에 있는 사용자가 한국에 호스팅 된 웹 사이트에 접근하는 경우 미국에 위치한 PoP 서버에서 웹사이트 콘텐츠를 사용자에게 전송하는 방식
CDN이 필요한 경우
인터넷을 통해 비즈니스를 운영하거나 웹 사이트에서 그래픽 이미지, 동영상 파일 등의 콘텐츠를 제공한다면 CDN 서비스를 이용할 필요
CDN은 동영상 스트리밍이나 온라인 게임, 대용량 파일 전송, 그리고 해상도가 높아 용량이 큰 이미지를 다루는 쇼핑몰, 포털 사이트 등에서 안정적인 서비스 제공을 위해 활용.
하지만 특정 국가나 지역만을 타깃으로 하는 웹 서비스를 운영한다면 CDN 서비스를 활용할 필요 X = 이 경우 CDN을 이용하면 오히려 불필요한 연결 지점이 늘어나 웹 사이트의 성능 저하를 불러올 수 있기 때문
CDN 활용 사례
1.온라인 동영상 스트리밍 서비스를 제공하는 넷플릭스(Netflix)는 전 세계의 사용자들에게 안정적인 서비스를 제공하기 위해 2011년에 자체 CDN을 구축, 서비스 범위가 전 세계에 걸쳐 있고, 구독자의 절반 이상이 미국 외의 지역에 분포하고 있어 콘텐츠를 안정적이고 빠르게 세계 각지로 전달하기 위해서는 CDN 기술이 필수적
2.세계 최대 숙박 공유 서비스인 에어비앤비(Airbnb)는 CDN 기술을 활용해 전 세계 고객에게 언제 어디서나 숙박 시설과 각종 액티비티를 예약할 수 있는 서비스 환경을 구축
3.국내에서는 NC소프트나 카카오게임즈 같은 온라인 게임 기업이 CDN을 활용, 북미나 유럽과 같이 지리적으로 먼 지역의 사용자에게 안정적이고 빠른 게임 플레이 환경을 제공
콘텐츠 전송 네트워크 CDN(Contents Delivery Network) 아키텍처
PoP 서버에 콘텐츠를 저장하는 방식과 아키텍처에 따라
Push/Pull 방식 | 분산형/통합형 아키텍처 |
---|
으로 구분!
Push 방식과 Pull 방식
- Push 방식은 원본 서버가 새로 업로드된 콘텐츠를 전 세계에 위치한 PoP 서버로 전달하는 방식
웹 사이트 소유자나 개발자가 콘텐츠에 변경사항이 발생할 때마다 PoP 서버로 콘텐츠를 Push 해야 하고, 지속적으로 유지 보수를 진행해야 함
최초 구성 및 설정에 비교적 많은 시간이 걸리지만, 적시에 콘텐츠를 제공할 수 있으며, 콘텐츠가 업로드되거나 업데이트되어도 전송 오류가 발생할 확률이 적다는 장점- Pull 방식은 PoP 서버가 원본 서버에서 콘텐츠를 가져오는 방식을 뜻 JavaScript나 CSS, HTML 파일과 같이 사이즈가 비교적 작은 파일에 주로 활용
단점은 웹 페이지를 처음 방문하는 경우 PoP 서버가 Origin 서버에서 데이터를 가져오는 과정이 필요해 때때로 응답 속도가 저하
결론 > Pull 방식의 경우 Push 방식보다 최초 PoP 서버를 구성하기가 비교적 쉽고, 사용자의 요청이 있는 경우에만 원본 서버로부터 데이터를 가져오기 때문에 서버 자원을 절약할 수 있습니다.
분산형/통합형 아키텍처
- 통합형 아키텍처(Consolidated Architecture)
= 고용량 서버로 구성된 소수의 PoP를 주요 데이터센터에 배치해 운영하는 구성 방식
운영하는 PoP 수가 분산형보다 적기 때문에 비용을 절감할 수 있고, 보안상 이점
하지만 고용량 PoP의 경우 분산형보다 복잡성이 높아 콘텐츠를 구성하고 배포하는 데 상대적으로 많은 시간이 걸리고, 그로 인해 네트워크를 신속하게 확장하기도 어렵다는 단점- 분산형 아키텍처(Scattered Architecture)
= 비교적 사양이 낮은 서버를 구성, 특정 지역에 PoP 여러 개를 밀집해 운영하는 구성 방식
사용자와 서버 간의 물리적인 거리를 최소화했기 때문에 지연 시간을 최소화할 수 있다는 장점
하지만 PoP가 너무 많아질 경우 이를 유지하는데 많은 비용을 지출해야 하고, 너무 많은 연결 지점으로 인해 특정 사용자에게는 오히려 지연 시간이 확대 가능