Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
デプロイから考える僕のWEBアプリ開発 / Think from deployment
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
instreest
May 18, 2019
Technology
0
1k
デプロイから考える僕のWEBアプリ開発 / Think from deployment
JJUG-CCC 2019 Spring #ccc_m2a
2019-05-18(土) 11:00~11:20
発表で使用したスライドです
instreest
May 18, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
5
760
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
110
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.2k
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
210
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
4
1.7k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
データの整合性を保ちたいだけなんだ
shoheimitani
8
2.9k
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
1
300
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
670
20260204_Midosuji_Tech
takuyay0ne
0
120
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
170
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Producing Creativity
orderedlist
PRO
348
40k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
63
The Curious Case for Waylosing
cassininazir
0
230
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Building Adaptive Systems
keathley
44
2.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
110
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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/