데이터센터프로그래밍09(2)

서유리·2022년 4월 7일
1
post-thumbnail

09-기업특강

🔴 네이버 클라우드 플랫폼
◽ 데이터센터의 시작

  • 인류의 지식을 소중히 담아 후대에 전한다는 막중한 책임감을 가지고 시작
  • 첫 데이터센터인 ‘각’의 시작점은 팔만대장경을 지켜온 장경각에 있음
    ◽ 친환경 기술 도입
  • 데이터센터는 데이터를 안정적으로 운영하고 안전하게 보존하는 것을 목표로 함과 동시에 주변 자연환경과도 잘 어울러지는 건물이되도록 지음 (ex. 생태계 회복, 저층건물) 아껴쓰고 다시 쓰는 건축자재
  • 아낄 수 있는 전기 사용 최소화 (ex. 물과 열을 재활용, 탄소 배출을 줄이는 차량 운영 계획, 태양광 에너지)
    ◽ 전력-서버-쿨링-운영관리
  • 정전시에도 서버와 같은 주요 장비들이 중단 없이 운영될 수 있도록 안정적으로 전력을 공급해주는 UPS 도입
  • 데이터센터전산전원이 어떤 흐름으로 공급 될까?
    : 데이터센터의 계획은 가장 효율적으로 전력을 공급하고 네트워크를 연결 할 수 있도록 서버실에 규모와 구조를 정하는 것에서 시작함
    : 서버의 안정적인 운영은 데이터의 안전과도 직결되며, 방대한 양의 서버를 효과적으로 관리하기 위해 다양한 기술들 적용됨
  • 원격장애관리시스템 : 에너지를 보다 효율적으로 사용하는 데이터센터가 될 수 있도록 많은 노력 ➡ 랩과 서버 제작, 서버실 냉방 시스템 개선, 건물 전체 led 조명사용
  • 클라우드와 ai 로보틱스 같은 최신 기술의 혁신이 이어지면서, 데이터의 양은 더욱 방대해졌는데, 이를 효과적으로 대응할 수 있도록 고전력 서버실을 별도로 운영함
  • 사용자에게 데이터를 정확하고 신속하게 전달하는 것이 중요한 만큼 네트워크에 대한 접근은 남다를 수밖에 없음
  • 서버와 같은 장비는 적절한 온도를 유지하지 못하면 장애발생 또는 사용할 수 없게됨
  • 서버실의 온도를 얼마나 일정하게 잘 유지하는지가 데이터의 안전을 좌우하기 때문에 서버실은 서버에 열기를 식히는 냉방장치를 항상 가동함
  • 자연에너지를 이용한 냉방 장치를 효율적으로 적용해 전기 사용과 탄소배출을 절감하고 있음 (차세대 외기 냉각 시스템 나무 개발)
  • 운영관리 소중한 데이터를 유실 없이 관리하는 것이 데이터센터의 가장 중요함
  • 데이터센터에 대한 철저한 관리와 체계적인 데이터 운영방식은 데이터를 오랫동안 안전하게 보관하기 위한 필수조건임
  • 어떤 노력들이 있을까?
    : 백업의 이중화, 데이터 보관정책, 데이터 유실을 막는 이중화 설계, 데이터 센터들을 하나로하여 효율적인 에너지 사용을 위한 노력
    ◽ IT 서비스 통제 센터
  • 네이버의 600여개의 서비스가 사용자에게 정상적으로 제공되는지를 실시간으로 통합 관제하고 있음
  • 네이버 클라우드 플랫폼에서는 전문 보안 기술진을 운영하며 각종 보안 위협에 실시간으로 대응하고 있음 (ex. 보안공격탐지 및 차단, 보안전문 기술진 운영, 모바일 서비스 관제)
  • 네이버 데이터는 어떤 흐름으로 우리에게 전달될까?
    : 사용자가 생성한 데이터는 인터넷 서비스를 제공하는 ISP 업체를 거쳐 데이터 센터에 도착하게됨
    : 악성코드에 감염된 데이터는 아닌지 보안 확인을 거친 후-라우터 장비를 통해 각각 저장되어야 할 서버로 뿌려줌-사용자가 저장된 데이터를 부를 경우, 해당데이터는 데이터 센터를 빠져나와-다시 ISP 업체를 거쳐 사용자의 PC나 모바일 기기로 전달됨
    ® 출처: https://www.youtube.com/watch?v=qLFxB7Uk-o4

🟠 Agile

  • 애자일 SW 개발 프로세스
    : 규정된 프로세스 – 전통적인 계획 중심 방법론
  • 모든 태스크가 명확히 이해되고, 동일한 입력 값을 사용하고, 언제나 동일한 출력값이 생성될까?
    : SW의 입력값은 요수사항과 개발팀
    ➡ 입력값의 변동이 많아서 예측가능, 일관성이 없음
  • 적응적 프로세스 : 대안법
    : 적응적 프로세스-프로세스 반복이 불가, 변화를 수용, 점검과 조정을 통해 위험을 낮춤
    : 모델 자체가 어렵고, 비용부담으로 프로젝트를 하기에는 어려움
  • 반복점증적 프로세스
    : 목표시스템을 여러 번에 나누어 출시
    : 폭포수 모델의 경직성을 보완
    : 애자일 방법론의 근간이 됨
  • 반복점증적과 애자일의 차이?
    (1) 출시주기를 짧게 함 (요구변화에 유연하게 대응)
    (2) 소통, 협력을 극대화 하는 실천법
  • 애자일 프로세스
    : 자기조직화팀
    : 고객참여
    : 반복적 점증개발
    : 적응성/유연성
    ➡ 인간중심수행능력 실천법
  • 애자일 선언문
    : 애자일 방법론 기원) 가볍고 실용적인 소프트웨어 방법론 추구, 2000년대에 애자일 방법론이 생김
  • 선언문 발표
    : 2001년 2월, 17명의 경량 방법론 지지자들이 모여 공동으로 추구하는 가치
    : 선언문 발표를 통한 애자일 연합은 실천법보다 원칙에 충실하자는 내용을 발표
  • 선언문 내용은?
    : 소프트웨를 개발하고, 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있음
    : 이 작업을 통해 우리는 다음과 가치 있게 여기게 됨
    ➡ 개인과 상호작용 > 프로세스와 도구
    ➡ 동작하는 소프트웨어 > 포괄적인 문서
    ➡ 고객과의 협력 > 계약 협상
    ➡ 변화에 대응 > 계획의 수행
  • 애자일 방법론에서 중요한 부분
    (1) 소통하라 (크고 잘 보이는 차트, 정보 공유 시스템, 일일 회의, 정기적인 계획 세션 등)
    (2) 협력하라 (전체 팀은 고객과 함께 생각하고 문제 해결)
    (3) 적응하라 (변화를 수용, 변화에 대한 제어를 포기)
    (4) 지속적으로 (짧게 시간이 정해진 반복점증개발)
    (5) 가치를 전달하기 (가치와 위험도가 가장 높은 일부터 먼저 시작, 자주 출시하고 낭비를 줄임)
    (6) 피드백 구하기 (일찍 자주 일을 보여줌, 보여질 수 있도록 만들고, 항상 고객을 끌어들임)
  • 애자일 방법론이 아닌 것은?
    (1) 스케줄 쥐어짜기 (지속가능한 시간과 속도로)
    (2) 문서 작성 안하기
    (3) 막장 코디 (코드 품질 : 엔지니어링 실천법)
    (4) 설계나 계획 안하기 (코드 품질 : 엔지니어링 실천법)
  • 애자일 SW 개발의 중요성 (장점)
    : 요구사항 변경관리
    : 팀 생산성 증가
    : 프로젝트 가시성 개선
    ➡ 실천법 사용현황 : 삼성, LG, SK 등 대다수 대기업과 중소기업이 활발하게 애자일 도입 및 활용중

🔷 정리
🔹 애자일 방법론 개요

  • 사람이 기본 주체인 소프트웨어 개발 프로젝트에 엄격하고 한정된 프로세스를 적용하기보다는 변화의 가능성을 열어두고 환영
  • 비즈니스 성공과 더불어 개인의 능력 향상에도 큰 도움이 됨
    🔹 애자일 선언문
  • 기존의 무겁고 규범적인 방법론에서 탈피하여 1990년대 중반부터 등장한 가볍고 보다 실용적인 방법론들이 2001년에 애자일 방법론으로 통합
  • 이때 발표된 애자일 선언문에는 애자일sw개발의 기본원칙과 정신 정의
    🔹 애자일 SW개발의 중요성
  • 대면 커뮤니케이션, 자발적인 소규모의 팀, 협업, 변화하는 요구사항, 짧은 출시 주기, 우수한 기술력, 리뷰 및 회고에 의한 지속적인 개선 등을 강조하며 오늘날 대부분의 기업에서 다양한 형태로 도입 및 활용
    ® 출처: https://www.youtube.com/watch?v=NoMznX8S9pU

🟡 CI/CD & DevOps

  • DevOps 의미
    : Development + Operation 합성어
    : SW개발자들과 IT종사자들 사이의 의사소통, 협업, 융합을 강조한 개발방법론
    : 개발/운영/품질관리 부서 간 통합, 커뮤니케이션, 협업을 위한 일련의 방식
    : 지속적환경(지속적평가, 지속적 delivery와 배포, 지속적 운영, 지속적 통합 및 테스트)에 유지되는 cycle
  • DevOps 구현
    : 프로세스 자동화
    ➡ 잦은 릴리즈, 잦은 배포
    ➡ 테스트 자동화/지속적 통합/지속적 출시 파이프 라인 마련
  • DevOps 도구
    : 지속적 통합 도구) 코드변경시 마다 통합&빌드되고 컴파일 과정에서 자동 테스트 실행, 결과는 noti
    : 릴리즈 자동화 도구) 클릭 한번으로 전체 과정이 수분내 deploy릴리즈 실패, 취소도 쉽게 제어
    : 프로비져닝) 서버자원, os, 스토리지, 계정 프로비져닝 자동화
  • CI(Continuous Integration)
    : 여러명으로 구성된 팀이 개발(수정)한 소프트웨어를 지속적으로 통합하고 QC(품질통제)하는 애자일 기법
    : 자동화된 빌드와 테스트를 통하여 통합 에러 조기 검증으로 단위 코드의 품질을 향상
  • CD(Continuous Delivery)
    : 변경된 요구사항에 대한 개발/통합/배포/테스트/릴리즈를 자동화하여 SW의 개발과 운영을 통합하는 DevOps를 지원하는 SW의 연속적인 배포 출시
  • Nevercloud platform object storage
    : Object storage
    ➡ 사용한 만큼 요금을 지불하는 형태, AWS의 S3에 해당
    ➡ S3와 호환
    ➡ 웹에서 파일 업로드 or CLI 프로그램을 설치하여 명령어로 전송 API를 이용하여 전송하는 방식
  • 빌드결과물을 위해 object storage사용하기
    : Lastsucceddful
    ➡ 최근 성공한 빌드물 저장
    ➡ Autoscaling 되는 서버 init script에서 최신 빌드 결과물 가져오도록 설정
  • Pipline test
    : 빌드실행, 빌드결과확인
    ® 출처: https://www.youtube.com/watch?v=10TSLgh4gQM

🟢 Docker Basic Re-visited

  • 도커의 등장은 솔로몬 하이크, 파이콘 2013의 토크에서 시작됨
  • 도커는 이미지를 통해 다양한 환경을 제공하는데 이를 기반으로 실행된 것이 컨테이너임
  • 컨테이너가 서로 다른 환경임
  • 컨테이너가 하드웨어 가상화 없는 격리된 환경에서 실행되는 프로세스임
  • 컨테이너의 필요한 이유는 이미지로 만들면 공유가 가능하고, 어디서든지 재현성이 가능함
    ® 출처: https://www.youtube.com/watch?v=o4_KESBNFhI
profile
best of best

0개의 댓글

관련 채용 정보