Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Such Great Heights, Code BEAM Lite, Amsterdam 2018
Search
Saša Jurić
November 30, 2018
Programming
0
170
Such Great Heights, Code BEAM Lite, Amsterdam 2018
Saša Jurić
November 30, 2018
Tweet
Share
More Decks by Saša Jurić
See All by Saša Jurić
Simplifying systems with Elixir - Belgrade
sasajuric
3
440
Simplifying systems with Elixir
sasajuric
2
560
Metagrokking Elixir
sasajuric
4
280
Solid Ground
sasajuric
15
1.2k
Solid Ground
sasajuric
3
860
Elixir - valentine edition
sasajuric
0
130
What's the fuss about Phoenix?
sasajuric
2
1.1k
Phoenix
sasajuric
1
210
Phoenix
sasajuric
0
110
Other Decks in Programming
See All in Programming
CQRS+ES勉強会#1
rechellatek
0
400
AI Agentを利用したAndroid開発について
yuchan2215
0
210
Day0 初心者向けワークショップ実践!ソフトウェアテストの第一歩
satohiroyuki
0
410
バックエンドNode.js × フロントエンドDeno で開発して得られた知見
ayame113
5
1.3k
プログラミング教育のコスパの話
superkinoko
0
120
SQL Server ベクトル検索
odashinsuke
0
110
AI時代のプログラミング教育 / programming education in ai era
kishida
23
20k
WordPress Playground for Developers
iambherulal
0
120
エンジニア未経験が最短で戦力になるためのTips
gokana
0
210
ニックトレイン登壇資料
ryotakurokawa
0
140
AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・焼きなまし法編)
takumi152
3
980
PHPのガベージコレクションを深掘りしよう
rinchoku
0
240
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
41
2.6k
Speed Design
sergeychernyshev
28
860
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
28
2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Site-Speed That Sticks
csswizardry
4
450
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
470
A designer walks into a library…
pauljervisheath
205
24k
Transcript
Such great heights @sasajuric aircloak.com
None
sensitive data Aircloak analyst query non sensitive result
aircloak air cloak central common integration_test ...
dev flow pull request based mandatory code review mandatory tests
outgrowing Travis CI long build times flakiness low throughput
solution self-hosting
custom CI simpler for a small problem flexible no additional
knowledge required
aircloak air cloak central common integration_test ci ...
None
GitHub poller GitHub poll list of branches and PRs
aircloak_ci GitHub poller builds branch x pull request y
pull request x air cloak …
changed component tested components air air integration_test ci ci common
everything
report success build components await approval report mergeability
if not merge_conflict?(build_state) and tests_passed?(build_state) and pr_approved?(build_state) do: report_mergeable(build_state)
Github.comment_on_issue( build_state, "Pull request can be merged #{AircloakCI.Emoji.happy()}" ) Github.put_status_check_state(
build_state, "continuous-integration/aircloak/mergeable", "pull request can be merged", :success )
None
%{ compile: [ "mix deps.get", "mix compile" ], test: [
"mix test", "mix dialyze", "mix format --check-formatted" ] }
test_test = # ... test_dev = # ... test_prod =
# ... %{ compile: # ..., test: [test_test, test_dev, test_prod] }
# sequence of commands [ "mix deps.get", "mix compile" ]
# also a sequence {:sequence, [ "mix deps.get", "mix compile"
]}
# independent commands {:parallel, [ "mix format --check-formatted", "mix test",
"mix dialyze", ]}
{:sequence, [ "command a", {:parallel, [ "command b", {:sequence, [
"command c", "command d" ]}, "command e" ]}, "command f" ]}
command a command b command c command e command d
command f
component command 1 command 2 …
build component 1 component 2 …
builds build 1 build 2 …
not open-source (yet!)
None
uniformity simpler development simpler testing simpler deployment simpler maintenance improved
collaboration
technical feature built-in options services GenServer, Task service manager Supervisor
service registry Registry k-v ETS, Mnesia web server Phoenix, Plug, Cowboy periodical jobs :timer, Quantum, Periodic load regulation Jobs, Safetyvalve, Sbroker concurrent flows Flow, GenStage
distributed systems persistence partial deployment
They will see us waving from such great heights Come
down now, they'll say But everything looks perfect from far away Come down now, but we'll stay The Postal Service
40% off at manning.com with code ctwcodebeamamsterdam18 links: bit.ly/such-great-heights-amsterdam2018