SlideShare a Scribd company logo
1 of 44
Download to read offline
Chef-SoloからItamae
に完全移行した話+
Itamae Meetup 2015/12/9
@toritori0318
自己紹介
• 鳥居 剛司 (@toritori0318/アルパカ大明神)
• 株式会社HAROiD
• http://www.haroid.co.jp/
• サーバ / オペレーションエンジニア
• Lua / Golang / Python / Node.js / Perl / Ruby
• 二児の父
Itamae
アジェンダ
• 弊社の事情
• インフラ
• 開発フロー
• 課題
• Chef-SoloからItamaeへの移行
• 移行した結果
• まとめ
弊社のインフラ事情
開発フロー
開発フロー
• 事前準備
• 独自configにvm情報追記/nodes.json作る/…
• AMI作成
• rake aws:up vm=<vm>
• rake aws:provision vm=<vm>
• rake aws:spec vm=<vm>
• rake aws:create_ami vm=<vm>
• クラスタ操作
• rake aws:cf:create_stack env=<env>
• rake aws:cf:update_stack env=<env> params=<params>
• rake aws:cf:delete_stack env=<env>
ツール
• Vagrant
• Vagrant-aws
• Vagrant-ami
• Chef-Solo
• Berkshelf
Itamae
Gemfile
Chef-Solo時代の課題
Chef-Solo+ Berkshelfの煩雑化
• コミュニティクックブック多用
• プロビジョニングが遅い
• Chef-Soloの終焉?
• そしてChef-Zeroへ…
_人人人人人人人人_
> 突然のItamae <
 ̄Y^Y^Y^Y^Y^Y^Y ̄
シンプルなChef
# install
gem install itamae
# 適当なレシピ作る
echo "package 'sl'" > recipe.rb
# itamae実行(ローカルホスト)
itamae local recipe.rb
# itamae実行(リモートホスト)
itamae ssh -u hogeuser -h xxx.xxx.xxx.xxx recipe.rb
# itamae実行(Vagrant)
itamae ssh --vagrant --host vm_name recipe.rb
シンプルなChef
# attributeを定義したjsonを指定して実行
itamae local -j node.json recipe.rb
# レシピを複数つなげて実行
itamae local recipe01.rb recipe02.rb recipe03.rb
# dry-run
itamae local --dry-run recipe.rb
# ohai情報を参照
itamae local --ohai recipe.rb
_人人人人人人_
> これだ! <
 ̄Y^Y^Y^Y^Y ̄
Chef-Soloからの移行
ただし既存のフローや構造は(ほぼ)そのままで
ディレクトリ/ファイル構造
(Chef-Solo)
PROJECT_ROOT/
cookbooks/ # Berksfileクックブック群
site-cookbooks/ # プロジェクト固有クックブック群
roles/ # ロール群
nodes/ # vm毎のnode.json
vm_app.json
vm_db.json
...
data_bags/ # 秘密情報
Berksfile # Berksfile
Vagrantfile # Vagrantfile
ディレクトリ/ファイル構造
(Itamae)
PROJECT_ROOT/
cookbooks/ # プロジェクト固有クックブック群
base-cookbooks/ # 共通クックブック群
roles/ # ロール群
nodes/ # vm毎のnode.json
vm_app.json
vm_db.json
...
secret/ # 秘密情報
entrypoint.rb # Itamaeから実行されるレシピのエントリポイント
Gemfile # Itamaeプラグインなどの依存が書かれたGemfile
Vagrantfile # Vagrantfile
nodes/json(Chef-Solo)
{
"td_agent": {
"plugins": [
"config-expander",
"redeliver",
"map",
"forest",
"multi-format-parser"
]
},
"environment": "development",
"recipes": [
"role[base]",
"role[app]",
"recipe[td-agent::install]"
]
}
nodes/json(Itamae)
{
"td_agent": {
"plugins": [
"config-expander",
"redeliver",
"map",
"forest",
"multi-format-parser"
]
},
"environment": "environments/development.rb",
"recipes": [
"./roles/base.rb",
"./roles/app.rb",
"./cookbooks/td-agent/install.rb"
]
}
entrypoint.rb
# entrypoint.rb
# nodes.jsonに記述されているrecipeを順番に読むだけのファイル
node["recipes"] = node["recipes"] || []
node["recipes"].each do |recipe|
include_recipe recipe
end
# itamae実行時にentrypoint.rbを指定
itamae local -j node.json entrypoint.rb
クックブック(Chef-Solo)
<cookbook_name>
CHANGELOG.md
README.md
attributes/
default.rb
definitions/
files/
libraries/
metadata.rb
providers/
recipes/
default.rb
クックブック(Itamae)
<cookbook_name>
attributes.rb # attributesをまとめたファイル
xxx_recipe.rb # なんかレシピ
templates/ # テンプレートファイル
xxx.conf.erb
Berkshelf > Gemfile
# itamae
gem 'json'
gem 'itamae'
gem 'itamae-secrets'
# plugins
gem 'itamae-plugin-recipe-supervisor', 
:github => 'toritori0318/itamae-plugin-recipe-supervisor'
gem 'itamae-plugin-recipe-consul', 
:github => 'toritori0318/itamae-plugin-recipe-consul'
Gemfile
Role
include_recipe "../cookbooks/nginx/install.rb"
include_recipe "../cookbooks/app/deploy.rb"
include_recipe "../cookbooks/app/supervisor.rb"
roles/app.rb
attributes
# includeするだけ
include_recipe './attributes.rb'
attributes.rb
# デフォルト値指定
node.reverse_merge!(
td_agent: {
includes: [],
plugins: %w{
forest
},
},
)
recipe.rb
Qiita書いた時に
課題になってたこと
Databags
↓
itamae-secrets
itamae-secrets
# インストール
gem install itamae-secrets
# ベースディレクトリを設定ファイルに書いとく
echo 'base: ./secret' >> .itamae-secrets.yml
# 秘密 生成 > ‘<basedir>/keys/default’
itamae-secrets newkey --method=aes-passphrase
(パスフレーズ入力)
# 値保存
itamae-secrets set itakey itavalue
# 値取得
itamae-secrets get itakey
itamae-secrets
# require
require 'itamae/secrets'
# 秘密情報格納ディレクトリ指定
node[:secrets] = Itamae::Secrets(File.join(__dir__, 'secret'))
# 値取得
itakey = node[:secrets][:itakey]
recipe.rb
itamae-secrets
• .gitignoreに秘密 ディレクトリ指定するのを忘
れずに!
echo 'secret/keys' >> .gitignore
Chef-Server
↓
Consul?
ex) Consulと組み合わせて
ロール単位にレシピ実行
# 1. 各ノードはイベントwatchしとく
consul watch -type event -name itamae /path/to/watch_itamae.sh
# 2. レシピをgit(or S3)にアップロードしておく
# 3. プロビジョニングしたいタイミングでevent発行
consul event -name itamae -service web 'vm=web recipe=nginx'
watch_event_itamae.sh
# 標準入力からペイロード受け取り
STDIN_STR=$(cat -)
PAYLOAD=`echo $STDIN_STR | jq -r '.[0] .Payload' | base64 -d`
# key=value の組をパースしてvm名やrecipeを得る (snip)
# リポジトリ(or S3) からダウンロード
git clone http://hogehoge/itamae-recipes.git /tmp/itamae-recipes
# itamae実行
itamae local --node-json nodes/${VM}.json ${RECIPE}
※やっていること
https://gist.github.com/toritori0318/0ad3aab875c73f68eaf3
Itamae移行後
Pros
• 全体的にスリム化
• レシピ / 構造がスッキリ
• include_recipe / package / template / service / execute
で大抵食っていける
• プロビジョニングが軽く/速くなった
• 問題解決しやすくなった
• レシピの問題
• ツール自体の挙動
Cons
• エコシステム
• Snippetsサイトがあると良いのかも…?
まとめ
まとめ
• Chef-Soloから移行して幸せになった話
• 基本的な使い方であれば移行して困る場面は少ないはず
• 移行自体も思っていたより簡単
• もちろんChefが最適な環境もあるので適材適所
• むしろ Itamae > Chef は十分あり
• エコシステムはもう少し…
• レシピはどんどんシェアしましょう
https://github.com/itamae-kitchen/itamae/wiki/Best-
Practice
現在はオフィシャルWikiに
ベストプラクティスが掲載されています
参考
参考
• 今回のプロジェクト構成サンプル
• ベーシック
• https://github.com/toritori0318/itamae-sample-project
• environmentsバージョン
• https://github.com/toritori0318/itamae-sample-project/
tree/environments_version
• itamae-secretsバージョン
• https://github.com/toritori0318/itamae-sample-project/
tree/itamae-secrets-version
ご清聴
ありがとうございました

More Related Content

What's hot

Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてYuuki Namikawa
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalkBIGLOBE Tech Talk
 
入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalkBIGLOBE Tech Talk
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacTakeshi Komiya
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみたTakahiro Hidaka
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
 
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話Masayuki Morita
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Yoshinori Nakanishi
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudyTakeshi Komiya
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからTakeshi Kuramochi
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門Mahito Ogura
 
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
consul &  consul-alerts を使った監視システム (hbstyle-2015-01-08)consul &  consul-alerts を使った監視システム (hbstyle-2015-01-08)
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)YOSHIKAWA Ryota
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境ast_j
 

What's hot (20)

Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについてChefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
 
Yohes kitchen
Yohes kitchenYohes kitchen
Yohes kitchen
 
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
 
NDS#31
NDS#31NDS#31
NDS#31
 
入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk入門 Chef Server #biglobetechtalk
入門 Chef Server #biglobetechtalk
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
 
Haikara
HaikaraHaikara
Haikara
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみた
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Redmine Ansible
Redmine AnsibleRedmine Ansible
Redmine Ansible
 
Chef社内勉強会(第1回)
Chef社内勉強会(第1回)Chef社内勉強会(第1回)
Chef社内勉強会(第1回)
 
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
consul &  consul-alerts を使った監視システム (hbstyle-2015-01-08)consul &  consul-alerts を使った監視システム (hbstyle-2015-01-08)
consul & consul-alerts を使った監視システム (hbstyle-2015-01-08)
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 

Similar to Chef SoloからItamaeに完全移行した話+

CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウTakeshi Mikami
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyo20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyoichikaway
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugTakeshi Komiya
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)Yuuki Namikawa
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Taku Unno
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Sea Mountain
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例Koichi Shimozono
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)Yuuki Namikawa
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925Yu Ito
 
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料July Tech Festa 2014発表資料
July Tech Festa 2014発表資料Kenta Hattori
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE辰徳 斎藤
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションKazuhiro Hara
 

Similar to Chef SoloからItamaeに完全移行した話+ (20)

CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyo20120307 CakePHP Study in Tokyo
20120307 CakePHP Study in Tokyo
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsugChef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
web server
web serverweb server
web server
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
 
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
 
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Chef SoloからItamaeに完全移行した話+