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
160
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
850
Elixir - valentine edition
sasajuric
0
120
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
WebDriver BiDiとは何なのか
yotahada3
1
140
Unity Android XR入門
sakutama_11
0
160
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
2
290
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
210
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
560
Spring gRPC について / About Spring gRPC
mackey0225
0
220
チームリードになって変わったこと
isaka1022
0
200
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
時計仕掛けのCompose
mkeeda
1
300
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
470
Amazon Bedrock Multi Agentsを試してきた
tm2
1
290
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
270
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
The Invisible Side of Design
smashingmag
299
50k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
4 Signs Your Business is Dying
shpigford
182
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Thoughts on Productivity
jonyablonski
69
4.5k
Faster Mobile Websites
deanohume
306
31k
Writing Fast Ruby
sferik
628
61k
Site-Speed That Sticks
csswizardry
4
380
How to Think Like a Performance Engineer
csswizardry
22
1.3k
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