JobSchedulerが使えるのかどうか試すために試しにインストールしてみた件 (2)
はい、どーも。大兼なにがしです。
連投ですわ。
前回、自分のなかで勝手にジョブスケデューラーを入れてみようって話になったわけですが。
そこでインストールしてみなきゃ話にならん!!って話になったわけですわ。
つーわけで実際に色々とやってみて分かったインストール手順なり、なんなりを以下に書いていってみますね。
【※※※Warning!! 上級者参照注意!! おことわり ※※※】
なんと言ってもレベルが低いんで参考にならんかもしれんですがね…
てか見るのやめて欲しいくらいだわ。
まぁ、クレームはお断りだが質問は受け付けとります。
一緒に考えることになりますがね。
■インストール環境情報
(1)仮想マシン関連
[1]インストールタイプ
Amazon Linux AMI タイプ:HVM AMI (M1 ミディアムインスタンス)
※お金取られてます。すみません…
[2]メモリ:
2GB
(2)OS関連
[1]使用OS
[2]カーネルバージョン:
3.10.0-229.7.2.el7.x86_64
ついで、JobSchedulerのインストール要件を書いときますわ。
■インストール要件(JobScheduler-Engine/Object Editor(JOE)/Operations Center(JOC)/Infomation Dashboard(JID))
※Agentは後ほどで勘弁ですわ。
CPU
メモリ
- メモリが2GB以上必要。
OS
- Windows Vista; Windows 7 & Windows server 2008
- Linux starting with kernel 2.4
- Sparc Solaris 8 / 9 / 10 and Solaris (x86)
- HP-UX 11 (IA64 Itanium)
- IBM AIX
- Oracle 8.1.7, 9.2, 10g, 11g
- SQL Server 2000, 2005
- DB2 8.x
- MySQL version 5.x
- PostgreSQL 8.x, 9.x
- Firebird 1.5
はい、よう分からんけどとりあえずは情報整理できましたっと。
じゃあ具体的に何やりゃあ良いのよっつーのは次の回で書いときます。
JobSchedulerが使えるのかどうか試すために試しにインストールしてみた件 (1)
はい、どーも。
一応名ばかりAsobo会メンバーの大兼です。
私もメンバーである以上は何も活動しないのは釈然としない(AWS使わしてもらってるし…)ので、
一応記事を書いてみることにしました。
※あ~ここから先は時間を無駄にしても問題ない人だけが記事を見るようにしてくださいね。
1回目は愚痴とかがメインになりそうなので…
時間を無駄にしたくない人は2回目以降の記事を読むようにお願いします。
丁寧な文体もここから先は崩れていきますのでお目汚しをご勘弁下さい。
あっそうだ、最初にお知らせを1個入れておきます。
2015/8/1のAsobo会には参加できないことになりました。
何か兄貴の知り合いの広島カープ応援しようの会に参加してこいということになりまして、
本当は超行きたくないのにロジ○○シン○○○をする予定なのに…
それでもこのクソ蒸し暑い中、横浜スタジアムに行くことになっています。
本当はAsobo会に行きたい。大塚さんに会いたい。
はい、というわけで第1回の掲載になるわけですが…
前回のAsobo会で大塚さんと再会した際にフリーのジョブ管理ツールの存在を聞いたんです。
その名も「JobScheduler!!」
なんかそのまんまやん…それがドイツ流なのか…
それでどないなもんなのか興味をもったんで一応書いてみますよ。
執筆始める前にわいの拙いITキャリアの中で出会ったジョブ管理システムとかいう代物について一応記載しますわ。
(1)JP1 AutomaticJobManagementSystem3(Manager/Agent)
これはいわずもがな、JP1を国内No1シェアとかいう輝かしい功績に導いている
代物ですわ。でもその中身は…はてそないな言うほどいいもんかなと。
官庁系のシステムはJP1が大好きだから支持されているのか…
マニュアルが日本語だからなのかよう分からん位ですか。
こいつに関しては何の未練もないですわ。
タイムスリップしてSymantec NetBackUp のバックアップジョブが
こけて電算室に閉じ込められてた理由を調べたい位ですわ。
(2)HP Software HP JobCenter
これってJP1と何が違うの?
アイコンの形とシンボルが変わった位か…
HPってつけば何でも高級になるんですか…
美味しんぼの雁屋哲も言っとったで、日本人はブランドをありがたすぎると。
(3)NEC SystemWalker
正直これのことはよう分からんのですけどね。
ただ、専用のコマンドが体系づけられて使いやすかったことだけが印象的でしたよ。
なんちゅうか悪い人ではなさそうだな程度の印象ですわ。
…というわけであるかないかも分からないけど、
フリーという名の楽園を求めてJobSchedulerに手を出したわけですよ。
JobSchduler(ジョブスケデューラー)なるものがいかなるものなのか。
AWS上のRHEL7に突っ込んでみて動かしてみようってわけですわ。
次の記事で時間が許す限り、手順なりスケデューラーさんの良い所なり紹介していきますわ。
confluence(こんふるえんす)を使ってみる(posgreSQLのインストール)
confluenceを使うためにDBサーバであるpostgreSQLをインストールする
インストールするバージョンについてはシステム用件を確認
# yum install postgresql 読み込んだプラグイン:fastestmirror, security インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package postgresql.x86_64 0:8.4.20-3.el6_6 will be インストール --> 依存性の処理をしています: postgresql-libs(x86-64) = 8.4.20-3.el6_6 のパッケージ: postgresql-8.4.20-3.el6_6.x86_64 --> 依存性の処理をしています: libpq.so.5()(64bit) のパッケージ: postgresql-8.4.20-3.el6_6.x86_64 --> トランザクションの確認を実行しています。 ---> Package postgresql-libs.x86_64 0:8.4.20-3.el6_6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました =============================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 =============================================================================================== インストールしています: postgresql x86_64 8.4.20-3.el6_6 updates 2.6 M 依存性関連でのインストールをします。: postgresql-libs x86_64 8.4.20-3.el6_6 updates 202 k トランザクションの要約 =============================================================================================== インストール 2 パッケージ 総ダウンロード容量: 2.8 M インストール済み容量: 14 M これでいいですか? [y/N]n ユーザーコマンドを終了しています #
インストールしようとしたらシステム用件であるバージョンでは無いためキャンセルしてバージョン9.3用のリポジトリを追加
# wget http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm --2015-07-30 23:56:59-- http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm yum.postgresql.org をDNSに問いあわせています... 174.143.35.196 yum.postgresql.org|174.143.35.196|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 5240 (5.1K) [application/x-redhat-package-manager] `pgdg-centos93-9.3-1.noarch.rpm' に保存中 100%[=======================>] 5,240 --.-K/s 時間 0s 2015-07-30 23:56:59 (125 MB/s) - `pgdg-centos93-9.3-1.noarch.rpm' へ保存完了 [5240/5240]
# rpm -ivh pgdg-centos93-9.3-1.noarch.rpm 警告: pgdg-centos93-9.3-1.noarch.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY 準備中... ########################################### [100%] 1:pgdg-centos93 ########################################### [100%] #
# yum repolist 読み込んだプラグイン:fastestmirror, security Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp pgdg93 | 3.6 kB 00:00 pgdg93/primary_db | 122 kB 00:00 リポジトリー ID リポジトリー名 状態 base CentOS-6 - Base 6,518 epel Extra Packages for Enterprise Linux 6 - x86_64 11,742 extras CentOS-6 - Extras 38 pgdg93 PostgreSQL 9.3 6 - x86_64 259 updates CentOS-6 - Updates 1,370 repolist: 19,927 #
バージョン9.3を確認しインストール
# yum list | grep ^postgresql93 postgresql93.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-contrib.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-debuginfo.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-devel.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-docs.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-jdbc.x86_64 9.3.1101-1PGDG.rhel6 pgdg93 postgresql93-jdbc-debuginfo.x86_64 9.3.1101-1PGDG.rhel6 pgdg93 postgresql93-libs.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-odbc.x86_64 09.03.0400-1PGDG.rhel6 pgdg93 postgresql93-odbc-debuginfo.x86_64 09.03.0400-1PGDG.rhel6 pgdg93 postgresql93-plperl.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-plpython.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-pltcl.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-python.x86_64 4.1.1-1PGDG.rhel6 pgdg93 postgresql93-python-debuginfo.x86_64 4.1.1-1PGDG.rhel6 pgdg93 postgresql93-server.x86_64 9.3.9-1PGDG.rhel6 pgdg93 postgresql93-test.x86_64 9.3.9-1PGDG.rhel6 pgdg93 #
# yum install postgresql93-server.x86_64 読み込んだプラグイン:fastestmirror, security インストール処理の設定をしています Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.kddilabs.jp * extras: www.ftp.ne.jp * updates: ftp.riken.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package postgresql93-server.x86_64 0:9.3.9-1PGDG.rhel6 will be インストール --> 依存性の処理をしています: postgresql93 = 9.3.9-1PGDG.rhel6 のパッケージ: postgresql93-server-9.3.9-1PGDG.rhel6.x86_64 --> 依存性の処理をしています: libpq.so.5()(64bit) のパッケージ: postgresql93-server-9.3.9-1PGDG.rhel6.x86_64 --> トランザクションの確認を実行しています。 ---> Package postgresql93.x86_64 0:9.3.9-1PGDG.rhel6 will be インストール ---> Package postgresql93-libs.x86_64 0:9.3.9-1PGDG.rhel6 will be インストール --> 依存性解決を終了しました。 依存性を解決しました ========================================================================================= パッケージ アーキテクチャ バージョン リポジトリー 容量 ========================================================================================= インストールしています: postgresql93-server x86_64 9.3.9-1PGDG.rhel6 pgdg93 4.1 M 依存性関連でのインストールをします。: postgresql93 x86_64 9.3.9-1PGDG.rhel6 pgdg93 1.0 M postgresql93-libs x86_64 9.3.9-1PGDG.rhel6 pgdg93 192 k トランザクションの要約 ========================================================================================= インストール 3 パッケージ 総ダウンロード容量: 5.3 M インストール済み容量: 21 M これでいいですか? [y/N]y パッケージをダウンロードしています: (1/3): postgresql93-9.3.9-1PGDG.rhel6.x86_64.rpm | 1.0 MB 00:01 (2/3): postgresql93-libs-9.3.9-1PGDG.rhel6.x86_64.rpm | 192 kB 00:01 (3/3): postgresql93-server-9.3.9-1PGDG.rhel6.x86_64.rpm | 4.1 MB 00:03 -------------------------------------------------------------------------------------------- 合計 733 kB/s | 5.3 MB 00:07 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています 警告: RPMDB は yum 以外で変更されました。 インストールしています : postgresql93-libs-9.3.9-1PGDG.rhel6.x86_64 1/3 インストールしています : postgresql93-9.3.9-1PGDG.rhel6.x86_64 2/3 インストールしています : postgresql93-server-9.3.9-1PGDG.rhel6.x86_64 3/3 Verifying : postgresql93-libs-9.3.9-1PGDG.rhel6.x86_64 1/3 Verifying : postgresql93-9.3.9-1PGDG.rhel6.x86_64 2/3 Verifying : postgresql93-server-9.3.9-1PGDG.rhel6.x86_64 3/3 インストール: postgresql93-server.x86_64 0:9.3.9-1PGDG.rhel6 依存性関連をインストールしました: postgresql93.x86_64 0:9.3.9-1PGDG.rhel6 postgresql93-libs.x86_64 0:9.3.9-1PGDG.rhel6 完了しました! #
# yum list installed | grep ^postgresql postgresql93.x86_64 9.3.9-1PGDG.rhel6 @pgdg93 postgresql93-libs.x86_64 postgresql93-server.x86_64 #
postgreSQLの起動 ※初回起動前に初期化が必要
# /etc/init.d/postgresql-9.3 status postgresql-9.3 は停止しています # # /etc/init.d/postgresql-9.3 start /var/lib/pgsql/9.3/data is missing. Use "service postgresql-9.3 initdb" to initialize the cluster first. [失敗] # # service postgresql-9.3 initdb データベースを初期化中: [ OK ] # # /etc/init.d/postgresql-9.3 start postgresql-9.3 サービスを開始中: [ OK ] #
postgresユーザが作成されたことを確認
# id postgres uid=26(postgres) gid=26(postgres) 所属グループ=26(postgres) #
postgresユーザにスイッチ
# su - postgres -bash-4.1$ id -un postgres -bash-4.1$
ユーザ作成
-bash-4.1$ psql postgres=# create role confluencedb_user PASSWORD 'xxxxxxxx' CREATEDB LOGIN; CREATE ROLE postgres=# postgres=# du ロール一覧 ロール名 | 属性 | メンバー -------------------+----------------------------------------------------------------------+---------- confluencedb_user | DBを作成できる | {} postgres | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション | {} postgres=#
template0(まっさら)を指定しconfluencedbを作成
postgres=# create database confluencedb owner confluenceDB_user template=template0 encoding='utf-8'; CREATE DATABASE postgres=# postgres=# l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権 --------------+-------------------+------------------+-------------+-------------------+----------------------- confluencedb | confluencedb_user | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 行) postgres-# q -bash-4.1$
confluence(こんふるえんす)を使ってみる(インストール)
confluence(wikiのようなコミュニケーションような文書管理のようなツール)の無料体験版(30日)をインストールし使ってみる
◆参考 wikipedia confluenceの企業サイト
◆環境 OS:CentOS6.6(2.6.32-504.30.3.el6.x86_64) PP:confluence5.8.6
confluenceをダウンロード
# wget https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.8.6-x64.bin
インストール 数回応答要求があるが今回は全てでデフォルト設定
# sh ./atlassian-confluence-5.8.6-x64.bin Unpacking JRE ... Starting Installer ... Jul 29, 2015 2:39:07 PM java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. Jul 29, 2015 2:39:07 PM java.util.prefs.FileSystemPreferences$2 run INFO: Created system preferences directory in java.home. This will install Confluence 5.8.6 on your computer. OK [o, Enter], Cancel [c] Choose the appropriate installation or upgrade option. Please choose one of the following: Express Install (uses default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing Confluence installation [3] Where should Confluence 5.8.6 be installed? [/opt/atlassian/confluence] Default location for Confluence data [/var/atlassian/application-data/confluence] Configure which ports Confluence will use. Confluence requires two TCP ports that are not being used by any other applications on this machine. The HTTP port is where you will access Confluence through your browser. The Control port is used to Startup and Shutdown Confluence. Use default ports (HTTP: 8090, Control: 8000) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2] Confluence can be run in the background. You may choose to run Confluence as a service, which means it will start automatically whenever the computer restarts. Install Confluence as Service? Yes [y, Enter], No [n] Extracting files ... Please wait a few moments while Confluence starts up. Launching Confluence ... Installation of Confluence 5.8.6 is complete Your installation of Confluence 5.8.6 is now ready and can be accessed via your browser. Confluence 5.8.6 can be accessed at http://localhost:8090 Finishing installation ... #
ブラウザでhttp://:(IPADDR}:(port)でアクセス ポートインストール時に設定した番号 ※デフォルトは8090
画面を日本語化
トライアル版のインストールを選択
アドオンの選択 ※今回は何も選択しない
アカウントが無いためアカウントがないを選択
アカウント情報を入力しアカウントとライセンスキーを作成を押下 ※会社名は入力しなくてもよい
登録したメールアドレスで受信したメールにある[Verify my email address]をクリック
マイアカウントにアクセスしライセンスを確認
Ruby on Rails のWebアプリに Bootstrap を適用する
レスポンシブWebサイトを簡単に効率よく作成するためのCSSフレームワークであるbootstrap
を使って
Ruby on Rails のWebアプリの見栄えをよくしてみます。
前提条件
以下の記事を参考に、Scaffold を使用した DBアプリケーションが作成済みであること
使用環境
Amazon Linux AMI release 2015.03 (x86_64) Ruby 2.2.2 Rails 4.2.3
手順
Gemfile に以下の通り追加して、bootstrap に必要な gem パッケージをインストールします。
$ cd ~/sample/ $ vi Gemfile +gem 'less-rails' +gem 'therubyracer' +gem 'execjs' +gem 'twitter-bootstrap-rails' $ bundler install
続けて bootstrap をインストールします。
$ rails g bootstrap:install
前の手順で作成していた users に bootstrap を適用します。
$ rails g bootstrap:themed users conflict app/views/users/index.html.erb Overwrite /home/ec2-user/sample/app/views/users/index.html.erb? (enter "h" for help) [Ynaqdh] force app/views/users/index.html.erb conflict app/views/users/new.html.erb Overwrite /home/ec2-user/sample/app/views/users/new.html.erb? (enter "h" for help) [Ynaqdh] force app/views/users/new.html.erb conflict app/views/users/edit.html.erb Overwrite /home/ec2-user/sample/app/views/users/edit.html.erb? (enter "h" for help) [Ynaqdh] force app/views/users/edit.html.erb conflict app/views/users/_form.html.erb Overwrite /home/ec2-user/sample/app/views/users/_form.html.erb? (enter "h" for help) [Ynaqdh] force app/views/users/_form.html.erb conflict app/views/users/show.html.erb Overwrite /home/ec2-user/sample/app/views/users/show.html.erb? (enter "h" for help) [Ynaqdh] force app/views/users/show.html.erb
このままだと bootstrap が存在しないと怒られるので、パスを以下の通り編集します。
$ vi ~/sample/app/assets/javascripts/application.js @@ -12,6 +12,6 @@ // //= require jquery //= require jquery_ujs -//= require twitter/bootstrap +//= require bootstrap //= require turbolinks //= require_tree .
サーバーを停止して、$ rails s -b 0.0.0.0
コマンドで再度起動します。
ブラウザで表示すると、bootstrap が適用されて見栄えが良くなったのを確認できます。
Scaffold を利用して簡単なDBアプリケーションを作成する
Ruby on Rails では、Scaffoldという 一覧表示、詳細表示、新規作成、編集、削除を行うための モデル、コントローラー、ビューの雛形を生成してくれる便利なコマンドがあります。
その Scaffold を使用して、簡単なDBアプリケーションを作成していきます。
前提条件
以下の記事を参考に、Ruby on Rails 環境のセットアップ、およびsample
というアプリケーションが作成されていること
使用環境
Amazon Linux AMI release 2015.03 (x86_64) Ruby 2.2.2 Rails 4.2.3
手順
今回は、ユーザ管理(ユーザの一覧表示、詳細表示、登録、削除)のアプリケーションを作成していきます。
以下の通り、user テーブルを以下の通りにします。
カラム名 | 型 | 説明 |
---|---|---|
uid | string | ユーザID |
string | メールアドレス | |
passwd | string | パスワード |
comment | text | コメント |
ユーザ管理を行うための Ruby on Rails の雛形を以下のコマンドを使用して作成します。
$ cd ~/sample/
$ rails g scaffold user uid email passwd comment:text
上記のrails g 〜
の部分は、以下のコマンドを実行しても同じ結果を得られます。
$ rails generate scaffold user uid:string passwd:string comment:text
以下のファイルが生成されていることが確認できます。
sample └── app ├── controllers(コントローラ) │ └── users_controller.rb(user用のビュー) ├── models(モデル) │ └── user.rb(user用のモデル) └── views(ビュー) └── users(user用のビュー) ├── _form.html.erb(他のビューからの参照で使用) ├── edit.html.erb(編集) ├── index.html.erb(一覧表示) ├── new.html.erb(新規作成) └── show.html.erb(詳細表示)
それでは、試しにブラウザから表示させてみましょう。
サーバを起動していない場合は、以下のコマンドで起動します。
$ rails s -b 0.0.0.0
ブラウザからのURLでアクセスしてみましょう。
http://<IPアドレス>:3000/users
すると以下のエラーが表示されますw
ActiveRecord::PendingMigrationError
データベース(sqlite3)にテーブルが定義されていないためです。
テーブルを作成していきますが、sqliteにアクセスしてcreate table
は面倒なので、
Ruby on Railsで用意されているマイグレーション機能を使用して一瞬でテーブルを作成しましょう。
マイグレーションの定義ファイルは、すでに Scaffold を使用した雛形を作成した際に、 以下の通り作成されています。
$ ll ~/sample/db/migrate/*_create_users.rb -rw-rw-r-- 1 ec2-user ec2-user 225 7月 19 03:19 /home/ec2-user/sample/db/migrate/20150719031944_create_users.rb
中を見るとテーブルを作成していることがわかります。
$ view ~/sample/db/migrate/20150719031944_create_users.rb class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :uid t.string :email t.string :passwd t.text :comment t.timestamps null: false end end end
DBのマイグレーションを実行し、確認します。
$ bundle exec rake db:migrate == 20150719031944 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0010s == 20150719031944 CreateUsers: migrated (0.0012s) ============================= $ sqlite3 ~/sample/db/development.sqlite3 ".schema users" CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "uid" varchar, "email" varchar, "passwd" varchar, "comment" text, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);
画面が表示されました。
以上で終了となります。 次回の記事で、bootstrap を使用して見栄えを良くしていきたいと思います。
MVCとは
Webアプリケーションを開発をする上で必要となる基本概念である MVC について説明していきます。
MVC とは、Model、View、Controller の頭文字をとったもので、簡単に言えば、役割ごとに担当する部分を分けようという概念です。
MVC を使用することで、なにかしら変更があった際の改修対象を最小限に抑えられるというメリットがあります。
人やフレームワークによって若干の違いはあるものの概ね以下の通りとなります。
各要素の説明
Model(モデル)
DBのデータ操作およびビジネスロジックを担当します。
DB側の変更や、計算方法といったビジネスロジックの変更については、モデルにて吸収します。
View(ビュー)
プレゼンテーションにあたる部分を担当します。
Webデザイン等の変更については、ビューにて吸収します。
Controller(コントローラ)
入力の受け取り、および、各種制御を行います。
ユーザ等からの入力によって動きが変わるような処理については、コントローラにて行います。
ポイント
MVCのそれぞれの機能を念頭において、どこに処理を記述するか決めていきます。
単純にデータを参照するだけの場合には、ビューから直接モデルを直接参照したり、
データの加工については、なるべくモデルに記載したりして
コントローラが肥大化しすぎないように気を付けましょう。