Jenkinsについて

最近、効率化のためいろいろなオープンソースに触る機会があります。

 

今回はJenkinsについて取り上げたいと思います。

Jenkinsは「CI(継続的インテグレーション)

ツール」の一つで

開発者がソースを修正してGit等のリポジトリ

(ソース管理ツール)へのコミット(反映)を

検知して、

自動的にビルド・リリース・テストを行い、

ビルドエラーやテスト結果にNGがあれば

開発者に対してメールで通知されます。

 

ソースのコミット(反映)の都度で確認が行われるので、

作業時間の短縮やソースの品質が担保されるメリットがあります。

 

自動テストについてはSeleniumと連携して実施います。

こちらについてはまた別の記事で紹介できればと思います。

機能要件と非機能要件

前回の性能問題の記事でも少し話題に上がりましたが、今回は機能要件と非機能要件について書いていきます。

 

例として勤怠管理システムを構築する場合の機能要件と非機能要件を上げてみます。

(抜粋した一例です。)

【機能要件】

人事システムと連携して従業員情報を取込できること。

パスワードを用いた認証機能

勤怠情報の入力、修正、確認が可能である事

時間外勤務申請、休日勤務、休暇申請、タイムカードの修正申請が出来ること

勤怠データの一覧が帳票出力出来ること

 

【非機能要件】

稼働率99.99%以上

サービス稼働時間は23時間(バッチ時間を除く)

バックアップは日次で行う。

オンラインレスポンス 3秒以内

バッチアプリケーションの性能問題

先日より、バッチアプリケーションの受入テストの支援をしているのですが、

バッチ処理の性能が悪すぎて処理が終わらない為、調査をしています。

 

まず、なぜ性能問題が発生するかと言うと、テスト時には数十件程度のテストデータを用意して主にバッチ処理結果の確認をしている程度なので性能の悪さに気づくことが出来ません。

 

実際、受入テストでは実際のデータ(数十万件)を使用して確認するので性能の遅さに気づくことになります。

 

本来であれば、要件分析(どんなシステムが欲しいか)の時に非機能要件(機能では無いが備わっていないといけない事)として「○○データ30万件、△△データ5万件を処理してバッチ処理が15分以内に終わること。また、データの増加量は毎月3%でシステムの耐用年数は10年間、データの保存期間も同様とする。」と言うような要件を定義するのですが、要件定義では機能要件のみが定義され、非機能要件は見積に入っていませんでした。

 

長くなってしまったので要件分析、性能チューニングの方法は、また別の機会に書きます。

構成管理ツールについて

環境構築自動化のために、構成管理ツールの調査をしています。

そこで、Ansibleについて少し説明してみたいと思います。

AnsibleとはRedHatが開発しているオープンソースの構成管理ツールです。

何ができるかというと、Ansibleのサーバから管理対象のクライアントに対してソフトウェアのインストール等を行うことができます。

 

最初に試した時には、わざわざツール入れてめんどくさい命令文を書いて操作しなくても制御したい端末にリモート接続してコマンドを打てばいいじゃんと思ったのですが、

Ansibleを使えば一気に何百もある端末を一度に制御できたり、Playbookを実行するだけで新しい端末が増えた時でも設定できたり

検証環境で確認したPlaybookを本番環境に反映できたりと様々なメリットがあるようです。

 

f:id:banchokun:20181212234335j:image

Microsoft Azure(あじゅーる)について①

今回はMicrosoft Azureについて簡単に照会してみたい思います。

 

従来は、サーバを自分で購入して運用していましたが、Azureを利用することで、サーバを準備する手間を省くことができます。

 

【メリット】

サーバを用意する手間が省ける。

 

【デメリット】

利用課金のため、高額の請求となる可能性がある。

 

次回は、プランについて説明していきます。

f:id:banchokun:20181126221820j:image