4. We believe that writing
correct concurrent & distributed,
resilient and
elastic applications
is too hard.
Most of the time
it's because we are using
the wrong tools and
the wrong level of abstraction.
https://github.com/akka/akka
유연성(Resilient)
고장이 일어나도 시스템 전체는 계속 반응하는 것
6. 로그
시스템을 구성하는 부품의 일부에서
1 + 6 = 7
소프트웨어
결함(Fault) 또는 고장(Failure)이 발생하여도
정상적 혹은 부분적으로 기능을 수행할 수 있는 시스템이다.
장애
https://ko.wikipedia.org/wiki/장애 _허용_시스템
객체
7. 1 + 6 = 7
로그
1 + 6 = 2015
원인 파악 불가
1 + 6 = 7
10분
1 + 6 = 7
랜덤
1 + 6 = 2015
1 + 6 = 7
소스 불 일지
int float
1 + 6 =
DLL 불 일지 미적용
호출 안됨
1 + 6 =
?분
null + 6 =
처리하지 않은 예외
1 + 6 =
메모리 예외
프로그램 종료
프로그램 종료
프로그램 종료
원하는
종료
원하지 않는
종료
…
…
예외
예외
11. How Higher level of Abstraction
To make a shortened form of a thing by separating out what is important.
중요한 부분만을 분리하여 간결하게 만드는 것.
제거
(Eliminating)
단순
(Simple)
...
Vs.
...
입력 출력프로세스
Vs.
입력 출력프로세스
Garbage in Garbage out
장애
개선A
...
개선B
개선C
돌파
12. 시간
속도
쉬운
쉬움을 단순한 것으로 착각한다.
Why?
훈련 친숙함(Familiarity)
단순한
(Simple)
그 안에 여러 가지를 분리해 내서 하나의 것으로 다룰 수 있게 하는 것
반대말
복잡한
(Complex)
그 안에 여러 가지가 섞여 있는 것(여러 가지를 같이 엮는 것)
어려운
(Difficult)
그것을 얻는데 에너지가 많이 드는 것
쉬운
(Easy)
그것을 얻는데 에너지가 덜 드는 것(가까이에 놓인 것)
반대말
쉬움은
복잡성을 가리고 진실을 덮는다.
단순한
생산성
(Productivity)
복잡성
(Complexity)
시간
강도
http://www.techsuda.com/archives/2362
24. One for One All for One
parent
child1 child2
Exception
Stop
Exception
Message
parent
child1 child2
Stop
Exception
Exception
Message
Stop
Restart
Resume
Escalate
예외 복구
= Crash Safely
= Recover Fast