今回自分は、スタッフとして色々やりつつ、ルーキーズLTの登壇者としてLTもしてきました。使ったフロントエンドの設計があり、そのアウトプットという意味で登壇しました。ついては触りの部分しか話せませんでしたが、興味を持ってくれる方がいればありがたいです。登壇時に緊張して、画面ばかりを見てしまいました。(泣))登壇前は緊張していなかったのに、100人規模をややうけを見て緊張が一気に上がり、それ以降まともにお客さんの顔が見れませんでした。終わった後に何人かに「いつもより緊張してたね」的なことを言われてしまい、若干凹みました。緊張したとはいえ、カンファレンスでの登壇はいい経験になりました。聞いてくださった皆様ありがとうございました。アンカンファレンスでもLTしたよ友人がトラックCで、ゲリラ的にLTしていたので自分も飛びこんで、LTを2回してきました。最初にやった、「入門無限LT」で、「会場にいるみんなにぜひこの場でLTやってほしいと」けしかけたら、何人かの人が実際にLTに参加してくれてとても嬉しかです。スタッフとしてスタッフのことについては、同僚の前田さんがいい感じにまとめてくれいますのでそちらもどうぞ。コアスタッフでしたがスムーズに割当られた仕事をすることができ、さすがカンファレンスジャンキーの集まりだと感動しました。自分は当日ルームBの担当をしながら、トークを聞いたり、参加者の方と交流したり、例年通りとても楽しく過ごせました。大きな問題もなく無事に3日間やりきって、疲れましたがとても楽しかったです。来年もスタッフやりたいなーと自然と思えました。当日は最高に楽しく、登壇も楽しかったし、スタッフ業も楽しかったです。bank開発部の森です。いう項目が追加されましたね。リネームでもしたのかな?と思っていたんですが実際はhubとは別のツールでした。CLIとhubとを使い比べてみての感想をまとめます。数年ほど前からあります。違いが記載されているので引用します。tool....そもそもhubがunofficialだったなんて知らなかった...公式プロジェクトとするべくhubとは異なる設計でつくられたそうです。試しに使ってみましょう。記載されている手順に沿ってインストールしてください。コマンドが実行できるようになります。CLIでできること今のところできることはissueとprの閲覧、作成です。hubよりもできることはだいぶ少ないですが、issueやprをCUIで作る時に案内が丁寧だったりブラウザでプレビューできたりするのがhubよりもいいところです。prのリストはあまりhubと見た目変わらないですね。list気に入ったのはissueを作成する時にブラウザでプレビュー画面を表示してくれるところです。まちがって誤字入りissueやpr作ってしまうのが恥ずかしいので一度チェックできるのは嬉しい(チェックが漏れないとは言っていない)。詳しい例が記載されていますのでそちらも参照ください。CLIとhubを使い比べての感想Tweetもっと読むコメントを書く2020-02-13PHPerKaigi2020に参加して得た知見Tweetこんにちは。bacckcheck事業部の前田です。この記事は個人ブログの転載です。phperkaigi.jpPHPerKaigi2020に参加してきました。一般参加ではなくスタッフとして参加したのでトークはきいてなく*1、スタッフとしての「PHPerKaigiの裏側!!」みたいなのも書かないので、あまりブログに書く内容がないのです・・・そんな中で得た知見を少しでも紹介します。朝にモスバーガーで飲むコーンポタージュスープが最高です。コンポタのためにスタッフ業をしているといっても過言ではないかもしれません。(過言です)最高なので毎日行きました。2020年2月10日PHPerも踊れる前夜祭にPHPrePartyというのがあり、なんとびっくり、DJイベントをやったのです。普段のエンジニアの様子からはまったく想像つかないのですが、みんな踊れるんです・・・!!ほしさきさんが動画をTwitterにあげていて、とても場の雰囲気が伝わってきます。2020年2月9日みんな場があればこんなにはしゃげるんだなーと再認識しました!みんなコミュニケーションをとりたいPHPerKaigiに参加して毎年思うことですが、みんなやっぱりコミュニケーションを取りたいんだな!!ということです。当然に僕もコミュ障なわけですが、コミュニケーション下手ながらも、誰かと話したり、自分の知らない考え方をきいたりするのはとても楽しいのです。いうタイプは僕だけなのかな?と思ってたのですが、どうやらみんな同じ気持ちのようだとわかりました。PHPerKaigiにはコミュニケーションスペースというものがあって、色々な人と話せる仕組みがあったりします。ここが本当にずっと賑やかで(トークやってるときもずっと!)、みんな楽しそうでした。IRTもやっていて、ここもずっと満員でにぎわっていました。これは言ったら怒られるのかもしれないのですが、トークは後からでも情報を追えるんですよね。スピーカーのみなさんは優しいのでスライドをWebにあげてくれるし、最近のカンファレンスは後で動画を上げてくれるところも多いですよね。やって誰かと話したり意見交換したりすることは、実はイベントに来ないとできないことなんです。みんな、色んな人といっぱい話すためにカンファレンスに行こう!PHPerKaigiに行けばいっぱい話せるよ!もちろんコミュ障でも!と言っていきたいと思いました。今回はトレカが受付時に配られていて、PHPrePartyから本格的に交換していきました。80人くらいの人と交換できて、わりと満足です。ちなみに僕のカードはこれ。対戦相手はカードを1枚捨てるうーん、自分の性格がでてるなぁ。前から、CDKを用いた環境整備を行いました。今までterraformで構築してきたので、それとの差分をメモ代わりに書こうと思います。DR使い分けとしては下記のようになるかなと思っていますCDKベストプラクティスを簡単に構築したい場合。使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースをモデル化およびプロビジョニングするためのオープンソースのソフトウェア開発フレームワークです。CluodFormation(AWS専用のIaCサービス)用のパターンファイルを生成してくれるものとなります。いつも使い慣れた言語を使うことができるため、サーバーサイドのエンジニアが手軽にインフラの構築を実現できるものとなります。今回はTypeScriptを用いたのですが、型推論がしっかり効いていたため、どのリソースにどのようなパラメータが設定可能なのかを、コードをみるだけである程度推測することが可能で、流れるようにコードを書くことができました。}}このように、<リソース名>.from<設定するアトリビュート>()とすると、現在のリソースから情報を取得し、その取得した結果を別のリソース作成時に使い回すといったことができます。実行時は下記のようにTypeScriptをJS化した上で通常のJavaScriptを実行するだけなので、環境変数の注入など、動的に指定することが可能です。いうユースケースが考えられます。CDKを使っているということは必然的にAWSを用いているということになるわけですが、例えばあるリポジトリでCodeBuildで環境を整備しようとしたときにbuildspec.ymlを配置すると思うのですが、そちらに下記のように指定することによって、dockerイメージを作成したあとにそのイメージを使って環境を作るといったことが可能になります。template.ymlこちらのartifactsを使ってCloudFormationを立ち上げるといった具合です。この際、例えばCodeBuildに対して特定の条件を分岐させるような環境変数を提供し、それをコード化することによって必要な環境をよしなに作ることができます。この昨日を使うといいかもしれません。便利な関数を呼び出す形で組み立てていきます。型である程度中を推論できるものの、ハードコーディングされているオプションなどがあり、細かいチューニングには向かないかなと思いました。servicehttps://www.terraform.io/Terraformのサイトから引用したのですが、文字通り、AWS以外のクラウドインフラにおいて使えるIaCのツールとなります。下記のように、独自のDSLを用いて記述していきます。HashiCorpプラグインなどを使うことによって、設定できるパラメータが何があるかと言うのをある程度推論してくれます。80}実行は基本的にサイト上にあるバイナリファイルをダウンロードしてきて、それを実行していく形になります。実行後はstateというストレージに環境全体の情報が格納され、次回以降の実行時はこのstateと実際のインフラ環境、コードの状況を比較し、差分のみを実行するといったことを行ってくれます。いいところ一つ一つしっかり記述していくため、細かいチューニングができるのが特徴です。バイナリの方でフォーマットのコマンドも用意されているため、基本だれが書いても同じようなコードになります。importという機能があり、Webコンソールなどですでに構築されている環境の状態をstateに持ってくる機能があるため、試しにWebコンソールで環境を作ったあと、importでコード化するということができます。基本的に運用し続ける環境で効果を発揮すると思われます。差分適応による効率的な環境設定ができる点import機能による、コード化の簡易性インフラ構築に特化した、宣言型の実装というところで、メンテナンスに適しているためです。workspaceを用いることによって、本番環境と同等の環境を手軽に別の環境で作成することができるため、本番適応前の最終確認などが手軽に行えるといった点も評価できるポイントです相性の悪い環境すべてのパラメータを宣言的に書くという仕様上、あまり動的に変わるようなインフラ環境には向かないと思われます。動的に変更したい場合はCDKを検討しましょうまとめCDKとTerraformを比較してきました。それぞれ一長一短あると思いますが、よしなに使い分けていけるといいかなと思っております。タイトルlernaはモノレポ管理下にあるpackage.jsonのコマンドを同時に実行することができる。lintが実行される。(s-はオレオレパッケージのプレフィックスです)モノレポではワークスペースでlintの設定を統一したり、ビルドのコマンドを統一したりするのでlernaのコマンド実行は便利。標準出力がしょぼい一部コマンドではルートのpackage.jsonにlernaコマンドを書いて実行すると、Warningになっていても標準出力に出ずsuccess!とだけ表示される。鬱なのでなんとかしたい。オプションをつけて子の標準出力をlernaに送るrunコマンドはオプションで--streamをつけると子プロセスの出力をストリーミングすることができる。各ワークスペースのコマンド実行ログがそのまま流れるため、lernaからの実行時でも重要な標準出力を見逃すことがない。出力がごちゃ混ぜになってやばいみたいなこともない。他にも並列実行のオプションや実行時のパフォーマンスを測定するオプションもある。需要に応じて使ってみると良いかもしれない。0.12がでてしばらく立ちますが、先日構築したCloudfrontの環境において、Terraform0.12のdynamicを使わないと実現できない事案が発生したため、この際にと思い、一気に0.12にバージョンアップしました。マイグレーション方法とかは、terraform側が提供しているものを使えば80%くらいはやってくれるので(一部手動で修正が必要ですが、WARNING出してくれるのでポチポチやっていくだけです。)今回は主題のdynamicについて紹介します。0.12で追加されたシンタックスのうちの一つです。ようなネストされたリソースを記述する際には一つ一つ重複して書く必要がありました。cloudfrontは機能が多く、befaviorに各パスごとのoriginを書くことによってL7スイッチになることができるため、設定が繰り返し記述になりがちであり、かつネストが多い非常に複雑な構造になっているため、dynamicの恩恵を受けることができます。今回はslides.comで紹介した形を例に考えてみます。各種スイッチの向き先の対照表は下記になっています。S3(Nuxt.js)今までであれば、/apiのブロックを一つ、novaのブロックを4つ、deafultのブロックを一つ書く必要がありましたが、dynamicを用いることによって、defaultとordered一つのブロックですべての表現をすることができます。}}他の使いみち上記はbehaviorの設定をまとめるために使ってみましたが、例えばステージング環境は特定のパスだけBasic認証いれたいという要件が来たときには、今までだとlambda_function_associationだけ違う別リソースを記述する必要がありましたが、mapと組み合わせる事によって、下記のように同一ソースで記述することができます。dyanmicの使い方を、Cluodfrontを用いて紹介させてもらいました。edgeとの組み合わせは非常に使い勝手がいいので、よかったら試してもらえればと思います。php-buildを諦めてしまいましたがいろいろ設定を調査して再挑戦です。利用するオプションを記載しています。オプションを調整します。default_configure_optionsはこのようになりました。gist.github.comそれぞれビルド用にHomebrewでインストールしておきましょう。再インストールしろというエラーが起きてしまいました。指定して再実行しましたが状況が変わりませんでした。readline.h-----------------------------------------くやしい。原因調べないとダメです。上書きしてしまっているようです。指定すればconfigureにオプションとして反映してくれるようです。作っていくメンバーを随時募集しています。この記事を読んでROXXに興味を持ってくれた方はぜひご応募ください。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。