クラウド型のWeb脆弱性検査ツール VAddyを開発しています。
SaaSを4年間開発、運用してきた中でたくさんの失敗をしてきました。
今回は価格設定やサービス設計など、ビジネス上の失敗を元に何が間違ってどう動いてきたのか、その中で起こる技術的な課題をお話します。
この数ヶ月、Rust版、PHP版ファミコンエミュレータを読み、Go言語に移植しています。
そもそも2019年にもなって何でファコミンエミュレータなのか、何が楽しいのか、魅惑のエミュレータワールドを通して体験できたコンピュータの世界をご紹介。
マイクロサービスやCI/CDの実現を目的として検討されることが多いコンテナ技術ですが、本セッションではコンテナを使ったことがない方、またはほとんど知らない方向けに、コンテナそのものの概要に加え、アプリケーション開発者がコンテナを活用することによるメリットや実際の利用についてデモを交えてご紹介します。
いまどきの PHPエンジニアに知ってほしい AWS についての情報をまとめてお届けします!そもそもクラウドとは?といった基本的なところを押さえた上で、あなたの PHPアプリを一味違うものにするための各種サービスを紹介します。
世の中すべてのシステムからポーリング処理を消し去りたい。そんな想いを持った人は少なくないはずです。本セッションでは、Event Sourcing/CQRS といったキーワードを中心にイベント・ドリブンなシステムを実現する上で押さえておくべき概念と、それらと切り離すことのできない結果整合性という考え方について説明します。また、セッション後半では実際に AWS の各種サービスを用いてこれらの概念を実装する方法を紹介します。
最近さまざまな開発コミュニティで「 GraphQL vs REST 」という形で紹介されており、Rest APIの次のパラダイムとして注目されている GraphQL 。AWS AppSync というマネージドサービスを利用することで簡単に GraphQL を使い始めることが可能になります。 スキーマをベースにした設計、Query / Mutation / Subscription のシンプルな利用、クライアントからのレスポンス形式の指定などの特徴があり、チャットアプリのようなリアルタイムアプリケーションを作成するのに非常に力を発揮します。 本セッションは GraphQL 入門セッションという立ち位置で、 GraphQL やそれを簡単に使うための AWS AppSync の使い方を紹介させていただきます。
CI/CD 、コンテナという技術はDevOpsにおいて重要なプラクティスの一つとなっております。
このセッションではコンテナや CI/CD がなぜ重要なのかについて解説していきます。また、具体的にどのようにコンテナ環境でCI/CD を実現していくか、その環境にPHP Appsをデプロイしていくかを紹介させていただきます。
みなさんは GitHub issues を使っていますか?
世の中にタスク管理ツールはあるけれど、結局(GitHubを使ったことのある)エンジニアにとって一番使いやすいのは GitHub issues なのではないのかと個人的には思っています。
このトークでは
「一番便利なのはGitHub issuesではないか」とはいったものの、一番伝えたいのは「プロジェクトの進捗を見える化し、ちゃんと管理していくことはとても大事だよね」ということなので、他のタスク管理ツールを使う方にも参考になるような内容のトークとなるかと思います!
PHPのアプリケーションをどのような環境で動作させているでしょうか?PHP アプリケーションを開発しておわりということはなく、どこかしらの環境にデプロイし安定したアプリケーションを提供しつづけることはどんな環境でも同じです。AWS では PHP アプリケーションを動作させる様々な環境があります。EC2 / Fargate / ECS/ Lambdaなどなど。このセッションは よくあるAWS を使ったPHP アプリケーション構築パターンを紹介し、それぞれのメリットデメリットなどを紹介していきます。このセッションを受けることで、簡単に運用の手間を極力なくした形でのPHPアプリケーションの運用が可能になります。
多くのWebサイトが急速にHTTPS化し、現在日本では70%以上の通信がHTTPSに対応していると言われています。
しかし、安易に設定しただけではセキュアな状態とは言えません。
このセッションでは、HTTPSの歴史を振り返りながら、どのようにすればセキュアになるのかを解説したいと思います。
Hackにはアノテーションとして作用させることができるAttributesという機能が提供されています。
デフォルトではメモ化を表すものや、PHPにはないクラス継承を制限するsealedを付与するものなどがあります。
これはクラスやメソッドはもちろん、引数に対して利用することもできPHPとは全く異なるアプローチが可能で、
独自のアノテーションを実装することもでき、開発時に多用することも少なくありません。
PHPと異なるランタイムと言語機能を持つHackのAttributesに焦点を当てて、
アプリケーションで実践するAttributes活用方法と、マニュアルにはないAttributesを紹介します。
営業会社(エンジニアが0人)がサービス開発をはじめたがオフショア開発企業との間にトラブルが続出して炎上していた案件をブリッジSEとしてサポートしてみた話。土日を中心に週一で手伝ってみて感じたITリテラシーが低い会社とやり取りするときの注意点を共有します。
未経験スタッフやスクール卒で、 FizzBuzz もかけない…みたいなスタッフを
業務で活躍できるレベルまで持っていくために必要なものはなにか、みたいなお話をします。
技術知識と業務知識は違うよ、みたいなお話とか、社内教育のプロセスについてなど
普段の弊社はレガシーな環境で開発をしている。web系の企業なのにサーバーは未だオンプレだし、phpのバージョンをあげるにも四苦八苦しているし、slackを使い始めたのもつい半年前だし、フレームワークは使っていない。そんな弊社は社員が40人程度しかいないのにコミュニケーションエラーが多く、営業からのリクエストも開発側では聞いてないなど不毛な議論をしている。なのでDDDを導入して営業側もドメインマスターとして開発に関わってもらう体制に変更中。この体制変更を営業に理解してもらう上で躓くところ、こう話すと理解してもらいやすいよといったTIPSになります。
Webアクセシビリティに取り組むのはディレクター?デザイナー?フロントエンドエンジニア?
いえ、私たちPHPerもしっかりと取り組んで行かなければなりません。
アクセシビリティと聞くと障がい者向けの取り組みかと思われますが、一概にそうとは言えないでしょう。
もしかすると、あなたが作っているWebサイトは身近な誰かがアクセス出来ないかもしれません。
今回のトークではAPI設計の際に考えるべきWebアクセシビリティについて話します。
PHPerだからWebアクセシビリティについて考えるのは関係ないとは言わせません!
最近なにかと話題の「心理的安全性」ですが、私が過去に10以上の本や記事をインプットした結果で、できるだけわかりやすくイメージがつきやすいように説明します!
・心理的安全性とは(一般的な定義と、間違った定義を解説!)
・心理的安全性は誰のもの?(心理的安全性を作り出す人は誰なのか、誰であるべきなのかを解説!)
・心理的安全性の高め方3選、壊し方3選(実例含めて、デザインパターンとアンチパターンを紹介!)
・明日からできる心理的安全性確保活動
15分を目一杯使って、「心理的安全性」のことだけひたすら話し、考える時間にしようと思います。
最近ではPHPアプリケーション開発において、自動テストを入れるのが普通な状況になってきましたが、一方で外部ライブラリをどうやって扱おうかが悩みどころです。mockを使ってライブラリを置き換え、インターフェースのテストだけで済ませてもいいのですが、ライブラリの仕組みを使って、より突っ込んだテストができないかとも思います。そこで、ライブラリの通常処理に、別の処理を割り込む仕組みを利用することで、より意味のあるテストをかけることを、GuzzleやSwiftMailerを例にとって解説していこうと思います。
PHPはそれ自体がWebに特化した機能を持つ開発環境ですが、使用方法を誤ると予期せず実行が中断されたり、脆弱性の温床になるようなパターンがいくつもあります。このトークでは時間の許す限りパターンの紹介と解決策の提案を紹介します。 (タイトルの10の進数表記は任意の整数とする)
アプリケーション開発をしてれば忘れがちなネットワーク周り。
そんなネットワークからパケットを操作し、色々と実験をしてみました。
内容としては障害、攻撃、冗長化をメインにそれぞれの実装方法と挙動について見てみたいと思っています。
パケットを操作することで改ざんをしたり、クライアントにバレずにサーバを切り替えたりなど自分の興味の赴くままにやってみました。
カオスエンジニアリングにも挑戦してみたいと思いその入り口として、障害実装もしています。
実装方法は自作ソフトウェアルータを利用してその中でL3、L4のパケットを操作して実装してみました。
言語はErlang、Elixirを使って実装をしています。
実装する中で気づいたこと、気をつけること、今後やりたいことなどについても話せればと思います。
これまで、AWSのサーバレス実行環境であるLambdaで実行できる言語は限りがあり、場合によっては新たな言語を習得しなければなりませんでした。
しかし、昨年の追加されたLambdaのカスタムランタイム機能により、(ある程度の準備こそ必要ですが)PHPを初めとする自分が今まで使い慣れている言語で開発及び実行できるようになり、より手軽にサーバレス開発が行えるようになりました。
本セッションでは、Lambda+PHPという環境を通じて、
・PHPカスタムランタイムの動かし方や作り方
・どのように動くのか
・どのような用途に向いているのか
といった概要や、各種フレームワークを動かしてみた結果といった調査結果などについてお話します。