Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Server Side Swiftを しばらく運用してみた話
Yusuke Ito
June 27, 2017
Programming
0
390
Server Side Swiftを しばらく運用してみた話
Yusuke Ito
June 27, 2017
Tweet
Share
More Decks by Yusuke Ito
See All by Yusuke Ito
おうちHackを取り入れた リノベーション事例
yusukeito
0
320
Swift からword2vecを 使ってみる
yusukeito
0
740
Swift Outside the Box
yusukeito
1
1.7k
SwiftでgRPCとProtocolBuffersを使う
yusukeito
4
1.1k
Swift on Raspberry Pi でI2Cデバイスを使う
yusukeito
1
580
Isomorphic Swift
yusukeito
2
540
Swiftの値付きEnumをHackする
yusukeito
0
250
Swift プロトコル指向なCのラッパーを作る
yusukeito
3
1.2k
SwiftでC言語のライブラリを使おう
yusukeito
7
2k
Other Decks in Programming
See All in Programming
An Advanced Introduction to R
nicetak
0
1.8k
AWSとCPUのムフフな関係
cmdemura
0
470
domain層のモジュール化 / MoT TechTalk #15
mot_techtalk
0
110
和暦を正しく扱うための暦の話
nagise
10
6.4k
AWS App Runnerがそろそろ本番環境でも使い物になりそう
n1215
PRO
0
1.1k
Cloudflare WorkersでGoを動かすライブラリを作っている話
syumai
1
320
Use KMM to call the API of the National Tax Agency
akkeylab
0
300
Remix + Cloudflare Pages + D1 で ポケモン SV のレンタルチームを検索できるアプリを作ってみた
kuroppe1819
4
1.4k
Hatena Engineer Seminar #23「新卒研修で気軽に『ありがとう』を伝え合える Slack アプリを開発した話」
slashnephy
0
320
ipa-medit: Memory search and patch tool for IPA without Jailbreaking/ipa-medit-bh2022-europe
tkmru
0
130
新卒でサービス立ち上げから Hasuraを使って3年経った振り返り
yutorin
0
230
ECS Service Connectでマイクロサービスを繋いでみた
xblood
0
550
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
38
7.7k
Facilitating Awesome Meetings
lara
33
4.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Building an army of robots
kneath
301
40k
jQuery: Nuts, Bolts and Bling
dougneiner
57
6.6k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.2k
A designer walks into a library…
pauljervisheath
199
16k
Building Adaptive Systems
keathley
27
1.3k
Raft: Consensus for Rubyists
vanstee
130
5.7k
Practical Orchestrator
shlominoach
178
8.9k
Why Our Code Smells
bkeepers
PRO
326
55k
Documentation Writing (for coders)
carmenintech
51
2.9k
Transcript
S E R V E R S I D E
S W I F T Λ ͠ Β ͘ ӡ ༻ ͯ͠ Έ ͨ T O K Y O S E R V E R S I D E S W I F T M E E T U P # 8 Yusuke ItoɾനϠΪίʔϙϨʔγϣϯ novi 2017/06/27
χϡʔεΩϡϨʔγϣϯApp اۀ͚API
Minutes(λΠϚʔAppͰ͢)
S E R V E R - S I D
E S W I F T ӡ ༻ ɾ ࢼ ݧ த ͷ α ʔ Ϗ ε • ΫϩʔϦϯάΛߦͳ͏σʔϞϯ(Ϋϩʔϥʔ) • Ұͭ: 30kߦ • ೋͭ: 2~3000ߦ • gRPCϕʔεͷαʔόʔ • ͲͪΒSwift 3.1.1Λ༻
t r y ! S w i f t ʹ
ͯ … RDS ECS(EC2 Container Service)
D O C K E R Ͱ C U R
L ͕ ಈ ͔ ͳ ͍ • cURLΛ͏ϥΠϒϥϦ͕Unknown Error·ͨམͪΔ • URLSession • shiroyagicorp/swift-seeurl • Docker on macOS: ⭕, Docker on AWS(ECS): Crash • Docker → • libcurl4-openssl-devͰͳ͘libcurl4-gnutls-devΛ͏
T I M E Z O N E ܥ A
P I ͕ ಈ ͔ ͳ ͍ • TimeZone(abbreviation: "JST") => nil ʹͳΔ • λΠϜκʔϯͷϑΝΠϧ͕DockerΠϝʔδʹೖ͍ͬͯ ͳ͍ • apt install tzdata ͢Δ (SR-4921) • SwfitͷDockerΠϝʔδΛެ͔ࣜΒϑΥʔΫͯࣗ͠ Ͱ࡞Δ
G R P C α ʔόʔ ͕ མ ͪ Δ
• AWS(ECS)ʹஔ͍ͯ1࣌ؒ͘Β͍ͯ͠ΞΫηε͢Δͱؾ ·͙ΕʹམͪΔ • XcodeσόοάϏϧυ&RunͰ࠶ݱ • Address Sanitizer, Thread sanitizer Λ͏ • gRPCϥΠϒϥϦपΓʹ͋Γͦ͏
M Y S Q L ͕ σ ο υ ϩ
ο Ϋ • (Swiftؔ͋Γ·ͤΜ) • SHOW ENGINE INNODB STATUS ; Ͱ࠷ޙʹى͖ͨ σουϩοΫΛදࣔ • BULK INSERT࣌ͷσουϩοΫͬΆ͍ • ݪҼ: autocommit = 1 or 0; ͷ͍ํ͕ؒҧͬͯͨ
ϝϞ Ϧ Ϧ ʔ Ϋ ? • AWS(ECS)্ͰҰ൩ಈ͔͢ 200MB
ௐ ࠪ • InstrumentsΛ͏ • Memory Allocationଌఆπʔϧ • Xcodeͷπʔϧ͕͑ͯศར •
ϥϯλΠϜ(Linux or Darwin)͕ҧ͏ͷͰͦ͜ • ݪҼ·ͩௐࠪத
ผ ͷ α ʔ Ϗ ε Swift 3.1 (3.0.2ͷͱ͖͍ͬͯͨ͞ͷͰ҆ఆͨ͠)
· ͱ Ί • gRPCϥΠϒϥϦ·ͩඍົ • Protocol BuffersΑ͍(Swift͔Βศརʹ͑Δ) • શੈքతʹSwiftͷӡ༻ϊϋ͕গͳ͍
• WebαʔόʔܥαʔόʔϨεΞʔΩςΫνϟͳΒ͍ ͚Δ͔