タンバリンさんによるフロントエンド開発の最新トレンド

Hosted by 永野 智, with guests Kusamao Abe, Yusuke Kano, and 阿部 崇.

このエピソードは、Deeply Technical、がテーマとなります。ゲストとして、株式会社タンバリンの安部さんと狩野さんを、またセールスフォースからはPlatformスペシャリストの阿部さんを迎えてお送りいたします。主な内容としてはHerokuによるフロントエンド開発やモダンな開発手法についてお話を聞いています。


ショー・ノート

  • 自己紹介、業務内容
  • Heroku歴
  • フロントエンドをHerokuで、バックエンドにSalesforceを使う開発
  • なぜHerokuが良いのか
  • 高速化、パフォーマンスについて
  • Private Space、日本にあることでWebは速くなるのか
  • CMSの話
  • Herokuの楽しさ、使いやすさ、苦労話
  • よく使うAdd-onについて

トランスクリプト

永野: 皆さんこんにちは。私はHeroku営業本部で日本と韓国の営業統括をしている永野智と申します。このエピソードはDeep Technicalがテーマとなります。今日のゲストは株式会社タンバリンの安倍さん、狩野さんを。また、セールスフォースからはプラットホームスペシャリストの阿部崇さんを迎えてお送りいたします。それでは皆さん自己紹介をお願いいたします。ではタンバリン安倍さんからお願いします。

安倍: 安倍と申します。株式会社タンバリンでエンジニアとテクニカルディレクターという肩書で、主にフロントエンドですとか、あとはセールスフォース関係でいうとHerokuですとか、あと最近ではコマースクラウドなどをやっております。あとはこのポットキャストに誘っていただいたきっかけにもなってるんですけど、株式会社タンバリンの社内公開ポッドキャストをやってたりします。よろしくお願いします。

永野: よろしくお願いします。狩野さんお願いします。

狩野: 株式会社タンバリンの狩野と申します。大阪のデザイン&エンジニアリング部でマネジャーをさせていただいてます。以前はHeroku使ってPHPとかLaravelとか、バックエンド側の方をよく開発してました。あとはセールスフォースでの開発もよくしていました。今はマネジャーとして、部を見る方の立場としてやらせていただいてます。よろしくお願いします。

永野: よろしくお願いします。阿部崇さんお願いします。

阿部: 株式会社セールスフォースのプラットフォームスペシャリストの阿部と申します。私の担当はHeroku、それからセールスフォースのLightning Platformを中心としたマルチクラウドですとか、そういったアーキテクチャのデザインですとか、プリセールスとして担当しております。今日はどうぞよろしくお願いいたします。

永野: 二人「アベさん」がいるので、セールスフォースの方は「しょっさん」でいいですかね。

しょっさん: はい、構わないです。

一同:(笑い)よろしくお願いします。

永野: まず皆さんにお聞きしてるんですけど、Herokuとの出会いとか、Heroku歴みたいなものを聞いているので、そちらをちょっと教えてください。どちらでも結構です。

安倍: じゃあタンバリン安倍ほうからですが、前職のベンチャーにいるころから名前は聞いてはいたんですけど、触ったことがなくて。今のタンバリンに入ってからは実際に触り始めたので2015年ぐらいに実際には触り始めたって形ですね。知ってはいた位で。

永野: 噂的にはどんな感じでした。

安倍: そうですね。前職AWS使ってたんですけど、Herokuっていうこういうプラットホームもあって、Herokuだとこういうこともできるんだよっていうので、ああいいですねって話をしてるんですけど、ちょっと用件がないから今回見送りでみたいなぐらいの話でしたね。

永野: なるほど。やっぱりあれですよね、「業務的に使うのはどうなの」って印象を持ってる人が結構多いって聞きますね。

安倍: そういう感じですね。あとはDNSまわりとかで、ちょっとこういうことしたいからみたいな話があったりとか。

永野: なるほど。狩野さんどうですか。

狩野: タンバリンは以前に株式会社TAMっていう会社の一部門としてできて、そこから子会社化して独立した感じになるんですけど、タンバリンになる以前のTAMの状態の時に、多分会社で業務として触ったのが初めてだったと思います。まだその頃セールスフォースに買収される前のHerokuだった気がするんですけど。PHP自体がまだ公式にサポートされてない状態だったので、そのPHPを使ってHerokuを使ってっていうのでちょっと苦労した覚えがありますね。

永野: 買収前だと2010年より前。

狩野: そうですね、ではそれはないですね。うんもうちょっと後だと2014年とか2013年とかそれぐらいですかね。

永野: なるほど。

狩野: PHPのビルドパックの公式版が出る前とかだったと思います。

永野: はいタンバリンさんって、PHP、Laravelみたいなそんな感じの人が多いんですよね。

狩野: そうですね。Rubyでは逆に使ったことがないですね。

永野: Rubyistの人たちは結構もう僕は前から知ってますみたいな人多いですけど。PHPの方たちってやっぱりあれですよね、2014年とか15年とかぐらい。

狩野: うん。

永野: っていう感じですよね。

狩野: そうですね。

永野: ちなみにしょっさんってHeroku知ってたんですか、入社前は。

しょっさん: 名前だけですね。私入社したのが2016年の1月31日なんですけれど。その前の会社でもPaaSのクラウドがあったのでそちらのほう使ってたっていうのもあって。セールスフォースに入ってきてから、Herokuはちゃんと使うようになったって感じですね。

永野: なるほどね。ありがとうございます。今日のテーマなんですけど、フロントエンドとか、Heroku型のモダン開発みたいなところを中心にお話しいただきたいなあというふうに思ってるんですけど。タンバリンさんって、Webアプリケーション回りのフロントエンド開発っていうのが結構受託されるようなメインになったりするんですかね。

安倍: そうですね。セールスフォースだけで完結するものもありますけど、結構やっぱりWebと統合してってなって、Herokuもっていうことが多いイメージがありますね。

永野: よく使う技術スタックっていうと、どんな感じですか。

安倍: 技術スタック?

永野: PHPとかっていうお話しありましたけど。

安倍: はい。そうするとそうですね、PHP、LaravelとあとフロントエンドのJS側でいうとVue.jsを使ったりとか、あと一部のメンバーはPythonもやってみたりとか。ありますねえ。だいたい今はLaravelとVue.jsで完結みたいのは多いんですかね。あとは一部でWordPressの案件があったりとか。

永野: 基本的にはHerokuとセールスフォース合わせてみたいな案件が多いって感じなんですか。

狩野: そうですね。Heroku側でWebアプリの表側を作って、データはセールスフォース側に流したり、Heroku Connectでつないだりすることが多いですね。

永野: 結構基本的にはマルチクラウドというか、独自性を出すためにセールスフォースはバックエンドで使って、フロントエンドはHerokuでっていう形のものが結構この2、3年ぐらいやっぱり増えてるかなって気がするんですけど。

安倍、狩野: うん。

永野: それ以外に、なぜHerokuってところが出てこないのかなというのがありますですけど。でもHerokuの方が簡単だっていうところは、結構インプリパートナーさんも感じていただいてのかなと思うんですけど。

狩野: そうですね。

永野: Herokuのプロジェクトと、AWSを使ったときっていうのはやっぱりちょっと開発も違ったりしますか。やり方とか。

安倍: そうですね。うちはインフラ専門のエンジニアっていないので、どうしてもAWSやるってなると片手間でやらなきゃいけないってなるんですけど。中入ってコマンドたたく時点でまあまあ面倒臭いんですけど。何か障害が起こったときとかに、自分たちで対応できないので、AWSのパートナーの方をお願いして、運用支援、運用監視みたいなところをお願いしたりみたいので、なかなか自分たちだけで完結できないって大変さは正直ありますねえ。

安倍: その点やっぱHerokuだとポチポチやってくだけで、しばらくほっといても大丈夫みたいなところって、凄い楽だなぁってのは思ってますね。

永野: あれですか、プロマネをしてる観点からもそんな感じなんですかねえ。スケジュール組むとか。Herokuの方が例えばプロジェクトマネージメントやりやすいとかそういうのってありますか。

安倍、狩野: どうでしょうね。そうですねえ、うんそうですね。

狩野: 最初はパイプラインでデプロイフロー組んでたりとかするので、リリースのタイミングはお客さんにまかせたりとか、プロマネの方でしてもらったりとかはありますね。

永野: パイプラインとか使うとやりやすいってのは、結構タンバリン中尾さんのほうからも聞いてたんですけど。

狩野: はい。

永野: やっぱりあれですかねそういうHeroku FlowそれでReview Appとか使ってるっていうのはやりやすいですか。

狩野: そうですね今はGithubでレポジトリ作ってというのがほとんどなので。そこでHerokuとつないでPipelineでFlow組んじゃって、Review Appで社内確認だとか、あとはマージしてからお客さんに確認したりとかをよくやってますね。ほんとにその変更後で、コードレベルで変更しても見た目を確認しないとエンジニア側も不安だったりとかあと、ディレクターとかPM方に見てもらうのでもう大変だったりするので、それがあればすぐにぱっと見れるのはやっぱり凄い便利ですね。

永野: やっぱりフロントエンド開発お客さんと進めてる時って、パッと見れないとキツいですよね。

狩野、安倍: そうですね。

永野: それは今までだと、どんな感じでそこら辺って埋めてたんですか。Herokuのパイプラインを使う前に。

狩野: うんそれこそほんとにレンタルサーバーとか、ヘテムルとかあのへんのサーバを借りてそこに一回上げてみてもらうとかですかね。

安倍: 前に狩野さんとやってたAWSの案件だと、ステージングをパチパチ切り替えて、今これになってるんでみたいなのを周知して、ブランチ切り替えて見てもらってみたいな、大変でしたねちょっと。

永野: なるほどね。われわれPlatformを提供してる側なので、実際にどういうふうにお客様とそのプロジェクトが進んでるとかっていうのは、お話し聞かないと分かんないですが。もう、結構Heroku使ってフロントエンド開発でっていうことは、これにいいよってなんかいい感じだねっていうのはもう御社の中ではわかってますか。鉄則でこう、なんですか勝ちパターンみたいな。

安倍: そうですね、取りあえずもうAWS使うと単純に大変なので、できるだけHerokuに寄せて下さいっていう言い方をしてますね。面倒見なきゃいけないとかプラットホーム自体のアップデートとかはもう追いきれない、しんどいからもうHerokuのやり方にやってれば多分大丈夫だからみたいな言い方をしてます。

永野: なるほどありがとうございます。営業活動を開発者にしていただいちゃってるんですけど。

安倍: いやでも実際Herokuの方が楽ですね。正直うんGithubあげるだけでここまで上がってっていうのはめちゃくちゃわかりやすいので。

永野: なるほどありがとうございます。最近よくそのPWA(Progressive Web Application)とか、シングルページとかっていうふうに言われてたりだとか、あとモバイルにもどういうふうにとかっていう、そのフロントエンドのモダンな開発を推奨みたいなところがいろいろこうお話しにあがってると思うんですけど、これってお客さん的にされたりするんですかね。こういう技術スタック使おうなんてお客さんいってきたりしますか。

安倍: 高速化のところだと、結構お話し聞いたりはするしますね。ただその新規の時にスピードみたいなところがKPIに入っている場合もあれば、いない場合もあるので。そこまで最初の時点で考えきれてなくて、後からなんかちょっとこのページ遅いから速度アップしたいみたいなのが多いようなイメージがあって。それこそAdsenseとかを出して、そういう時に遅いからもうちょっと改善できるじゃないですかって言われたんですよねーみたいなご相談を、後から言われて。作ったものを早くするのは大変なんですよねーみたいな話はありますね。

永野: ちょっと前にdev.toっていうWebサイトがHerokuで動いてて、そこが超高速でと話題になったと思うんですけど。僕も前にCDN屋さんにいたので、Webパフォーマンスみたいなところはお客さんとけっこう話したことあったんですね。ただ本当に2秒ルールとかそういうところでお客さん逃げちゃうみたいなこと危機感を持ってる方、そんなにないのかなって気はしてたんですけど。そういうことを気にされる方もいるぐらいなもんですかね。

安倍: そうですね。あんまり遅いと、やっぱりこれまずいんじゃないってなってくるんですけど、じわじわ遅くなってる分とかだと、あんまり最初のうちは気にしてなくて。ホントにする時に目に見えてきたらやばいかもっていうイメージですね。

永野: しょっさんとかって、そういう話をお客さんとするんですか。

しょっさん: ごくごくまれですけれども、細かいところの実装について、実装上のパフォーマンスって話じゃないんですけれども、凄くアクセスが多くなるんですみたいな話で、アーキテクチャでどうしたらいいんですかみたいなところでの相談がたまにあるっていうぐらいですかね。

永野: なるほどね。最近のいろいろなWeb高速化の技術っていうのを駆使してみたいなところ、あまりプロジェクトに上がってきてない感じなんですかね。

安倍: 正直そうですね。

狩野: CDNをちょっと使ってみてぐらいな感じですよね。

永野: なるほどなるほど。結構技術者の方からちょっと言われてるのはHTTP2に対応しろみたいな感じはあるんですけど、そこもあまりなさそうですねじゃ。

安倍: 対応をしてくれたらハッピーな感じではありますけど。

狩野: お客さんからの要望って意味では、そこまではさすがにないですね。

安倍: あとは自社で使ってるWeb系の友人とかだと、Herokuは日本にいないからみたいな話がやっぱり一番最初に出てくるところではあって。そういうところでレイテンシが、みたいなので敬遠されてる方多いですけど、そういうHTTP2がみたいな話はあまり聞かないですね。

永野: なるほどねえ。大体Private Spacesを使っていただくことによって、日本は使えるようにはなるHerokuなんですけど。そんなにミドルマイルって影響すんのかなって気はしないでもないんですよね。あれ確かdev.toもPrivate Spaceを使ってないですので。アメリカのサイトでCDNとか使ってっていうのもブログで解説されてましたけど。日本からでも速いじゃないですか。

安倍: はい。

狩野: そうですね。

永野: だから日本にないと遅いってどんなアプリケーション作られてるのかなってピュアにこう疑問というか興味があるんですけど。日本じゃないと遅い理由って何かインプリベンダーとして何か感じられたりしますか。

安倍: 正直体感的にPrivate Spaceにしたから早くなったみたいなあんまり正直なくて。そうですね、遅いなあって思うときって、Private Spaceの時はうっかりPostgresを外に出してたとかで遅かったことありますけど。Qiitaに実はそういう煽り記事を一回書いたことがあるんですけど、Herokuってほんとに遅いんですかみたいな記事を書いたことがあるんですけど。実際に使っててそんなに目に見えてやっぱりなってことあんまりなくって。うんあとはClourinaryとかFastlyとかAdd-onあるので。CloudinaryはHTTP2にも対応してますし、そういう意味で逃がせるところもあるのでそこまで気にせずかなという感じですね。

狩野: Cloudflareですかね?

安倍: Cloud FlareはAdd-onないのか。Cloudinaryですね。HTTP2も対応してたと思います。WebPは対応してないけど。画像などです。

永野: 今は エレメンツに載ってるAdd-onは、CDNとしてはFastlyとCloudFrontを利用ができるEdgeってのがありますね。Cloudinaryはいわゆる静的ファイルとか画像とかを、3つのCDNだったかなAkamaiと、CloudFrontと、あともう一個なんかこう自動的に判別して使ってくれるという。

一同: へー。

永野: だから結局ミドルマイルのところのほとんどの部分って、CDN使えば解決できるんじゃないかなぁと思うんで。オリジンどこにあってもいいじゃんってのは多分その通りだと思うんですよ。いわゆるレンダリングだとか、いろんなJavaScriptちっちゃいのこう読んできて、こう生成させるみたいなところの高速技術っていうのは、逆に作り方の問題かなっていう気はしますね。

安倍、狩野: そうですね、うん。

永野: だからそうすると、Herokuがアメリカにあるから遅いんだって言ってる人って、別にそれはHerokuじゃなくても遅いんじゃなかったっけなんです。

安倍: そうですね。

狩野: うん。

永野: してるんですけど。まぁ言わないですけど。

安倍: 言ってるじゃないですか。

一同: (笑)

永野: あまりお客様からはね、そんな感じで言われたことはないですけど。結構Twitterとか見てると、そんな感じのあの噂があるのかなっていうぐらい。

狩野: それこそSPAとかだと最初にもう全部データローディングちゃえばあとは切り替えるだけとかなんですね。レンダリングのところだけになりますし。アメリカだからって影響はそんなに受けないんじゃないですね。

永野: あとは、もちろんフリープランとかそういうDynoの自体がちょっと貧弱ってのはあるので。そこら辺はアメリカにあるないっていうこと以前の問題で。Dynoをもっとパワフルなもの使いたいみたいなの、話的にはありますけどね。開発にはFree とか Hobby Dynoとかも使ったりされるんですか。

安倍: 基本は使わないですよね。

狩野: そうですねまだお客さんの会社の内でHerokuが導入されてなくて、最初に開発段階初期だったら使うこともありますけどあまりないですね。

永野: ほとんどProfessional Dyno、Standard-1X以上。

安倍: そうですね。

安倍: ちなみにHeroku Enterpriseの話しても大丈夫なんですか。

永野: 別に何でもいいと思いますか。

安倍: お客様のEnterpriseを契約されてれば、基本はそのDynoフリーにはならないので。

永野: そうですね。パーソナルアカウントで開発して、それを移してみたいな方いらっしゃいますけどね。

安倍: なのであまりそのFree Dynoに触れる機会がなくて、たまに自分で立てたりするとFree (Dyno) ってこんななんだっていうことには。

永野: そうですね。Dynoはそんな感じですね。ただPostgresとかベーシックなやつとかもっとあのフリーのやつとかでの開発を使われる方もいらっしゃいます。

安倍・狩野: そうですね。

永野: なるほどパフォーマンスについてはあんまり技術スタックで解決っていうところもあんまりこう意識してながらやってるわけじゃないよっていう感じなんですかね。

安倍: そうですね。あとは受託っていう性質上、凄く大きい、超大規模なものを作るっての、うちの場合だとあんまりないので。そうなってくるとそういうバックエンド側のパフォーマンスとかもそこまで、かなりキツキツで作ることもあまりないので。今の時点でもそんなにですね。

永野: なるほど、ありがとうございます。あとモバイルみたいな話もちょっと聞いてみたいなと思ってたんですけど、タンバリンさんはネイティブ開発ってのはあんまり基本的にやってないんでしたっけ。

狩野: 一部開発はしていますね。あまり多くはないですけども。

永野: なるほどJavaベースのAndroidとか、あとiOS系とかも。

狩野: そうですね。あることはありますね。

永野: どういうものを使ってるとか何かありますか。SWIFT vs. Objective-cとか。

狩野: 最近やったのでいうと、iOSはSWIFTで、AndroidはKotlinでって開発はありますよね。

永野: まあそこはあまりこうHerokuに関係ない部分なのかなって気がするんですが、

狩野: そうですね。

永野: バックエンド側にHerokuっていう感じのケースもあるってことですか。

狩野: そのときは一部CMS的な形でそのニュース記事だったりとかの方針があったので、それはHerokuに独自のCMS建ててそこでAPI使って通信をしたりとかはしてましたね。そこでHeroku使っていたりしました。

永野: 独自のCMSって、自分たちで作ってみたってそういう感じなんですか。

狩野: そうですね。要件的にそんなに大したことはなかったので。

永野: Strapiとか最近あるじゃないすか。Headless CMSって使ったりしますか。

狩野: 一部使おうとしてたことはありますかね。名前覚えてないですけど。

永野: Add-onにも載っているものはありますけど。ButterCMSとか、Elegant CMSとか。Headless CMSって最近話をよく聞くんですけど、御社でも何かやってたりしますか。

安倍: 検討段階ぐらいですねうん。やっぱプレビューができるかどうかっていうのは、お客さんが入力する時にプレビューができないってのは難しいんじゃないかとか。管理画面が英語だっていうのが、ちょっと取っ付きづらいんじゃないかっていうのがあってまだ実用には踏み切れないですね。

永野: なるほどね。いわゆるトラディショナルなDrupalとかWordPressとかってあまりこうHerokuと相性いいものじゃないなんで印象があるんですが。

安倍: そうですね。

永野: あの開発者の視点からも、ああいうものって使いやすいものですかね。

狩野: お客さん側からすると見た目で分かりやすいってのは、あるんじゃないかね。WordPressだとどこかで使ったことがあったりとかするので使い慣れてるだったりとか、プレビュー見れたりだったとかWordPress自体がやっぱり使い勝手はいいいんじゃないですかね。

安倍: 開発者側からするとやっぱりWordPressは正直あまり。あまり大きな声で言えないんですけど、私は社内でWordPress撲滅を訴えてるので。Herokuにうまくのらないっていうところが大きい原因だったんですけど。最近はWordPress BedrockっていうのでHerokuに乗せることができるっていうのは私も実証してみてうまくいったんですけど。それでもやっぱりWordPressっていうものに対してはちょっとって思ってしまう部分もありますね。

永野: メンテナンスも楽になるものじゃないですよね。

安倍: そうですね。

永野: 脆弱性見つかったとか、パッチが出たとかって時に、どうしていくんだみたいな。運用フローもなかなか作りづらいのかなって。御社的にはその開発もさることながら、運用で楽な方向性で提案するっていうのも結構気にされたりしますか。

狩野: そうですね。

安倍: まだ人数的にそこまで多くない会社なので、運用でずっと手を取られてるっていう状態になってしまうと厳しかったりするので。そこで運用も簡単にできるみたいなのはお客さんも簡単にできるみたいところ結構考えてるところかもしれないですね。

永野: このポッドキャストでは、聞いてる皆さんにHerokuでの開発の楽しさとか、苦労話みたいなもの聞きたいなってきもするんです。プロジェクトに関わったものでっていうので、お話しできるレベルで結構なんですけど、Herokuのよかったこと悪かったことみたいなものをお聞きできればと思うんですが。

安倍: そうですね、ちょっとプロジェクトとは違うかもなんですけど、最近うちでは学生のインターンシップとかをやっていて。狩野さんも私も面接とか結構するんですけど。学生さんはHeroku使ってることが多くて。そこで簡単にデプロイができてすぐに見られて無料っていうところでHerokuがエンジニアコミュニティーの一助になってるんだなぁみたいなの最近痛感しましたねえ。ちょっといい話感あるんですけど。

狩野: Herokuのいいところは、先程から言ってるように、そのインフラエンジニアいらずにっていうところかなと思いますけど。

安倍: 苦労話で言うと、Heroku Enterpriseで契約されてるお客様とかだと、Dynoの数があるけど、こう多少は自由はきくけどここまでだよっていうラインがあって、そのラインに入るかどうかみたいなので月末冷や冷やしたりみたいなのはありますね。(笑)

永野: それはお客さんが、30 dyno unitsしか買ってないけど、Private-M何個も使っちゃって大変だみたいなそんな感じの話ですか。

安倍: はいそうですね。そういう感じですね。

永野: 自動的に請求書行くわけじゃないんですけど。

安倍: はい、ただやっぱりUsage見たときに、こう真っ赤になってたりするって思ってたりはしますね。

永野: そういうことが結構あるんですね、現場では。

安倍: そうですね。だから使ってないDyno止めなきゃみたいなの、月末に言い始めたりとか。

永野: 日本のお客様で、もちろんHerokuのDashboardいろいろ見ながら自分でやられるお客様もいらっしゃるんですけど、多くのEnterpriseのお客様ってやっぱり委託してますみたいな感じのお客様結構多いので。Dashboardとかみて開発でもう要らないアプリとか整理しようみたいなそういうこと、あんまり自分たちでやられない方いらっしゃいますからね。そうすると、なんか結構増えちゃってるんですけどって言うと、えっそうだったのってお客様も結構いらっしゃいますよね。やっぱりHerokuのDashboardとかが日本語になってくれると、とっつきやすくなったりするんですかね。

狩野: お客さん的には絶対そうじゃないですかね。開発はもうこっちは慣れちゃってますけど。

永野: Code[ish]を聞いてる方たちのために少し秘密を話すと、やっぱりセールスフォースのプロダクトの一部なので、ローカライズというか日本語も含めていろいろな言語に対応してるっていうところは、ベンチマークは取ってはいるんですよね。で、この前も聞かれたんですよね。Herokuの中の人から。日本語化ってしてるんだっけ?みたいなこと言われて、してないよみたいな。君が開発してないからだろと言ったんですけど。やっぱり日本からの声を上げてないっていう感じで捉えられてるみたい。僕一人だけいっぱい言ってるんですけど。もり上がってくれればいいのかなって気はしないでもないですが。

狩野: ここから言った方がいいよみたいなのあるんですか。

永野: うん、それもわかりづらいんですよね。日本語でつぶやかれても。

安倍、狩野: あー、そうですね。

安倍: #herokuをつけて英語で日本語対応してくれみたいなのを常に呟くみたいな。

永野: でもそれがインフルエンサーじゃないと。

安倍: あぁー、だめだった。

永野: フォロワー300人ぐらいだとあまり見ないし。数十万のフォロワーがアメリカでとか英語圏でいますみたいな人が。

狩野、安倍: なかなかハードル高いですね。地道にサポートケースを上げるのが早いのかもしれないですね。

永野: あとは僕がちゃんと売上達成して、僕の話が通るようになればいいんですが。

狩野: ドキュメントとかHelpとかも、英語だとHerokuって丁寧に書かれてるなーって印象はあるんで。その英語自体も丁寧に書かれてるので、そんなに読みにくいとか難しいことはないんですけど、やっぱり日本語で書かれてると凄いわかりやすいのになあと思いますね。

永野: そうですよねー。もうほんとに解ってるんですけどね。

安倍: 英語ちょっとできれば、Laravelとかも含めてものすごく丁寧に載ってるので。言語もいっしょに、PHPも含めて広くにやってみる時には凄くいい教材なんですよね。

永野: ありがとうございます。Herokuのドキュメントっていいねっていう風に言っていただける方結構多いんですよね。細かくカテゴライゼーションとかも含めてこう書いてたりだとかってのもあるのと、あと例えばJavaだとかRubyだとかっていう言語のスペシャリストがいい感じで書いたりだとか。

安倍、狩野: ふーん。

永野: 実はHerokuって各言語ごとにプロダクトマネジャーがいるので。

安倍、狩野: へえ。

永野: Javaのオーナーを取ってるのはこいつだとか、そういうのが結構いたりしますから。もうその人たちは本当によく知ってますね。でそれをちゃんと書いてたりするのでドキュメントとして。だから検索してくれれば結構載ってるっていうのはあるんですよね。

安倍: そうですね。

狩野: うん。

永野: ただそのドキュメントのその構造自体が結構アプリケーションとして作ってたりするので、Rubyのコードが後ろにあるっていう。だからerbをいちいち変えないと、コンテンツが変わんないというのはあります。

永野: あと何かお勧めのAdd-onとかっていうのも聞いてみたかったですけど。よく使ってるAdd-on、さっきCloudinaryとかはありましたけど。開発者向けの例えばアプリケーションモニタリングだとか、エラーハンドリングとかってのもAdd-onもあったりするので。何かあったりしますか。

安倍: なんか大体Heroku PostgresHeroku RedisPapertrailSendgridみたいので大体事足りちゃってはいて。

狩野: はい。

安倍: あとNewRelicとかいれる場合もありますね。PHPでエラーモニタリングとかする場合だと。

永野: PapertrailとLogDNAで、何か派閥に別れてるって噂があるんですけど、皆Papertrailですかね。

安倍: こちらもほぼ全部Papertrailですね。

永野: なんかモダンなものに対応してないみたいなことを聞いたことあるんですけどね。Papertrailの対応フォーマット自体が。

安倍: うんなんか多分使ったことないかもうん。

永野: Papertrail、NewRelic入れればある程度もういいやって感じですかね。

安倍: そうですね。

永野: あれしょっさんはLibratoとか推奨してんだっけ。

しょっさん: Libratoもいつもお勧めはしてますね。NewRelicとかだとエラーが出てからでも良いじゃんって時は多少あるんですけど、Libratoは常にパフォーマンスの状態とかも測ってみてもらいたいってところがあるので、細かいところであれデータベースとかのデータを拾ってきてくれるってところが凄く便利なので。そんなに高くないといったところも、お勧めしてる点ですはい。

安倍: なるほど。

永野: Papertrail、NewRelic、あと、Libratoとかはそんな必須じゃないけど、それが入ってないと、そもそもチケット上げていただいてトラブルシューティングお願いされても、全然分かんないって回答になっちゃうんですね。何のAdd-onも入れていらっしゃらないので調べようがないです。

安倍:うーん。

永野: NewRelicとか絶対に、入れて下さいってお願いしてるんですよね。結構ハードル高いんですかね、NewRelicって、一応コードの中に入れといてもらわなきゃいけないじゃないですか。

安倍: そうですね。でも、いれるだけといえば、入れるだけだと思うんですけど。ちょっと管理画面を見たときに何を見たらいいのかわからないみたいなちょっと感じたことありますけどね。何ができるんだっけ、みたいな。やっぱりそれも英語なので、最初ドキュメント見てみないと分かんないねえみたいなのありました。

永野: NewRelicは日本法人もできて。実はあそこのカントリーマネジャーさんは元セールスフォースの人だったりするんですけど。

狩野: へー。

永野: 技術者向けの合同ワークショップとか、セミナーとか、ミートアップとかやろうよって話をしてたりするので。

狩野: ほう。

永野: そういうのも企画してみようかなと。

安倍: エラー検知系だとHeroku Metricsが、ものすごく進化し続けていて、Errorとかも細かく持ってたりするようになったので。だいぶ助けられてる感じはしますね。

永野: そうですねJavaとRubyとあと何かJavaScriptだったかな、結構細かく見れるようになってるはずですね。Metrics自体もEnterpriseのお客様向けのものではあるんですけど。

安倍: そうなんですね(笑)。

永野: はい。Metrics回りは実は一生ベータって話もあるんですけど。

安倍: そうなんですか(笑)。

永野: 開発し続けてるんでね。

安倍: 本当だ、Developer Previewとかいてる。

永野: はい。あれもチームがあって、いっぱい開発してますね。

安倍: うんうん。

永野: Heroku Execっていうのができるようになって、Dynoの中身が見れるようになったってのはやっぱり大きいのかなって。SSHでDynoに入っていけるので。

永野: このポッドキャスト自体40分ぐらいで終わるのかなと思って、Wrapupしようかなと思うんですけど。Heroku開発されてない方で、取っ付きにくいような方にメッセージがあればちょっとお願いしたいんですけど。

狩野: そうですね。先程安倍も言ってたように学生の方でもまず最初に使ってみて、Webに上げてみるみたいな体験ができるぐらい簡単なものなので。英語だし分かんないなあと思ってても、やってみれば簡単にできると思います。あとは普通に開発の観点からも、やっぱりDeployフローがあるきっちりしてるので、それを導入したら凄いこうモダンな開発してるなぁみたいな感覚で自分も感じられるので。簡単でかつ凄い楽にできますし。作りもやっぱりいいと思うので、使ってみればいいんじゃないかなと思いますね。

安倍: 私のほうからだと、Heroku Meetupっていうのを、前のポッドキャストでも言ってるかもしれないですけど、Heroku Meetupってのは定期的に開催されて、それの第22回で、橋本商会さんってScrapbox作ってる方が、「大切なことは大体Herokuで学んだ」っていう資料を上げてくれてて。多分それが一番私の言いたいことが全部入ってるんですけど。そこにHerokuに強制される、正しい設計を強制されるっていう書き方をされていて。12 factor appとか、あのあたりっていうのは正しいやり方を教えてくれる、知らないうちに正しい設計をさせてくれてるみたいなところHerokuに教わったなあってのは私も感じていて。アプリサーバー内にもの持ってても、一日一回再起動で捨てられるみたいなので、外に永続化しておかなきゃみたいなところは、ちょっとずつ体に染みついていくので。そういう意味で、Heroku Wayにのっとって設計開発をしてみるっていう経験も、ぜひしてみて欲しいなあっていうのを思っていて。で、あとはやっぱ何かのやり方に乗っかってその魔改造じゃなくって、自分たちのやり方っていうのはプラットホームのやり方に合わせてみるっていうやり方ができるのであれば、一番楽なんじゃないっていうふうには思ってるので。ぜひ一回だけでもチャレンジしてもらいたいと思っております。

永野: 正しい開発養成ギブスみたいなことをどなたか言ってましたよね。

安倍: はい。

永野: Heroku自体がいろいろなツールを無償で提供させていただいてる。もちろんDyno消費するところではちょっと課金もさせていただいてるんですけど、それを利用していただくことによって、モダンな開発、チームの開発生産性向上みたいなところがHerokuの目指すところでありますから。それを推奨いただければなあっていうふうに日々思ってますので。今日はありがとうございます。しょっさんは最後にありますか。

しょっさん: そうですね。私前職ではあの時はアプリの開発とかじゃなくてインフラエンジニアをやっていたので。Herokuとかセールスフォースとかってのは非常に衝撃的だったんですね。本当に前職でやってきた全てのことが必要なくなったんですね。何もしなくても、突然Herokuにソースコードさえ置いてしまえば、全部できてしまうっていうのはあの時の衝撃もうほんとにびっくりします。革命的でしたね。皆さんもおっしゃっていただいてるとおり、その12 factor養成ギブスっていったところですね。やはり強制されているっていうよりも、正しい作り方にしていこうっていたところも。そうじゃないと動かないんですっていったところはやっぱり。制限として存在してるって非常に大切なことだなっていうのは、非常に重要に感じました。あれを制限で嫌だなって思うのか、そう作ると凄くハッピーなアプリケーションサーバ、サービスが出来上がりますって思うのかってだいぶ違うんですけれども。やはりHeroku使っていただいている人たちって、あれがあったおかげでアプリケーションの新しいサービスがうまく提供できているってところ、身を持って感じていただいているって形だと思うので。ぜひそこで皆さんにもHerokuをこれから使おうとしている方たちも、理解いただいて。別にそんなに高いハードルでもないし。そこに則っていけば、良いアプリケーションをデザインすることができます。そしてサービスもちゃんと提供することができるんですよってところ、これから開発していく人たちにその幸せを実感して欲しいなと思いながらプリセールスしてます。

永野: ありがとうございます。そうですね学生の方とかインフラエンジニアとかそういう方にもドンドン広めていきたいと思うので、皆さんも、僕も含めて、日本の皆さんにHerokuドンドン推奨推進していくっていうのは必要なのかなってふうに感じました。はい、どうもありがとうございました。

一同: ありがとうございます。

永野: Code[ish]JPポッドキャストのエピソードお聞きいただきありがとうございました。Code[ish]JPはHerokuの日本チームがお送りしています。Herokuはセールスフォースに所属し、開発者に愛され続けるPaaS製品です。より詳しいことはjp.heroku.comにアクセスしてみて下さい。どうもありがとうございました。

一同: ありがとうございました。

Code[ish] JP とは

ゲストを迎えてコーディング・技術・ツール・開発者の日常を探る Heroku の Podcast です。

ホスト

Avatar

永野 智

RVP, Heroku Japan & Korea, Heroku

株式会社セールスフォース・ドットコムでHeroku営業本部を統括しています

ゲスト

Avatar

Kusamao Abe

Engineer, 株式会社タンバリン

Engineer and Tech Director at Tambourine

Avatar

Yusuke Kano

Design and Engineering Manager, 株式会社タンバリン

Design and Engineering Manager at Tambourine

Avatar

阿部 崇

Platform Specialist, Salesforce.com

Salesforce Platform Specialist - Sales Engineering

Code[ish] JP の他のエピソード