Cloud2018.11.06 14:40

판교와 대덕 데이터센터의 구축/운영도 함께 총괄하고 있는데, 기자분들이 판교센터를 방문하셔서 간담회를 진행했습니다.


관련된 기사가 나와 공유합니다.


Container Platform에 대한 고객, 시장의 관심이 뜨겁습니다.


http://www.etnews.com/20181101000349


http://www.inews24.com/view/1137329?rrf=nv

Posted by 나이스가이
Cloud2018.10.23 13:55

Docker Container 및 Kubernetes, 그리고 DevOps tool chain을 활용한 Digital Transformation 니즈가 많아지고 있습니다. 많은 분들과 이야기를 해보면 Container라는 단어를 많이 사용하시는데, 정확한 개념에 대해 헷갈려 하시는 경우가 있어서 설명해보고자 합니다. 또한, 활용시 장점도 같이 적어보겠습니다.

 

Container란? 애플리케이션이 실행되기 위해 필요한 코드와 실행에 필요한 환경을 함께 묶은 패키지, On-premise 또는 다른 Cloud 환경으로 빠르고 안정적으로 이관 가능함. 운영체제, Host 서버의 영향을 받지 않도록 패키지형태로 추상화되어 있음.

 

장점

 

1. Consistency (일관성)

Container는 운영되는 환경과 애플리케이션을 분리한다. 즉, Container화한 애플리케이션을 어떤 환경이든, Public Cloud, Private Cloud, 또는 On-premise 환경에 관계없이 빠르고 효과적으로 배포가능하다는 의미이다. Container에는 해당 애플리케이션이 동작하느넫 꼭 필요한 Runtime이나 라이브러리를 포함시킬 수 있기 때문에 개발자가 어떤 운영 환경이든 무관하게 활용 가능하다.

 

2. Productivity (생산성)

Container의 기본 특징이 가볍고, 여러 요소간의 연관성을 분리해놨기 때문에 IT 운영자가 환경 설정을 해야하는 고민을 덜어준다. 개발자가 애플리케이션 로직과 실행에 필요한 환경을 함께 개발해야 하기 때문에 IT 운영자가 고민하던 애플리케이션 버전 및 Configuration 값 설정등의 관리부담이 줄어든다. 테스팅 등에 소요되는 시간을 획기적으로 줄여준다. (DevOps 도입)

 

3. Portability, Agility, Flexibility (이식성, 민첩성, 유연성)

어떤 일이 잘 동작하는 경우 반복하는 것이 바람직하다. 전통적 개발 방법론에서는 해당 호스트 서버에 설정하는 것에서부터 IT 운영자가 운영중인 애플리케이션을 새로운 플랫폼이나 운영체제로 이관하는 것이 굉장히 어려웠다. Container는 Platform 독립적으로 이식성을 제공한다. 또한, 애플리케이션이 실행되기 위해 필요한 코드와 실행에 필요한 환경을 함께 묶은 패키지 방식이기 때문에 다른 운영체제 또는 Platform으로 쉽게 이동 가능하기 때문에 민첩성, 유연성, 그리고 생산성의 장점을 확보 가능하다.

 

4. Security (보안)

Container는 상호간에 교류가 없기 때문에 하나의 Container가 hacking을 당해도 다른 Container들은 문제없이 작동한다.

Posted by 나이스가이
Cloud2018.08.06 14:24

Cloud 사업을 하다보니, 인공지능에 대해 접할 기회가 많다.

사실 많은 분들이 인공지능에 대해 묻는다.

 

인공지능은 정말 큰 개념이다. 묻는 분들의 관심사가 다르고, 영역도 다르다.
머신러닝, 딥러닝, 자연어처리, 컴퓨터 비전, 컴퓨터 감각, 자동추론, 지식표현, 인지컴퓨팅, 패턴인식 등

머신러닝과 인지컴퓨팅, 인공지능이지만 많이 다른 영역이다.

 

하지만, 본질은 똑같다. 막대한 컴퓨팅 기술을 통한 데이터 활용법이다. 데이터 활용법, 즉 내연기관과 같이 범용기술로 자동차든, 기차든, 오토바이든 필요한 영역에 가져다가 쓸 수 있다는 의미다.

어떤 기술에 관심이 생겼다는 것은, 해당 기술로 해결해야 할 문제, 필요가 생겼다는 의미다. 그 문제를 풀기에 가장 적절한 인공지능의 영역이 어떤 것인지를 먼저 판단해야, 해당 과제를 풀어낼 전문가, 전문기업을 알아낼 수 있다.
인공지능 기술을 활용한 Digital Transformation, 비용을 절감하고 싶은가? 생산성을 높이고 싶은가? 아니면 혁신 (better than before)을 이루어내고 싶은가?

 

여기서 오늘은 머신러닝에 대해 알아보자. 머신러닝은 컴퓨터가 데이터를 활용해 스스로 학습하는 기술이다.

머신러닝에는 지도학습, 비지도학습, 강화학습, 세 분야로 나눌 수 있다.

 

기본은 데이터다. 얼마나 많은 규모의 데이터를 보유하고 있는가?

지도학습 (Supervised Learning)에 대해 알아보자. (Stanford 대학교, Andrew Ng 교수 강의 참조)

 

A (Input) --> B (Response), 즉 입력값 A에 대해 결과값 B를 얻어내는 방식을 의미한다.

 

Email --> Spam (0/1), Email을 입력하면 Spam 여부를 판단하는 기계학습 모델이다.
Image --> Object (1, ...1000), 얼굴을 입력하면 일치여부를 확인하는 모델이다. Face Recogniton 등
Audio --> Text, Speech to Text (STT), 즉 음성을 텍스트로 전환하는 모델이다. 음성인식
English --> French, 영어를 입력하면 불어로 번역하는 번역기 모델이다.

Text --> Audio, Text to Speech (TTS), 즉 텍스트를 음석으로 전환하는 모델이다.
Ad, User --> Click 여부 분석 (0/1), 광고와 특정 사용자를 입력하면, 해당 사용자가 광고를 Click할 것인지 여부를 답으로 보여주는 모델이다. (구글, Facebook 등에서 활용하고 있다.)

Image --> Diagnose, 심장 또는 폐 사진을 넣으면 암 또는 질병 유무를 진단해주는 모델이다. 예측 모델

 

현재 가장 많은 Use Case가 나오고 있는 기술을 머신러닝 영역이다. 왜 지금 머신러닝이 주목받을까?

머신러닝을 위해서는 많은 데이터가 필요하고, 해당 데이터를 처리할 수 있는 컴퓨팅 파워가 필수적이다.
이전에는 존재하지 않았던 저렴한 비용으로 컴퓨팅 파워를 이용할 수 있는 기술, Cloud가 있음으로 인공지능도 함께 발전하게 되었다고 볼 수 있다.

Posted by 나이스가이
Cloud2018.07.26 11:09

1. 전통적인 시스템 환경의 불합리성

 

전통적인 IT시스템은 물리적인 서버 (컴퓨팅), 네트웍 (스위치 장비), 스토리지 (DAS, SAN) 등을 발주하고, 4-6 시간 이후에 납품 받은

해당 장비의 업체 엔지니어와 회사내의 IT 담당자가 함께 설치 설정 작업을 거쳐 운영을 시작하는 방식으로 이루어진다.

회사 내에 서버, 네트웍, 스토리지 담당 엔지니어가 있어야 운영중의 기본적인 문제를 해결하고, 대응이 되지 않을 경우 유지보수 계약이 맺어져 있는

업체를 통해 2 기술지원을 받고, 최종적으로 해당 장비를 판매한 벤더를 통해 지원을 받는 구조로 진행된다.

 

현실은 대부분의 기업이 서버, 네트웍, 스토리지 담당 엔지니어를 보유하고 있지 못한 경우가 많기 때문에 장애에 대한 대응은 외부 업체에 의존할 밖에 없고

Time to Recover (복구에 소요되는 시간) 상대적으로 장시간 소요된다. 또한, 서버, 네트웍, 스토리지 업체가 모두 다른 경우가 많기 때문에 문제 발생에 대해

업체간 다른 업체에 떠넘기려고 하는, 디바이스에는 문제가 없다라고 하여 어려움을 겪은 경우도 많이 있을 것이라고 생각한다.

 

2. 초기 HCI시스템의 등장

 

이러한 불편함과 단점을 극복하기 위해 Hyper-Converged Infrastructure (HCI) 라는 개념이 등장했다.

초기 HCI appliance (HCI - Appliance) 형태로 등장했는데, 하나의 업체가 특정 스펙으로 구성된 노드에 가상화에 필요한 Hypervisor 관리소프트웨어를 먼저 탑재하고 하나의 제품으로 판매하는 방식이다.

이렇게 되면 하나의 벤더가 서버, 네트웍, 스토리지를 모두 담당하기 때문에 문제 해결에 대해 서로 넘기는 단점을 극복할 있다. 관리의 부담이 획기적으로 줄어들고, 비용도 개별 서버, 네트웍, 스토리지를

구매하는 것에 비해 저렴했지만 많은 고객에게 채택되지는 않았다.

가장 이유는 설치 운영되는 방식을 보면 명확히 있는데, 노드는 Compute (컴퓨팅, 서버 역할을 대체), 메모리, 스토리지, 네트웍 자원을 포함하고 있는데, 랙에 연결된 샤시에서 전원, 쿨링, 네트웍 연결을 제공하는 구조다. 문제는 HCI Appliance 운영하다가 특정 노드에서 스토리지 용량 추가가 필요해졌다고 가정 해보자. 해당 하드웨어가 미리 스펙이 정해져서 나온 Appliance 방식이기에 해당 노드에 스토리지만 추가하는 것이 허용되지 않는 경우가 많았다. 방법은 새로운 노드 하나를 추가하여 클러스터를 확장하는 것인데, 스토리지 용량을 추가하기 위해 Compute, 메모리, 네트웍 자원이 낭비되는 현상이 벌어지는 것이고, 해당 노드에 필요한 라이선스 비용까지 늘어나기 때문에 고객이 받아들이기에는 불합리했다.

 

3. Software 기반의 HCI시스템 (HCI - Software)

 

Appliance 방식의 HCI 시스템의 단점을 보완하여 Software 기반의 HCI 시스템이 당연히 나왔다. Software 기반이기 때문에 유연하고, 고객이 기존에 보유하고 있던 하드웨어에 설치하여 사용할

있기 때문에 비용 효과적이라는 장점이 있다. Appliance 방식 대비 스토리지 추가가 필요하면, 해당 노드의 스토리지만 증설하면 되기 때문에 아주 쉽고 간편하다.

Compute, 스토리지가 공유 개념으로 묶이기 때문에, 원하는 워크로드에 동적으로 원하는 만큼 할당 회수할 있기 때문에 Public Cloud 강점을 대부분 제공한다.
(
다만, 구축해놓은 Computing 용량을 넘어서 사용할 없기 때문에 확장성 측면이나 Time to Market 측면에서는 Public Cloud보다 부족한 사실이다.)

 

대표적인 회사로 Nutanix 있는데, 특정 하드웨어 벤더와 채널 파트너 계약을 맺어 놓고, Nutanix HCI 소프트웨어를 설치하여 정해진 스펙에 맞게, 워크로드의 특성에 맞게 제품을 만들어서 판매한다.

고객에게 직접 소프트웨어를 판매하지는 않는데, 해당 하드웨어 벤더와 성능 기능 검증을 완료해야 필요가 있기 때문에 자체 정책을 가지고 서비스를 제공한다고 보면 된다.

 

여전히 제약이 느껴지는가? 고객은 누군가가 팔려고 하는 것을 사고 싶어하지 않는다. 사고 싶은 선택하고 싶어하지.

이런 고객의 니즈에 부합하기 위해서 만들어진 것이 바로 Cloud Z Edge (HCI - 소프트웨어). 고객의 워크로드가 범용인지, VDI인지, 또는 고성능 3D 소프트웨어 (카티야) 구동하는 것인지에 따라 최적화된 하드웨어
서버가 달라진다. Dell, Inspur 등에 Edge 소프트웨어를 설치하여 2 정도 기능, 성능 검증을 테스트하면 최적의 비용으로, 최고의 성능과 유연성을 보장하는 HCI 시스템을 가질 있게 된다.

 

다시 한번 장점을 정리해보면 다음과 같다.

첫째, 빠른 배포

둘째, 저렴한 비용

셋째, 지원 관리 용이성

 

4. HCI Use Case 시나리오

 

첫째, 데이터센터 노후화에 따른 서버 통합에 활용
생각해보자
, 데이터센터 노후화로 새로 개편을 전통적인 네트웍, 서버, 스토리지를 도입하여 구축하겠는가? HCI 통해 워크로드를 통합하면, 사이징 센터 활용 측면에서 훨씬 효율적이다.

 

둘째, 지방 해외 지사 운영
원격
인프라 관리가 Self Service 방식의 매니지먼트 포탈로 운영되고, 컴퓨팅/네트웍/스토리지 자원이 소프트웨어 기반이기에 원격으로 관리하기에 훨씬 용이하다. 스토리지 관리, 네트웍 관리는 전문가가 없으면 정말 어려운 작업인데 소프트웨어 기반의 경우 포탈에서 전문가가 대부분 해결할 있고, 기술지원이 필요한 경우 구매한 업체의 기술지원으로 원격으로 해결할 있다.

 

셋째, 백업 DR 단순화

데이터센터 운영의 단순화뿐 아니라 백업 DR 아주 쉬워진다. 계속 반복하지만 복잡성이 줄어들기 때문에, 그리고 원격지에 동일한 시스템을 하나 운영하는 것이 기존 백업 DR 대비 비용 효과적이고, 쉬워진다.

 

넷째, VDI환경을 통한 보안성 강화
3D 렌더링을 통한 자동차, 선박 설계를 수행하는 업체들의 경우 가장 고민이 설계 도면의 외부유출 위험이다. 현재 많은 설계회사들이 개별 디자이너마다 고가의 워크스테이션을 제공하고, 카티야 등의 3D 솔루션을 통해

설계를 수행하는데 외부 유출 위협 워크스테이션 구매 유지 비용 절감을 원하는 것이 사실이다. HCI 통해 GPU 8 장착한 서버 (노드) 5 정도 배치하고, 설계자들에게 VM 통해 사용하도록 모니터만 제공

했더니 성능도 뛰어났고, 설계도면 유출 위험도 사라졌다. 물론 비용 절감도 이룰 있었다. 실제 사례이고, Use Case 이후 많은 설계회사들이 Cloud Z Edge 속속 도입하고 있다.

 

다섯째, 하이브리드 클라우드 시나리오
하이브리드
클라우드가 확대되고 있는 것은 모두 인지하고 있는 사실이다. 외부 유출 우려가 있는 중요데이터는 HCI 놓고, 워크로드가 필요로 하면 추가적인 컴퓨팅 용량 확장성은 Public Cloud 이용하는
하이브리드 모델이 최적의 옵션이 된다. 하지만, 복잡성에 대한 우려가 있는 것이 사실인데 HCI Public Cloud 연결은 Cloud Z 같은 사업자가 제공하고, 이후 방법론까지 제시하므로 경제성, 확장성, 안정성까지

얻을 있는 방법으로 사용되고 있다.


Posted by 나이스가이
Cloud2018.06.07 16:32

CIO, CDO(Chief Digital Officer), CMO (Chief Marketing Officer)가 직면하고 있는 도전은 무엇일까요?


CEO는 혁신을 요구합니다. 많은 조직에 DT(Digital Transformation) 전담조직이 만들어졌습니다.
CEO가 묻습니다. 어떻게 Digital 혁신해서 회사를 새롭게 바꾸어 낼 것이냐고?

저는 CIO, CDO, CMO에게 묻습니다. Digital Transformation을 뭐라고 생각하는지?

사실 많은 분들이 장황한 설명을 해주시지만, 명쾌하게 이해가 되지 않는 경우가 많습니다.


일단, Digital Transformation의 정의부터 내려봐야 합니다. 제가 생각하는 정의는
"Digital 기술을 활용해 Product, Service, Process, 일하는 방식, 비즈니스 모델의 변화를 통해 혁신과 변혁을 가속화 하는 것" 입니다. 


회사마다 DT를 적용하는 영역이 다를 것입니다. 고객의 산업군(제조/통신/유통/금융), 고객군 (B2B or B2C), 부서 (HR, 구매, 개발, 운영, R&D 등)에 따라 

1. 제품 및 서비스

2. 비즈니스 프로세스: Process 자동화, 최적화, 관리

3. 비즈니스 모델: Go-To-Market, 가치제안, 돈버는 방법 및 효율성 제고, SI (Project) vs Metering / Value Sharing 등

4. 비즈니스 Function: 마케팅, Operation, HR, 고객서비스 센터

5. 고객 경험 향상, 고객 니즈에 맞는 시스템/사이트 변경

6. 시스템 운영이 아닌 비즈니스를 혁신하는 Enabler로서의 IT 역할 요구


여러가지 영역 중에서 가장 자신있고, 효과가 있을 것 같은 것을 하나 선택해서 추진하여 Quick Win을 만들어낸 후, 효과 및 성과를 측정하여 CEO께 보고하고 점진적으로 확대하는 것이 가장 바람직한 접근 방법일 것 같습니다. 


DT를 위해서는 AI, Blockchain, Cloud, Data (Big Data), IoT 등의 Digital 기술의 활용이 필수적입니다. 보통 하나의 기술이 아닌 여러 기술을 융합하는 경우가 일반적이고, 효과적입니다. 


그런데, 문제가 하나 있습니다. Start-up의 경우에는 이런 다양한 Digital 기술을 Public Cloud 사업자 (AWS, Azure, Cloud Z, Google)의 Cloud 서비스를 사용하면 간단히 해결되지만, 엔터프라이즈 기업들은 오랜 기간동안 보유하고
통제하고 있던 On-premise, 가상화, 또는 Private Cloud 환경을 그대로 갖고 있고, 앞으로도 계속 유지해야 합니다.

Public Cloud의 민첩성, 확장성, 경제성의 장점을 갖고도 싶고, 중요 제조/고객/금융 데이터는 직접 보유하고 싶고,  두마리 토끼를 모두 다 가져가야 합니다. 즉, 하이브리드 클라우드가 반드시 필요해지는데, Public Cloud와 Private Cloud, 하이브리드 Cloud까지 함께 제공할 수 있어야 합니다. 


IaaS, Data Analytics, AI (객체인식), Database as a Service, Container 서비스 / Container Orchestration (Kubernetes) 등의 PaaS 서비스의 활용이 필요합니다. 





Posted by 나이스가이
Cloud2018.04.04 11:35

 

CloudZ는 고객의 니즈에 가장 잘 부합하는 Cloud 서비스를 지향 합니다.

여러 산업계의 고객들이 Cloud를 사용 중인데, 그중 게임사 고객들이 겪고 있는 어려움은 비슷했습니다.

"게임 출시를 한국, 아시아, 유럽, 미주 등 다양한 지역에서 여러개의 언어로 출시를 하는데, 글로벌 인프라 운영/유지보수, QA (품질 테스트), 마케팅 등을 수행할 전문 인력이 없다. 또한, 글로벌 운영 시 네트웍 비용이 많이 발생한다. 모바일 게임이 많기 때문에 구글 플레이스토어, 애플 앱스토어에서 상위에 랭크될 수 있는 방법을 알고 싶다."

이러한 고객의 니즈에 부합하는 "게임정글에서 생존하는 법" 이라는 주제로 2018년 4월 4일, 오후 3시부터 판교 스타트업캠퍼스 다목적홀에서 세미나를 개최합니다. SK주식회사 C&C, IGS, 굿어스가 함께 진행합니다.

www.cloudz.co.kr 페이지를 방문하시면, 참가신청 페이지가 있습니다.

참석하셔서 인사이트 얻으시고, 사업에 도움이 되면 좋겠습니다.

 

 

Posted by 나이스가이
Cloud2017.11.08 17:23

해외 법인 및 지사를 운영중인 고객은 아래와 같은 어려움을 토로하셨습니다.

첫째, 본사·해외 지사간 네트워크 속도저하

둘째, 해외 지사의 허술한 IT 보안

셋째, 글로벌 재해 복구 등의 IT 이슈를 어떻게 극복할 수 있나요?

 

 

쌍용자동차는 클라우드 제트(Cloud Z)를 통해 해외 150여개국의 해외 지사를 포괄하는 해외 영업 시스템의 네트워크 저하 및 보안 취약성의 문제를 손쉽게 해결습니다. 클라우드 제트를 통해 해외 주요 거점 4곳의 Cloud Z 데이터 센터에 웹서버를 설치한 후 최대 100Gbps의 속도의 글로벌 클라우드 전용망을 무상 이용함으로써 국가간 데이터 전송에서 발생하는 인터넷 회선의 속도 저하 문제를 해소한 것이죠. 결과적으로 기존 방식에 비해 로그인 등의 응답속도가 획기적으로 단축되어 업무 효율성이 크게 높아졌습니다.

 

글로벌 제조기업 K사는 클라우드 제트의 글로벌 멀티 클라우드 서비스를 제대로 활용한 사례인데, K사는 클라우드 제트를 통해 자사의 글로벌 영업관리시스템을 중국에서는 알리바바 클라우드 센터와 유럽·북미 지역 등에서는 IBM 클라우드 센터와 연결해 통합하였고, 클라우드 전용선 활용은 물론 웹 가속기까지 도입해 네트워크 속도를 크게 높였다.

 

또한 북한의 EMP 공격에 대한 우려가 있고, 데이터 유실에 대비한 글로벌 백업 및 해외 재해 복구 서비스의 필요성도 지속적으로 높아지고 있습니다.

서울과 홍콩, 도쿄를 연결하는 실제 서비스 사례 속에서 이미지
동영상 등의 방대한 비정형 데이터 저장 및 백업으로 각광 받고 있는 오브젝트 스토리지와 연계한 데이터의 자동 분산 및 동기화를 제공하여 저렴한 비용으로 글로벌 백업, 글로벌 재해 복구 시스템을 구현할 수 있게 되었습니다.

Posted by 나이스가이
Cloud2017.09.01 11:53

클라우드 제트 포탈이 새단장을 마쳤습니다.

www.cloudz.co.kr

 

클라우드 제트는 고객의 다양한 니즈에 부합하기 위해 만들어졌습니다.

인프라 사용 니즈부터, 웹/WAS 서버 환경까지 운영 및 관리를 서비스 방식으로 제공하는 플랫폼부터 최종 애플리케이션을 서비스 방식으로 사용하고자 하는 니즈까지 다 부합하는 서비스를 제공하고자 하는 목적에서 시작되었습니다.

 

기존 포탈이 인프라 (IaaS) 밖에 담지 못했다면 새로운 포탈은 고객들의 니즈가 폭증하고 있는

소프트웨어의 빠른 배포, 빈번한 배포, 안정적인 배포를 가능하게 하는 MSA(Microservice Architecture), DevOps, Container, 그리고 Continuous Delivery를 가능하게 하는 Cloud Foundry 서비스를 포함하고 있습니다.

또한 Container 서비스 (Docker, Kubernetes)에 대한 부분도 담고 있습니다.

 

구슬이 서말이라도 꿰어야 보배라고 했는데, 마이크로서비스에 맞게 애플리케이션을 어떻게 신규 개발할 것인지, 기존에 있는 애플리케이션을 어떻게 클라우드에 맞게 수정할 것인지, 많은 고객들이 궁금해하고 방법에 대해 찾고 계신것을 알고 있습니다.

클라우드 제트에서는 CloudZ Labs라는 고객이 직접 클라우드 전문가들과 2-3주의 기간 동안 Hands-on하면서 설계도 하고, 개발도 해보실 수 있는 서비스를 제공하고 있습니다.

 

클라우드로 이전 했을 때 많은 고객들이 갖는 의문이, IaaS 서비스를 선택했더니 운영체제, 미들웨어, 데이터베이스에 대한 운영은 매니지드 서비스 파트너를 쓰거나, 직접 운영해야 하므로 기존 On-premise 대비로 했을 때 큰 효과가 많지 않더라하는 이야기를 종종 합니다. 사람의 개입을 줄이기 위해서는 자동화, Auto-provisioning 등이 도입되어야 하고 운영 서비스가 아닌 서비스 자체가 managed service로 제공되어야 하는데 PaaS (Platform as a Service)를 선택하는 이유가 바로 이 때문 입니다. 클라우드 제트는 PaaS 서비스를 다양한 방식으로 제공합니다.

 

Bluemix, 그리고 Open PaaS (PaaS-TA)를 통해 고객의 상황에 맞게 제공해드리는데 PaaS만 있다고 서비스가 가능한 것은 아닙니다. Service Gateway, PaaS monitoring, Redis, ELK, MariaDB 들 역시 서비스 방식으로 제공되어야 하지요. CloudZ가 자체적으로 구축/운영 중인 서비스들을 통해 상황에 따라 상용, 비용을 고려한 오픈소스 기반의 서비스 등을 통해 고객에게 맞춤형 서비스 제공이 가능합니다.

 

어떻게 시작해야 할지 알고 싶다면, SK주식회사 C&C의 Cloud Z Labs를 찾아주세요.

Posted by 나이스가이
Cloud2017.06.19 10:57

DevOps


DevOps의 정의 (Wikipedia 참조): 소프트웨어 개발자와 인프라 운영 담당자간에 소프트웨어 배포 프로세스의 자동화및 인프라스트럭처의 원활한 변경을 위해 협업 및 의사소통을 반영한 개발 환경이나 문화를 의미한다. 소프트웨어의 개발, 테스팅 및 배포를 더 빠르고, 자주, 안정적으로 하기 위해 시작되었다.


전통적인 IT 조직은 개발, 운영, 테스팅 조직이 팀으로 나뉘어져 있다. 개발자는 운영에 대한 고민없이 개발이 끝나면 단위 테스팅을 거친 후 운영조직으로 넘기고, 물론 운영조직과 통합 테스팅 과정을 거치기는 하지만 본질적으로 운영은 운영 조직의 몫으로 여기는 경우가 많다. 이런 이유로 대부분의 조직은 개발과 운영 조직의 사이가 대단히 안 좋은 경우가 많다. 하지만, DevOps는 개발, 테스팅, 운영조직간의 의사소통 및 협업을 위한 프로세스와 방법론을 제시하는데 대부분의 경우 개발/운영/테스팅이 함께 어우러져 이루어질 수 있어 효율성이 높아진다. 


DevOps 툴체인

개발,운영,테스팅 조직간의 협업, 즉 기나긴 사이클로 이루어지기 때문에 DevOps가 가능하도록 해주는 하나의 도구는 존재하지 않는다. 여러개의 도구의 집합, 소프트웨어 개발에서 배포 프로세스까지 이어지는 DevOps 툴체인이 필요하다. 


1. Code: 코드 개발 및 리뷰, 버전 콘트롤 도구 등

2. Build: Continuous Integration 도구, Jenkins

3. Test: Continuous Testing 도구, 즉 비즈니스 위험도 등에 대한 피드백 제공

4. Package: Artifact repository, 애플리케이션의 사전 배포 단계

5. Release: 변경 관리, 배포 승인 및 배포 자동화

6. Configure: 인프라 설정 및 관리, Infrastructure as Code 도구, Puppet

7. Monitor: 애플리케이션 성능 모니터링, 즉 최종 사용자 경험 관리

* Docker (containerization) 등


DevOps의 목적은 소프트웨어 배포를 더 빠르고, 자주, 안정적으로 하기 위한 환경을 제공하는 것이다. 배포 매니저는 애플리케이션 배포 자동화 및 Continuous Integration 도구를 통해 진행하는데, Continuous delivery 접근 방식을 택한다. 



 

 



Posted by 나이스가이
Cloud2017.06.16 16:49

Cloud Friendly, Cloud Native 등 친숙하지 않은 개념들을 많이 듣게 됩니다.


Cloud Native Application은 Cloud 환경에 최적화된 애플리케이션이라고 할 수 있는데 이것만 가지고는 어떤 의미인지 이해하기가 어렵습니다.

기업들이 Cloud를 도입하는 이유가 뭘까요? 새로운 기술, 즉 트렌드라서? 분명한 이점이 있기 때문일텐데요, 

가장 대표적으로 IT자원에 대한 자산투자를 하지 않고, 데이터센터 및 서버/운영체제/스토리지/네트웍 등의 자원에 대한 운영인력을 줄이고 컴퓨팅 자원은 필요할 때 즉각적으로 사용하고, 사용량만큼 비용을 지불할 수 있기 때문일 겁니다. Cloud도입 초기에는 인프라(데이터센터, 서버/스토리지/네트웍 등)를 빌려쓰는 IaaS로도 효과를 충분히 볼 수 있었지만, IaaS를 사용해보면 알겠지만 운영체제의 운영, 데이터베이스 운영, 네트웍 및 미들웨어 (Tomcat, Jeus 등) 운영 등 실제 애플리케이션 개발을 위한 플랫폼 운영 관련한 인력이 유지되어야 하고, 플랫폼 소프트웨어 설치/운영/모니터링 등의 업무도 그대로 남게 됨을 알 수 있습니다. 소프트웨어 개발자와 시스템 운영자는 여전히 넘을 수 없는 벽을 사이에 두고 일하게 되고, 개발자가 짠 애플리케이션은 하나의 거대한 단일 애플리케이션 (Monolithic)으로 구성되어 있어, 그중의 일부를 바꾸기 위해서는 전체 애플리케이션을 빌드하고 배포해야 하므로 배포는 자주해서는 안되는 금기시되는, 고객에게 필요한 기능도 쉽게 적용할 수 없는 상황에 처하게 됩니다. 


Cloud에 최적화된 애플리케이션은 바로 위에서 벌어지는 다양한 불합리함을 극복할 수 있게 해주는데, 가장 중요한 factor는 자동화라고 볼 수 있을 것 같습니다. 여기서, DevOps, Continuous Delivery, Micro-service, 그리고 Container 개념이 등장하게 됩니다. 


DevOps는 소프트웨어 개발자와 IT운영자간의 협업을 의미하는데, 소프트웨어 배포(Delivery)나 인프라의 변경 프로세스를 자동화하는 목적으로 합니다. 소프트웨어의 개발, 테스트와 배포를 보다 더 빠르고, 자주, 안정적으로 할 수 있는 하나의 문화라고 볼 수 있을 것 같습니다. 


Continuous Delivery는 단위 애플리케이션이 변경되어 배포되어야 할 때 시스템 정비시간을 기다릴 필요없이 배포할 수 있는 특징을 의미합니다. 배포작업은 모든 개발자 및 시스템 운영자가 부담스러워 하는 작업인데, 위험부담을 줄이고 고객의 피드백을 빠르게 적용하여 경쟁자를 압도할 수 있게 됩니다. 넷플릭스나 Amazon.com이 하루에도 수십/수백번의 배포를 할 수 있는 것도 바로 Continuous Delivery 정책을 사용하기 때문입니다. 


Microservice는 작은 서비스의 결합으로 하나의 애플리케이션을 구성하는 아키텍처 디자인 접근방식입니다. 각 서비스는 HTTP API를 통해 통신하고, 서비스별로 배포, 업그레이드, 스케일 out 및 구동될 수 있고 타 서비스와의 연결고리가 약하게 되어 있기 때문에 사용자에게 영향을 최소화 또는 없게 업데이트할 수 있습니다. 


Container는 하나의 운영체제 (물리적서버 or VM에 무관)에 서로 독립적인 파일시스템과 리소스를 갖고 있는 container로 나뉘어 동작합니다. Container의 생성 및 폐기가 가상머신에 비해 엄청 빠르게 이루어지고, 자원도 거의 사용하지 않아 고집적으로 사용할 수 있습니다. 


바로 이러한 DevOps, CD, MSA, Container 방식으로 개발된 Cloud Native Application의 구동을 가능하게 하려면 PaaS (Platform as a Service)가 필요하게 되는데, 가장 많이 사용하는 플랫폼이 바로 Cloud Foundry 입니다. 

Posted by 나이스가이