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
Wercker on CoreOS
Search
Matthew Hooker
March 16, 2015
Technology
450
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Wercker on CoreOS
Matthew Hooker
March 16, 2015
More Decks by Matthew Hooker
See All by Matthew Hooker
Cloud-native DevOps†µ
mwhooker
0
130
Use ZooKeeper for discovery at converge time
mwhooker
3
310
Jones
mwhooker
1
760
Other Decks in Technology
See All in Technology
『自分で判断できるか』を基準に、プロダクトのハンズオン研修でAI利用の線を引いてみた / Where We Drew the Line on AI in Hands-on Training
honyanya
1
440
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
130
[RSJ26] Flow as Flow: Modeling Robot Velocity Fields as Probability Velocity Fields
keio_smilab
PRO
0
110
エージェント化するAI:現在地とその先に起きる変化 / AI as Agents: The Current State and the Changes Ahead
ks91
PRO
0
160
Claude Codeの体系的な理解と知識のフック
oikon48
8
6k
GopherCon @シアトル に行ってきました
logica0419
0
390
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
140
markdown-poster Introduction
kazamori
0
400
dbt in Microsoft Fabric
ryomaru0825
0
300
dbt と Snowflake と tag
kevinrobot34
2
290
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
Featured
See All Featured
Practical Orchestrator
shlominoach
191
12k
The Spectacular Lies of Maps
axbom
PRO
1
950
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
A designer walks into a library…
pauljervisheath
211
24k
GitHub's CSS Performance
jonrohan
1033
470k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Code Review Best Practice
trishagee
74
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Between Models and Reality
mayunak
4
410
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Transcript
wercker
wercker on CoreOS http://wercker.com @wercker
Wercker: automation driven development • Wercker is an automation platform
• ci/cd not ambitious enough • continuous is assumed
Interface • wercker.yml • Describe job environment • Describe a
work pipeline • Describe required services
Interface • wercker.yml • Describe job environment • Describe a
work pipeline • Describe required services box: tcnksm/
[email protected]
Interface • wercker.yml • Describe job environment • Describe a
work pipeline • Describe required services steps: -‐ script: name: install code: go get -‐v -‐d ./... -‐ golint
Interface • wercker.yml • Describe job environment • Describe a
work pipeline • Describe required services services: -‐ mongodb
Output • Pipeline outputs container image • Hugely beneficial •
Immutable, tested object linked to commit • Repeatability
Under the hood • Standalone process dispatches work to fleet
• Called “kiddie-pool”
mhook • Needed simple package manager • downloads packages from
S3 • indexed by project, branch, and commit • similar to Kelsey Hightower’s `pm` https://github.com/wercker/mhook
kiddie-pool uses mhook [Unit] Description=Wercker Kiddie-‐Pool %i After=install-‐mhook.service
[Service] ExecStartPre=/tmp/mhook -‐-‐bucket <bucket> \\ —project kiddie-‐pool \\ —branch master \\ —commit latest \\ /opt/bin/kiddie-‐pool-‐%i ExecStartPre=/usr/bin/chmod +x /tmp/kiddie-‐pool-‐%i ... [Install] WantedBy=multi-‐user.target [X-‐Fleet] Global=true
kiddie-pool • Sits between work queue and fleet • Constructs
Unit from job metadata • Unit invokes `wercker` cli tool • Sends to fleet over http API
wercker cli • Understands how to actually run the job
• You can download and run wercker locally • rapid iteration • don’t even need us • wow http://wercker.com/downloads/
What’s next • Smart job assignment • Fleet naively allocates
work • Need a job scheduler that’s smarter • Colocate jobs, data, and services • Help us build this
What’s next • mhook • Push behavior • Signing packages
• Wercker step
Logging • Logging • Use Graylog because they have a
working docker image • `journalhook` sends application data to journal • `journal2gelf` container streams journal to graylog • persists journal cursor https://github.com/wercker/journalhook
Provisioning • Vagrant for development • AWS/Cloud Formation for user-facing
• Single script to send application units to fleet • Separation of concerns, no duplication
etcd • Used to publish service information • In the
application to signal job aborts • Best way to run is as cluster of its own • should get easier with 2.0 with proxies • need to configure many things to have correct etcd url
References 1. http://wercker.com/downloads/ 2. https://github.com/wercker/mhook 3. https://github.com/wercker/journalhook 4. https://github.com/systemd/journal2gelf 5.
https://registry.hub.docker.com/u/mwhooker/ journal2gelf/ 6. https://speakerdeck.com/mwhooker/wercker-on- coreos
Thank you Matt Hooker wercker Software Engineer
[email protected]
@mwhooker http://wercker.com
http://twitter.com/wercker Grab a shirt and/or sticker! wercker