Heroku入門

コース概要

HerokuはWebアプリケーションを開発・運用するために必要な機能を持つPaaS(Platform as a Service)です。開発者は特別なハードウェアやソフトウェアを用意しなくても、RubyやNode.js、Java、PHP、Pythonなど好きなプログラミング言語を用いて、Webアプリケーションの開発をすぐに始められます。

このコースでは、Herokuの特徴から開発の進め方、開発生産性を向上させる便利なツールの活用、Herokuでアプリケーションを設計・運用する上でのコツなどをご紹介します。
開発をスピーディに行いつつ、手間をかけずに運用をしたい方にお勧めします。

※本授業では「Heroku」を使用します。事前に下記からダウンロードして準備していただくと、よりスムーズにご受講することができます。
https://devcenter.heroku.com/articles/heroku-cli

 

▪︎1回目見どころ
第1回目はHerokuの基本を学んでいきます。
まずは「Herokuとは?」。Heokuは2010年からSalesforce.comの製品です。Salesforceとの連携も充実しており、面倒なミドルウェアの準備や、きちんと監視できているかどうか等もすべて行ってくれるWebアプリケーションの開発と運用における悩みを解消していく便利なツールです。またサーバリソース調達の概念を変えたAWSの上にHerokuは“正解例”を構築することも強みです。Herokuの概要やコンセプトをまずは学んでいきます。

次は「Herokの始め方」。必要なのは、HerokuのアカウントとGitコマンド(さらに、あると良いのはHerokuCLIコマンド)だけ。無料で始められるのも安心なところです。このセクションではHerokuを始める上で最低限必要なことを学んでいきます。

次は「アプリをHerokuにデプロイする流れ」について。
“git push”するだけでアプリが動くというかなりシンプルな作りになっています。なぜ、こんなに簡単なのかも先生に詳しく解説していただきます。

最後は「Herokuの便利な機能」について。
Herokuの標準的なデータベースはPostgreSQL。他のデータベースを使いたい場合もアドオンを利用すれば可能です。
他にもHerokuDashboardについて学習していきます。

 

▪︎2回目の見どころ
第2回目は「CI/CDで開発生産性を上げよう」というテーマで講義いただきます。
冒頭は、Herokuの構成要素など前回のおさらいをしてくれますので、1回目を受講された方もさらに学習を深めることができます。

次は「HerokのDNA」について。少し概念的な話になります。Herokuの創業者アダム・ウィギンスが作った“12の方法論”についてお話しいただきます。日本語版もありますので、興味のある方はご確認ください。先生には、かいつまんで解説いただきます。

次は今回のメインテーマである「CI/CD」について。
“CI”は継続的インテグレーション、“CD”は継続的デリバリーのことになり、細かく短いスパンでアプリケーションをリリースしていくような俊敏な開発を目指すことや、細かく品質を見ていくことで品質向上させようという考え方で、 Herokuはこの概念を大切にしており、スーパーエンジニアでなくても簡単にCIやCDを実現できる機能がそろっています。GitHubとの連携やForkコマンドなど、継続的で効率的な開発をするために役立つHerokuの機能を紹介してきます。

 

▪︎3回目の見どころ
第3回目は「便利な機能とアドオンの利用」というテーマで講義いただきます。
まずは「Herokuを便利にする機能紹介」。先生には3つの機能をご紹介いただきます。
1つ目は「Release Phase」について。アプリケーションリリース時に「一度だけ処理したい」を叶える機能です。先生には実際の画面を見ながら詳しく解説いただきます。2つ目は「ACM」という機能。SSLの運用をカスタムドメイン自動化することができ、なんと一度設定すれば自動的に SSL証明書を更新することができます。簡単な設定も先生に解説いただきます。3つ目はよりセキュアな環境にすることができる「PrivateSpaces」について。この機能を利用すると、さまざまなリージョンを選択することが可能になります。詳しくはぜひ授業をご確認ください。

 

▪︎4回目の見どころ
第4回目は「アーキテクチャー設計のコツ&Heroku Connectでデータ連携」というテーマで講義いただきます。

授業前半は「アーキテクチャー設計のコツ」について。Heroku上でアプリケーションを開発する上で、知っておいていただきたい作り方のキモを学んでいきます。第2回でも触れたHeroku創業者が考案した「12FactorApp(ベストプラクティス)」の実践に必要な機能を揃えたプラットフォームがHerokuになり、その12FactorAppに則ったWebアプリを開発することで、12FactorAppの価値を最大化することができるという「Herokuの設計思想」について、まずはお話しをしていただきます。その後「Dynoの特性」などもデモンストレーションを交えながら先生に詳しく解説いただきます。

授業後半は「Heroku Connectでデータ連携」について。企業とエンドユーザーを結ぶあらゆる接点の業務をカバーするSalesfoeceと、エンドユーザーのUI/UXを強化するHerokuを連携するこで、より力強いCRMを実現することができます。そして、その連携を実現するのが「HerokuConnect」。HerokuPostgreSQLとSalesforceオブジェクトの間でデータを同期してくツールです。HerokuConnectはアドオンで追加することができます。実際の画面を見ながら先生に詳しく解説していただきます。

 

▪︎第5回の見どころ
第5回は「セキュリティと運用」というテーマで講義をいただきます。

授業前半は「Herokuのセキュリティ」について。

まずは“チームのセキュリティ”に関して解説いただきます。Herokuのアカウントは、例えば、誰がアプリケーションを見ることができるか、誰がデプロイできるか、誰がお金に関わる部分に触ることができるか等、権限を細かく設定することが可能です。この機能は、Herokuを使っている方でもあまり知られていない機能ということで、必見です。

次は「開発したアプリケーションのセキュリティ」について。VPC内に専用のHerokuを展開することで隔離されたネットワーク環境で利用することができたり、リージョンの選択が自由にできる等、“Heroku Private Spaces”という機能について、図解を使ってわかりやすく解説いただきます。授業では、“Heroku Private Spaces”をさらにセキュアにすることができる“Heroku Shield」についても学習していきます。

中盤は「アプリケーションのリリースを円滑に行うHerokuの運用」について。
サーバーを止めずにソースコードをデプロイをすることができるという”Preboot”、SlugコンパイルとDynoへのデプロイの間に処理を挟むことができる“Release Phase”、問題が起こった際に過去のデプロイをいつでも再現することができるロールバック等、便利な機能を紹介いただきます。

授業後半は「アプリケーションを監視しトラブルに備えるHerokuの運用方法」を紹介します。Add-onを利用することももちろんできますが、Herokuの標準機能である“Application Metrics”という機能を使っても監視をすることが可能です。このセクションでは“Application Metrics”でできることを解説していただきます。また“Application Metrics”はサービスの異常をアラートメールで通知するようになっていますが、アラートを送信せず、パフォーマンス低下時に自動的にスケールしてくれるという“Dyno Auto Scale”という機能も紹介します。最後は“Language Runtime Metrics”という機能について。現在はJavaのみ対応していますが、今後はその他の言語にも対応していく予定とのことです。

詳しくはぜひ授業をご受講ください。

こんな人にオススメ

Webアプリケーションを構築・運用したい開発者の方

担当の先生