기업들이 받아들여야 할 소프트웨어 규칙들

1. 개요

“비즈니스가 빠르게 변하다보니 시스템이 금방 레거시화된다. 그러다보니 사업팀과 개발팀이 조직 갈등을 겪고 있다. 경영자는 어떤 판단과 선택을 해야 할까?”

최근엔 이 주제에 관심이 많습니다.
프로젝트가 헬로 가버리는 중요한 원인이거든요.
잘못된 시스템이 만들어지는 이유가, 나쁜 업체, 나쁜 개발자의 문제로만귀착됩니다.

하지만, 욕한다고 해결되는 건 아닙니다.
좋은 업체라고 해서 문제가 없지도 않고요.

(ENIAC 프로그래밍을 하는 모습, 이 때는 케이블을 바꾸어서 회로를 바꾸었다.)

Apigee 가 컨퍼런스에서 이 키노트를 발표했습니다.
공감이 갔습니다.

키노트 제목은 이렇습니다.

“기업이 받아들여야만 하는 현대적 소프트웨어의 기본 원칙들”

발표본이라 핵심 내용만 추려 의역을 해보았습니다.
오역이 있으면 지적을 부탁드립니다.


※ 원문 : Modern Software Principles Every Enterprise Must Adopt
※ 글쓴이 : Abhi Rele, 2015-10-15

Apigee의 CTO, “아난트”는 이런 메시지를 던졌습니다.

“지금까지의 그렇게 해왔다고 해서, 앞으로도 그렇게 해야 하는 건 아니다.”

그는 “현대 소프트웨어”가 얼마나 다르게 만들어지고, 운영되고 있는지 설명했습니다.
전통적인 기술인프라와 아키텍쳐, 그리고 소프트웨어 개발 원칙들이 왜 한계인지도 설명했습니다.
핵심은 이렇습니다.

이제는 많은 기업들이 디지털에서 뒤쳐지지 않기 위해, 현재의 기술자산을 땜질할 형편이 안된다.”

빨리 움직여야 하죠. 그러려면 쉽게 변경할 수 있고 비용이 저렴해야 합니다.
기술전략을 다시 고민하기 시작했죠.

2. 현대의 소프트웨어 원칙들

스타트업과 선구자들은 새로운 소프트웨어개발과 인프라, 그리고 운영방법론을 만들었습니다.
그리고, 그게 시장에 차분하게 퍼지고 있습니다.
굳이 비교를 하자면 이렇습니다.

Legacy ApproachModern Software Principle
ScalabilityExpensive two-phase commitEventual consistency
ReliabilityExpensive reliable queuesReplication & idempotency
Unknown threatsRules & humansData-driven
OperationsCare & reviveRip & replace
Cooperating servicesESB & message brokersDistributed network

“전통적인 소프트웨어개발 및 운영 원칙 5개”에 대응하는 새로운 5개입니다.
내용을 요약해 봅니다.

내용 요약

디지털 세상에서 경쟁하려면 “디지털 네이티브”로 만든 개발방법론, 설계원칙이 있어야 한다.

전통적인 “소프트웨어 아키텍쳐”와 현대의 “인터넷 아키텍쳐”는 다르다.
현대 비즈니스는 클라우드, 빅데이터, 모바일을 떼어 놓고 이야기할 수 없다.

1) 확장성

데이터를 일치시키기 위해 Two-phase commit1 방식을 쓰면 비싸다.
요즘엔 차라리 Eventual consistency 방식으로 데이터를 일치시킨다.

※ 주1 : Two phase commit – 두개의 DB에 데이터를 써야 할 때, 두 개 다 성공한 경우에만 성공한 걸로 인정

2) 신뢰성

과거의 데이터 통신방식은 “비잔티움 장군”2의 문제에 부닥칠 수 밖에 없었다.
그래서 값비싼 신뢰채널을 만들어야만 했다.
하지만, 이제는 그냥 Replication을 통해 해결한다.

※ 주2 : 비잔티움 장군 – 장교들 중에 존재하는 배신자를 골라내기 위한 대책 방안, 속지 않기 위해 이중채널을 만들어 이 문제를 해결

3) 보이지 않는 위협

패스워드 해킹을 하면, 트래픽이 늘어난다.
하지만, 스크린 캡처방식의 해킹은 트래픽 패턴으로 알 수 없다.
즉, 룰 기반으로는 해킹에 다 대처하기 어렵고, 데이터까지 들여다 봐야 한다.

4) 다수의 시스템간 통신방식

옛날에는 ESB 나 메시지브로커를 이용했다.
하지만, 이제는 그냥 분산 네트워크를 사용한다.

5) 시스템 운영방식

– 기존에는 시스템을 보수하면서 사용했지만, 이제는 아예 교체한다.

결론을 정리해보면 이젠 아래와 같은 것들을 고려해야 한다는 겁니다.

ModernSoftwarePrinciplesSlide

중간생략…

“API 전략”은 이러한 현대적 소프트웨어 개발원칙과 운영에서 핵심역할을 합니다.
백엔드시스템, 빅데이터, IoT 등 모든 영역에서 API를 우선적으로 고려해야 합니다.

3. 결론

Apigee의 메인 엔지니어 “생커”는 키노트 중간에 나와서, Apigee 시스템들이 이런 원칙기반 하에서 어떻게 구축되었는지 설명했습니다. 그리고 고객들에게 왜 이 원칙들을 권유하고 있는지도 설명해 주었습니다.

ShankaronState

“API 전략”은 우리가 새로운 제품들을 빠르게 런칭하고 배포할 수 있게 해주었습니다.
중요한 것은 시간이 흐를수록 그것이 점점 더 빨라진다는 겁니다.

우리는 매년 268%씩 늘어나는 API트래픽을 소화하기 위해 클라우드 성능을 100% 활용할 수 있도록 도와주고 있습니다.

각 기업들의 소프트웨어 아키텍쳐나 비즈니스가, 유연하고 민첩하면서 경쟁력이 있으려면 CIO나 아키텍트가 이러한 현대적 소프트웨어 원칙을 받아들일 수 있어야만 합니다.

※ 키노트 SlideShare

기업들이 받아들여야 할 소프트웨어 규칙들”에 대한 답글 6개

Add yours

댓글 남기기

WordPress.com 제공.

위로 ↑