SlideShare a Scribd company logo
1 of 48
Infra@LINE
1. Me
2. Server-Side
3. Infra
4. Technology
5. Demo
自己紹介
Chris Pickel
Server Development Team
LINE株式会社
京都開発室
クリス・ピッケル
Me–Name
• I’m a Pickel,
not a Pickle
Noto Color Emoji
Me–I like…
> > > >
> > > >
> > > >
> > > >
Noto Color Emoji
Me–History
• U. of Pennsylvania
• Google New York (5y)
• Asago City schools (2y)
• Google Munich (2y)
• LINE Kyoto (0.5y)
Me–LINE
VKS
=
Verda
+
Kubernetes
Server-Side
Why do I prefer server-side?
Server-Side
You know your
environment
Bjarni Juliusson / Wikimedia Commons
Server-Side
Monitoring
& repair
Pixabay
Server-Side
Small, focused
components
Server-Side
Lots of open-source
github.com/line top 5 stars:
• line/armeria 1.7k (server/client)
• line/promgen 422 (server)
• line/stellite 310 (server/client)
• line/centraldogma 249 (server)
• line/clay 102 (android)
※ Excludes {sdk,starter}
Infra
What is infrastructure?
Why do I like infrastructure?
Infra
Building blocks
Infra
• Machines
• Networking
• Storage
• Monitoring
Pixabay
Infra
You know your users
Technology
What technologies do we use?
Technology
• Docker
• Drone
• Kubernetes
• Rancher
• OpenStack
• Ansible
• Prometheus
• Go
Harland Quarrington (OGL) / Wikimedia Commons
Tech–
Docker
“It works for me”
Tech–
Docker
“It works with my
• OS (Linux, Mac, Win)
• Installed software
• Software versions
• Network”
Tech–
Docker
Put it in a container
• Minimal Linux system
• Linux, on Mac or Win
• Includes all deps
• Isolated from host
jumilla (CC-BY) / flickr
Tech–
Docker
$ docker run -ti 
ubuntu bash
Tech–Drone
“It passes for me”
US DoD / Wikimedia Commons
Tech–Drone
Drone
=
Docker
+
Continuous Integration
jumilla (CC-BY) / flickr
Tech–Drone
cloud.drone.io
Tech–
Kubernetes
Microservices:
• Work independently
• Work together
Pixabay
Tech–
Kubernetes
• Configs, not commands
• Containers, not machines
• Clusters, not datacenters
Pixabay
Tech–
Kubernetes
• Minikube (local)
• Google GKE
• Microsoft AKS
• Amazon EKS
Tech–
Rancher
Build Kubernetes clusters
Pixabay
Tech–
OpenStack
Run a datacenter
Pixabay
Tech–
Ansible
“Did it start?”
Tech–
Ansible
• Automation
• Dependencies
Tech–
Prometheus
“Did it stop?”
Jon Sullivan / Wikimedia Commons
Tech–Go
Pixabay
• Docker
• Kubernetes
• Drone
• Rancher
• Prometheus
Technology
◎ Docker
○ Drone
○ Kubernetes
╳ Rancher
╳ OpenStack
△ Ansible
△ Prometheus
○ Go
Harland Quarrington (OGL) / Wikimedia Commons
Demo
Docker, Kubernetes
Thanks
Balint Földesi (CC-BY) / Flickr
$ cat serve.go
time.Sleep(5 * time.Second)
http.HandleFunc("/",
func(w http.ResponseWriter,
r *http.Request) {
log.Printf("%s %s %s %s",
r.Method, r.URL.String(),
r.RemoteAddr, r.UserAgent())
w.Write([]byte(*greeting + "n"))
})
$ cat Dockerfile
FROM golang:1.12-alpine
RUN go build serve.go
CMD ["./serve", "--listen=:80",
"--greeting=Hello, Docker!"]
$ docker build --tag $TAG .
Successfully built 728b5f3086be
Successfully tagged docker-
registry.linecorp.com/christopher-
pickel/hello-world:latest
$ docker run -rm --name=demo 
--publish 127.0.0.1:2080:80/tcp 
$TAG
2019/07/25 06:34:41 starting
2019/07/25 06:34:46 listening on :80
2019/07/25 06:34:52 GET /
172.17.0.1:41676 curl/7.54.0
$ curl localhost:2080
Hello, Docker!
$ docker exec -ti demo bash
bash-4.4# ps
PID USER TIME COMMAND
1 root 0:00 ./serve --listen=…
12 root 0:00 bash
22 root 0:00 ps
bash-4.4# curl localhost
Hello, Docker!
2019/07/25 06:36:27 GET / 127.0.0.1:36774
curl/7.64.0
bash-4.4# file ./serve
serve: ELF 64-bit LSB executable, x86-64…
bash-4.4# uname
Linux
bash-4.4# exit
$ uname
Darwin
$ cat kube.yaml
containers:
- name: hello
image: docker-registry.linecorp.com/ch…
args: ["./serve", "--listen=:80",
"--greeting=Hello, Kubernetes!"]
readinessProbe:
httpGet:
path: /healthz
port: 80
$ kubectl apply -f kube.yaml
namespace/demo created
deployment.apps/hello created
service/hello created
$ curl $(minikube ip):$PORT
Hello, Kubernetes! namespace/demo created
deployment.apps/hello created
service/hello created
$ kubectl logs hello-674f6956d-97kcb
2019/07/23 09:11:34 starting
2019/07/23 09:11:39 listening on :80
2019/07/23 09:11:44 GET /healthz
172.17.0.1:39214 kube-probe/1.15
2019/07/23 09:11:49 GET /healthz
172.17.0.1:39214 kube-probe/1.15
2019/07/23 09:11:51 GET /
172.17.0.1:63338 curl/7.54.0
$ kubectl edit deployment hello
(s/replicas: 1/replicas: 10/)
$ kubectl edit deployment hello
(s/Hello, Kubernetes/Hello, Rollouts/)
$ kubectl rollout status deployment hello
Waiting for deployment "hello" rollout to
finish: 9 of 10 updated replicas are
available...
deployment "hello" successfully rolled
out
Thanks
Balint Földesi (CC-BY) / Flickr
Infra@LINE_Chris

More Related Content

What's hot

CloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps AmsterdamCloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps AmsterdamSebastien Goasguen
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 augVincent De Smet
 
Live migration with CRIU
Live migration with CRIULive migration with CRIU
Live migration with CRIUPavel Emelyanov
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registrydotCloud
 
Demystifying Docker for Data Scientists by Shaheen
Demystifying Docker for Data Scientists by ShaheenDemystifying Docker for Data Scientists by Shaheen
Demystifying Docker for Data Scientists by ShaheenShaheen Gauher
 
Angular boilerplate generator
Angular boilerplate generatorAngular boilerplate generator
Angular boilerplate generatorVincent De Smet
 
2009年终总结(张庆城)
2009年终总结(张庆城)2009年终总结(张庆城)
2009年终总结(张庆城)daqing1986
 
Kubernetes meetup 102
Kubernetes meetup 102Kubernetes meetup 102
Kubernetes meetup 102Jakir Patel
 
運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫Shengyou Fan
 
SCM Gitlab Advanced
SCM Gitlab AdvancedSCM Gitlab Advanced
SCM Gitlab AdvancedAman Patial
 
Machine learning with raspberrypi
Machine learning with raspberrypiMachine learning with raspberrypi
Machine learning with raspberrypielmokhtar Benfraj
 
maksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your cimaksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your ciDariia Seimova
 
PuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, Puppet
PuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, PuppetPuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, Puppet
PuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, PuppetPuppet
 
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...OpenStack Korea Community
 
Python and Startup
Python and StartupPython and Startup
Python and Startuppycontw
 
Git hooks for front end developers
Git hooks for front end developersGit hooks for front end developers
Git hooks for front end developersBradley Gore
 

What's hot (20)

CloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps AmsterdamCloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps Amsterdam
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Live migration with CRIU
Live migration with CRIULive migration with CRIU
Live migration with CRIU
 
Docker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registryDocker worshop @Twitter - How to use your own private registry
Docker worshop @Twitter - How to use your own private registry
 
Demystifying Docker for Data Scientists by Shaheen
Demystifying Docker for Data Scientists by ShaheenDemystifying Docker for Data Scientists by Shaheen
Demystifying Docker for Data Scientists by Shaheen
 
Docker tips
Docker tipsDocker tips
Docker tips
 
Angular boilerplate generator
Angular boilerplate generatorAngular boilerplate generator
Angular boilerplate generator
 
2009年终总结(张庆城)
2009年终总结(张庆城)2009年终总结(张庆城)
2009年终总结(张庆城)
 
Kubernetes meetup 102
Kubernetes meetup 102Kubernetes meetup 102
Kubernetes meetup 102
 
運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫運用 Exposed 管理及操作資料庫
運用 Exposed 管理及操作資料庫
 
SCM Gitlab Advanced
SCM Gitlab AdvancedSCM Gitlab Advanced
SCM Gitlab Advanced
 
Machine learning with raspberrypi
Machine learning with raspberrypiMachine learning with raspberrypi
Machine learning with raspberrypi
 
Introduction to GIT
Introduction to GITIntroduction to GIT
Introduction to GIT
 
maksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your cimaksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your ci
 
Git hooks
Git hooksGit hooks
Git hooks
 
PuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, Puppet
PuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, PuppetPuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, Puppet
PuppetConf 2017: State of Union: Containers at Puppet- Gert Drapers, Puppet
 
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
[OpenInfra Days Korea 2018] Day 2 - E3-2: "핸즈온 워크샵: Kubespray, Helm, Armada를 ...
 
Python and Startup
Python and StartupPython and Startup
Python and Startup
 
Git hooks for front end developers
Git hooks for front end developersGit hooks for front end developers
Git hooks for front end developers
 
Git Presentation - Handout
Git Presentation - HandoutGit Presentation - Handout
Git Presentation - Handout
 

Similar to Infra@LINE_Chris

Go Web Development
Go Web DevelopmentGo Web Development
Go Web DevelopmentCheng-Yi Yu
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileAmazon Web Services Japan
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd についてKubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd についてLINE Corporation
 
もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介Takehiko Amano
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalNAVER D2
 
20160930 cloud foundry_overview
20160930 cloud foundry_overview20160930 cloud foundry_overview
20160930 cloud foundry_overviewTakuya Saeki
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDAleksandr Maklakov
 
GIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPGIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPPavel Tyk
 
How we scale DroneCi on demand
How we scale DroneCi on demandHow we scale DroneCi on demand
How we scale DroneCi on demandPatrick Jahns
 
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)Ontico
 
Seaside Portability
Seaside PortabilitySeaside Portability
Seaside Portabilityjfitzell
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nltieleman
 
2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed
2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed
2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbedDaniel Bimschas
 
The Present and Future of the Web Platform
The Present and Future of the Web PlatformThe Present and Future of the Web Platform
The Present and Future of the Web PlatformC4Media
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 

Similar to Infra@LINE_Chris (20)

Go Web Development
Go Web DevelopmentGo Web Development
Go Web Development
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd についてKubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
Kubernetes上で動作する機械学習モジュールの配信&管理基盤Rekcurd について
 
Node azure
Node azureNode azure
Node azure
 
もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介もうひとつのコンテナ実行環境 runq のご紹介
もうひとつのコンテナ実行環境 runq のご紹介
 
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_finalKandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
 
20160930 cloud foundry_overview
20160930 cloud foundry_overview20160930 cloud foundry_overview
20160930 cloud foundry_overview
 
Gashuku Presen
Gashuku PresenGashuku Presen
Gashuku Presen
 
Gashuku Presen
Gashuku PresenGashuku Presen
Gashuku Presen
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLD
 
GIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPGIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APP
 
How we scale DroneCi on demand
How we scale DroneCi on demandHow we scale DroneCi on demand
How we scale DroneCi on demand
 
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
 
Seaside Portability
Seaside PortabilitySeaside Portability
Seaside Portability
 
Lessons learned while building Omroep.nl
Lessons learned while building Omroep.nlLessons learned while building Omroep.nl
Lessons learned while building Omroep.nl
 
2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed
2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed
2013 09-02 senzations-bimschas-part4-setting-up-your-own-testbed
 
The Present and Future of the Web Platform
The Present and Future of the Web PlatformThe Present and Future of the Web Platform
The Present and Future of the Web Platform
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Nodejs - A quick tour (v5)
Nodejs - A quick tour (v5)Nodejs - A quick tour (v5)
Nodejs - A quick tour (v5)
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Infra@LINE_Chris

Editor's Notes

  1. みんなさん、こんにちは。クリスと申します。今日はLINEインフラの説明をしたいと思います。 まずは短い自己紹介をします。それから サーバーサイドについて、 インフラについて、 日常に使うテクノロジー、そして時間あれば 簡単のDocker, Kubernetesのデモンストレーション の準にします。
  2. 私は京都オフィスサーバー開発チームのクリス・ピッケルです。よろしくお願いします。
  3. 名前についてのお願いです。これを覚えて帰ってください:私はピクルスじゃなくてピッケルです。 Emoji: Noto Color Emoji (Apache license)
  4. 好きなものは… 絵文字です。 Emoji: Noto Color Emoji (Apache license)
  5. 私はアメリカのニュウヨーク州出身です。ペンシルヴェニア大学を卒業した時ニュウヨークへ帰って、グーグルニューヨークで働き始めました。 でも、何年か後、自分の環境を変えたいと思って、日本に来ました。兵庫県の小さい町の中学校で英語教師をしました。 終わった時、やはり海外で住む方がいいと思って、グーグルに帰ってミュンヘン支所で働きました。でも、ドイツで分かったことは海外で住むのじゃなくて、日本で住むのが好きだということです。それで、京都へ引っ越して、LINEで去年から働いています。 https://commons.wikimedia.org/wiki/File:Google_%22G%22_Logo.svg https://en.wikipedia.org/wiki/Asago,_Hy%C5%8Dgo#/media/File:Symbol_of_Asago_Hyogo.svg
  6. LINEでVerdaと言うPrivate cloudがあります。その中で、私はKubernetes関係の開発しています。 Kubernetesはサーバーサイドインフラです。このプレゼンテーションで大体これについて話します。 じゃ、すみません、今からは日本語はちょっと難しいので英語で話します。 Photo: company work
  7. First, I want to talk about why I like Server-Side engineering. Why do I prefer server-side?
  8. For me, the best thing about server-side engineering is knowing your environment. Server-side life is very simple. You choose your machine. You choose your OS. You install your software. If you want a newer machine or OS or software, you upgrade it. You’re in control. By comparison, on iOS, LINE supports two OS versions and several screen sizes. On Android, there are lots of combinations–too many to count. And the LINE app has to work on all of them. It has to work with no network. It has to keep working even if users don’t update LINE. I like server-side because I like not having to worry about all that. Photo: https://commons.wikimedia.org/wiki/File:PDP-12-Update-Uppsala.jpeg (PD)
  9. Also, because you know your servers, you can monitor them so you know they are working. If your server has a problem, you can find out and you can fix the problem. (probably by turning it off and turning it on again) Client-side monitoring is a lot harder. If there’s a bug in the LINE app on users’ phones, how do you find out? And how do you fix it? Apple’s review process could take a week or two. It’s a lot easier server-side. Find, fix, push, finish. Photo: https://www.pexels.com/de-de/foto/aufnahme-daten-diagramm-ecg-415779/ (CC0)
  10. Another great thing about server-side work is that we use lots of small focused components. Or at least, we can, and we like to. Software tends to grow and grow, but we do our best to keep things small. On the other hand, do you know every single feature in the LINE app? There are a lot of features. I sure can’t remember all of them. And they all go into one single, huge app. On the server, we can break down our software into lots of pieces. They compile fast and they’re easy to work with, by comparison. Photo: own work
  11. One last thing about server-side is that there’s a lot of open-source. And actually, most of LINE’s open-source creations are server-side software. Here’s a list of LINE’s most popular open-source software on GitHub. Basically, LINE client engineering benefits when the LINE app has lots of distinctive features, but server engineering benefits when the servers are standard. So, for server-side we tend to share our technology, and to use technology that others have shared. Later on, I’m going to talk about some technologies that I use in my daily work. All of the software projects I’ll discuss are open-source. So, you can go home today and try them out yourself. Photo: own work
  12. So, what is infrastructure? Why do I like infrastructure?
  13. Essentially, infra is about making building blocks for other server-side engineers. Photo: own work
  14. Do you want to build a server? You need a machine. You need a network. You need file storage and a database. You need monitoring. You can set everything up yourself, but it’s a lot of trouble. It’s much easier if you can go to the infra engineers, and say: “please give me all of that”. That’s infrastructure. Photo: https://pixabay.com/photos/computers-information-technology-2653005/ (CC0)
  15. What do I like about infra? Well, the LINE client has many millions of users, and that’s fine. But in infra, the “users” are other server-side engineers at LINE, and there are hundreds of them, not millions. And having hundreds of users means that you can actually go and talk to all of them, and say “what do you want?”, and hopefully “here you are!”. That’s what I like about infra. Photo: own work
  16. So, what technologies do we use in our daily work?
  17. Here’s a list of some of the software I might use from day to day. All of this is open-source, as I said before. So, if any of it is interesting to you, you can try it too. Photo: https://commons.wikimedia.org/wiki/File:Computer_Circuit_Board_MOD_45153619.jpg (OGL)
  18. So, please imagine. You have a friend. And your friend gives you some software. And the software doesn’t work. So, you ask your friend for help, and they say, “Oh, weird. It works for me.” What does that mean? Photo: own work (Ggantija, Gozo)
  19. Hmm, well. It means “It works on my OS, and my OS version, with all of the software I installed, and my software versions, and on my network. So, you know. Just run the software the same way, and it should work.” Which isn’t all that helpful. Photo: own work (Ggantija, Gozo)
  20. The idea behind Docker is that you can build containers. Inside the container, you have a small, completely self-contained Linux system with everything you need to run your software. Outside the container, it doesn’t matter. Linux, Mac, Windows, any of them can be the host machine. Because it’s self-contained, if you have a container, you know that the software will work. Photo: https://www.flickr.com/photos/jumilla/14403331148 (CC-BY)
  21. So yeah, Docker is really useful software, and you can use Docker to make sure that “it works for me” means “it works for everyone”. If you install Docker, you can run this command to run a local shell on Ubuntu. Even on Mac. Even on Windows. I was really surprised the first time I tried it. https://commons.wikimedia.org/wiki/File:Docker_(container_engine)_logo.svg (Apache license 2)
  22. Same idea. Sometimes your test fails, and your coworker says “Oh, weird. It passes for me.” Image: https://commons.wikimedia.org/wiki/File:Defense.gov_photo_essay_061021-D-7203T-002.jpg (PD)
  23. Drone is basically Docker for tests and continuous integration. If you don’t know continuous integration, it means running tests on everything you write. Before you merge a change, it runs the tests. After you merge a change, it runs the tests. Tag a release? It runs the tests. And, because Drone runs the tests in a Docker container, you know they will pass for everyone. Photo: https://www.flickr.com/photos/jumilla/14610034513/ (CC-BY)
  24. You can download Drone and run it yourself, which is what we do at LINE. Or, if your project is open-source on GitHub, you can use cloud.drone.io for free. If you’re not already using continuous integration, give it a try. Actually, there are a few CI options out there, like Travis and CircleCI and others. Drone is built on Docker, and that makes it convenient for server-side work. Travis and CircleCI are work with more platforms, so they’re convenient for client-side work. They’re all good, so you can decide what to use based on the needs of each project. Photo: own work
  25. OK, so, the great thing about Docker is isolation. Each of your programs works independently. But, if you run a microservice architecture with lots of small, interconnected servers, then they can’t be totally isolated. They need to work independenty AND together. Traditionally, if you had a lot of servers, you’d assign them to machines, and configure the servers to talk to each other. But machines fail, and get outdated. In the end, to run a lot of servers, you end up administering machines, and reconfiguring everything each time you replace one. It doesn’t scale. Photo: https://www.pexels.com/photo/abstract-art-circle-clockwork-414579/ (CC0)
  26. With Kubernetes, you can write a configuration that says “run ten servers” and let Kubernetes take care of the rest. It starts and stops servers to make sure that there are ten running. It assigns and reassigns them to machines so that your server stays running, even when the machines don’t. It gives your server an address that doesn’t change, even when the machine does. Photo: https://pixabay.com/photos/blueprint-ruler-architecture-964629/ (CC0)
  27. These days, it’s been getting more and more popular, and now Google, Microsoft, and Amazon all offer Kubernetes clusters as part of their cloud. If you want to try Kubernetes, you can try any of those, or run it locally. If you’re comfortable with Docker, I think it’s a good next step. Logo: https://commons.wikimedia.org/wiki/File:Kubernetes_logo.svg
  28. Where do our Kubernetes clusters come from? We build them ourselves with Rancher. Now Rancher is a good technology, and it’s very helpful for us. But, I don’t necessarily recommend you use it. If you want to try Kubernetes, there are lots of easier options, like the three I mentioned before. If you’re running your own cloud like LINE, then definitely, I recommend Rancher. But, most people don’t need to run their own datacenters. Photo: https://pixabay.com/photos/longhorn-cattle-ranch-livestock-754894/ (CC0) Logo: https://rancher.com/brand-guidelines/
  29. Speaking of which, how does LINE run its cloud? LINE uses OpenStack. So, when we use Rancher to create a Kubernetes cluster, OpenStack is how we get the machines. It’s very important to us, because it’s part of how we build Kubernetes clusters with Rancher, but I’m just a user. I don’t know much about running it. Image: https://pixabay.com/photos/ethernet-data-internet-network-1245122/ (CC0) Logo: https://www.openstack.org/brand/openstack-logo/logo-download/
  30. OK. So, when you start up your system, how do you start it? How do you make sure that startup was successful? Some people write a guide to follow and a checklist and then run through them by hand. Some people just remember things and don’t write them down at all. I think that it’s good to write things down. And really, the best format for setup instructions is a script that automates the setup. That’s what Ansible does. Photo: own work (Oshu, Iwate)
  31. If your server setup is complicated, you should definitely consider automation, and Ansible is one way to do that. For my part, I actually really like the standard old make tool. It’s simple, it’s everywhere, and it does dependencies. I think even a really simple setup benefits from automation, and make can do simple setups very well. On the other hand, if your setup is complicated—well, the best thing is to make it less complicated, but if it’s complicated, Ansible is good to use. Photo: own work Logo: https://en.wikipedia.org/wiki/File:Ansible_logo.svg
  32. And lastly, what if your system breaks? How do you know? Hopefully, it’s not Twitter. Prometheus is software for monitoring servers. If people are depending on your servers, you should be monitoring them. Photo: https://commons.wikimedia.org/wiki/File:Montana_16_bg_062406.jpg (PD)
  33. Most of our software is written in Go. Docker is Go, Kubernetes is Go, and Drone, and Rancher, and Prometheus too. So, on my team, when we write LINE internal software, we choose Go too. (OpenStack and Ansible are mostly Python) Photo: https://pixabay.com/photos/evraiki-gophers-family-rodents-2514544/ (CC0)
  34. So, here’s the list of software again, and some recommendations. I think everyone should try Docker. If you don’t know about containers, I think you’re missing out. Kubernetes is getting more important too, so it’s also worth trying. Drone is good. But there are also lots of good alternatives too. Depending on your needs, you might find Ansible or Prometheus relevant, but maybe not. And unless you’re running your own cloud, I wouldn’t worry so much about Rancher or OpenStack. Photo: https://commons.wikimedia.org/wiki/File:Computer_Circuit_Board_MOD_45153619.jpg (OGL)
  35. So, what do I spend my time on at work? Where does the time go? I usually get to work around 10 and leave around 7. Between that time, I don’t feel that I really have a standard schedule, but I tried to estimate about how much time on average I spend on different tasks. So…
  36. And that’s all from me. Thank you for listening. I hope I was able to give you an impression of how we work with server-side infrastructure, and that you feel encouraged to come work with us at LINE Kyoto and help with our mission of closing the distance. Photo: https://www.flickr.com/photos/balintfoeldesi/16707315815/ (CC-BY)
  37. And that’s all from me. Thank you for listening. I hope I was able to give you an impression of how we work with server-side infrastructure, and that you feel encouraged to come work with us at LINE Kyoto and help with our mission of closing the distance. Photo: https://www.flickr.com/photos/balintfoeldesi/16707315815/ (CC-BY)