タグ

ブックマーク / thinkit.co.jp (30)

  • 開発チームの環境をAnsibleで一括構築しよう

    連載ではこれまで、Ansibleの使い方から実際にPlaybookを書く際に役立つTips、テストの考え方などをご紹介してきました。最終回となる今回は、サンプルのPlaybookを使って開発チームのための環境を構築してみたいと思います。今回利用するPlaybookはこちらです。 https://github.com/OSSConsCloud/ansible_wg Playbookの紹介 今回利用するPlaybookは、連載の第2回から第7回までの著者らが参加しているOSSコンソーシアム クラウド部会の活動で作成したものです。MITライセンスで公開していますので、どなたでも自由に利用することができます。 このPlaybookでは、以下のOSSツールの環境構築を行うことが可能です。 GitLab (バージョン管理ツール) Jenkins (CIツール) Redmine (プロジェクト管理ツ

    開発チームの環境をAnsibleで一括構築しよう
  • Ansibleにおいてテストを行う理由

    連載の第6回では、Ansibleのテストにおける考え方や方法論を解説していきます。 Ansibleにおいてテストは必要か テストは、対象のプログラムが仕様通りに正しく動いていることの確認や、バグを発見するために必要な工程です。適切なテストをすることにより、対象物(システム)の品質を担保できます。では、Ansibleのような構成管理ツールではどうでしょうか。従来の構成管理の手法としてはシェルスクリプトなどを使い、ミドルウェアのインストールおよびサービスの起動を行っていました。シェルスクリプトはプログラムなので、仕様通りに構成管理が行われていることの確認としてテストをすることがあります。それに対してAnsibleでは、プログラムを使用せずにyaml形式のPlaybookという設定ファイルをユーザーが記述します。そして、そのPlaybookに基づいてAnsible内部のPythonで記述されたプ

    Ansibleにおいてテストを行う理由
  • Ansible:さらにPlaybookをきわめる

    連載の第4回、第5回では「Ansible応用編」と題して、Ansibleの応用的な使い方やTipsについて詳しく解説していきます。前回(第4回)は、Ansibleのベストプラクティスに沿ってPlaybookを再整理する方法を紹介しました。今回は、Ansibleの持つ各種機能を活かしたPlaybookの効率的な記述方法やつまずきやすいポイントの回避方法を紹介します。 Playbookを効率的に書く 同種の処理をまとめる 同じ処理を何度も実行する際には、Loop構文を使うことで処理をまとめて記述できます。処理をまとめることで記述を簡潔にし、Playbookのメンテナンス性を高めることができます。 基的なLoop構文 基的なLoopの記述方法は、以下のようになります。「with_items」アトリビュートに、YAML記法のシーケンス(配列に相当)形式で定義しておくと、実行時に各要素が順次展

    Ansible:さらにPlaybookをきわめる
  • Ansible応用編:より実践的なPlaybookを作り上げる

    Ansible Best Practiceを参考に、より実践的なPlaybookの作成方法を紹介する。 連載の第4回、第5回では、「Ansible応用編」と題してAnsibleの応用的な使い方やTipsについて詳しく解説します。第3回ではAnsibleを利用して、1台のサーバー内にLAMP環境を準備して、WordPressを構築しました。Ansibleが身についてきた後には、どのようにPlaybookを管理すれば良いのかという課題や疑問が出てきます。今回は、AnsibleのBest Practiceをご紹介した上でWordPressのPlaybookを整理します。 環境の変更点と構築のための振り返り 前回までに利用した環境のうち、実行サーバーのみを再利用して、操作対象のサーバーは新規に作り直します。

    Ansible応用編:より実践的なPlaybookを作り上げる
  • 実践! AnsibleによるWordPress環境構築

    連載の第2回、第3回では、Ansible基礎編と題してAnsbileの導入方法や簡単な使い方について詳しく解説していきます。第2回では、AnsibleのインストールとAnsibleの簡単なコマンド、Playbookについて紹介しました。今回は、WordPress環境の構築を題材にしながら、Ansible Playbookの作成の基となる、変数の扱いや頻出のモジュールについて紹介します。 WordPressはオープンソースのブログ/CMSプラットフォームで、ブログやWebページの作成のために、広く使われているソフトウェアです。WordPressを利用するためには、Apache、PHPMySQLのインストールが必要となります。これらのインストールに必要な手順を全て Playbookに記述し、ansible-playbookコマンドを実行するだけでWordPressを利用できるようにしてい

    実践! AnsibleによるWordPress環境構築
  • Ansibleのインストールとサンプルコードの実行

    Ansible2.0をCentOS 7.2環境へインストールし、サンプルのコマンドやPlaybookを実行できるところまで解説します。 連載の第2回、第3回では、Ansible基礎編と題してAnsibleの導入方法や簡単な使い方について詳しく解説していきます。 第2回では、Ansible2.0のインストール手順と簡単なサンプルコマンド、Playbookを実行するまでの手順について紹介します。 Ansibleについて 前回の記事で紹介があったとおり、Ansibleは指定されたコマンドや、複数のコマンドをまとめて記述したPlaybookを用いて、対象となるサーバーの操作を行うことができます。これは、Ansibleサーバーから操作対象サーバーに向けてSSH接続することで処理を実行しています。 前提環境 今回の環境は、下記のとおりです。 環境ではCentOS 7.2を用いて、ソフトウェアの選択

    Ansibleのインストールとサンプルコードの実行
  • 構成管理ツールとしてAnsibleを選ぶべき理由

    話題の構成管理ツールAnsibleについて、注目を集める理由、類似のツールに対する優位性について解説します。 Ansibleは、多数のサーバーや複数のクラウドインフラを統一的に制御できる構成管理ツールです。構成管理ツールとして巷で人気のあるPuppetやChefなどの置き換えに利用できます。既に国内でも、大量の仮想サーバー環境を持つ大手金融機関や大規模製造業を中心に、多くのユーザー企業が使い始めています。この連載では、いま注目を浴びつつあるAnsibleについて、その特徴および魅力を紹介していきます。 Ansibleとは何か Ansibleは構成管理ツールとして取り上げられることが多いのですが、大きく分けて3つの役割が統合されています。 デプロイメントツール オーケストレーションツール 構成管理ツール Ansibleでは、PlaybookというYAML形式のテキストファイルに定型業務をタス

    構成管理ツールとしてAnsibleを選ぶべき理由
  • 一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル

    ソーシャルゲームブームを皮切りにしてエンジニア不足が叫ばれるなか、主婦向けのレシピサイトという一見エンジニアからほど遠いWebサービスに、なぜ一流のエンジニアが魅力を感じて次々と集まってくるのか。その秘訣とエンジニアのスキルセットについて、クックパッド技術部長の小川伸一郎氏に伺った。 重力に引かれるように、いいエンジニアが集まってくる ――なぜクックパッドには優秀なエンジニアが集まるのか、その秘訣をお聞きしたいと思います。まず、小川さんはどうしてクックパッドに入られたのでしょうか。 外から見た時には、Rubyの業界で知れ渡った、優秀で知名度の高いエンジニアが、数多く在籍していたから、ということがあります。2010年頃に、当時技術部長だった井原さん(編注:井原正博氏)が、優秀なエンジニアを多数採用するという方向に舵を切りました。その頃から、RubyのコミッターやRuby界隈で知名度のある優秀

    一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル
  • 「Fluentdをきっかけにビジネスが回る仕掛けがとっても気持ちイイです。」

    クラウドを活用したデータマネージメントサービスを展開するトレジャーデータのCTO、太田一樹氏にインタビューを行った。同社がメインで開発を進めるログ収集のためのオープンソースソフトウェア「Fluentd」とコアなビジネスモデルとの関係、トレジャーデータの狙っているユーザー層、更にはエンジニアの雇用から人工知能の可能性まで幅広いトピックに及んだ。 まずはCTOとしての業務領域を教えてください。 現在はCTOという肩書きで、約80名ほどの社員の中の30名ぐらいを占めるエンジニアリングとプロダクトマネージャーを統括する仕事をしています。プロダクトマネージャーというのはアメリカIT企業では普通なんですが、製品の位置付けとか顧客ニーズを理解したり、顧客向けのメッセージを作る役目です。それに加えて製品を使って頂いているお客様への対応を行うカスタマーサポートのエンジニアという人たちも統括しています。その

    「Fluentdをきっかけにビジネスが回る仕掛けがとっても気持ちイイです。」
  • ObjectWorks+によるアプリケーション開発

  • Java EE上のSI向けフレームワーク

    オープン・スタンダードだけでは足りないもの 前回は、Javaによる企業システム開発において現時点でのオープン・スタンダードである「Java EE 5」を補完する、「JBoss Seam」(以下、Seam)について解説しました。こうした標準技術を習得したメンバーがある程度そろった開発体制であれば、Seamを使って標準フレームワーク群を組み合わせるだけで、生産性が高く今後の拡張にも柔軟に対応できるアプリケーション開発を実現できることと思います。 ところが一方で、スキルを持つ人材の確保が困難であったり、複数のベンダーやオフショアを活用して大規模な基幹系アプリケーションを開発するシステム・インテグレーション(SI)の現場では、こうしたオープン・スタンダードだけでは高い品質/生産性を安定的に維持するのに必要なものが欠けている場合があります。野村総合研究所(NRI)のSIにおける経験をもとに整理すると

  • JBoss Seam ~Java EEは統合フレームワークへ~

    統合的なフレームワークを目指すJava EE Java EE 5という標準規格が策定された経緯について第1回で説明しましたが、Java EE 5で行われた作業は、まさに標準規格の「再整理」と呼べるものでした。 誕生当初から次代のJava EE(このころは、まだJ2EEと呼ばれていた)の中核を担う技術として注目を集めていたJSF 1.2がプレゼンテーション層のフレームワークとして正式に採用され、Java EEの体とも言えるEJBはDIコンテナの機能を取り込み、生産性を飛躍的に向上させたEJB 3.0として大きく生まれ変わりました。 また、それまでCMP Entity BeanとしてEJB仕様の一部として存在していたO/Rマッピング機能は、Java EEとは独立して発展し続けてきたHibernateやTopLinkといったオープンソースのO/Rマッピング・ツールに歩み寄る形で新たに策定され、

  • エンタープライズ向けJava標準化の歴史

    企業情報システムを支えるJava JavaでWebアプリケーションを開発する際にフレームワークを利用することは、すでに当たり前になっています。JavaのWeb開発フレームワークは、細かい技術領域ごとに商用/オープンソースを問わず多数のプロダクトが入り乱れており、それらの特徴/メリットもさまざまです。そこで、プロジェクトの特性に応じたフレームワークをその都度選択して組み合わせて使うことが一般的になっています。 一方で、基幹系アプリケーションを含む大規模なシステムの構築をミッションとするユーザー企業の情報システム部などでは、限られた人材で品質と生産性を安定的に維持するために、「自社のすべてのアプリケーション開発を支える『共通基盤』を整備したい」というニーズが根強くあります。この場合は、JavaのWebアプリケーション開発のための基盤についてもその都度選択するのではなく、何らかの汎用的な標準を定

  • これまで企業向けSIに関わってきたエンジニアのためのサバイバルガイド

    イントラの業務システムを作るSIが姿を消しつつある様子を、タイトルにも言う「SIの終焉」という少々刺激的な言葉で説明してきたのだが、果たしてそこに長年従事してきた企業やエンジニアその人たちは今後どうしていけばいいのか?最終回はさらに放談していこうと思う。 放談というのは、あくまで私の独善的な視点であるためだ。私は昔にエンジニアだったこともあるが、今はまったくエンジニアと名乗る資格は無い。すでに5年近く現場から離れてしまっている。一方で多数のエンジニアを雇用する立場ではあって、簡単に言うと「スーツ」。想定するこの記事の読み手に対しては仮想敵の立場だ。つまり、今回は大概のエンジニアにとって不愉快なことを述べようと思っている。 企業側の視点でエンジニアリソースの性質を考える 今でも職人気質にて燃え盛るデスマーチ案件のリカバーに飛び込んでいったり、難しいマルチベンダー案件にて、エンドユーザー側の立

    yukung
    yukung 2012/04/23
    “もっとシンプルに言うと、ただでさえ儲からない業界なのに、全体として仕事が無くなってきたのでSI企業が正社員エンジニアを抱えてはいられなくなってきたのだ。”
  • [ThinkIT] 第2回:MyISAMとInnoDB (1/3)

    今回は、MySQLのストレージエンジンの中でも特に有名な「MyISAM」と「InnoDB」の2つを取り上げます。MyISAMはMySQLのデフォルトストレージエンジンで、ストレージエンジンを指定せずにテーブルを作成するとMyISAMが選択されます。もう一方のInnoDBエンジンは、MySQLに豊富なトランザクション機能を提供するストレージエンジンとして有名です。 まずはそれぞれのテーブルファイルの構造について解説し、最後にInnoDBのトランザクションについて解説します。 各ストレージエンジンのファイル構造を説明する前に、前知識としてMySQLのディレクトリ構造について説明します。 MySQLのデータベースディレクトリには、バイナリログと呼ぶデータベースの更新情報を格納するファイルと、2つのサブディレクトリが存在します(図1)。 「mysql」ディレクトリには権限テーブルと呼ばれるMySQ

  • データベースの最近の変化と動向

    データベースのおさらい 今の世の中は、「情報」がすべてと言っても良いぐらいの状況になっています。日進月歩ならぬ“秒進分歩”の勢いで、次々と新しい情報が生まれ、流通し、広がっています。 大量の情報が出回る中で、それらの情報を効率よく管理し、活用することは、非常に重要になっています。このような、「データを収集・管理し、活用するためのシステム」のことを総称して、「データベース」(Database)と呼んでいます。 広い意味では、「大量のデータを集めたもの」をデータベースと捉えることもできます。例えば、図書館は大量のを集めた場所ですが、図書館もデータベースだと言えなくもないです。また、紙の住所録や電話帳も、データベースの一種だと言えます。 ただ、狭い意味でデータベースと言えば、コンピュータを使って、データを電子的に管理するシステムのことを指します(図1)。今回の連載で取り上げるのも、もちろんこの

  • これからはじめるRuby on Rails

    はじめに Rubyと出会ったころ、その簡潔さに感動した著者は、「ここまで自然言語に近い形でプログラムが書けるのであれば、インターネットとPCの違いすら理解しないでも、少しはプログラミングができるようになるかもしれない」と、家庭での普及に挑戦したことがあります。 その試みは、渡した入門書を「はじめてのRUBAI」と読まれた時点で頓挫したわけですが、その経験から「Rubyの文法に従ってはいるが、何やら他言語の匂いを感じるコード」のことを、Rubyの潜在力を生かしきれていないという意味で「RUBAIコード」と呼ぶことにしました。 そして、社内のさまざまな分野のプログラマにRuby開発を指導してみて分かったのは、"RUBAIコード"には、実装レベルの間違いと、設計レベルの間違いがあるということです。 実装レベルの間違いとは、処理を他言語の習慣に従って記述することで引き起こされます。Javaプログ

  • Javaコーディング規約 @ThinkIT

    皆さんはコーディングがお好きですか? プログラミングが好きでソフトウェア業界に入りプログラマになったのは良いものの、ソフトウェアやシステムを新規に設計して開発するのは稀で、現実には他人の書いたソースコードを触ることが多くはないでしょうか? そして、いざ引き継いだソースコードを見て愕然としたことはないですか?例えば、以下のようなことに遭遇しませんでしたか? クラス名/メソッド名(do1、do2)/インスタンス変数名(a、w、t)の意味が分からない 同じような事が何度も書かれている メソッドの長さが1000ステップを越えている mainメソッドしか存在しない プログラマは、受け取ったソースコードを見て処理内容を推測します。手がかりは、プログラムの構成やメソッド名、変数名などです。 もし仕様書があれば、ソースコードを読み解くために利用できますが、仕様書とソースコードの内容があまりにも異なる時は、

  • [ThinkIT] 第1回:O/Rマッピング (1/4)

    連載では今話題のフレームワーク「Ruby on Rails(以下、Rails)」と現在Webアプリケーション開発で主流であるJavaのフレームワーク群を比較していきます。 比較軸については、開発に関する事項(生産性やメンテナンス性など)を中心に解説していきます。第1回の今回はO/Rマッピングを提供するフレームワークについてです。 O/Rマッピングとは、オブジェクトとRDBのテーブルをマッピングすることをいいます。O/Rマッピングフレームワークはオブジェクト指向とRDBの仲介人となることで、アプリケーションの開発生産性を向上させます。 Railsからは同梱の「ActiveRecord」というO/Rマッピングのコンポーネントを取り上げます。対してJavaのO/Rマッピングとしては、もっとも知名度が高いと考えられる「Hibernate」と、Javaの正式仕様として策定された「Java Pers

  • [Think IT] 第1回:JavaScriptを記述しなくてもいいんです! (1/3)

    Ajax4JSFで簡単Ajax! 第1回:JavaScriptを記述しなくてもいいんです! 著者:カサレアル  岡 充洋 公開日:2007/12/11(火) Ajax4JSFとは 連載では、JavaScriptを記述することなくAjax通信を実現するフレームワーク「Ajax4JSF」について解説します。 第1回ではJava Server Faces(以下、JSF)をベースにAjax通信を実現するフレームワークである「Ajax4JSF」について、第2回ではAjax4JSF上でリッチなUIを実現する「JBoss RichFaces」についてそれぞれ解説します。そして最終回の第3回では他のJavaベースのAjaxフレームワークとの比較を行います。 Ajax4JSFとは、JBoss.org(http://labs.jboss.com/)で開発されている、JSFをベースとしたオープンソースのAj