今何やってるのと言われた時のための記事 2017/06/12週

ニャオス

Headless chrome で帳票が作れるのでは

developers.google.com

帳票(納品書や請求書)をシステムから紙で出すみたいな話はよくあると思う。前にそれでSVFというソフトを入れてやっていたりしたんですが、初期導入費が大きく運用コストもかかる。委託するにしても、やはりかなりの費用がかかる。自前でやる方法もあり、HTMLからPDFを作れるような物もあるみたいだが……。

そこでheadless chromeレンダリング結果をPDFで出力できるらしい。そしてディスプレイなしでコマンド打てば実行できる。

chromeから印刷イメージを出せる事の良い所は、何と言ってもシンプルである事。chromeだけ入れてしまえば、後はライブラリを入れたり、使い方を調べる必要がなく、ページと同じように出していけば良いはず。コマンド一発で片付くのも良い。

さらに、ブラウザの表示結果になるはずなので、確認も楽だし再利用もできる。普段はバッチ処理でPDF作って配るけど、いざとなればブラウザでURL開いてそのままプリンタから出すとか。

レイアウトがどれくらいできるかは試してみないとわからない。印刷用CSSとか見るのかな。文章の折り返しとかはどうなるか。webfontとか使えれば、アセットがかなり楽になりそうな気がする。SVFはデザイン用のツールもあったりしてよかったけど、ブラウザでやるとなるとある程度ハードルは出てきてしまい、そこは課題かもしれない。

という事で、できるのでは! という期待が今自分の中で高まっている。場合によっては結構な削減効果見込めるぞ!

問題はPDF作った後、それをどうやってプリンタに持っていくかなんだけど……。プリンタのベンダごとの違いとか気にするのはもう嫌だ。印刷代行の業者使うしか。

AWS内部DNS

今はAWSを使っていて、踏み台サーバを通して各サーバにアクセスするみたいな事をしている。この時都度IPをインスタンス一覧から見ていて、本当になんでこんな無駄な事をやってるんだろうかと。

前にやってた環境でも同様の課題があり、その時はconsulを導入していた。

qiita.com

ただこれは、当時使っていたIaaSが貧弱で、DNSは一度ホスト名を登録するとずっとIPが変わらない、LBを使うと設定変更時に瞬断が起きて本番系に影響が出る、という事情があったため。AWSなら……! と当時は思ったものでした。

そして今はAWS。R53のprivate DNSを使って解決できそう、なんだけど、サーバの増減は手で反映しないとだめそう。結局awscliの呼び出しをどっかに書いたり、別の所で処理がコケた時にゴミが残ることを気にしたりしないといけなくなる。(そう、デプロイ時に動かすシェルに書いてるアレの事ですよ)

その点、consulはよかった。設定ファイル置いてバイナリ立ち上げればあとは全部やってくれるし、プロセスが落ちたら勝手に離脱する。いわゆるサービスディスカバリ的な用途には結構良いなと改めて思った。

今何やってるのと言われた時のための記事 2017/06/05週

ニャオス

時間があるなら仕事を進めなければッという圧があるが、まぁ手が進まず結局時間が無駄になるという悪循環があり、どうしたものか。

正しいreact

react、構造化できるjQueryぐらいの気持ちで使ってしまっているので、正しさの不在を感じている。あとfluxで処理書く場所がよくないのでは? という気持ちをずっと持ちながら書いてしまっている。(とはいえ同じプロジェクトで書き方が混在するのは避けたい気持ちもある)

こういう時はコードリーディングだ、という事である程度見繕ってはいるんだけれど。そのうちチェックしたい。

ESLint

Rubyはrubocop先生に教えられながら書いているが、ES2015側はわりと無法地帯になってしまっている。ということでESLintをやるべきだろう。

eslint.org

今何やってるのと言われた時のための記事 2017/05/29週

ニャオス

GASとかGoogleスプレッドシートを書いているうちに時が過ぎていく

Red Bull Air Race 2017 Chiba

f:id:thrakt:20170603142151j:plain

www.redbullairrace.com

エアレース三度目の千葉、行ってきました幕張に。本日予選。海岸からなら視覚的にはかなり間近に感じられ、迫力もあり面白かった。

f:id:thrakt:20170603152848j:plain

エアレースというのは、飛行機で決められたコースを周回するタイムを競うスポーツです。空のF1なんて言われてるらしい。飛行機が飛んでるだけで何が楽しいの、すぐ飽きそうと正直自分も思ってたんですが、これがなかなか面白い。ただ早く飛べばいいって物ではない、レギュレーションが定められている

これはレッドブル・エアレースに参戦している日本人パイロット、室屋選手の機体。グリーンの塗装が美しい。

レギュレーションは、パイロンは決められた高さの範囲で避けなければならないとか、ゲートは水平姿勢で通過しなければならないといったもので、この辺は失敗すると周回タイムに+2秒とか加算されます。この辺は会場で見てると、ちょっと高すぎるとかわかるので面白い。

一番大きいのは10Gを越えたら一発NGというもので、ターンとか内角に攻めすぎると瞬間的に10Gを越えてしまいます。本来安全のために設定されているものですが、これによって10Gギリギリを攻める駆け引きが出てきて、レースに深みを与えています。これに各選手の機体やカスタマイズによりライン取りが異なってきて、そういった所が楽しいです。

昨年からは映像にはゴーストプレーンという新しい技法が使われていて、よりわかりやすく楽しめるようになっています。

www.redbullairrace.com

現在のトップスコアの選手を透明に表示させ、今の選手とどれくらい差が出ているか出すという物です。これにより、トップとの差が視覚的にほぼリアルタイムでわかり、ものすごい白熱します。最近はBSなんかでもやってるみたいですね。

昨年はまさに、千葉で室屋さんが優勝した年で、その時もこの映像を見ていました。本戦でゴーストプレーンに対して頭一つ先に出る室屋さんのライン取り。すごい角度だッ早い! いける! Gは大丈夫かッウオオーッ!!! という感じで最高にアツかった。マジで2016の千葉はドラマチックで、ゴーストプレーンは最高にわかりやすく楽しいという事です。

f:id:thrakt:20170603171955j:plain

個人的に思う一番の見所は、第3ゲートのバーティカルターン。グンッと高度を上げるのは見ごたえがあり、10Gを越えないようにする緊張感もあり、次のパイロンに備えるライン取りの駆け引きも見れます。今年はスタート・ゴールの場所が変わった影響か、これまでより高く上がっていた感があり良かったです。

自分は2015年も会場で見ていて、そこでピーター・ベゼネイというレジェンドに出会いました。初回からずって出ていて専用機も持っている。ピーター・ベゼネイ専用機! ロボットアニメの主人公かよ。カッコ良すぎる。ところが彼は2015年にレッドブル・エアレースは引退してしまいました。私は悲しい。

まぁ会場はとにかく人が多い。特に本戦はもの凄い盛り上がりですが、もの凄い人混みです。リクライニングシートありのエリアに行きたい。浦安に離発着のハンガーがあって、昨年はそこでライブ映像を見ていました。臨場感はやや落ちますが、離発着など見れて楽しい。タダだし。

浦安のハンガーは早朝であれば滑走路に入れるそうなので、今年はそれで行ってみようかなと思ってましたが、DC-3見たかったのでとりあえず予選だけ見に行くことに。人は多かったですがそこそこで、天気も良くよかった。

f:id:thrakt:20170603155155j:plain

エアロバティック飛行。実はこれが一番楽しかった。レシプロ機のエアロ飛行を生で見るのは初めてで、ナイフエッジやストールターンなどこれぞ曲芸飛行というマニューバを色々見れました。本当に最高の経験だった。

そしてDC-3!

f:id:thrakt:20170603160118j:plain

来た!

f:id:thrakt:20170603155954j:plain

見た!

f:id:thrakt:20170603160130j:plain

帰った……。

コースのあたりを3周くらいして行きました。これ乗客乗せてたらできないのではってくらい、低い所を結構なターンをしていきました。会場に入って正解だった。仙台から来ているそうで、ちょっと天気が気になってましたが大丈夫でよかった。

それにしても美しかった……。今となってはレトロ・フューチャーを感じさせるデザイン、飾り気のない翼が印象的でした。

f:id:thrakt:20170603174240j:plain

零戦里帰りプロジェクトも来ていた。夕暮れでちょっと見づらかったのが残念でしたが、こちらもよく飛んでいました。よくぞここまで復元したものだ。とはいえエンジンは違うんだよな、とかも思いつつ。紅の豚のBGMをかけるのは演出過剰だったかな。

この時代の飛行機が飛んでいて凄い! というのはあるんですが、その点アメリカだと個人所有のマスタングがあったりするし、やはり一度はリノのエアレースも見にも行ってみたいと思うのでした。

今何やってるのと言われた時のための記事 2017/05/22週

ニャオス

業務時間後と休日は仕事が捗るというSIer時代の上司と全く同じことを考えていて、因果応報という言葉を噛み締めている。どちらかと言うと永劫回帰かも。

JAL工場見学に行ってきた

f:id:thrakt:20170527094833j:plain

JAL - JAL工場見学〜SKY MUSEUM〜

JALの飛行機整備工場の見学に行ってきました。羽田空港内の新整備場。半年前に予約してたもの。

f:id:thrakt:20170527094922j:plain

まず展示スペースがあり、見学開始前と休憩時に見学できる。子どもが楽しめるものから、歴史や技術の変化など読み物までありかなり充実しています。JALの最初のロゴが格好良すぎて痺れる。

見学開始30分前から入場できますが、ここを見るために30分前必着と言える内容です。実際自分の参加した回も最初に参加者揃ってた。

写真はキャビン・アテンダントの歴代制服の展示で、見比べるとなかなか楽しい。時代! 急にミリタリー色のあるデザインになったり。個人的には青いやつが好きですが、デザイン的には現行の物が優れているように思います。写ってない。

f:id:thrakt:20170527100927j:plain

若田宇宙飛行士のコーナーもあった。これはISSに行く時に発行した往復チケット。

見学は、航空教室というレクチャーとハンガー見学の2部構成になっています。航空教室の内容は、整備スタッフ、航空機、羽田空港の事など。いきなりカーボン素材の話をはじめてぶっ込んでくるなと思いました。全体通して787の翼はしなると10回は聞いた気がする。

いよいよハンガーへ

f:id:thrakt:20170527110340j:plain

ウオーッ!!!

こちらは第一格納庫で、吊り下げ式の作業台があり塗装の作業や内装作業ができるらしい。X線検査もできる。

f:id:thrakt:20170527111237j:plain

第二格納庫。広い!!! こちらではヘルメットを被ります。

f:id:thrakt:20170527111318j:plain

生エンジンだ。

f:id:thrakt:20170527111829j:plain

整備、普通に作業されているし結構近くで見れます。コクピットも作業してました。737でウイングレットが特徴的なんですが、写ってない。

f:id:thrakt:20170527112438j:plain

A滑走路に面しており、作業してるし飛行機もバンバン通る。保安上、滑走路には一切出れないのでご安心です。

f:id:thrakt:20170527113521j:plain f:id:thrakt:20170527112548j:plain

もうバンバン通る。本日A滑走路は南風で離陸でした。めちゃめちゃ近い。

f:id:thrakt:20170527114526j:plain

案内は人によって結構違ってて、機材の紹介に重点を置いている人や通りがかる航空機の解説をする人など。その辺も含めてまた行ってみたいように思います。ひとまず次はANAか。

データマイグレーションナイトに行ってきた

atnd.org

最近Excelの手入力からMySQLに移行するデータマイグレーションをやっており、インスピレーションと癒やしを求めて参加してきました。DMM.com Labo様主催。東京タワーとかすごい近い絶景のロケーションでした。

ChatWork株式会社 赤津 慶太氏

  • ChatWorkの移行プロジェクトで、メッセージングシステムをAuroraからHBaseに移行した話
    • メッセージングシステムと言うとMQみたいな物を想像したが、チャットのメッセージ全体を格納しているシステムの事で基幹
  • Auroraで17億のレコードを移行
  • 基本マイグレーション + 差分マイグレーションという構成
    • ダウンタイムを小さくする工夫。自分も昔やりました
  • 件数が多いため差分はbinlogを参照して出す。スナップショットから差分を取って移行を繰り返し、最後は本番から。本番とスナップショットのbinlogの出方の違いに注意。
  • DBMS側のメトリクスをしっかり見るのが大事。データを移行してもシステムを壊しては意味ない。
  • Sparkの高速化の話をかなり掘り下げて
    • 門外漢なのでまぁ

株式会社CyberZ 黒木 亮太氏

  • 自社プロダクトをオンプレからAWSに移行した話を全般的に
  • コストのモニターが大事みたいな話

なぜクラウド化したかについて、コスト面とアプリ開発に集中したいからと言われていて、インフラ専業エンジニアはやめてアプリ開発者にクラウド覚えてもらったみたいな話もされていた。DevOpsやんけ~ という感じ。

ただ、クラウドに移行したからといってインフラの知識がいらないとは思えず、むしろ高い専門性が必要になってくる印象がある。アプリ開発に集中というのは開発者の夢であり、PaaSを経て大Serverless時代の到来を待ち望んでいるのではありますが。個人的にクラウドのメリットって高可用性とかになるかなぁと思って聞いていた。

株式会社DMM.comラボ 飯田 涼太氏

  • 基幹システムのAPI更新に伴う新旧同期レプリケータの話
    • 字面がやばく、実際ヤバいアツさがあるプロダクトだった
  • 構成は、新旧ともにMySQLのスレーブとして振る舞うデータ取得機があり、そこから一旦RabbitMQに保存してキューイングし、vert.xで作ったマッパで変換して適用。それが新->旧と旧->新の双方向にある
    • アツい!!!
  • レプリケーションは一旦RabbitMQに書き出すことで、途中で落ちても大丈夫なようにする。永続性を確保。レプリケーションMySQLのバージョンが違ってても対応できるようにした
  • マッピングYamlで指定する形にした
    • なんかすごく汎用性が高いぞ
  • 反映順が担保されないが、結果整合性で解決
  • 更新時に、SQLのコメントやデータなどで更新者を明示し、循環更新されないようにした
  • 問題ないかは日々新旧APIを叩いて比較して検証。マッピングのミスなどで不整合が出ないかは、テスト系でしっかり検証して問題が出ないようにした
    • マジかよ……

とにかく絶対に止めたくないし安全完全ご安心にやるんだという強い意志が伝わってきて、そこまでやるかという感動がありました。これものすごいマンパワーでやってそうで、すごい事例だった印象。

株式会社サイバーエージェントクラウドファンディング(makuake) 吉田 慶章氏

developers.cyberagent.co.jp

の内容らしい。とにかく話が面白く、内容も絞られていて良かったです。

印象に残ったのは、あえて無停止移行を避けて安全側に倒した話。しくじった時のダメージも大きいし、ビジネス側の影響も考えて然るべき調整をして実施したと。そういうの大事だなあと。

Amazon Web Services Japan 千葉 悠貴氏

インバウンドは無料なのでじゃんじゃんデータを持ってきてください、という感じでした。

気になったサービス

www.publickey1.jp

えぇ……


とりあえずAuroraとか実のところRDSインスタンスとの違いがわかってなかったので、その辺調べてみようかと思います。あれ、AWSの勉強会に来たみたいな感想に

自分の経験だと、昔オンプレからクラウドに移行しようとなった時に、ついでにDBのスキーマを整理しようとなってマイグレーションをやったことがあります。基本+差分更新という形で、移行前日まで更新日付を見て移行しておいて、停止後に残りを処理して終わらせる形。移行プログラムはJaveで書いてて、JDBCを2系統用意してSQLで読んで変換しつつSQLで書く形。それなりにデータ量ありましたが、それくらいで済む環境ではありました。まぁなんとか無事には終わった。

最初に書いた人力DB移行の件は、移行データがそれ単体で完結しておらず、結局インポート後に人力で修正をしないといけないという状態で、どうしたものかと。今のところ中間データみたいな物を作って、プレ環境で修正して中間データに書き出し、本番移行という感じにできないかなと考え中ですが、はたして。