Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
デプロイから考える僕のWEBアプリ開発 / Think from deployment
Search
instreest
May 18, 2019
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
デプロイから考える僕のWEBアプリ開発 / Think from deployment
JJUG-CCC 2019 Spring #ccc_m2a
2019-05-18(土) 11:00~11:20
発表で使用したスライドです
instreest
May 18, 2019
Other Decks in Technology
See All in Technology
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
130
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
690
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
700
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
180
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
140
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.2k
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
290
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
320
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
140
VS Code × GitHub Copilot での Fabric 開発
ryomaru0825
1
220
FinTech 1-2 : Overview of FinTech
ks91
PRO
0
130
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
570
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
4k
RailsConf 2023
tenderlove
30
1.6k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Side Projects
sachag
456
43k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
A Soul's Torment
seathinner
8
3.7k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
How STYLIGHT went responsive
nonsquared
100
6.3k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Designing for Timeless Needs
cassininazir
1
510
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
910
Transcript
デプロイか ら 考 え る 僕 の WEBアプリ開発 JJUG-CCC 2019
Spring #ccc_m2a 株式会社アーチ 井上 和宏 2019-05-18(土) 11:00~11:20
名前 : 井上 和宏 所属 : 株式会社アーチ システム部 ・業務システム保守エンジニア(33歳) ・入社以来10年ほど開発と保守に携わる
日課 : 息子と『ピタゴラスイッチ』を見ること 2 自己紹介
目次 1.WEBアプリ開発のきっかけ 2.デプロイから考える 3.ビルドから考える 4.そのほか 3
WEBアプリ開発のきっかけ 4
東京公共交通オープンデータチャレンジ HTTPS REST API 鉄道、バス、飛行機のデータを使ったアプリコンテスト アプリケーション JSON 例えば,駅時刻表 路線運行状況 列車走行位置
5
「デプロイから考える僕のWEBアプリ開発」 <はなすこと> WEBアプリのフレームワークとビルドツールについて 選んだ理由とその経緯をご紹介します <おことわり> ・個人的な試行錯誤の経験に基づく私見です ・クラウド と データベース はノータッチです
・このセッションでは 「デプロイ」を本番リリースに近い意味で使います 本日のテーマ 6
7 全体像 本日のセッションでは 黄色 近辺の話をします CentOS 7 Java12 CDN firewalld
VPS API Gradle build SSH SCP Java11 TeraTerm
目次 1.WEBアプリ開発のきっかけ 2.デプロイから考える 3.ビルドから考える 4.そのほか・まとめ 8
サーバーの構築は大変な手間なので極力少なくしたい 9 Apache WEB Tomcat DBMS AP DB Java 開発の課題(1)
そのものずばりの資料が2014年に発表されていました 「Spring Bootで変わるJavaアプリ開発!」 槙 俊明さん(@making)のスライド 2014-08-13 日本スプリングユーザ会 勉強会 https://www.slideshare.net/makingx/spring-boot-java-jsug 開発の課題(2)
10
スライド引用(1) 11 68 of 114
スライド引用(2) 12 70 of 114
APサーバーのインストールが不要になります 構成変更のイメージ Javaアプリケーション APサーバー マシン・OS 13 Javaプログラム フレームワーク 組込APサーバー
スライド引用(3) 14 73 of 114
<メリット> (1) Javaコマンドのみで実行できます (2) SpringBootならではの多くのメリット <デメリット> (1) SpringFramework と実行可能jar (2)
個人的な事情 SpringBoot 15
そこでマイクロフレームワーク 16
(Apache Sparkじゃない方です) 組込APサーバーとしてJettyを同梱し パスルーティング機能に特化したWEBフレームワーク 作成者:Per Wendelさん(@perwendel) 2014-05-11リリース ~ 2019-03-27リリース http://sparkjava.com/
Spark(1) 17
<メリット> (1) Javaコマンドのみで実行できます (2) ドキュメントが大変わかりやすく簡潔でした <デメリット> (1) わりとクセがあります Spark(2) 18
Quick start 19
目次 1.WEBアプリ開発のきっかけ 2.デプロイから考える 3.ビルドから考える 4.そのほか・まとめ 20
実行可能jar を使用しない場合 ⇒依存ライブラリのクラスパス指定が必要です 依存といえばビルドツールで解決です Maven or Gradle デプロイの課題 21
Maven Gradle 設定ファイルがXML 素直に Maven難しいな と感じました 設定ファイルがGroovy コメントも書きやすい Linux用の実行スクリプトを 生成できる
ビルドツール 22
実行スクリプトとすべての依存ライブラリ(.jar)が 圧縮ファイルにまとめて出力されます C:¥workspace¥net.shirokin.odpt¥build¥distributions ┣ net.shirokin.odpt.tar ┗ net.shirokin.odpt.zip ┣ bin ┃
┣ net.shirokin.odpt ・・・Linux用shell ┃ ┗ net.shirokin.odpt.bat ・・・Windows用bat ┗ lib ┣ spark-core-2.9.0.jar ┣ jetty-servlet-9.4.15.v20190215.jar ┣ ・・・ 実行スクリプト生成(1) 23
実行するコマンドは自前で作成します tarを展開してバックグランドで起動します(&, exit) $ tar –xvf net.shirokin.odpt.tar $ export JAVA_OPTS=-Xmx4000m
$ export EXEC_SH=net.shirokin.odpt/bin/net.shirokin.odpt $ export LOG_FILE=`date "+%Y-%m-%d"`_std.log $ sh $EXEC_SH < /dev/null >> $LOG_FILE 2>&1 & $ exit 実行スクリプト生成(2) 24 1 2 3 4 5 6
モジュールパス指定での実行形式には未対応です とはいえアプリ自体もモジュール未対応です ▪クラスパス指定 > java --class-path %APP_HOME%/lib/* net.shirokin.odpt.ApplicationMain ▪モジュールパス指定(の想定) >
java --module-path %APP_HOME%/lib/* --module net.shirokin.odpt/ApplicationMain Gradle:実行スクリプト生成(3) 25
目次 1.WEBアプリ開発のきっかけ 2.デプロイから考える 3.ビルドから考える 4.そのほか 26
あと何分で次の列車が出発するか一覧表示するアプリ https://odpt.shirokin.net/ 開発成果 27
サーバー1台 さくらのVPS 972円 /月 ドメイン取得 さくらのドメイン 1,852円 /年 無料のDNS さくらのVPS
0円 SSL証明書 Let’s Encrypt 0円 外形監視 さくらのVPS 0円 モニタリング Mackerel 0円 維持コスト 28 CDN さくらのクラウド 0円 インバウンド側トラフィック 0円 アウトバウンド側トラフィック 5円 /GiB
29 全体像 CentOS 7 Java12 CDN firewalld VPS API Gradle
build SSH SCP Java11 TeraTerm
<開発の所感> 世の中のソフトウェアはたくさんの人の尽力により 成り立っていると実感しました。 一人でできることには限界がある 仲間を見つけて一緒にやると楽しくなる、と思います 開発の顛末 30
おわりに 31 https://tokyochallenge.odpt.org/