rabbit-slide-unasuke-rejectkaigi2019 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1c0ea49009bb146bd4a75428add9e248221272f050e8b7258691eb1ee0ea049e
4
+ data.tar.gz: c568d2db1642dc61786ed2f8c57375ef40ef3f8f7ceb29ef4734b3b87d5a604e
5
+ SHA512:
6
+ metadata.gz: 41840cc9470e45110f4aaf722cb4ca353ebcbcde14df09d24c527d9a6510c894ddd69677a7fb02c336a4b3908e4b8cd48af895621b81b09b330e878500d85f5b
7
+ data.tar.gz: 3beaf932666fe2b3338e952ed74526189566a512c304b628ec161a7d0544537199f0e2c61febd6af048e408c27453fcbf94014f3bb352dacb3296b4bf10b5c7f
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ slide.md
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ # RejectKaigi 2019
2
+
3
+ ## 作者向け
4
+
5
+ ### 表示
6
+
7
+ rake
8
+
9
+ ### 公開
10
+
11
+ rake publish
12
+
13
+ ## 閲覧者向け
14
+
15
+ ### インストール
16
+
17
+ gem install rabbit-slide-unasuke-rejectkaigi2019
18
+
19
+ ### 表示
20
+
21
+ rabbit rabbit-slide-unasuke-rejectkaigi2019.gem
22
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: rejectkaigi2019
3
+ base_name: slide
4
+ tags: ['haconiwa', 'mruby', 'container']
5
+ presentation_date:
6
+ presentation_start_time:
7
+ presentation_end_time:
8
+ version: 1.0.0
9
+ licenses: []
10
+ slideshare_id:
11
+ speaker_deck_id:
12
+ ustream_id:
13
+ vimeo_id:
14
+ youtube_id:
15
+ author:
16
+ markup_language: :markdown
17
+ name: unasuke
18
+ email: yusuke1994525@gmail.com
19
+ rubygems_user: unasuke
20
+ slideshare_user:
21
+ speaker_deck_user:
data/img/icon_raw.jpg ADDED
Binary file
data/img/oci-tweet.png ADDED
Binary file
Binary file
data/slide.md ADDED
@@ -0,0 +1,142 @@
1
+ # OCI-compatible haconiwa
2
+ subtitle
3
+ : ─ hurdles and advantages ─
4
+
5
+ subtitle
6
+ : 2019-04-12
7
+
8
+ subtitle
9
+ : RejectKaigi 2019 @ pixiv Inc
10
+
11
+ author
12
+ : Yusuke Nakamura (unasuke)
13
+
14
+ theme
15
+ : unasuke-white
16
+
17
+ # about me
18
+ - Yusuke Nakamura (also known as "unasuke")
19
+ - Employee of BANK Inc
20
+ - Develop Rails application, manage Infrastructure <https://cash.jp/>
21
+ - RubyKaigi 2019 helper
22
+ - {::tag name="x-small"}GitHub [@unasuke](https://github.com/unasuke){:/tag}
23
+ - {::tag name="x-small"}Twitter [@yu\_suke1994](https://twitter.com/yu_suke1994){:/tag}
24
+ - {::tag name="x-small"}Mastodon [@unasuke@mstdn.unasuke.com](https://mstdn.unasuke.com/@unasuke){:/tag}
25
+
26
+ ![](img/icon_raw.jpg){:relative_width="24" align="right" relative_margin_right="-9" relative_margin_top="42"}
27
+
28
+ # introduction
29
+ First, to clearly where we stand.
30
+
31
+ # Your perception of containers
32
+ - Are you use container?
33
+ - In production env? or(and) development env?
34
+ - Use Docker? or the other one?
35
+ - Orchestrate by ECS? or GKE? or on-premises?
36
+
37
+ # We use Docker mostly
38
+ - de facto standard of a Linux container
39
+ - Easy installation
40
+ - for Mac, for Windows...
41
+ - The first famous Linux container inplementation
42
+
43
+ # "Container" is not equal "Docker"
44
+ - Before Docker
45
+ - LXC (Linux)
46
+ - Jail (FreeBSD)
47
+ - etc...
48
+ - After Docker
49
+ - cri-o
50
+ - Kata Container
51
+ - etc...
52
+
53
+ # What's haconiwa
54
+ - The Linux contianer runtime written by C and mruby
55
+ - <https://speakerdeck.com/udzura/the-alternative-container?slide=11>
56
+ - > OCIのspecを必ずしも満たすことは想定していない
57
+ - Independent from "Container" world
58
+ - "Container" means OCI
59
+
60
+ # What's OCI
61
+ The initialism of "Open Container Initiative"
62
+
63
+ <https://www.opencontainers.org/>
64
+
65
+ - OCI specs
66
+ - Image spec
67
+ - specifitation of the container image format
68
+ - Runtime spec
69
+ - specification of the container runtime interface
70
+
71
+
72
+ # CRI and Kubernetes world
73
+ ![](https://d3vv6lp55qjaqc.cloudfront.net/items/0I3X2U0S0W3r1D1z2O0Q/Image%202016-12-19%20at%2017.13.16.png){:relative_width="95"}
74
+
75
+ - kubelet uses Container-Runtime-Interface(CRI) to communicate to container runtime
76
+ - > The kubelet is the primary “node agent” that runs on each node.
77
+
78
+ # Diff of OCI/CRI compatible means...
79
+ - CRI compatible
80
+ - usable as backend of kubelet
81
+ - OCI compatible
82
+ - Exchangeable image and runtime
83
+
84
+ \\n
85
+ easy → CRI compatible → OCI compatible → hard
86
+
87
+ # Why CRI-compatible?
88
+ haconiwa is just run container. Doesn't orchestrate.
89
+
90
+ - Pros
91
+ - Orchestration by Kubernetes
92
+ - Cons
93
+ - Cannot use haconiwa-specific functions (hook)
94
+ - maybe...
95
+
96
+ # Why OCI-compatible?
97
+ - Pros
98
+ - possible to share the existing assets
99
+ - hub.docker.com
100
+ - Cons
101
+ - Cannot use haconiwa-specific functions (hook)
102
+ - https://github.com/haconiwa/haconiwa/blob/master/sample/hooks.haco
103
+ - maybe...
104
+
105
+ # hurdles and advantages
106
+ - hurdles
107
+ - it's hard to comply with the standard
108
+ - advantages
109
+ - more users
110
+ - wealth of existing assets
111
+
112
+ # How to implement CRI
113
+ <https://github.com/kubernetes/kubernetes/blob/release-1.14/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto>
114
+
115
+ - Protocol Buffer
116
+ - RuntimeService
117
+ - ImageService
118
+ - and many messages
119
+ - middleware?
120
+
121
+ # CRI interface and haconiwa
122
+ - should start process to respond rpc
123
+ - currently, haconiwa is just a command not service(or daemon)
124
+ - should implement rpc response interface
125
+
126
+ # OCI specification and haconiwa
127
+ - image spec
128
+ - should import/export OCI image
129
+ - <https://blog.unasuke.com/2018/read-oci-image-spec-v101/>
130
+ - runtime spec
131
+ - <https://udzura.hatenablog.jp/entry/2016/08/02/155913>
132
+
133
+ # conclusion
134
+ - more resources, more users in OCI/CRI world
135
+ - but...
136
+ - compliant to CRI is hard
137
+ - compliant to OCI is harder than CRI
138
+
139
+ # conclusion
140
+ ![](img/oci-tweet.png){:relative_width="95"}
141
+
142
+ <https://twitter.com/yu_suke1994/status/1068355444928741376>
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-unasuke-rejectkaigi2019
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - unasuke
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: ''
28
+ email:
29
+ - yusuke1994525@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - img/icon_raw.jpg
39
+ - img/oci-tweet.png
40
+ - pdf/rejectkaigi2019-slide.pdf
41
+ - slide.md
42
+ homepage: https://slide.rabbit-shocker.org/authors/unasuke/rejectkaigi2019/
43
+ licenses: []
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubygems_version: 3.0.3
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: RejectKaigi 2019
64
+ test_files: []