rabbit-slide-unasuke-rejectkaigi2019 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []