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