<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>risk-taker.log</title>
        <link>https://velog.io/</link>
        <description>Hi, I'm Developer</description>
        <lastBuildDate>Tue, 09 Mar 2021 14:07:53 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>risk-taker.log</title>
            <url>https://images.velog.io/images/risk-taker/profile/2b6bfc32-a681-4429-8b25-f4455784f252/social.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. risk-taker.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/risk-taker" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[코드로 인프라 관리하기]]></title>
            <link>https://velog.io/@risk-taker/%EC%BD%94%EB%93%9C%EB%A1%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@risk-taker/%EC%BD%94%EB%93%9C%EB%A1%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 09 Mar 2021 14:07:53 GMT</pubDate>
            <description><![CDATA[<h1 id="코드로서의-인프라란">코드로서의 인프라란?</h1>
<h4 id="infrastructure-as-code-iac">Infrastructure as Code (IAC)</h4>
<p>소프트웨어 개발 관례에 기반을 둔 인프라 자동화 방법</p>
<h1 id="왜-코드로서의-인프라인가">왜 코드로서의 인프라인가?</h1>
<p>기존의 인프라 변경 관리 방식은 클라우드와 자동화가 제공하는 변경의 속도를 따라잡기 어렵다.
그러나 클라우드와 자동화 도구 때문에 계속 늘어나고 끊임없이 변화하는 시스템 환경에 대처해야만 한다.</p>
<blockquote>
<p><strong>IT 철기시대</strong></p>
<ul>
<li>시스템이 물리 하드웨어에 직접 연결</li>
<li>인프라는 수동으로 프로비저닝</li>
<li>변경에 매우 많은 작업이 필요 -&gt; 변경 관리 절차가 복잡해짐</li>
</ul>
<p><strong>클라우드 시대</strong></p>
<ul>
<li>물리 하드웨어와 분리</li>
<li>프로비저닝, 관리 작업을 소프트웨어에 전담</li>
<li>인프라 변경은 몇 내지는 몇초 -&gt; 높은 신뢰성 보장, 빠른 서비스 출시</li>
</ul>
</blockquote>
<h1 id="코드로서의-인프라의-목표">코드로서의 인프라의 목표</h1>
<ul>
<li>IT 인프라가 변경의 장애물이나 제약이 되는 것이 아니다.</li>
<li>변경을 지원하고 가능하도록 한다.</li>
<li>IT 담당자의 지원 없이도 원하는 자원을 정의하고, 프로비저닝하고, 관리할 수 있다.</li>
<li>고장을 쉽고 빠르게 복구할 수 있다.</li>
<li>개선은 대규모 프로젝트가 아니고, 지속해서 꾸준히 이루어진다.</li>
<li>문제의 해결책은 회의나 문서에서 논의하는 것이 아니라, 구현, 시험, 측정을 통해 검증한다.</li>
</ul>
<h1 id="동적-인프라의-문제점">동적 인프라의 문제점</h1>
<h3 id="1-서버-폭증">1. 서버 폭증</h3>
<p>클라우드와 가상화를 사용하면 새 서버를 손쉽게 프로비저닝 할 수 있다.
이로 인해 관리능력 이상으로 서버의 수가 늘어날 수 있다.</p>
<h3 id="2-구성-편차">2. 구성 편차</h3>
<p>처음엔 일관되게 구성하더라도 시간이 갈수록 점점 차이가 발생한다.
구성이 다른것이 나쁜 것은 아니다.
구성이 다른 서버를 파악해 서버나 서비스를 쉽게 재 생성할 수 있게 관리해야 한다.
관리되지 않은 구성이 다른 서버는 결국 Snowflake 서버와 자동화 공포를 일으킨다.</p>
<h3 id="3-눈송이-서버-snowflake-server">3. 눈송이 서버 (Snowflake server)</h3>
<p>네트워크상의 다른 서버들과는 다르게 구성된 서버를 지칭한다.
다르게 구성된 것이 나쁜게 아니다. </p>
<p><strong>문제는</strong> 해당 서버가 다른 서버와 어떻게, 왜 다른지를 알지 못해
서버를 다시 만들 수 없는 경우가 문제가 된다.</p>
<h3 id="4-취약한-인프라">4. 취약한 인프라</h3>
<p>쉽게 고장나지만 쉽게 고칠 수는 없다.
이는 Snowflake server 문제가 시스템 전체 포트폴리오로 확장된 경우이다. </p>
<h3 id="5-자동화-공포">5. 자동화 공포</h3>
<p>자동화 공포의 악순환을 끊어야 한다.</p>
<ol>
<li>새 서버를 만들거나 특정 구성을 변경할 때에만 <strong>선택적으로 자동화 사용</strong></li>
<li>자동화 도구를 <strong>사용할 때마다</strong> 특정 작업에 맞춰 구성 정보 <strong>수정</strong></li>
<li><strong>자동화 도구가 하는 일에 확신이 없어서</strong> 의지 하지 못함</li>
<li>자동화 도구를 지속해서 <strong>사용하지 않게됨</strong></li>
<li>관리하는 서버들의 <strong>구성이 일관되지 못하게 됨</strong></li>
</ol>
<h3 id="6-침식">6. 침식</h3>
<p>새로운 요구가 없으면 인프라는 시간이 갈수록 노후화 된다.
침식은 시간이 갈수록 동작 중인 시스템에 서서히 문제가 발생하는 현상이다.</p>
<p><strong>침식의 예</strong></p>
<ul>
<li>OS 업그레이드, 커널 패치, 인프라 소프트웨어 업데이트</li>
<li>로그 파일로 가득 찬 서버의 디스크</li>
<li>애플리케이션 프로세스의 충돌이나 먹통</li>
<li>하드웨어의 고장</li>
</ul>
<h1 id="코드로서의-인프라-원칙">코드로서의 인프라 원칙</h1>
<ol>
<li>시스템은 쉽게 다시 만들 수 있다.</li>
<li>시스템은 일회용이다.</li>
<li>시스템은 일관성이 있다.</li>
<li>절차는 반복 가능하다.</li>
<li>설계는 항상 변한다.</li>
</ol>
]]></description>
        </item>
    </channel>
</rss>