• 検索結果がありません。

FUJITSU Cloud Service for OSS バッチ基盤 ご紹介資料

N/A
N/A
Protected

Academic year: 2022

シェア "FUJITSU Cloud Service for OSS バッチ基盤 ご紹介資料"

Copied!
29
0
0

読み込み中.... (全文を見る)

全文

(1)

FUJITSU Cloud Service for OSS

「バッチ基盤」ご紹介

2018年8月

富士通株式会社

・本資料の無断複製、転載を禁じます。

・本資料は予告なく内容を変更する場合がございます。 Version 1.01 注:バッチ基盤はサービスリニューアルに伴い、

2018年1月11日(木)より新規申込の受付を休止いたします。

なお、新規申込の受付再開時期については、別途FUJITSU Cloud Serviceポータルに 掲載いたします。

※リニューアルの際、本資料に記載している内容を変更することがあります。

(2)

目次

 バッチ基盤とは

 バッチ基盤の特長

 柔軟なジョブ分散実行環境

 バッチ実行基盤の迅速な提供

 運用を効率化するポータル画面

 業務処理開発に集中できる軽量なバッチフレームワーク

バッチフレームワーク ①ジョブ制御関数

バッチフレームワーク ②バッチアプリフレームワーク

バッチフレームワーク ③バッチユーティリティ

 WebAPIによるジョブネット起動

 課金の考え方について

 制限事項・注意事項

別紙) システム構成パッケージ一覧

(3)

前提

 本サービスはFUJITSU Cloud Service for OSS PFサービスの利用 が前提となります。

バッチ基盤はPFサービスのRDS(リレーショナルデータベース)のデータ を利用し、バッチ処理を行います。

PF(基幹業務基盤サービス)

疎結合化/データ仮想化/Anti-aging

バッチ基盤

分散実行/HPCファイルシステム/TCO削減

batch

実行

サーバ 高性能 ディスク ジョブ

スケジューラ

PF

Web AP

Web AP

監視

監視

RDS

RDS

参照/更新

(4)

ジョブの分散実行を実現するバッチ実行基盤

ジョブネットのジョブを計算ノードで分散実行し、リソースの有効利用で業務効率UPとTCO削減 を行います。

バッチ処理開発のためのバッチフレームワーク

業務処理と環境依存情報の分離により、バッチの業務処理開発への集中を促進します。

迅速・柔軟な実行基盤構築~業務運用

バッチ基盤とは

基幹業務に必要なバッチ実行基盤とバッチに特化した軽量のフレームワークを提供 するサービスです。

S

Java呼出

ユーティリティ呼出 Java Class呼出

リソース群

DB File WebAPI

ログ出力

リソース アクセス 制御

ログ

制御 性能実行

業務 基盤

実行制御

環境情報

E

業務処理開発に集中できるバッチフレームワーク 業務開発を

サポート

ユーティリティ

(EXE)

呼出も考慮

ジョブ制御

共有ディスク

HPC「京」由来の

高性能ディスク

「FEFS」※

開発資産の配備

マスタノード

ジョブのサーバ分散に よる柔軟な運用

実行環境配備 計算ノード群

※共有ディスクのFEFSは今後提供予定です。

(5)

時間的特性の大きいバッチでは、月末などに処理が集中し高負荷となります。高負荷時でも低負荷時でも、

FUJITSU Cloud Service for OSSのリソースプールから最適なリソースを柔軟に利用(起動/解放)しバッチ 処理を行い、処理性能UPとTCO削減を同時に満たします。

柔軟なジョブ分散実行環境

システム構成パッケージを選択・配備することで、ジョブスケジューラ、高性能共有ディスク、Javaランタイムなどバッチ 業務を実行できる環境が迅速に払い出されます。

バッチ実行基盤の迅速な提供

ジョブ制御関数、バッチアプリフレームワーク、バッチユーティリティを提供します。環境依存情報と業務処理を分離す ることでバッチの業務処理開発に集中できます。各種ログ取得機能も標準実装しています。

業務処理開発に集中できる軽量なバッチフレームワーク

バッチ基盤の特長

バッチ基盤はバッチの実行環境の迅速な提供、かつ柔軟な保守を可能とします。

バッチ業務の開発・構築~運用保守を幅広くカバーします。

計算ノードのスケール操作(スケールアウト/スケールイン)やメール通知などの機能をポータル画面にて提供しま す。これにより、運用作業の効率化が可能になります。

運用を効率化するポータル画面

WebAPIを利用してジョブネットを起動することができます。

ジョブネットを起動できるWebAPI

(6)

柔軟なジョブ分散実行環境

バッチ実行基盤は①ジョブ分散実行、②計算ノードのスケール制御、③高性能ファ イルシステムにより、柔軟なバッチ処理の実行とTCO削減を実現します。

aa ab

実行サーバ①

ac ba

実行サーバ②

実行サーバ

a0

b1 aa ab ac ba a1

ジョブスケジューラ(Systemwalker Operation Manager)

aaabac ba

分散実行キュー

分散実行キュー内のジョブを、

n台の実行サーバに割り当て て実行させます。

共有ディスク(FEFS)

① ジョブ分散実行

業務データ 業務ログ

バッチの分散実行 サーバは共有ディス ク(FEFS)と接続 し、高速IOかつセキ ュアなアクセスを可能 とします。

n

スケール・スケジューリング

予約によるスケールや、負荷状況のモニタリングでの 手動スケール、柔軟なリソース制御を可能とします。

起動

② 計算ノードのスケール制御

③高性能ファイルシステム

スケール後は、実行サー バとして、ジョブ分散実行 に加わることで、分散処理 性能向上を可能とします。

マスタノード 計算ノード

実行 サーバ

実行

サーバ 実行 サーバ起動

実行 サーバ起動 実行

サーバ起動

(7)

【参考】Systemwalker Operation Manager

 当社が提供するジョブ管理のミドルウェアです。本サービスはジョブスケ ジューラとしてSystemwalker Operation Managerを採用していま す。

 運用管理コンセプトに基づいて、ジョブのスケジューリングや監視、操作な ど、業務運用をトータルに自動化し、安定稼働と低コスト運用を実現し ます。

 Webコンソールおよびクライアント

ツールの利用が可能です。

(8)

※理化学研究所様と富士通が共同で開発。「京」は理化学研究所の登録商標。

【参考】FEFS (Fujitsu Exabyte File System)

当社が提供する高性能スケーラブルファイルシステムソフトウェアです。

 スーパーコンピュータ「京」(※)のファイル システムの開発ノウハウ、テクノロジーを 応用したファイルシステムソフトウェア です。

 FEFSの導入効果

(9)

共有ディスク(FEFS)

マスタノード ※1 計算ノード ※2

バッチ業務資産

開発環境

②ジョブネット定義体の登録/

アプリケーションのアップロード

ユーザー資産管理画面

③すぐに実行

①システム構成パッケージを 選択し、実行環境配備

FUJITSU Cloud Service

ポータル

バッチ処理に必要なジョブスケジューラや、Java実行環境のミドルウェアがインストール 済の状態で払い出されるため、すぐにアプリケーションの利用が可能です。

※1 ジョブスケジューラの管理サーバを指します。 ※2 バッチ処理の実行サーバを指します。

バッチ実行基盤

(Systemwalker、JDKインストール済み)

バッチ実行基盤の迅速な提供

(10)

バッチ業務資産の登録/配備や、バッチ実行基盤の構成変更、イベント検知項目 設定やリソースの統計情報の確認が可能なポータル画面を提供します。

ダッシュボード画面

サービス状況確認

パッチ適用画面 ユーザー資産管理画面

業務資産、環境パッチ適用

サーバ画面

モニタリング画面

メール通知画面 ログ管理画面

ファイル操作画面

業務データ確認

バッチ実行基盤

ディスク拡張画面

(今後提供)

運用を効率化するポータル画面(1/7)

計算ノードのスケール操作

バッチ実績管理画面(試用機能)

イベント検知・モニタリング

(11)

運用を効率化するポータル画面(2/7)

 ポータル画面一覧

カテゴリ 機能

ダッシュボード 本サービスの状況(お知らせ、ステータス、ノード情報、共有ディスク、最近のイベント)が確認できま す。

運用 ログ管理 システムログや業務ログを取得し、ZIP形式でダウンロードすることができます。

ジョブ ・ジョブコンソール:ジョブスケジューラのWebコンソールを起動し、ジョブネットの確認や操作を行えま す。

・実行結果:ジョブの実行結果を確認することができます。

・パスワード変更:ジョブスケジューラ用のログインパスワードを変更することができます。

・ジョブコンソール設定:ジョブスケジューラコンソール接続の情報確認、設定をすることができます。

メール通知 計算ノードの監視項目(CPU使用率・メモリ使用率・ディスク使用率)とジョブおよびアプリケーション実 行環境の稼動状況監視を設定し、指定したメールアドレスに通知することができます。

サーバ 計算ノード管理(計算ノードのスケール操作(スケールアウト/スケールイン))を行うことができま す。

パッチ適用 適用可能パッチ一覧からソフトウェア等のパッチ適用を行うことができます。

モニタリング 計算ノード(CPU使用率・メモリ使用率)及び共有ディスクのリソース情報を確認することができます。

また、計算ノードごとにリソース情報をZIP形式でダウンロードすることができます。

バッチ実績管理 (試用機能)

バッチの走行実績をジョブの一覧とチャートで確認することができます。走行実績情報をZIP形式でダ ウンロードすることができます。また、走行期間の計算ノードのCPU使用率・メモリ使用率および共有 ディスクのディスク使用率についての統計情報を確認することができます。

履歴 サーバの操作(計算ノードのスケールアウト・スケールイン/パッチ適用/マスタノード・計算ノードの 再起動)イベントの履歴を確認することができます。

(12)

運用を効率化するポータル画面(3/7)

 ポータル画面一覧

カテゴリ 機能

開発 ユーザー資産管理 ユーザー資産(ジョブネットの定義体、アプリケーション資産)を登録/配備できます。

ファイル操作 共有ディスク上のデータ領域にあるディレクトリ配下に対して、本アプリケーションが生成するデータファイ ルのダウンロード・アップロード・削除の操作を行うことができます。

ダウンロード ジョブスケジューラのジョブネット定義体を作成するためのツールやジョブスケジューラコンソールのツール をダウンロード可能な状態で提供します。

(13)

 ポータル画面例

ダッシュボード

運用を効率化するポータル画面(4/7)

共有ディスク 容量の確認

正常な状態 注意が必要な状態 異常な状態

稼働状況アイコン ノードの稼働状況

確認、操作

(14)

スケールアウトの実行

スケールアウトされた 計算ノード

 ポータル画面例

サーバ ※予約スケール機能は今後提供予定です。

運用を効率化するポータル画面(5/7)

(15)

 ポータル画面例

バッチ実績管理(試用機能)

運用を効率化するポータル画面(6/7)

走行実績を チャート表示 バッチ走行

実績表示

バッチ走行実績情報をcsv形式でダウンロード 走行リソース画面

(次頁)を表示

指定の内容でバッチ走行実績を表示

(16)

 ポータル画面例

バッチ実績管理(試用機能) – 走行リソース

運用を効率化するポータル画面(7/7)

表示範囲設定

メモリ使用率表示

CPU使用率表示

全ノードの平均情報/

各ノードの個別情報を表示

ディスク使用状況表示

(17)

業務処理開発に集中できる軽量なバッチフレームワーク

S

E

□から○の範囲を 抽出する

●の範囲を ファイルへ出力する

○の範囲を 黒へ変更する

JOBNAME xxxx.txt JOBSTEP1 RSR1 xxxx.txt /com/fxx/Chushutu

RESOURCE JOB

TERMINATE ATTACHR STEP

JAVA

ATTACHR STEP

EXEC ATTACHR STEP

MATCHING

JOBSTEP3 RSR3 xxxx.txt shukei.exe argv1 JOBSTEP2 RSR2 xxxx.txt

前処理

Java(クラス) 呼出

アプリ(EXE) 呼出 ユーティリティ

呼出

後処理

実リソース

リソース

DB File json

(WebAPI)

ログ出力

性能 実行

(環境変数)環境情報

サーバ名 DIR名

業務アプリ

リソース取得 クエリ生成 クエリ実行 クエリ設定

処理 データ取得

結果

業務開発に必要なリソース制御、ログな ど共通処理をフレームワークとして提供

②バッチアプリフレームワーク

③バッチユーティリティ

ファイル分割 マッチング コード変換

バッチ開発に必要な機能をユーティリティ として提供

結果取得

STEP ATTACH

JAVA xxxx EXEC

XARGS JOB

STDOUT TEMP STDERR

ジョブ制御関数群

呼出

①ジョブ制御関数

標準化部品として 必要な関数を利 用することで開発 効率UP

アプリケーション (実行ファイル) 呼出も可能

ジョブフローを開発する上で、ジョブを制御できる関数 群を提供

バッチ開発業務に特化した軽量なフレームワークを提供します。環境依存情報と業 務処理を分離することで業務処理の開発に集中することができます。各種ログ取得 機能も標準実装しています。

(18)

バッチフレームワーク①ジョブ制御関数

xxxx.txt

RESOURCE

JOBNAME JOB

TERMINATE

RSR1 xxxx.txt

ATTACHR

JOBSTEP1 STEP

/com/fxx/Chushutu

JAVA

STEP JOBSTEP2 ATTACHR

RSR2 xxxx.txt

MATCHING

STEP JOBSTEP3 ATTACHR

RSR3 xxxx.txt

EXEC

Shukei.exe argv1 argv2

ジョブ(ステップ)設計 S

E

□から○の範囲を抽出

●の範囲をファイル出力

○の範囲を黒へ変更

ステップフローを設計

前処理 業務処理呼出

【Java】

業務処理呼出

【外部アプリ】

業務処理呼出

【ユーティリティ】

後処理

ジョブステップ処理を実装 ジョブ制御関数

ジョブ定義 リソース定義 ステップ定義 アクセス定義

ステップ定義 アクセス定義

ステップ定義 アクセス定義 終了処理 ジョブスケジューラには

起動シェルを定義

業務処理

業務処理

業務処理

JCFログ

環境変数,物理リソース, 性能(CPU,I/O,TIME)

ログ出力

ジョブ制御関数の組み合わせ でジョブステップが記述可能

バッチジョブをコントロールするためのシェルベースのジョブ制御関数(JCF※)です。

用意した関数群の組み合わせでジョブステップの記述が可能です。

※Job Control Function

(19)

アプリFWログ JavaVM情報,処理性能,

リソースI/Oログ

バッチフレームワーク②バッチアプリフレームワーク

業務アプリ

リソース取得 クエリ生成 クエリ実行 クエリ設定

データ取得

結果 バッチアプリフレームワーク

結果取得

リソース群

File 固定長、CSV、

XML、JSON

WebAPI JSON、

ストリーム DB RDS、

PostgreSQL リソース定義

データアクセサ

.find () .insert () .read () :

RDBアクセス Fileアクセス Webアクセス連携

処理

ユーザ定義

データBean定義 クエリ定義

SQL、Filtering

HTTP-METHOD データアクセスI/F

ログ出力部品

様々なリソース(CSV/XMLなどのファイルやRDBサービス、WebAPIなど)を、統 一したI/Fで操作可能です。開発者は、アクセス先リソースを意識する必要はありま せん。

アクセス先リソースを意識せず に統一したI/Fで操作可能

(20)

例)マッチングツール:高速ファイル操作ツール

過去の大規模プロジェクトで利用された、実績のある高速ファイルユーティリティを提供します。

ヒューリスティック・オプティマイザ(※)により、性能の向上を実現します。

SQLライクなクエリを記述し、ジョブ制御関数から呼び出すことで、マッチングやフィルタリングの高速処理が 可能です。

バッチフレームワーク③バッチユーティリティ(1/2)

マッチング呼出

MATCHING

select T.0, T.2, M.2

from TRN as T join MST as M on M.0 = T.0 where T.1 = '0'

クエリ (SQLライク)

インプット マッチングとクエリセット マッチング結果

入力ファイルは軸ファイルとマスタの2つ を高速にマッチング・フィルタリング。

ジョブ制御関数上のコマンドとして提供され、SQLラ イク(独自実装)のクエリを記述、指定して実行。

最適化されたロジックで、高 速に結果を出力。

"aaa","0","c1"

"aaa","0","c2"

MST

"aaa","0","ccc"

"aaa","0","ccc"

"aaa","0","ccc"

TRN

"aaa","ccc","c1"

"aaa","ccc","c2"

"aaa","ccc","c1"

"aaa","ccc","c2"

"aaa","ccc","c1"

"aaa","ccc","c2“

OUTPUT

高速ファイル操作ユーティリティ バッチユーティリティ

※業務性能を導き出すために、固定のロジックではなく最適なアルゴリズムで、処理性能を引き出す手法です。

バッチ処理に必要なマッチングツール、DBユーティリティ、ファイル分割、OSコマンドなど の機能を標準提供します。これらの機能を活用することにより、品質を担保しながら 開発期間を短縮することができます。

(21)

No

機能名 機能説明 機能分割

(

コマンド単位

) 1

ソート

UIN

に紐づけられたファイル内のレコードに対し、

PARA

に割り当てられたソー

ト条件に従って並び替えを行い、

UOUT

に紐付けられたファイルへ出力を行 う機能。

区切り文字 によるソート機能 固定長 によるソート機能

2

暗号化関連

UINに紐づけられたファイルに対し、暗号化および復号化を行い、UOUTに

紐付けられたファイルへ出力を行う機能。 暗号化 を行う機能

複合化 を行う機能

3

ファイルコピー 指定されたファイルパスに対し、

PARA

に割り当てられたコピー条件に従って

指定先のファイルパスにファイルコピーを行う機能。

-

(

アクセス名なのでディレクトリコピーはし ない

)

4

ファイル転送 サーバ間で指定されたファイルパスに対し、

PARA

に割り当てられた転送条件 に従って指定先のファイルパスにファイル転送を行う機能。

受信 を行う機能 送信 を行う機能

5

文字コード変換

UIN

に紐づけられたファイルに対し、

PARA

に割り当てられたコード変換条件

に従って文字コードおよび改行コードで変換を行い、

UOUT

に紐付けられた ファイル出力を行う機能。

-

例)OSコマンド:ラップ関数

シェルベースのジョブ制御関数から、利用頻度の高いOSコマンドをラップし、ジョブ制御関数のコマンドとして 提供します。現時点の提供機能は、「ソート」「暗号化関連」「ファイルコピー」「ファイル転送」「文字コード 変換」を用意しています。

バッチフレームワーク③バッチユーティリティ(2/2)

OSコマンドはお客様のご要望に応じて追加予定です。

(22)

S

E

②ジョブ制御文 (sh)

請求額計算処理

請求書出力処理

③リソース定義ファイル (csv)

アクセス名 TOR リソース名 ≪取引先≫

アクセス名 URI リソース名 ≪売掛金≫

アクセス名 TOR リソース名 ≪取引先≫

アクセス名 SEI リソース名 ≪請求≫

リソース名 ≪取引先≫ 環境名≪DB01≫ TABLE≪M_TORIHIKI≫

リソース名 ≪売掛金≫環境名≪DB01≫ TABLE≪U_URIKAKE≫

リソース名 ≪請求≫ 環境名≪DIR01≫ FILE≪./N_FILE≫

④環境変数

DB01=honbanDB

DIR01=/var/seikyu/seikyu01/sei001

【参考】業務アプリとリソース・環境とジョブ制御の分離方式

ジョブを構成する要素として①ジョブステップ ②ジョブ制御文 ③リソース定義ファイル ④環境変数(実行環境情報)

の4つがあります。

上記4つの構成要素を役割によって明確に分割することにより、業務が業務以外のこと(環境依存情報など)を意識せ ずにジョブを構成できるようになります。また環境依存しない構成となるため、他の環境でもプログラムの変更なしで実行す ることができます。

物理定義層

論理定義層

同一資産で開発/本番環境切替が可能 ジョブ単位のレベルで定義

複数ジョブで共通利用も可

アクセス名を介してリソースと関連付け

入出力 定義

入出力 定義

RESOURCE 《リソース定義》

ジョブ制御 関数

外部ファイル 環境変数

本番環境

/home/usr001/test/seikyu01/sei001/N_

FILE

stagingDB.M_TORIHIKI

環境変数DB01=stagingDB

DIR01=/home/usr001/test/seikyu01/sei001

開発環境

FILE stagingDB

/var/seikyu/sekiyu01/sei001/N_FILE

honbanDB.M_TORIHIKI

環境変数DB01=honbanDB

DIR01=/var/seikyu/seikyu01/sei001

FILE honbanDB

本番環境

請求書出力処理

入出力 リソース定義 INPUT:

アクセス名 TOR ≪取引先≫

OUTPUT:

アクセス名 SEI ≪請求≫

バッチアプリ フレームワーク

①ジョブステップ (java)

ジョブ制御文 のリソース定義と連携

(23)

 利用イメージ

WebAPIによるジョブネット起動

WebAPIを利用して、バッチ実行基盤に登録済のジョブネットを起動できます。

他システム バッチ実行基盤

マスタノード 計算ノード

ジョブネット起動

インターネット ファイル

共有ディスク

ファイル

PF(オンライン)

HTTP/HTTPS通信 バッチジョブ実行

①WebAPIを発行しジョブネットを起動 ②作成済のファイル転送バッチジョブを用いて 処理結果ファイル等を他システムへ転送

Web API (REST形式)

アプリケーション インターネット

(24)

 月額固定料金+従量料金で課金されます。

月額固定

バッチ実行基盤構築時に選択するシステム構成パッケージに応じて月額の固定 料金が決まります。

月額固定料金の中にマスタノード及びバッチ基盤ダッシュボード使用料が含まれま す。

課金の考え方について (1/2)

選択したスペックに応じた 構成を配備

バッチ基盤

・ベーシック

選択したスペックから 月額固定料金を算出

ベーシック 月額 ¥XXX,XXX

要件に応じてシステム構成 パッケージを選択

ベーシック

・システム構成パッケージ

計算ノード台数 1台 共有ディスク容量 500GB

・・・・ ・・・

(25)

従量料金

稼働時間は1時間単位で切り上げて計算します。

ex. 稼動時間:15分 → 1時間

計算ノードをスケールアウトにより追加した場合は、

追加した計算ノードの稼働時間×インスタンス数で従量課金します。

<例>

月額固定 従量

8:00 9:00 10:00 11:00 12:00

マスタ 計算

共有ディスク 100GB

コント ローラ

計算 計算

計算

1時間×1インスタンス 1時間×2インスタンス

課金の考え方について (2/2)

マスタ 計算

共有ディスク 100GB

コント ローラ

マスタ 計算

共有ディスク 100GB

コント ローラ

マスタ 計算

共有ディスク 100GB

コント ローラ

(26)

以下の機能は、試用機能として提供します。

バッチ実績管理機能

以下の機能は、今後提供予定になります。

「柔軟なジョブ分散実行環境」

高性能ファイルシステム (FEFS)

「運用を効率化するポータル画面」

ディスク拡張機能

予約スケール機能

本サービスの提供リージョンについては、FUJITSU Cloud Service for OSS公開 ホームページのサービス仕様書をご参照ください。

お申込から利用開始までにかかる期間は以下のとおりです。

FUJITSU Cloud Serviceポータルのサービス利用設定申込画面から利用申込後 約2営業日

WebAPIの利用にはクライアントIDの取得が必要です。バッチ基盤サービスの利用申 込画面にてクライアントIDを取得してください。

制限事項・注意事項(1/2)

(27)

 本サービスで利用できる計算ノード台数の上限は、1システム構成パッ ケージあたり10台です。

制限事項・注意事項(2/2)

(28)

別紙)システム構成パッケージ一覧

 バッチ基盤では、以下のシステム構成パッケージを提供します。

 オプション

必要に応じてポータル画面から、以下の単位で計算ノードの追加を行う ことが可能です。

システム構成 パッケージ

構成

マスタノード 計算ノード

共有ディスク

台数 内容 台数 内容

ベーシック 1 2vCPU

8GBメモリ 1 2vCPU

8GBメモリ 500GB

メニュー 構成

計算ノード追加 計算ノード1台(2vCPU/8GBメモリ)

(29)

参照

関連したドキュメント

本資料は Linux サーバー OS 向けプログラム「 ESET Server Security for Linux V8.1 」の機能を紹介した資料です。.. ・ESET File Security

定可能性は大前提とした上で、どの程度の時間で、どの程度のメモリを用いれば計

   がんを体験した人が、京都で共に息し、意 気を持ち、粋(庶民の生活から生まれた美

技術部 斉藤 晃 営業部 細入

住所 〒163-8001 東京都新宿区西新宿2-8-1 都庁第二本庁舎20階 電話 03-5388-3481(直通).

平成 28(2016)年 5 ⽉には「地球温暖化対策計画」が閣議決定され、中期⽬標として「2030 年度に おいて、2013

[r]

① Besides  receiving  a  B.A.  in  psychology  at  U.C.L.A., I studied early childhood education at  San Francisco State University in the graduate  program