Help us understand the problem. What is going on with this article?

[Heroku] Herokuの有用な機能・サービスのご紹介

More than 3 years have passed since last update.

Heroku Advent Calendar 2016 22日目です。ふと見たら空いていたので、埋めるべく二度目の挑戦です。

はじめに

Xmas目前、ACも随分と佳境になってきましたね。

私といえば、最近 MacBook を買ってしまって、Retina ディスプレイを PCで使う意義って、こんなにもあるもんだなと感じてます。こんなにソースコードが読みやすくなるなんて考えても見ませんでした。すごい。Retinaの恩恵って、画像よりも、絶対文字ですよね。ほんとプログラマな人たちには、Retinaモデルの Macbookをおすすめします。というか、Airが新しいのでないので、もうRetinaシリーズのみになるのかな。

Heroku のメリット

今更ではありますが、半年使ってきてみて、ホント便利だな Heroku って感じます。その他の PaaSも使っていたので、Herokuの優秀なポイントは、みなさんによく理解いただいて、使っていただければそのグレート加減を体感していただけます。無償でもアプリ作って実際に deployして動かして稼働確認取れますし、クレジットカード登録すれば、無料のアドオン追加枠も広がります。できる事自体の制限は多いように見えますが、ちょっとした開発→テストであれば、無料分で十分だったりします。Pricingページに詳細書いてありますので、どうぞご覧ください。

1) git コマンドで deployできる

余計なコマンド入りません。gitのリモートリポジトリを追加して、git pushするだけです。これ以上のメリットは、今の世の中では必要ないでしょう。

2) アドオンがホント簡単に使える

某社のは、標準とは別のサービスを使わないと、アドオンが利用できない形態だったり、サービス同士を明示的に組み合わせないと利用できなかったり、一筋縄ではいかない事がママあります。しかし、Heroku、そんな厄介なことを開発者には求めたりしません。必要なアドオンのインストールボタン押すだけで完了です。必要な設定情報は環境変数に格納されますし、言語ごとに必要な情報も自動的に設定されます。だから、何も考えずに RailsをDeployすると、必要な環境変数をすべて定義して、標準状態で PostgreSQLも利用可能な状態になってます。まっさらな状態で deployしても、ちゃんと Production環境として定義されてますし、助かります。ってそういうgem入れてるだけってのもありますが、自動的にやってくれるのほんと助かる。

PostgreSQLにかぎらず、他のアドオンもすぐに利用できるようになりますし、利用方法も一般的だったり、さらに簡単に利用できるようになっていて、オトクすぎます。

おすすめしたい Herokuの機能・サービス

本編です。全てではありませんが「ああ、こりゃすごい」と機能やサービスをご紹介します。こいつぁすげぇぜ三本立てです。

  1. Heroku Buttons
  2. Pipelines
  3. Portability

Heroku Buttons

Heroku Buttonsという機能があります。開発者が楽をするというよりも、導入者や展開を楽にしてくれる魔法のツールです。

これは、gitのパッケージルートに app.jsonという制御情報の Jsonを書いていただいて、書式に従ってGithubの README.MDに記載していただければ、該当のgitパッケージを自動的に Herokuへ deploy してくれるすぐれものです。

Deploy on Heroku

Markdownの書式に習って記述すると、このようにボタンを貼り付けることができちゃいます。このボタンを押すと、指定されたように deployされますので、横展開がひじょーに簡単になります。

Pipelines

Continuous Delivery を実現するための機能です。開発用のDyno、テスト用のStaging Dyno、本番のProduction Dynoと、実際に開発して本番へ適用しようと考えると、いろいろな実装環境が必要になってきますが、これをすべて Heroku Dashboard上で管理できてしまうのが、このHeroku Pipelinesです。

また、Githubとの連携にも対応していて、Githubで Pull request を上げると、それが Heroku Pipelines からもReviewすることができてしまう驚き。

これに限った話ではありませんが、Heroku はすべてがAPIとして公開されていますし、CLIも提供されているので、組み合わせによって CI/CDを自動化させることも可能です。Heroku CIなんてのも、出てくるみたいなので、CI/CD を Herokuで完結できるようになるのかな?

youtube動画

Portability

可搬性です。開発したアプリケーションが、気がついたら Herokuでしか動かなくなってしまったときに、他のサービス並行できなくなることはリスクにつながります。

しかし、そもそも Herokuは、The Twelve-Factor Appの方法論に従って開発されたアプリケーションを稼働させる環境として生まれたようなものです。このThe Twelve-Factor Appの考え方に従っていれば、大抵の環境で稼働するようなアプリケーションになるしかないと考えられますし、ある特定環境でしか稼働しない、ではなく、どこでも実行可能なアプリケーション = 可搬性の高いアプリケーションを開発することができるようになるはずです。

まぁ、実際はアドオンの仕組みやPipelinesなど、特定の機能が提供されているので、その点をどうにかする必要はありますが、それでもメインのロジック部分はどこでも動くようなアプリケーションになることでしょう。

この考え方自体は、Heroku を使うために必須というよりも、モダンなアプリケーション開発に重要な方法論の一つです。以前、Microservicesの実現に必要な項目の一つとしても、12Factor Appの考え方はアプリケーション開発に重要と説いていることと同じ理由ですね。

さいごに

Slideshare が埋め込めるのか異常に謎ですが、やけに時間がかかって書き上げました。

まだ他に良いことも、具体的に細かいことも書きたいので、なんか1つずつ、日々書き記していくことが重要なんだなって、やっぱり思います。かしこ。

sho7650
妻x1+娘x4 オンプレインフラメインのインフラエンジニアが、ソフトウェア中心のPaaS/SaaS業界へ転身し、一度はやめたアプリケーションに手を出し始めている昨今、みなさまいかがお過ごしでしょうか。 外資系はいいぞ(
http://oshiire.to
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away