2019.10.24

블로그 | 서버리스 시스템도 설계가 중요한 이유

David Linthicum | InfoWorld
어딘가에서는 개발자가 계획이나 설계없이 즉석에서 서버리스 애플리케이션을 구축하기로 한다. 좋지 않은 생각이다.

참 재미있는 일이다. 일단 우리는 애플리케이션 개발에서 일부 핵심 과정을 제거했다. 스토리지나 컴퓨트 같은 자원을 프로비저닝하는 일이 대표적인 예다. 그런데 개발자들은 여기서 얻은 자유를 비논리적이고 아직도 이해하기 힘든 결정에 갖다 바친다.
 
ⓒ GettyImagesBank

계획과 설계가 안중에 없을 때도 있다. 서버리스 컴퓨팅이 셀프 프로비저닝 방식이고, 애플리케이션은 즉석에서 동적으로 설계하고 디자인할 수 있기 때문이다. 인프라 계획을 세우지 않아도 된다면, 안될 것도 없는 일이다.

하지만 다시 생각해야 봐야 할 세 가지가 있다.

우선, 우리는 여전히 애플리케이션의 효율성에 중점을 두어야 한다. 서버리스라도 마찬가지다. 자원은 서버리스 애플리케이션의 프로파일을 기반으로 자동으로 할당되거나 서버리스 시스템이 필요하다고 생각하는 대로 할당된다. 만약 애플리케이션의 자원 요청이 언제 어떻게 이루어질지를 엉망진창으로 설계한다면, 서버리스 시스템은 자원을 과잉 할당할 가능성이 크고, 결국 비용은 커지고 효율은 나빠질 것이다.

애플리케이션의 상태에 반응하는 시스템은 설계 패턴을 기반으로 가정을 세워야 한다. 4세대 언어의 세상과 마찬가지로개발 플랫폼의 강력함은 개발자가 너무나 쉽게 자기 발등을 찍을 수 있다는 것을 의미한다. 서버리스도 마찬가지다.

둘째, 애플리케이션은 관리가 필요하기 때문에 여전히 관리 지점을 구축해야 한다. 이는 애플리케이션 안으로 향하는 API를 설계해야 하고, 모니터링을 위한 외부 관리 툴로의 데이터도 설계해야 한다는 의미이다. 이런 인터페이스 없이도 애플리케이션을 관리할 수는 있겠지만, 장기적으로 잘 관리하기는 어렵다. 이를 위해서는 서버리스 시스템과 클라우드옵스의 프로세스 및 툴셋을 함께 동작하도록 할 설계와 접근법이 필요하다.

셋째, 설계 단계부터 보안이 필요하다. 설계와 계획이 없는 애플리케이션은 덜 안전한 애플리케이션이 된다. 기초 설계를 잘 하지 않으면, 설계부터 좀 더 아넌한 애플리케이션을 만들 수 있는 기회를 놓치고 만다. 데이터 유출은 흔히 개발자의 실수와 설계에서 시작된다.  editor@itworld.co.kr



2019.10.24

블로그 | 서버리스 시스템도 설계가 중요한 이유

David Linthicum | InfoWorld
어딘가에서는 개발자가 계획이나 설계없이 즉석에서 서버리스 애플리케이션을 구축하기로 한다. 좋지 않은 생각이다.

참 재미있는 일이다. 일단 우리는 애플리케이션 개발에서 일부 핵심 과정을 제거했다. 스토리지나 컴퓨트 같은 자원을 프로비저닝하는 일이 대표적인 예다. 그런데 개발자들은 여기서 얻은 자유를 비논리적이고 아직도 이해하기 힘든 결정에 갖다 바친다.
 
ⓒ GettyImagesBank

계획과 설계가 안중에 없을 때도 있다. 서버리스 컴퓨팅이 셀프 프로비저닝 방식이고, 애플리케이션은 즉석에서 동적으로 설계하고 디자인할 수 있기 때문이다. 인프라 계획을 세우지 않아도 된다면, 안될 것도 없는 일이다.

하지만 다시 생각해야 봐야 할 세 가지가 있다.

우선, 우리는 여전히 애플리케이션의 효율성에 중점을 두어야 한다. 서버리스라도 마찬가지다. 자원은 서버리스 애플리케이션의 프로파일을 기반으로 자동으로 할당되거나 서버리스 시스템이 필요하다고 생각하는 대로 할당된다. 만약 애플리케이션의 자원 요청이 언제 어떻게 이루어질지를 엉망진창으로 설계한다면, 서버리스 시스템은 자원을 과잉 할당할 가능성이 크고, 결국 비용은 커지고 효율은 나빠질 것이다.

애플리케이션의 상태에 반응하는 시스템은 설계 패턴을 기반으로 가정을 세워야 한다. 4세대 언어의 세상과 마찬가지로개발 플랫폼의 강력함은 개발자가 너무나 쉽게 자기 발등을 찍을 수 있다는 것을 의미한다. 서버리스도 마찬가지다.

둘째, 애플리케이션은 관리가 필요하기 때문에 여전히 관리 지점을 구축해야 한다. 이는 애플리케이션 안으로 향하는 API를 설계해야 하고, 모니터링을 위한 외부 관리 툴로의 데이터도 설계해야 한다는 의미이다. 이런 인터페이스 없이도 애플리케이션을 관리할 수는 있겠지만, 장기적으로 잘 관리하기는 어렵다. 이를 위해서는 서버리스 시스템과 클라우드옵스의 프로세스 및 툴셋을 함께 동작하도록 할 설계와 접근법이 필요하다.

셋째, 설계 단계부터 보안이 필요하다. 설계와 계획이 없는 애플리케이션은 덜 안전한 애플리케이션이 된다. 기초 설계를 잘 하지 않으면, 설계부터 좀 더 아넌한 애플리케이션을 만들 수 있는 기회를 놓치고 만다. 데이터 유출은 흔히 개발자의 실수와 설계에서 시작된다.  editor@itworld.co.kr

X