「オープンソース」を使ってみよう
(第50回:Submarine.js)

No Comments
このエントリーをはてなブックマークに追加

Submarine.js誕生までの物語

こんなジレンマに陥ったことはありませんか?

このPlaybookを実行しても、このroleはスキップされるはず
Ansibleは冪等性を保証しているから、1度サーバに適用したroleはスキップされるはずなんだ……
でも、本当にスキップされるだろうか?
怖くて本番環境で試せない
ShellScriptなら一瞬で書ける、でもAnsibleで実現する方法が分からない
かといってShellScriptを冪等に書こうとするとif地獄に……
Ansibleはモジュール多すぎて欲しい機能が見つからない
しかもバージョンごとに挙動もモジュール名も違うだと!?
Shellで書くべきか、Ansibleに身を委ねるべきか……
このサーバは前に作ったこのroleを変数だけ変えて再利用して……
あれ? この変数も必要なんだっけ? この変数どこで使われてるんだ?
え? ディストリビューションごとに条件分岐している?!
なるほど分からん。ようし1から作り直しだ!

Ansibleを3年間利用した私は、この全部を経験しました

このような事態に陥る原因のほとんどは、Ansibleを利用するインフラエンジニアが、プログラミングの経験が乏しいために、無計画に無秩序にコードを書きつづけたことによるものです

AnsibleはYAML記法を採用し、豊富なモジュールを提供し、単純な条件分岐とループのみのでコードの実行順序を制御します。これは、プログラミング経験の少ないインフラエンジニアでもシンプルでとっつきやすいようなデザインです。しかし、それゆえにプログラミング言語としては非力な部分も多く、扱い方を間違えると悲惨な結果を招くことになります

昨今コンテナ技術やマイクロサービス、DevOpsやSREという新たな分野の流行に後押しされて、インフラエンジニアといえどもプログラミングのスキルが求められるようになってきています

そういった背景から、現代的な高級言語の特徴を持ち、より安全かつ柔軟な開発を実現する、新しい構成管理・自動化ツールであるSubmarine.jsは開発されました

この記事では

この記事ではSubmarine.jsのインストールと簡単な利用方法からはじめ、Submarine.jsの哲学、さらに応用編として、KVMサーバのリソース状況を管理して、あいているKVMに仮想マシンを自動で構築してくれるアロケーション機能を実装する方法を紹介します

Submarine.jsのベースとなる技術としてJavaScript(Node.js)がありますが、それを厳密に理解していなくても分かるように、詳細に説明していきます

ちなみにOpenStackなどのオーケストレーションツールで実現できることを、あえてSubmarine.jsで実装するのには理由があります。オーケストレーションツールは一般に、導入の際のシステム要件が厳しかったり、1度導入してしまうと、なかなか抜け出せなかったり、新しいバージョンを追いかけてアップグレードをするのが大変だったりと、こちらもこちらで、扱うエンジニアの力量が試されるツールだったりするのです

Submarine.jsを使うと、OpenStackよりかは導入が簡単で、自分たちで欲しい機能を追加したり、不具合を修正したり、別のツールと併用したりといったことができ、小回りの効く方法でオーケストレーションを実現できるようになります

目次

  • インストールと環境構築
  • まずはコードを書いて、動かしてみよう
  • Submarine.jsはメンテナの目線でデザインされている
  • モダンなJavaScript(Node.js)のパワーを活用しよう – 仮想マシンのアロケーション機能を実装する
  • More

「オープンソース」を使ってみよう
(第49回:OracleからPostgreSQLへの移行時に見落としがちなポイント10選)

No Comments
このエントリーをはてなブックマークに追加

OracleユーザがPostgreSQLを使用する時に注意する点

はじめまして、サークル「まぐろのみぞおち」のまぐろと申します。

弊サークルでは主にPostgreSQLに関する知識を同人誌にまとめて、より多くの方にPostgreSQLを知ってもらい、ユーザを増やすことでコミュニティに貢献しようと活動しております。

最近はOracle databaseからPostgreSQLに移行を検討する方も多く、ユーザを増やすチャンス!ということで、私が実際にOracleからPostgreSQLに移行する際に困った点や、Oracleユーザからここはどうなっているの?と聞かれた点を中心に、OracleからPostgreSQLに移行する際の注意点を一問一答形式でご紹介します。
More

「オープンソース」を使ってみよう
(第48回:Blazor)

No Comments
このエントリーをはてなブックマークに追加


C# で Single Page Web アプリが作れる
フレームワーク「Blazor」

「Blazor」とは、Microsoft が主導で開発しているオープンソースの
Single Page Web アプリケーションフレームワークです。

Angular や React、Vue のように、クライアント側 (ブラウザ側) で
動作するフレームワークライブラリなのですが、なんと、JavaScript ではなく
C# で書けるのが特徴です。

開発は GitHub 上 (下記 URL) で行われており、
ライセンスは Apache v.2.0 ライセンスとなっています。

2018年7月現在も、この GitHub リポジトリ上では Issue が立てられて
ディスカッションが行われたり Pull Request が飛んだりと、
活発に開発活動が行われています。

Pull request を送るなど実装で貢献したい場合は、上記リポジトリに
掲載の Contribution ガイドを参照するとよいでしょう。

More

「オープンソース」を使ってみよう
(第47回 Pandoc)

No Comments
このエントリーをはてなブックマークに追加

目次

More

「オープンソース」を使ってみよう
(第46回 Mautic)

No Comments
このエントリーをはてなブックマークに追加

目次

  • MAで解決できる課題
  • MAでできること
  • MAでできないこと
  • Mautic とは?
  • Mautic の機能
    • ウェブサイトのトラッキング
    • Eメールマーケティング
    • 自動化されたキャンペーン
    • WEBフォーム
    • ランディングページ
    • スコアリング
    • マルチチャネル通信
    • 見込客管理
    • プログレッシブプロファイリング
    • オーディエンスセグメンテーション
    • 動的コンテンツ
    • アカウントベースのマーケティング
    • サードパーティの統合
    • ダッシュボードの解析
    • レポートと帰属
  • Mautic 動作環境 & インストール
    • 動作環境
    • インストール
  • Mautic の使い方
  • ユーザコミュニティのご紹介
    • Mautic Community Japan について
    • Mautic Meetup Sapporo について

    More

    Older Entries