Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで

3,917 views
3,617 views

Published on

CKANプロジェクトの入門とデプロイ・CIなどの話題を扱いました

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,917
On SlideShare
0
From Embeds
0
Number of Embeds
50
Actions
Shares
0
Downloads
32
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで

  1. 1. CKANプロジェクトのFork、環境構築、デプロイ、CIまで - さわって試して理解する、CKANの基本 - 2013/8/31 Code for Japan テクニカルチームミーティング Code for Japan 勉強会 テクニカルチーム 山田 直行
  2. 2. 発表者について • 山田 直行(やまだ なおゆき) インフラ寄りのソフトウェアエンジニア (DevOps - インフラ設計/サービス運用/負荷対策/運用自動化) • 株式会社AMoAd勤務(サイバーエージェントから出向) • ネットワーク広告の配信・管理システムの開発と運用 • 最近取り組んでいるのはRuby on RailsとAmazon Web Service • AWS認定ソリューションアーキテクト アソシエイト
  3. 3. アジェンダ • CKANについて アプリケーション概要 使われている技術 • CKANの環境構築とデプロイ GitHubのプロジェクトからのFork Amazon EC2のサーバーへのデプロイ、公開 • 運用ツール 継続的に開発するために:Jenkins(継続的インテグレーションツール) 安定的に運用するために:Zabbix (サーバー負荷・死活監視ツール)
  4. 4. CKANとは
  5. 5. アプリケーション概要 • http://ckan.org • Comprehensive Knowledge Archive Networkの略 • オープンソースのデータ管理プラットフォーム データの分野におけるapt-getのような存在 を目指している • Open Knowledge Foundationが中心となってメンテナンス • カスタマイズされて多くの政府・行政機関・NGOなどで使われている http://ckan.org/instances/ • 日本語化はほぼ100%されていて、日本でのプロジェクトも
  6. 6. 世界中の多くのサイトで使われています • ケース集 http://ckan.org/instances/# • 米国政府のデータポータルがCKANで再ローンチ http://okfn.jp/2013/05/28/usdatagov-ckan/ おそらくこれ http://catalog.data.gov/dataset • オープンソース https://github.com/okfn/ckan http://docs.ckan.org/de/latest/index.html •
  7. 7. 日本での動き • CKAN日本語化プロジェクト | Linked Open Data Initiative http://linkedopendata.jp/?p=64 • ようこそ - CKAN日本語 http://data.linkedopendata.jp/ • Facebookグループ https://www.facebook.com/groups/327233017355370/ • ようこそ - ビッグデータ・オープンデータ活用推進協議会オープンデータポー タル http://chiba-ckan.cloudapp.net/
  8. 8. CKANについて:使われている技術 Python Pylons/Jinja2/Bootstrap Apache mod-wsgi ウェブサーバー アプリケーション データベース Solr (+tomcat) PostgreSQL sql alchemy ・リレーショナルデータベースの代表格のPostgreSQLと、高速な全文検索に優 れるSolrとの使い分けをしている。全てオープンソースで、古すぎず新しすぎず の手堅いソフトウェア群で構成されている印象
  9. 9. CKANの環境構築とデプロイ • GitHubからプロジェクトをfork https://github.com/okfn/ckan ↓ https://github.com/chokkoyamada/ckan こちらを使う • サーバー:Amazon EC2 small instanceを利用 CentOS 6.3 AMI (仮想マシンのイメージ) • ドキュメントに沿ってコマンドを打っていきセットアップ https://github.com/okfn/ckan/wiki/How-to-install-CKAN-2.0-on-CentOS-6.3-(new) ※developmentか、productionか、環境設定に注意
  10. 10. 起動させて公開設定 • http://ckan.kirishikistudios.com • 固定IPアドレスを割り当て、 そこにDNSのAレコードでドメ インckan.kirishikistudios.comを 割り当て • ポートは80(HTTP)(グローバル) と22(SSH)(特定IPのみ)をオープ ン
  11. 11. 実際にサーバーを立ててみました • http://ckan.kirishikistudios.com/ 適当にデータセットを追加したりしてデモします。 データの登録・閲覧 グループ機能、組織機能 検索 API ユーザー登録 グラフの描画 地図との連動
  12. 12. 運用:一連の流れを自動で CKANサーバー CIサーバー(Jenkins) 監視サーバー(Zabbix) Deploy Push or Pull Request Hook Monitor Test Merged
  13. 13. 運用ツール1:継続的に開発して更新する • • オープンソースのCI(継続的インテグレーション)ツール • やれることは多岐にわたるが、主にアプリケーションの開発と運用の仲立ち を行い、定型的な作業の自動化とレポーティングを得意とする • GitHubからのソース取得、自動テスト、デプロイ、バックアップ等、 これ1つでできる
  14. 14. 運用ツール2:安定的に運用する • オープンソースのサーバー監視ツール • 死活監視とパフォーマンス監視の両方の機能を備え、 サーバー監視タスク一般をこれ1つで手広くこなせる • アラートレベルと通知の方法をカスタマイズできるのに加え、 障害時の自動一次対応を設定しておくことも可能
  15. 15. • CKANのプロジェクトをオフィシャルのGitHubレポジトリからForkしてきて自 分のサーバーに環境を作るところまで行いました。 • クラウドサービスのAmazon Web Service(AWS)を使うと比較的簡単にサー バーの構築やDNSの設定を行うことができます。 • Jenkinsを使うとGitHubへのPushを検知して最新のソースコードをサーバーに デプロイするなどの任意のジョブを実行できます。 • Zabbixを使うとサーバーの監視が統合的に行えます。 • 参加・貢献しやすいプロジェクトの条件って? • ウェブサービスを楽に安定して運用しつづけるためには? まとめ

×