Table of Contents
I.Global Server Update
II. Born to Laszlo
III. What we learned & future plan
4.
I. Global ServerUpdate
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
5.
What game serverreally is
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
It is a program
running.
6.
What server patchreally is
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
It is a replacement of
data.
7.
Nature of servermaintenance is
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
It is copying files.
8.
Korea = HighSpeed
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
It is very fast to copy data via internet wherever in Korea.
9.
Global
Concurrent
Quick
How?
I. 글로벌 서버업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
What if servers are around in the world?
Needs to work for the servers at the same time?
Also needs to update them quickly?
10.
Problems
1. Massive filesize
2. To replicate data globally
3. To manage versions and rollback ability
4. To keep consensus among servers around
5. Fault Tolerance
6. DevOps particular situations
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
What we faced when
we try to sort out how
to
11.
Prob. #1 MassiveFile Size
a. Time consuming to transfer files
b. Storage consuming
c. Burdon to scale
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Simply
Big!
12.
Idea
• Found duplicatedfiles among versions.
• What if it could reduce the duplicated files?
• Duplicated data even between old and new file inside?
• If yes, would it be possible to transfer only differences?
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
13.
Algorithms
• Rabin Karpalgorithm
• Adler-32 Rolling Hash algorithm
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Algorithms that we
choose to find
differences between
old and new
14.
Rabin Karp Algorithm
ac d i c o n z d h
a c d i
a c i c
a i c o
i c o n
Hash(
Hash(
Hash(
Hash(
) = 111
) = 222
) = 333
) = 999
Hash( ) = 999“ i c o n “
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Same
hash
means
same
pattern
15.
Rolling hash Algorithm
h[i+1..i+m]= h[i..i+m-1] – h[i] + h[i+m]
Rabin Fingerprint
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Hash cost needs to be very cheap.
Rolling Hash is a hash function where the input is hashed
in a window that moves through the input.
16.
Alder-32 Rolling ChecksumAlgorithm
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Used by zlib, rsync
High speed, good for big message.
Binary size is normally big enough.
17.
Combination of RabinKarp & Adler-32
111 222 333 444
111 333
Old File
New File
Find same parts then differences are remains.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
18.
A test resultfor a big file
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Only 30MB differences was
found from 1.6GB size files.
About 98% is identical !
Picked a big
file from a real
game binary
See how much different between
consecutive two files in version history…
19.
Demo
I. 글로벌 서버업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
20.
A test resultin Lab – Remarkable!
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Two times faster in overall performance than
rdiff which is one of the best tool out there.
21.
Concurrency with Golang
I.글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Additionally, we applied concurrency with
Golang and…
Two times
additional
speed gain
with 4ch
concurrency
22.
Another Lab testresult with a set of complete/real
game binary
It took about 43 second to find differences for
3.6GiB size files.
It took about 8 second to update old files with the
differences (core i7 8GB)
23.
Test result ona real game update #1
Before
After
Reduced from 8m50sec to 31sec.
about 17 times speed improvement at server
update!
24.
Prob. #2 Toreplicate data globally
So deploy the
differences in advance
and let servers be
ready for update.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Now, we can transfer
only differences.
25.
Idea
• Distributed storagesolutions
• MooseFS, GlusterFS
• Only Glusterfs supports Cross Data-center
• Woot, it uses Rsync internally !!!
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Using Rsync than using
GlusterFS would be lighter then.
26.
Small size toreplicate helps
• Frequently
• check new data of differences
• And replicate data quickly
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
27.
Crontab/Rsync/ssh
• Crontab :easy, handy, stable
• Rsync : reliable, affordable performance, cross
check with cpatch
• ssh : for security
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
The idea to use these instead of creating a new
component/tool can give an advantage of familiar
tools for engineers which enables rapid response
of failure.
28.
Message Queue -SQS
• A new build event
• Data sync ready event
• Data sync done event
• Update done event
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Amazon SQS is used for message queue to sync jobs with event.
29.
Replication of anew version
1. Once a new version
comes…
2. Issue to SQS and…
3. All node starts
replication
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
30.
Prob #3. Tomanage versions and rollback ability
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
“It is too late…”
31.
Git?
- 2GB sizelimit
- Git-annex : not reliable?
- Mercurial : poor performance
- Rollback version is the only significant
requirement so complex product is not
necessary, Git would be too much.
- Let’s create it!
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
What if to use Git for
version control of large
files?
32.
Nature of gameversions
• Current version/Future version(test version)
• Patch of current version / patch of future version
• Number of future version >= 1
• Grow forward only
• No merge exists
• Full version / Patch version
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
33.
Version system forgame version
Current
version
Future
version
Should be able to jump to any version
v1 v2 v3 v4 v10 v11 v12 v13 v14 v15
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
34.
Schema of versions
productversion#1
version#2
version#3
version#10
version#11
branch A
branch B
unique
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Versions have to
belong to a
product and they
must be unique
in the product.
Versions must
belong to a
branch but they
can move.
35.
Prob #4. Tokeep consensus among
servers around
Not only patch files but also version
info needs to be replicated.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
36.
Replication for versioninfo
Cross-IDC ability is necessary
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
37.
Why Couchbase
• Abilityof Cross-IDC replication; XDCR
• Persistent DB
• Speed does not really matter
• Web UI
• Easy to install and maintain.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
38.
Prob #5. FaultTolerance
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
A failure in a region does not
propagate to other region.
39.
Weakness of amonolithic system
over internet
• Nature of internet, hard to ensure stablability
• Long distance connections is especially weak.
• Can cause a system failure whenever internet goes
unstable.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Avoid a monolithic system
over internet
40.
Node Architecture
No failurepropagation – each local node is a
complete one that can act individually.
• A failure in a node does not propagate to others
• Less dependency of internet
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
41.
Lane Architecture
each subsystemis independent
Version
System
Replicatio
n System
Applicati
on
System
Lane
#1
Lane
#2
Lane
#3
• Each lane is separated.
• No affect among lanes.
• A failure in a lane can be fixed only in
the lane.
• Helps quick find a cause
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Lanes divided by their
role
42.
Prob #6. DevOpsparticular situations
Rapid development & Extendable system are required
• Not easy to make a balance between
operation and development
• Hard to improve without development
• Development based on operation
experiences is critical
• Various type of engineers
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
DevOps is exposed to a
urgent request all the
time
Operation group
has it’s own
characteristic at
work.
43.
Script rather thanbinary
Why?
-Good to troubleshoot is the biggest value.
-Script can be read on the spot immediately
-Can be fixed without compiling code.
-Relatively easier to learn
-Easy to ready, easy to fix
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
44.
Python
-Good to troubleshootis the biggest value.
-Script can be read on the spot immediately
-Can be fixed without compiling code.
-Relatively easier to learn
-Easy to ready, easy to fix
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
45.
Python covers applicationlayer
patch Version control
build update sync
Core
Components
Applications
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Layered Architecture
46.
I I. Bornto Laszlo
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
47.
Laszlo
Laszlo is asoftware system that enables server patch across
data-centers, quickly, reliably and automatically.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
This guy
is Laszlo
Project
Name
48.
Summary of Casablancaproject
Project period : Feb ~ Oct 2015
Development period : Feb ~ Aug 2015
Resource : 1 + many helps from team
POC : ~ Apr 2015
Prototyping : ~ May 2015
Production Development : ~ Aug 2015
Live : ~ December 2015
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
49.
Laszlo Status
• Laszlohas been successfully being used for
GhostInTheShell, Riders of Icarus, Maple Story,
Mabinogi, Atlantica, Vindictus since 2015
• No major issues found so far
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Five core componentsof Laszlo
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
52.
# 1 -cpatch
• Reduced time for update to 1/17 (variable)
• Enables a quick data replication
• Support both Windows/Linux
• Developed with Golang
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
53.
# 2 -tree
• A core component for version control
• Product - Branch - Version
• Golang & Couchbase
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
54.
# 3 -sync
• Application to replicate patch data
across nodes around the world
• Python & rsync
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
55.
# 4 -Rundeck
• Command aggregator
• Can be placed in any node
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
56.
# 5 -puppet
• Configurations for build & update
• Puppet distributes configuration changes to
all the server around at once
• Configuration management is centralized
with puppet.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
57.
GhostInTheShell
I. 글로벌 서버업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
58.
GhostInTheShell Records
• 1~5min for creating patch
• Regions : NYC, SLC, LV, LON, FRA, AUS
• < 1 min for updating servers
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
59.
Learned from GhostInTheShell
•****.db caused a patch failure.
• Turned out that the file keeps changing after launch.
• But developer keeps deliver the file.
• Developed /TN option so the file can be pointed as
always new.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
60.
Atlantica
I. 글로벌 서버업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
61.
Atlantica Records
I. 글로벌서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
• < 1 min for creating patch
• < 1~25 sec for updating servers
• No more consecutive applying multiple patches,
instead only one time update with the tail
version.
62.
Learned form Atlantica
•Atlantica sometimes needs to skip a version.
• This will be a new feature of Laszlo
(developing)
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
63.
Riders of Icarus
I.글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
64.
Learned from Icarus
•Icarus has incremental patch all the time.
• But sometimes a part of folder is
complete.
• So it needs to completely overwrite some
folder even though it is a incremental
update.
• Developed Mirror option to make it
available.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
65.
I I I.What we learned & future
plan
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
66.
What we learnedoverall
- Utilize open sources further
- Also contribute to open source projects out there
- Good algorithm is really effective.
- Golang is a great at concurrency programming.
- Rundeck can be a API host.
- …
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
67.
What if developerbuilds patch
with Laszlo?
• Because developer is who create a new
version.
• Developer also defines version name.
• Steam, for example, developer builds a
new version of patch.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
68.
Along with Clientbinary as well
• Both Server & Client belong to a single version.
• Dealing with them as a separate can cause faults.
• Also handling both is duplicated job.
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
69.
Pipeline Project
I. 글로벌서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Devoper
Publisher
& Users
A pipeline from game build to deployment in
an automated process.
70.
Rundeck as anAPI host
• Via HTTP/S api call is already implemented.
• Easy to manage APIs through UI
• Enable to track call history
• Advantage of documentation for API
I. 글로벌 서버 업데이트
문제 1
문제 2
문제 3
문제 4
문제 5
문제 6
II. 시스템의 탄생
Laszlo
Ghost In The Shell
Atlantica
Riders of Icarus
III. 배운점과 미래
배운점
경쟁사 동향
우리의 미래
Restful
API
API Registration
API management