SlideShare a Scribd company logo
1 of 33
Elixir入門 第3回
「Phoenixで高速Webアプリ &
REST APIをサクッと書いてみる」
with Docker
2017/04/14 ver0.5作成
2017/04/26 ver0.9作成
2017/04/28 ver1.0作成
1
1. C10K問題を解決する高速Web
2. Phoenixのインストール
3. HTMLテンプレートを変更する
4. WebアプリからDB操作する
5. JSON APIを作ってみる
6. Dockerイメージを保存する
7. 高速なWeb&APIを気軽に開発
目次
2
1.C10K問題を解決する高速Web
3
1.C10K問題を解決する高速Web
「C10K問題」をご存知でしょうか?
10,000以上のクライアントがサーバに同時接続すると、ハード
ウェア性能が充分でも、ソフトウェアの処理方式や性能が不充分
で処理できない、という、昨今のネット利用増大に伴う問題です
この問題に対し、膨大なリクエストを、同時並行で効率良く処理
するサーバソフトウェアが求められています
Elixirは、電話交換機の開発で生まれたErlangをベースとして
いるため、膨大な同時並行のリクエストを効率良く処理できます
そのElixirの上に構築されたWebアプリケーションフレームワークで
あるPhoenixも、高速に同時並行リクエストを処理できます
4
2.Phoenixのインストール
5
2.Phoenixのインストール
ElixirイメージをDockerで起動します (-pが追加されています)
Phoenixをインストールします
Phoenixプロジェクトを作成します (要ネット接続)
作成したプロジェクトでPhoenixサーバーを起動します
> docker run --rm -v /c/piacere/code:/code -p 4000:4000 -i -t
trenpixster/elixir /bin/bash
# mix archive.install ¥
https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
# mix phoenix.new web_nodb --no-brunch --no-ecto
# cd web_nodb
# iex -S mix phoenix.server
6
2.Phoenixのインストール
ブラウザで「http://localhost:4000」にアクセスすると、
Phoenixで作られたWebページが見れます
7
3.HTMLテンプレートを変更する
8
3.HTMLテンプレートを変更する
トップページ本文のHTMLテンプレートは下記フォルダにあります
「index.html.eex」をお好きなエディタで開き、以下の内容に
変更してください
ブラウザをリロードすると、以下のように変更されます
※なお、Dockerでは無く、ローカルPCでPhoenixサーバを起動すると、リロードしなくてもリアルタイムで反映されます
# cd web/templates/page/
ここが本文です。<br>
9
3.HTMLテンプレートを変更する
「index.html.eex」には、ただのHTMLだけで無く、Elixirのコー
ドを「<%~%>」や「<%=~%>」で埋め込むことができます
上記変更後、リロードすると、以下のように変更されます
ここが本文です。<br>
<%= [ "hoge", "foo" ] |> List.to_string %>
10
4.WebアプリからDB操作する
11
4.WebアプリからDB操作する
DBとして、PostgreSQLをインストールします
Dockerイメージ「trenpixster/elixir」は、Debian系である
Ubuntu利用のため、aptを使いますが、お使いのOSに応じて、
yum/RPM/Homebrew/HPからのDLで対応してください
インストールが完了したら、PostgreSQLサーバを起動し、psql
からの接続確認を行ってください
# apt-get update
# apt-get install postgresql
# /etc/init.d/postgresql start
* Starting PostgreSQL 9.3 database server [ OK ]
# sudo -u postgres psql
psql (9.3.16)
Type "help" for help.
postgres=# ¥q
12
4.WebアプリからDB操作する
Node.jsとnpmをインストールします
DB利用するためのPhoenixプロジェクトを作成します (要ネット
接続)
# git clone https://github.com/creationix/nvm.git ~/.nvm
# source ~/.nvm/nvm.sh
# nvm install v4.2.6
# apt-get install npm
# mix phoenix.new web --no-brunch
# cd web
13
4.WebアプリからDB操作する
PostgreSQLユーザのパスワードを初期化します
モデルを格納するDBを作成します
DBが追加されていることを確認します
# sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
# sudo service postgresql restart
# mix ecto.create
# sudo -u postgres psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
web_dev | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
14
4.WebアプリからDB操作する
Webアプリ用のモデル生成を行います
今回は、titleとbodyの2項目を持ったモデルを作ります
終盤に指示されている通り、web/router.exへのパス追加と、
モデルのマイグレーションが必要です
# mix phoenix.gen.html Post posts title:string body:text
…
Add the resource to your browser scope in web/router.ex:
resources "/posts", PostController
Remember to update your repository by running migrations:
$ mix ecto.migrate
15
4.WebアプリからDB操作する
web/router.exへのパス追加を行います
モデルのマイグレーションを行います
# mix ecto.migrate
defmodule Web.Router do
use Web.Web, :router
…
scope "/", Web do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
resources "/posts", PostController
end
…
end
16
4.WebアプリからDB操作する
マイグレーションの結果、テーブル追加されるので、確認します
# sudo -u postgres psql
psql (9.3.16)
Type "help" for help.
postgres=# ¥c web_dev
You are now connected to database "web_dev" as user "postgres".
web_dev=# ¥d posts
Table "public.posts"
Column | Type | Modifiers
-------------+-----------------------------+----------------------------------------------------
id | integer | not null default nextval('posts_id_seq'::regclass)
title | character varying(255) |
body | text |
inserted_at | timestamp without time zone | not null
updated_at | timestamp without time zone | not null
Indexes:
"posts_pkey" PRIMARY KEY, btree (id)
17
4.WebアプリからDB操作する
Phoenixサーバを起動します
ブラウザで「http://localhost:4000/posts」を表示すると、
「Title」「Body」がリストされるページが表示されます
# iex -S mix phoenix.server
18
4.WebアプリからDB操作する
「New post」から、新たなアイテムを追加できます
19
4.WebアプリからDB操作する
追加後は以下の通りです
「Show」「Edit」「Delete」で追加されたアイテムを編集できます
20
5.JSON APIを作ってみる
21
5.JSON APIを作ってみる
JSON APIも、前述したWebアプリとほぼ同じ手順で作れます
まずJSON API用のPhoenixプロジェクトを作成します
モデルを格納するDBを作成します
JSON API用のモデル生成を行います (違いはjson指定のみ)
前述のWeb用のモデルと全く同じモデルで作ってみます
# mix phoenix.new api --no-brunch
# cd api
# mix phoenix.gen.json Post posts title:string body:text
…
Add the resource to your api scope in web/router.ex:
resources "/posts", PostController, except: [:new, :edit]
Remember to update your repository by running migrations:
$ mix ecto.migrate
# mix ecto.create
22
5.JSON APIを作ってみる
web/router.exへのパス追加を行います
同時に、CSRFを防止する部分も解除しておきます
モデルのマイグレーションを行います
# mix ecto.migrate
defmodule Api.Router do
use Api.Web, :router
pipeline :browser do
…
plug :fetch_flash
# plug :protect_from_forgery
plug :put_secure_browser_headers
…
scope "/", Api do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
resources "/posts", PostController, except: [:new, :edit]
end
…
end
CSRF(cross-site request forgeries)の防止
が行われると、CSRFトークン(csrf_token)を渡さ
ないとアクセスできなくなるため解除する
※ステートレスなREST APIでの本CSRF対策は実装が難しい
23
5.JSON APIを作ってみる
マイグレーションの結果、テーブル追加されるので、確認します
# sudo -u postgres psql
psql (9.3.16)
Type "help" for help.
postgres=# ¥c api_dev
You are now connected to database “api_dev" as user "postgres".
web_dev=# ¥d posts
Table "public.posts"
Column | Type | Modifiers
-------------+-----------------------------+----------------------------------------------------
id | integer | not null default nextval('posts_id_seq'::regclass)
title | character varying(255) |
body | text |
inserted_at | timestamp without time zone | not null
updated_at | timestamp without time zone | not null
Indexes:
"posts_pkey" PRIMARY KEY, btree (id)
24
5.JSON APIを作ってみる
JSON API用のコマンドとして、どのようなものが用意されたかは、
以下で確認できます
一覧取得 (index)は、/postsへのGETで行います
アイテム登録 (create)は、/postsへのPOSTで行います
各アイテム取得 (show)は、/posts/1、/posts/2等のID指
定でのGETで取得でき、アイテム更新 (update)はID指定の
PUTもしくはPATCH、アイテム削除 (delete)はID指定での
DELETEで行います
# mix phoenix.routes
page_path GET / Api.PageController :index
post_path GET /posts Api.PostController :index
post_path GET /posts/:id Api.PostController :show
post_path POST /posts Api.PostController :create
post_path PATCH /posts/:id Api.PostController :update
PUT /posts/:id Api.PostController :update
post_path DELETE /posts/:id Api.PostController :delete
25
5.JSON APIを作ってみる
Phoenixサーバを起動します
JSONクライアントで「http://localhost:4000/posts」をGET
リクエストすると、アイテムが空のJSONが返ってきます
# iex -S mix phoenix.server
26
5.JSON APIを作ってみる
「http://localhost:4000/posts」へのPOSTリクエストにて
titleとbodyを下記JSONのように指定すると、新たなアイテムを
追加できます
27
5.JSON APIを作ってみる
再度、「http://localhost:4000/posts」をGETすると、追加
されたアイテムを確認できます
28
6.Dockerイメージを保存する
29
6.Dockerイメージを保存する
ここまでにインストールしたPhoenix/PostgreSQL/node.js
は、Dockerイメージとして保存しておかないと消えてしまいます
保存するため、まず、以下手順でDockerを抜け、保存対象と
なるDockerプロセスを確認します
Dockerプロセスを、Dockerイメージとして保存します
#
【Ctrlキーを押下し続けたまま、pキー → qキーと打鍵するとDockerを抜けます】
> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
5e05bff83fe6 trenpixster/elixir "/bin/bash" 2 minutes ago Up 2
minutes 0.0.0.0:4000->4000/tcp blissful_wozniak
> docker commit -m "Phoenix/PostgreSQL/node.js installed" blissful_wozniak
local/phoenix
sha256:84b71bd343938a4eb482fce3f295b44c4c5872ac32d883aa900c6e6092c26bcd
30
6.Dockerイメージを保存する
Dockerイメージが保存されていることを確認します
元となったDockerプロセスは停止しておきます
今後、Phoenixを使う際は、保存したDockerイメージを以下の
通り起動するようにします
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local/phoenix latest 4c81c5756057 1 second ago 684MB
trenpixster/elixir latest 760616f3ebe6 2 months ago 684MB
> docker run --rm -v /c/piacere/code:/code -p 4000:4000 -i -t local/phoenix
/bin/bash
> docker stop blissful_wozniak
31
7.高速なWeb&APIを気軽に開発
32
7.高速なWeb&APIを気軽に開発
今回は、Phoenixを使った、Webアプリ & REST APIの開発
の基本的な手順についてご説明しました
PhoenixによるWebアプリやREST APIの構築が「そこまで難し
く無いかも?」と思っていただけたら、この入門としては大成功です
Phoenixは、WebアプリおよびJSON APIの気軽な構築を実現
しつつ、高速・並行処理も両立できる、革新的なWebアプリケー
ションフレームワークのため、今後、多用されることが想定されます
今回は、高負荷な処理について言及しませんでしたが、別途、
他のフレームワークとの性能比較を行う回も設けたいと思います
仕事でも趣味でも、プログラミングライフをエンジョイしてください!

More Related Content

What's hot

about Thrift
about Thriftabout Thrift
about ThriftNaoya Ito
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発Nomura Yusuke
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium MobileNaoya Ito
 
Real world android akka
Real world android akkaReal world android akka
Real world android akkaTaisuke Oe
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016Kohei Hoshi
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + PerlNaoya Ito
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料Makoto Uehara
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTMasahiro Nagano
 
20150219 初めての「embulk」
20150219 初めての「embulk」20150219 初めての「embulk」
20150219 初めての「embulk」Hideto Masuoka
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.pptNaoya Ito
 
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Hideki Saito
 
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4Shinpei Ohtani
 
初めてのPerl
初めてのPerl初めてのPerl
初めてのPerlarvelt s
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 

What's hot (20)

Terraform
TerraformTerraform
Terraform
 
about Thrift
about Thriftabout Thrift
about Thrift
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
 
ES6 in Practice
ES6 in PracticeES6 in Practice
ES6 in Practice
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
 
Real world android akka
Real world android akkaReal world android akka
Real world android akka
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
Scripting Layer for Android + Perl
Scripting Layer for Android + PerlScripting Layer for Android + Perl
Scripting Layer for Android + Perl
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
 
20150219 初めての「embulk」
20150219 初めての「embulk」20150219 初めての「embulk」
20150219 初めての「embulk」
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
 
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
 
初めてのPerl
初めてのPerl初めてのPerl
初めてのPerl
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
Reading Anorm 2.0
Reading Anorm 2.0Reading Anorm 2.0
Reading Anorm 2.0
 
Tottoruby 20110903
Tottoruby 20110903Tottoruby 20110903
Tottoruby 20110903
 

Similar to Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります

Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンAkira Inoue
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -Masaki Takeda
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーションAkira Inoue
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめAkira Inoue
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -SORACOM, INC
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌A AOKI
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像Akira Inoue
 
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめAkira Inoue
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 

Similar to Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります (20)

Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep diveAmazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
UnicastWS vol.2
UnicastWS vol.2UnicastWS vol.2
UnicastWS vol.2
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
 
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 

More from fukuoka.ex

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」fukuoka.ex
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」fukuoka.ex
 
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」fukuoka.ex
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」fukuoka.ex
 
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますfukuoka.ex
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」fukuoka.ex
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」fukuoka.ex
 
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」fukuoka.ex
 

More from fukuoka.ex (8)

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
 
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
 
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
 
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
 

Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります