Tumblr 의 운영 관련 사례 - Scalable System Operations ( Tumblr 의 사례)

문태준의 이미지

마찬가지로 https://groups.google.com/forum/#!topic/sysadminstudy/bx2jKbnfpv8 여기 포스팅했던 것입니다.
자동화된 인프라 관련 자료는 아래에 일부 정리하긴 했었습니다만 요즘에는 업데이트를 안 했네요.
http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=884919

-------------------
참고로 아래는 주로 개발쪽의 이야기인데 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 와 연동이 되어 중앙에서 자동으로 내려가는 형태는 아닙니다. 이건 언젠가는 이런 형태로 가야 하지 않을까 생각만 하고 있지요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.