「saklient」あなた好みの言語でさくらのクラウドを自由にお料理
さくらのクラウドではRESTfulなWeb APIを提供しており、そのWeb APIを使うことでサーバを立ち上げたり、落としたり、ネットワーク構成を変更したりと様々な操作ができるようになっています。
さらにこれまでNode.js向けにnode-sacloudを提供してきましたが、他のプログラミング言語での実装が悩みの種でした。しかし今回、様々なプログラミング言語向けにsaklientを提供開始しました!
目次
saklientのここが面白い!(その1)
まずあげられるのが対応言語の豊富さです。
- PHP
- C#
- Python
- Ruby
- Perl
- Node.js
に対応しています。これだけの言語に対応していれば大抵のプログラマはサポートされているのではないでしょうか。
saklientのここが面白い!(その2)
各対応言語のコードが似ています。たとえばサーバを作る際のPHPコードは次のようになります。
$server = $api->server->create(); $server->name = $name; $server->description = $description; $server->tags = [$tag]; $server->plan = $api->product->server ->getBySpec($cpu, $mem); $server->save();
これがC#版になると…
Server server = api.Server.Create(); server.Name = name; server.Description = description; server.Tags = new List<string> {tag}; server.Plan = api.Product.Server .GetBySpec(cpu, mem); server.Save();
となり、さらにPython版は、
server = api.server.create() server.name = name server.description = description server.tags = [tag] server.plan = api.product.server \ .get_by_spec(cpu, mem) server.save()
Ruby版に至ってはPythonとそっくりです。
server = api.server.create server.name = name server.description = description server.tags = [tag] server.plan = api.product.server. get_by_spec(cpu, mem)
さらにいえばNode.js版(実験的実装です)に至っても、
var server = api.server.create(); server.name = name; server.description = description; server.tags = [tag]; server.plan = api.product.server. getBySpec(cpu, mem); server.save();
となっており、非同期なコールバック処理ではない辺りに熱い思いが感じられる作りとなっています。
APIが統一されているとプロジェクトによって使う言語を変えても安心できますし、saklientを使ったライブラリを作る際にも別言語へのポーティングが容易になるでしょう。
saklientのここが面白い!(その3)
各ライブラリはそれぞれのプログラミング言語の有名なパッケージ配信方式に対応しています。
PHP
Packagist
C#
NuGet.org
Python
PyPI
Ruby
RubyGems
Perl
cpam(でもインストールは cpanm git@github.com:sakura-internet/saklient.perl.git にて)
Node.js
まだ実験的な実装なので公開していません。node-sacloudはnpm対応です。
簡単にインストールできれば使うのも容易ですよね。
saklientのここが面白い!(その4)
すべてのライブラリがBetaまたはAlphaというステータスです。ということはまだまだ手の入る余地があって、コード量もそれほど多くないということです。ぜひコードを読んでみたり、足りない機能を実装追加してみてはいかがでしょう。
さらにすべてのライブラリのライセンスはMIT Licenseとなっています。コードはすべて公開の上、自由にご利用いただけます!
saklientのここが面白い!(その5)
とにかく触ってみていただければ面白さが分かってもらえるはず!スクリプトからサーバを立ち上げたり、変更したりする楽しさを実感してみてください!
node-sacloudの場合、インタラクティブシェルからでは操作しづらいという印象があったのですが、PHPやRuby、Pythonなどであればコンソールから順番にコマンドをたたいてサーバが立ち上がっていく様を確認することもできます。管理画面から触るのとはまた違った趣が感じられるはずです。
saklientはオーケストレーションで使ったり、オートスケーリング、クライアント向けのサーバセットアップ自動化など色々な場面でさくらのクラウドを活かしてもらえるはずです。これまではNode.jsを覚えないと…と敬遠されていた方も、saklientであれば自分の好きな言語から選んでご利用いただけます。
オープンソース・ソフトウェアなので、フォークしてpull reqを送ったり、不具合があればIssuesへ報告をぜひぜひお願いします!ますますパワーアップするさくらのクラウドをどうぞご利用ください!