Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

관련자료

Building an Automated Infrastructure

origi source : http://en.oreilly.com/velocity2008/ Velocity: Optimizing Web Performance and Scalability
Presentation Files http://en.oreilly.com/velocity2008/public/schedule/proceedings
In this page, Building an Automated Infrastructure 의 Presentation 파일

Building an Automated Infrastructure' authors homepage https://wiki.hjksolutions.com/display/webops/Tools
Now this site is not access.

OS install : using pxe, network boot
DNS : not /etc/hosts , using DNS 이용
Server Inventory : iClassify, LDAP, ControlTier, Roll your own
Identity Management : LDAP or AD, Configuration Management
Version Control : You must use version control
Configuration Management : Cfengine, Puppet, Bcfg2, Vertebra?
Monitoring : Use your System Inventory and Configuration Management Tools
Trending : Use your System Inventory and Configuration Management Tools
Email : Every server must be able to send email locally.
Application Deployment : Use Capistrano, Use ControlTier, Integrated with System Inventory

Reliable, Repeatable, Reproducible Infrastructure

신뢰할 수 있고 재생산성이 높은 인프라스트럭처를 만드는 것에 대한 내용. 두가지 사례를 소개하고 있음. http://sysadmin.miniconf.org/presentations08.html#02

presentaition : http://sysadmin.miniconf.org/2008/lca08_sysadmin_02_3Rs_Ellis.odp

Reliable, Repeatable, Reproducible Infrastructure - Steven Ellis

How should we build and manage an enterprise ready scalable operational environment for Linux? Operational teams need to move beyond a simple "build and walk away" scenario into a truly "managed" model.

We will cover the key operational aspects of Linux in the Enterprise -

  • Provisioning
  • Patching
  • User Management
  • Configuration Management
  • Security
  • Logging
  • Change Control

The key aims of our environment will be to make sure it is

  • Reliable - Stability is key in the Enterprise
  • Repeatable - Cookie cutter model usable across multiple accounts
  • Reproducible - Rebuild rather than backup, simplifies problem resolution
  • Scalable - Ability to rapidly scale at minimal additional operational cost

Based on work done for both Vodafone NZ and IBM NZ this will draw on a real world solution and tool set, but the standards, framework and methodology could easily be applied to your own environment and team.

Web Ops 2.0: Achieving Fully Automated Provisioning

http://www.puppetlabs.com/wp-content/uploads/2010/03/FullyAutomatedProvisioning_Whitepaper7.pdf

http://blog.controltier.com/2009/04/new-whitepaper-achieving-fully.html
ith our friends at Reductive Labs, we've just finished a whitepaper called "Web Ops 2.0: Achieving Fully Automated Provisioning"(pdf).
http://www.controltier.com/datasheets/FullyAutomatedProvisioning_Whitepaper.pdf


ControlTier 사이트에서 소개하고 있는 자료인데 위에 나온 pdf 자료는 좀 더 큰 관점에서 완전 자동화된 프로비저닝을 설명하고 있습니다.

주요 내용을 소개하겠습니다.

What is Fully Automated Provisioning? 완전 자동화된 프로비저닝은 무엇인가?

1. bare-metal 상태에서 바로 비즈니스 서비스를 준비할 수 있는 상태
SM의 수작업이 아니라 OS설치하고 바로 서비스 투입이 가능하게. OS설치자동화까지 하면 OS설치하면서 특정 프로파일을 바로 적용 가능함

2. No direct management of individual boxes
직접 개별 서버에 접속하여 작업하지 않습니다.

3. Be able to revert to a "previously known good" state at any time
언제든지 문제가 생겼을 경우 롤백할 수 있습니다.

4. It's easier to re-provision than it is to repair
고치는 것보다는 다시 프로비저닝하는 것이 편리합니다.

5. Anyone on your team with minimal domain specific knowledge can deploy or update
지식이 적은 사람도 관리가 가능할 수 있습니다.

이 문서에서는 Application Service Deployment 로 ControlTier 를 사용합니다. (사용가능한 다른 툴 Capistrano)
System Configuration 으로는 Puppet 을 사용합니다. (사용가능한 다룬 툴로는 cfengine, Chef, SmartFrog, BCFG)
Cloud or VM Image Launch 로는 Xen, OpenVZ, VMware,AWS 등을 이용합니다.
OS install 에서는 kickstart, Jumpstart(Solaris), Cobbler, OpenQRM 등을 이용합니다.

위에서는 OS install -> System Configuration -> Application Service Deployment 순서로 진행을 하며 조직에 따라 레이어가 달라질 수 있습니다.

System Config 에서 puppet 모듈소스는 서브버전에 두고 자동으로 RPM 패키지를 만들어 puppet 저장소에 둡니다. RPM 패키지를 수동으로 제작하는 것이 아니라 이것도 자동화된 툴을 이용하는 것입니다.
Application 패키지도 RPM 포맷으로 만들어지며 (yum, rpm 이용) application configuration 은 전개할 때(설치할 때) 템플릿에서 자동으로 셋업이 되도록 구성되어 있습니다.

Labels
  • No labels
  1. Scalable System Operations ( Tumblr 의 사례) http://velocityconf.com/velocity2012/public/schedule/detail/23605

    참고로 아래는 주로 개발쪽의 이야기인데 tumblr 의 운영쪽에서 나온 자료도 있습니다.

    예전 보고나서 한번 정리해보자고 했는데 일단 링크라도 공유를 해 드릴께요.

     

    Tumblr 는 인프라를 자동화하기 위해서 다른 프로그램을 찾다가 적절한 프로그램을 찾지 못해서 일부는 직접 개발을 했습니다.

    pxelinux 대신 IPXE 를 사용 : HTTP, FTP, iSCSI 지원, 스크립트 가능, 변수 사용가능, 동적임

    Invisible Touch : 새로운 하드웨어가 들어온 경우 firmware 업그레이드, BIOS 설정, bmc 설정, 인벤토리 정보 등록, 스트레스 테스팅, 네트워크 설정 등 진행

    Collins : Asset Management system , REST API 제공. web 과 api 기반의 프로비저싱 지원, ip 할당과 관리 등.

    Phill : iPXE dispatcher, kickstart generator, collins api client . OS 설치시 ipxe 설정, kickstart 파일 생성 등의 역할

    Kickstart : OS 자동설치

    Puppet : 설정관리

     

    Scalable System Operations ( Tumblr 의 사례) http://velocityconf.com/velocity2012/public/schedule/detail/23605

    iPXE

    Invisible Touch

    Collins

    Phil

    Kickstart

    Puppet

     

     

    DHCP/kickstart를 이용하여 새로운 하드웨어가 들어왔을 경우 펌웨어같은 것도 업데이트 작업을 하고 인벤토리 정보(여기서는 자체 개발한 collins 사용)에 등록을 합니다.

    이경우에는 live cd로 부팅하여 처리하지요.

    그러고나서 kickstart로 OS 설치하면서 puppet 으로 필요한 서비스 설정을 자동으로 내리는 형태입니다.

     

    collins 라는 프로그램은 한번 테스팅을 해보고 싶은데 아직 더 자세히 살펴보지는 못했습니다.

    초기 하드웨어가 들어왔을 때 Live CD로 부팅해서 펌웨어 업데이트하고 인벤토리 정보를 등록하는 것은 유용할 듯 합니다. 스트레스 테스팅은 왜 하는지는 잘 모르겠습니만 시스템 성능을 수치로 확보하고자 하는 듯 한데요.

    제가 일하는 회사에서는 현재 주로 Dell 장비를 사용하는데 레이드 컨트롤러 펌웨어같은 경우 Dell 에서 제공하는 프로그램들을 이용하여 리눅스 운영중에도 업데이트 가능합니다. 물론 재부팅은 해야 하지만..

     

    현재 저는 PXE는 대규모로 설치할 때만 이용하고 자산DB에는 일부 자동, 일부 수동으로 등록을 하고 있습니다.

    OS설치는 kickstart 이용하는데 이건 몇가지 대표 프로파일을 만들어서 이용하고 있습니다. 데이터 파티션 외에 OS설정은 거의 비슷하기 때문에요.

    OS설치하고 나서 시스템에 문제가 없는지 자체 스크립트를 만들어서 체크는 하고 있습니다.

    Puppet 을 통해서 각종 설정을 중앙에서 관리하는게 자산DB, CMDB 와 연동이 되어 중앙에서 자동으로 내려가는 형태는 아닙니다. 이건 언젠가는 이런 형태로 가야 하지 않을까 생각만 하고 있지요.