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
Integrating Containers Into JavaScript
Search
Lucas Santos
May 14, 2021
Technology
0
68
Integrating Containers Into JavaScript
Lucas Santos
May 14, 2021
Tweet
Share
More Decks by Lucas Santos
See All by Lucas Santos
The Hitchhiker's Guide for an Amazing API with TypeScript
khaosdoctor
0
92
Escalando globalmente com TypeScript e JavaScript na Klarna
khaosdoctor
0
190
The future of JavaScript
khaosdoctor
0
59
TypeScript tips that could save your life
khaosdoctor
0
210
É hora de falar sobre Deno
khaosdoctor
0
73
JS Software testing for beginners
khaosdoctor
0
77
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
42
The Dark Side of JavaScript
khaosdoctor
0
76
Entendendo o ecossistema de containers
khaosdoctor
1
970
Other Decks in Technology
See All in Technology
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
38
11k
内部品質・フロー効率・コミュニケーションコストを悪化させ現場を苦しめかねない16の組織設計アンチパターン[超簡易版] / 16 Organization Design Anti-Patterns for Software Development
mtx2s
2
200
コード1ミリもわからないけど Claude CodeでFigjamプラグインを作った話
abokadotyann
1
160
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
16
5.2k
us-east-1 の障害が 起きると なぜ ソワソワするのか
miu_crescent
PRO
2
790
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
6
2.4k
コンピューティングリソース何を使えばいいの?
tomokusaba
1
130
ubuntu-latest から ubuntu-slim へ移行しよう!コスト削減うれしい~!
asumikam
0
460
仕様駆動 x Codex で 超効率開発
ismk
2
1.4k
ソフトウェアエンジニアとデータエンジニアの違い・キャリアチェンジ
mtpooh
1
740
よくわからない人向けの IAM Identity Center とちょっとした落とし穴
kazzpapa3
2
710
AWS資格は取ったけどIAMロールを腹落ちできてなかったので、年内に整理してみた
hiro_eng_
0
190
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Music & Morning Musume
bryan
46
6.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
A Tale of Four Properties
chriscoyier
161
23k
Transcript
Integrating containers in JavaScript the good, the bad, and the
ugly
cloud advocate_ who am I_
[email protected]
{twitter, facebook, linkedin…}.lsantos.dev
containers are a thing_
it’s easy to control them
if you are human_
what if you’re not?
then we use containerd - High-level runtime (runtime manager) created
by the Open Container Initiative - Powers Docker - Created to be manipulated through code
not so easy for JS devs
Golang predominance
Then I came across this article_
What if I did this using Node.js?
The first attempt sometimes good, mostly bad, but always ugly
use child-process
pros - Super easy - Takes advantage of ctr’s built
in features - Faster implementation - Can be integrated with any external API
so easy that I built this
to the code
cons - heavily dependent on environment - no complete control
over the process - Limited to parsing the string outputs - Error handling is poor - Needs sudo - Input sanitizing
conclusion: we can integrate containers into JS
but I wanted a real integration
The second attempt mostly good, sometimes bad, kinda pretty
containerd was meant to be extended
but you need to know how to do it
None
None
but it is possible
to the code
pros - Proper error handling - Proper return codes -
Allows you full control of the pipeline - Does not need to be in the same machine - Does not require sudo - Native (gRPC module)
cons - Requires a LOT of knowledge in containers -
Sparse documentation both for gRPC and containerd - Harder - Might be a problem to connect to external servers - CRT certificates and so on
Next steps what can we do next?
let’s make this a good tool
Let’s add more knowledge to the Web!
refs_ - github.lsantos.dev/containerd-integration-example - github.lsantos.dev/js-containerd-example - github.lsantos.dev/containerd-js - Mark’s article
bit.ly/containerd-grpc-web These Slides: - slides.lsantos.dev/integrating-containers-into-javascript
thank you_ info.lsantos.dev