1 of 95

HORDE BUILD SYSTEM

2 of 95

QUICK INTRO

  • Regner Blok-Andersen
  • Splash Damage
  • Managed Horde at Splash

3 of 95

QUICK INTRO

  • Regner Blok-Andersen
  • Splash Damage
  • Managed Horde at Splash

4 of 95

THE PLAN

  • What is Horde
  • How we transitioned
  • Things to consider

5 of 95

BUILD SYSTEMS

6 of 95

BUILD SYSTEMS

  • What is a build system

7 of 95

BUILD SYSTEMS

Fundamentally, all build systems have a straightforward purpose: they transform the source code written by engineers into executable binaries that can be read by machines.

8 of 95

BUILD SYSTEMS

  • What is a build system
  • Produces a thing players can play from Perforce depot

9 of 95

BUILD SYSTEMS

  • What is a build system
  • Produces a thing players can play from Perforce depot
  • Jenkins, TeamCity, GitHub Actions

10 of 95

BUILD SYSTEMS

  • What is a build system
  • Produces a thing players can play from Perforce depot
  • Jenkins, TeamCity, GitHub Actions
  • Extras:

11 of 95

BUILD SYSTEMS

  • What is a build system
  • Produces a thing players can play from Perforce depot
  • Jenkins, TeamCity, GitHub Actions
  • Extras:
    • Fast

12 of 95

BUILD SYSTEMS

  • What is a build system
  • Produces a thing players can play from Perforce depot
  • Jenkins, TeamCity, GitHub Actions
  • Extras:
    • Fast
    • Automated

13 of 95

BUILD SYSTEMS

  • What is a build system
  • Produces a thing players can play from Perforce depot
  • Jenkins, TeamCity, GitHub Actions
  • Extras:
    • Fast
    • Automated
    • Informative

14 of 95

DISCLAIMER FIRST

15 of 95

16 of 95

WHAT IS HORDE

17 of 95

18 of 95

19 of 95

20 of 95

21 of 95

22 of 95

SPECIAL SAUCE

23 of 95

SPECIAL SAUCE

  • Modern application

24 of 95

SPECIAL SAUCE

  • Modern application
  • Perforce as first-class citizen

25 of 95

SPECIAL SAUCE

  • Modern application
  • Perforce as first-class citizen
  • Integrated with the Engine

26 of 95

SPECIAL SAUCE

  • Modern application
  • Perforce as first-class citizen
  • Integrated with the Engine

27 of 95

SPECIAL SAUCE

  • Modern application
  • Perforce as first-class citizen
  • Integrated with the Engine
  • The developer experience

28 of 95

HORDE TOUR

29 of 95

30 of 95

31 of 95

32 of 95

33 of 95

0

34 of 95

35 of 95

36 of 95

37 of 95

38 of 95

39 of 95

40 of 95

41 of 95

42 of 95

43 of 95

44 of 95

45 of 95

46 of 95

47 of 95

48 of 95

49 of 95

50 of 95

51 of 95

52 of 95

53 of 95

54 of 95

l

55 of 95

56 of 95

57 of 95

58 of 95

59 of 95

THINGS LEARNED

60 of 95

THINGS LEARNED

Horde build “simply” runs BuildGraph scripts in a distributed fashion.

61 of 95

THINGS LEARNED

  • Horde runs BuildGraph

62 of 95

THINGS LEARNED

  • Horde runs BuildGraph
    • The common

63 of 95

THINGS LEARNED

  • Horde runs BuildGraph
    • The common
    • Lack of IDE

64 of 95

65 of 95

THINGS LEARNED

  • Horde runs BuildGraph
  • Start small

66 of 95

THINGS LEARNED

  • Horde runs BuildGraph
  • Start small
  • Components of Horde

67 of 95

SERVER

68 of 95

SERVER

DASHBOARD

69 of 95

SERVER

DASHBOARD

PROXY

70 of 95

SERVER

DASHBOARD

PROXY

USER

71 of 95

SERVER

DASHBOARD

PROXY

USER

AGENT

72 of 95

SERVER

DASHBOARD

PROXY

USER

AGENT

WORKER

73 of 95

SERVER

DASHBOARD

PROXY

USER

AGENT

WORKER

MONGODB

74 of 95

SERVER

DASHBOARD

PROXY

USER

AGENT

WORKER

MONGODB

REDIS

75 of 95

SERVER

DASHBOARD

PROXY

USER

AGENT

WORKER

MONGODB

REDIS

STORAGE

76 of 95

SERVER

DASHBOARD

PROXY

USER

AGENT

WORKER

MONGODB

REDIS

STORAGE

77 of 95

BARE METAL

78 of 95

THINGS LEARNED

  • Horde runs BuildGraph
  • Start small
  • Components of Horde

79 of 95

THINGS LEARNED

  • Horde runs BuildGraph
  • Start small
  • Components of Horde
  • TCP connections

80 of 95

81 of 95

Disclaimer

82 of 95

THE DRAGONS

83 of 95

THE DRAGONS

  • There are no releases

84 of 95

THE DRAGONS

  • There are no releases
  • Lack of retention mechanisms

85 of 95

THE DRAGONS

  • There are no releases
  • Lack of retention mechanisms
  • The Epic way, or build it yourself way

86 of 95

87 of 95

THE DRAGONS

  • There are no releases
  • Lack of retention mechanisms
  • The Epic way, or build it yourself way
  • No visibility of server wide queues

88 of 95

THE DRAGONS

  • There are no releases
  • Lack of retention mechanisms
  • The Epic way, or build it yourself way
  • No visibility of server wide queues
  • No way to run specific job on all agents

89 of 95

THE DRAGONS

  • There are no releases
  • Lack of retention mechanisms
  • The Epic way, or build it yourself way
  • No visibility of server wide queues
  • No way to run specific job on all agents
  • No easy dashboards

90 of 95

p

91 of 95

THE DRAGONS

  • There are no releases
  • Lack of retention mechanisms
  • The Epic way, or build it yourself way
  • No visibility of server wide queues
  • No way to run specific job on all agents
  • The list goes on…

92 of 95

THANKS FOR HANGING

93 of 95

THANKS FOR HANGING

Regner Blok-Andersen

@regnerba

94 of 95

THANKS FOR HANGING

Regner Blok-Andersen

@regnerba

careers.splashdamage.com

95 of 95

THANKS FOR HANGING

tinyurl.com/developehorde

Regner Blok-Andersen

@regnerba

careers.splashdamage.com