Simple Topics

MySQL 8.1 출시 (Innovation Release와 LTS 알아보기)

smileostrich 2023. 7. 19. 22:34

개요

MySQL의 최신 버전인 8.1이 발표되었다. 이번 8.1은 이전 버전인 8.0이 출시된 지 무려 5년이 지난 뒤에야 출시한 이례적인 케이스.

그렇다면, MySQL 8.0의 다음 버전 출시가 왜 이렇게까지 늦어진걸까?

그 이유는 MySQL 8.0에서는 정식 버전이 출시된 이후에도 계속해서 큰 기능들을 추가하기로 결정했기 때문이었다. (그래서 초기 8.0.11과 최신 8.0.11에서는 정말 동일한 버전인지 의심스러울 정도로 기능이 늘어났다)

새로운 기능을 최대한 빨리 출시하고 싶다는 생각에서 그런 전략을 취했지만, 그 대가로 버전 번호의 업데이트가 늦어지는 결과를 초래했다 (그래서 MySQL 발전이 멈췄다고 생각하시는 분들도 계신데, 8.0대에서 계속 발전하고 있다)

결국 MySQL도 정식 버전을 두 가지(LTS - Long Term ReleaseInnovation Release)로 나눠서 출시하는 방식을 채택했다.
(즉, 장기적으로 지원되는 버전과 새로운 기능을 빠르게 출시할 수 있는 버전으로 구분함으로써 새로운 버전을 출시하면서 새로운 기능을 빠르게 출시할 수 있도록 하기 위함)

5.7까지의 버전은 대체로 2~3년 주기로 출시하는 것이 관례였고, 따라서 지원 기간도 그런 계획에 따라 설정되어 있었다.
하지만 8.0에서는 의도치 않게 그 주기를 깼고, 혼란을 야기했지만, 앞으로는 다시 그 주기로 돌아갈 것이라고 한다
(즉, LTS에서는 새로운 기능을 추가하지 않음)
따라서 새로운 기능 추가에 따른 버그 등의 걱정도 없고, 보안 취약점에 대한 수정도 장기적으로 제공되기 때문에 안심하고 장기적으로 운영할 수 있을 것으로 기대할 수 있게 되었다. (지원 기간은 기존 버전 방식대로)

즉, 5년의 Premier Support 기간이 있고, 이후 Extended Support 기간이 있다. (지원 내용상 차이가 없기 때문에 사실상 지원 기간은 8년) 이 기간 동안 버그나 보안 취약점에 대한 수정이 제공된다. (지원기간에 대한 자세한 내용은 여기를 참고)

Innovation Release는 새로운 버전을 먼저 사용하고 싶은 일부 사용자를 위한 릴리즈라고 할 수 있으며, LTS와 달리 버그나 보안 취약점에 대한 수정은 동일 버전에서 제공되지 않는다. 한 번 릴리스 되면 그것으로 해당 버전의 제공이 종료되고, 3개월 후 다음 Innovation Release가 제공되며, 버그나 보안 취약점에 대한 수정은 그 버전에서 이루어지게 된다.
이후, 다음 Innovation Release에서 버그 픽스를 비롯해 새로운 기능이나 사양 변경 등이 수반된다.

따라서, Innovation Release는 지금까지와는 성격이 다르다는 점에 유의해야 한다. (하지만 버그 수정과 새로운 기능 추가를 동시에 진행하는 방식은 MySQL 8.0의 지금까지의 방식과 동일하다는 것이 제품팀의 주장)

물론, 당연히 다음 LTS 버전에는 새로운 기능이나 사양 변경이 포함될 것이다 (그런 기능들을 미리 평가할 수 있다는 점에서 Innovation Release는 매우 유용하다고 생각)

다음 LTS 버전으로의 업그레이드를 염두에 두고 poc 과정을 거친다던가 하면서 미리 준비해둔다면, 업그레이드 계획에 여유를 가질 수 있다. 또한, 중간에 기능 추가나 사양 변경이 있더라도 최신 기능을 가장 먼저 사용하고자 하는 용감한 고객은 Innovation Release를 운영할 가치가 있을 것이다. 물론 사양 변경 등으로 인해 업그레이드가 원활하게 진행되지 않을 수 있는 리스크가...ㅎㅎ

혹은 다음 LTS가 나오면 Innovation Release에서 LTS로 갈아타는 것도 방법이다. 한번에 많은 변화를 감당하고 싶지 않다면, LTS에서 그 다음 LTS로 업그레이드하는 것보다 비호환 변경 사항이 훨씬 적기 때문에 이노베이션 릴리스를 이용하는 것이 좋을 "수도" 있다.
다만, Innovation Release는 지원 기간이 짧기 때문에 그만큼 업그레이드를 자주 해야 하고, 보통은 그런 속도로 업그레이드를 할 수 없으므로, 프로덕션 환경에서는 LTS를 선택하는 것이 무난할 것이라고 생각한다.

+ LTS와 Innovation Release에 대한 자세한 내용은 이 글을 참고.

MySQL 8.1은 LTS 일까? Innovation Release일까?

이제까지 LTS와 Innovation Release를 알아보면서, 다들 궁금증이 생기셨을 것이다. 
Mysql 8.1은 lts 일까? innovation release일까?

결론부터 말하자면, 8.1은 Innovation Release다.
정식 버전이라고는 하지만 8.1에 대한 수정 버전은 나오지 않는다.
즉, 지원을 받아 문제가 발생하면 다음 메이저 릴리스에 수정 사항이 포함된다. (동일한 메이저 릴리스 상에서 수정 버전이 나오지 않기 때문에, 수정이 필요한 경우 메이저 버전 업그레이드를 해야 한다는 점을 유의)
결국, 다음 Innovation Release 또는 LTS가 제공될 때까지 Innovation Release의 지원하고 있다 (즉, 8.1은 8.2가 출시될 때까지 지원된다)

향후 8.0 출시와 지원 기간

MySQL 8.1이 Innovation Release로 등장함에 따라 MySQL 8.0은 새로운 기능을 추가하는 역할이 끝나게 된다. 따라서 앞으로는 새로운 기능 추가나 사양 변경은 하지 않고, 버그 및 보안 취약점 수정만 제공될 예정이다.

그렇다면 그게 언제까지일까?
사실 그게 문제인 상황.
MySQL 8.0의 정식 버전 릴리스는 2018년 4월이었다. 원래는 Premier Support가 5년인데, 다음 버전이 나오지 않아 Premier Support가 2년 연장된 것. Extended Support의 종료일은 변경되지 않았다. 따라서 다음 기간까지 수정 버전이 제공될 것이다.

Premier Support 기간 : 2025년 4월

Extended Support 기간 : 2026년 4월

(Premier나 Extended 내용은 상용 서비스에 대한 이야기이기 때문에 커뮤니티 버전(GPL 버전)에 대해서는 그 차이가 특별히 의미가 없으며, 2026년 4월까지 수정 버전이 나온다는 것만 인지하고 있다면 문제없을 것 같다)
다만, (개인적으로) 이 일정은 매우 빡빡하다고 생각한다 (해외 커뮤니티에서도 빡빡하다는 반응이 상당히 많고)
문제는 LTS 버전이 출시될 때까지 MySQL 8.0으로 버텨야 하는데, LTS 출시 시점에 대해서는 아직 발표되지 않았다.

결국 이런 상황에서 지원 종료만 정해져 있는 것은 바람직하지 않고, 불안해하는 사용자들도 많을 텐데... 하는 우려를 가지고 있다.
+ 혹시 이 부분에 대해 더 자세한 맥락을 아시는 분이 계시다면 알려주시면 정말 감사하겠습니다(ian.ilminmoon@gmail.com)

그렇다면 LTS 버전은 언제이고, 지원은 언제까지인가?

결론부터 얘기하자면, 첫 LTS가 언제 나올지는 미정.
사용자들은 빠른 출시를 바랄 수 밖에 없지만, (비슷한 제품을 만드는 입장에서는) 사용자들도 같이 조금만 참고 기다려 주었으면 하는 마음도...ㅎㅎ
Innovation Release는 향후 3개월 간격(목표)으로 출시될 예정이며, 그중 하나가 LTS가 되는 그런 방식인 듯하다. (어떤 Innovation Release가 LTS가 될지는 현재로서는 미정이라는 뜻)
이 글에서 8.4가 LTS 버전의 구체적 예시로 나오고 있지만, 아직 결정된 것은 아니라고 하니 참고.

+ 여담이지만, LTS 버전이 나오면 다음 Innovation Release 버전 번호는 앞자리 숫자가 바뀐다. (즉, 8.x LTS의 다음 Innovation Release는 9.0.0이 되고, 그 다음에는 10.0.0과 같은 방식)

LTS 지원 기간은 기존 버전과 동일하며, LTS가 된 버전은 그 시점부터 5년의 Premier Support, 추가로 3년의 Extended Support, 총 8년의 지원 기간이 설정된다. 그 이후는 Sustaining Support가 되며, 그 종료 시점은 정해져 있지 않다. (즉, 회사가 없어지지 않는 한 계속 지원을 받을 수 있다는 의미)

관련 제품 및 버전 혼합

MySQL 8.0부터는 드라이버와 관련 제품(MySQL Shell과 MySQL Workbench)에 대해서도 버전이 8.0이 되어, 리비전까지 포함하여 동일한 버전이 제공되는 방식이 되었다.

드라이버를 제외한 주변 제품에 대해서는 MySQL 본체(MySQL Server)와 마찬가지로 Innovation Release와 LTS가 제공된다.
드라이버는 Innovation Release와 LTS를 구분하지 않고 제공될 예정이며, 8.0 시리즈는 업데이트되지 않고, MySQL Server의 Innovation Release와 동기화되어 업데이트될 예정. 드라이버는 현재(2023년 7월 19일 기준) 8.1.0이 최신 정식 버전이다.
또한, 드라이버는 최근 모든 버전의 MySQL Server에 대한 연결이 지원된다(LTS 또는 Innovation Release인지 여부와 관계없음)

업그레이드

MySQL에서 버전 간 업그레이드에 대한 내용도 소개했었기에, 간략히 소개하고 넘어가도록 하겠다.

간단히 정리하자면, LTS 또는 Innovation Release에서 다음 LTS로의 업그레이드는 인플레이스 방식의 업그레이드(데이터 파일을 그대로 이용하는) 및 논리적 업그레이드(덤프 앤 리스토어)로 지원되며, 다운그레이드는 논리적 다운그레이드(덤프 앤 리스토어)로만 지원된다.
다운그레이드는 논리적 다운그레이드(덤프&리스토어)만 지원된다.

예제를 몇 가지 살펴보자.

8.x(non-LTS) → 8.x(LTS)

8.x(LTS) → 9.x(any)

non-LTS라고 쓴 것은 Innovation Release 또는 8.0을 의미하는데, 8.0은 Innovation Release가 아니기 때문이다.
반면, 아래의 경우에는 업그레이드가 불가능하다. (9.x 이전에 8.x LTS가 존재하기 때문)

8.x(non-LTS) → 9.x(Any)

다운그레이드에 대해 (아래의 경우) 논리적 방식으로 대응이 가능하다.

8.x(LTS) → 8.x(non-LTS)

9.x(Any) → 8.x(LTS)

동일 LTS 버전에서는 업그레이드 혹은 다운그레이드를 할 때, 인플레이스와 논리적 방식 모두 지원한다. (사양 변경이 없기 때문)
복제 역시 비슷한 방식으로, 버전이 다른 경우 복제본이 다음 LTS 버전까지만 대응 가능하다.

마치며

MySQL의 릴리즈 모델이 변경되어 Innovation ReleaseLTS라는 버전이 나오게 되었다는 것과 8.1이 Innovation Release라는 것을 알아보았다.
결국, 메이저 버전 중간에 새로운 기능이 마구잡이로 추가되는 일이 없어졌고, 이 부분은 개인적으로 크게 환영할 만한 일이라고 생각한다.
mysql 8.1에 새로 도입된 신규 기능들도 (요즘 바빠서 바로는 힘들겠지만) 시간이 생기는 대로 mysql 8.1에 대해 살펴보고 포스팅을 올려보도록 해야겠다.