docker

去る10月、11月とWeb App for ContainersAzure Database for MySQLをつかったLife and Shiftシナリオのコンテンツを2つばかり作ったのでブログにのせておきます。それぞれRailsとPHPの簡単なLAMP構成アプリを題材にWeb App for ContainersAzure Database for MySQLを使ってAzure上で完全マネージドな構成にしましょうというお話です。データストアにMySQLやPostgreSQLをお使いで、シングルコンテナにおさまるアプリであれば、細かい違いはあれどだいたい同じような手順でここで紹介している完全マネージド構成に移行することができると思います。他には、よくある構成としてデータストアにMongoDBのようなNoSQLをお使いのものもありますが、そいつもCosmos DB (Mongo API版) + Web App for Containers構成に載せ替えることも可能かと思います。

これらサービスは、パッチあてなどUpdateとランタイム更新のような面倒な作業は当然ながら、標準で冗長化対策、高負荷対策、セキュリティ対策などをやってくれていて、さらに効率的な監視・アラート、CI/CDを可能にする機能を提供しております。使える状況下ならば絶対に使わないと損なわけです。是非ともこれらサービスを活用してオフロードできるところはオフロードして、その分のリソースを皆さんにしかできない新規開発やビジネスベーションにフォーカスいただくことできっと今までよりも幸せになれるのでははなかいと思います。

Rails + MySQLアプリのLife and Shiftシナリオ


Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう! from Yoichi Kawasaki

PHP + MySQLアプリのLife and Shiftシナリオ


Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! from Yoichi Kawasaki

Source Code

上記2シナリオに加えてPython/Django版も加えたアプリソースとCI設定ファイルのレポジトリはこちら

UPDATED 2017-02-15: changed docker run command example due to Issue#4


Update Note azuresshconfig-0.2.3

(記事はここから)
以前「azuresshconfigの紹介 – Azure上でのSSH生活を少しだけ快適にする」の投稿でazuresshconfigの紹介をさせていただいたが、ツールをリリースして以来、数少ない貴重な利用者様からインストールがコケるんだけど何とかしろというクレームをいただいていた。そこでインストールマニュアルを充実させようかとか、インストーラーをプラットフォーム別に充実させようかとか考えたものの、ここは流行りのコンテナ実行できるようしたほうがいいだろうということでDocker対応することにした。

今回の対応によりpipインストールや、プラットフォーム別にprerequisiteなランタイム、ヘッダファイル、ライブラリといった面倒なインストールが不要となり、Mac、Windows、Linux(Ubuntu、CentOS、その他distro)関係なくシンプルにdocker runコマンドでの実行が可能となった。

しかも超軽量LinuxディストリビューションであるAlpine Linuxの上にPythonランタイムとツールを載せているだけであるためサイズはたったの155MBとかなり軽め

$ docker images azuresshconfig
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
azuresshconfig                     latest              7488bef4343f        7 minutes ago       155 MB

実行例

$ docker run -v $HOME:/root --rm -it yoichikawasaki/azuresshconfig \
    --output stdout --user yoichika --identityfile ~/.ssh/id_rsa > $HOME/.ssh/config

$HOME/.ssh/config

Dockerfileをダウンロードしてビルド・実行はこちら

$ curl https://raw.githubusercontent.com/yokawasa/azure-ssh-config/master/Dockerfile -o Dockerfile
$ docker build -t azuresshconfig .
$ docker run -v $HOME:/root --rm -it yoichikawasaki/azuresshconfig \
    --output stdout --user yoichika --identityfile ~/.ssh/id_rsa > $HOME/.ssh/config

LINKS

Enjoy SSH life on Azure with dockerized azuresshconfig!