イベント

DevLOVE X 2019-06-22

いい感じにイベント勉強会を開催するために意識していること Yamaguchi Teppeiさんの講演。 記憶が正しければ前職で社内勉強会をやっていただいたかも。 利益目的ではないことが大事。 なぜ勉強会をやっているかは、恩、楽しさ、学びの3つ。 情熱、実行、がんばらない、開催者が楽しく、は大切 実行は小さくても良いので形にしていく。形にしなければ情熱が冷めていく。 がんばらない。余裕がないと開催者が楽しめない。 がんばらないため、毎年同じ会場、同じ時期にする。 文面コピペできて楽。 がんばらないために、繰り返しやることを考えて、余力を含んだ形でやる。 参加者にも協力を仰ぐ。 正しいコミュニティを正しくつくる ~コミュニティ成長の不確実性をいかに乗り越えるか?~ 小島 英揮さん。 リーダー、フォロワーからスタートする。ワナビーズは相手にしない。 ワナビーズをフォロワーにトランスフォーム。 20-30人以上になったら分科会にわけて、関心事別にコミュニティを分けていくこと。 3つのNG。人軸が強すぎるとだめ。 技術マウンティングより仲間集めが大事。フリーザよりルフィ。 定量的なKPIとして、新規参加者率、アウトプット数(ツイート等)を重視すべき。 コンテンツの質を見るにあたって、LTで原石があったらメイントークに回すなど。 一休 .comでの開発組織改善の取り組みとこれから 田中 健介さん 直近5年の話。2006年から一休で開発。開発をしつつ半分エンジニアリングマネージャー。 7/30に大きなセールを行う予定。2000年からサービス開始で、19歳。 オンプレの投資はなくして、ソフトウェアに投資をするように。AWSのBeansTalkを利用中。 採用の方針としては、妥協しないこと、現行スキルセットを重視しすぎないこと。 移行前の開発組織 エンジニアリングを狭く捉えていた。エンジニアリングマネージャーをしながらでもビジネスへの貢献はできる 踏み出す一歩は大きくなくていい、ただ方向さえ正しければ 長沢 智治さん 人の体験を聞いても面白くないので、エッセンスを伝えていきたい。 スライドの意味はない。 10年前の自分に20年後まで見据えて行動してきたほうがいいよ、というアドバイスをしていきたい。 形式知しにくい。 インテック ソフトウェアエンジニア → 改善コンサルタント → MS, Atlassian エヴァンジェリズム研究所所属。 「正解がない時代」 根拠のない自信を身にまとう。 自己肯定感のない組織 アジャイルな開発組織のOKRベストプラクティス&アンチパターン 吉田 真吾さん 目標管理の目的は人事高価、報酬計画のために行っているのが9割で、実際にはそれ以外にも3つあるができている現場が少ない。 1つ目は、能力開発、人材育成を行うこと。 2つ目は、会社の目的の達成。いかに利益に貢献しているかを方向性をあわせることが大事。 3つ目は、従業員エンゲージメントの向上。働きがいの向上。 人事考課は、成果に対する評価を”公正”に行うため。 目標が達成できるなら目標管理しなくてよい! 目標管理とアジャイル開発とのすりあわせ。アジャイル開発を フラットな組織を構築することで 目標管理の手法としては、MBO、OKRの2つのやり方が採用されている。 MBOの目的は人事考課、能力開発。日本で流行った成果報酬のやり方。元々は自己統制による目標設定と管理のやり方。 OKRの目的は会社のミッションの達成、本当に大事なことに集中。計画や管理はCFRを通じて行う。 MBOの運用におけるアンチパターン * 目標管理と人事考課が一体化してるケースで、最終評価までに甘辛調整されがち * 360度評価で遠いところからまさかりが飛んでくる。傷だらけになることがある。 »

JAWS UG アーキテクチャ専門支部 2019-03

JAWS UG アーキテクチャ専門支部 2019-03 Amazon ECR をソースとしてコンテナイメージの継続的デリバリパイプラインを構築する AWS CodeDeploy による AWS Fargate と Amazon ECS でのBlue/Greenデプロイメントの実装 [JAWS-UG CLI] ハンズオン一覧 祝日スペシャル ECR + CodePipeline + CodeDeploy + ECS(Fargate) ハンズオン > Blueはできるとおもうけど、Greenまでできないかも。 awspecでAWSリソースをテストする LambdaのAddPermissionができれば、権限昇格ができる »

AnsibleNightinTokyo201809

Ansible Night in Tokyo 201809 GitLab で実現する Ansible コードの管理」 by クリエーションライン 荒井裕貴さん Infrastructure as Codeのお話 再現性 正確性 透明性 3回以上実行すれば元は取れる 既にGitLabもAnsibleも使っていて、マージリクエストのフローも導入してるので新しく知ることはなかったな。。。 インフラCI実践ガイド 〜Ansible x GitLab による継続的改善例 〜 自動化の正しさの検証を自動化するには」 by レッドハット 中島倫明さん Ansibleで構築した環境をAnsibleでテストを行う。 タスクにnameをつけ忘れたらビルドをこけさせることができる。 https://github.com/willthames/ansible-lint https://github.com/tsukinowasha/ansible-lint-rules LT Ansible container in the kubernetes https://speakerdeck.com/nnao45/ansible-container-in-the-kubernetes Ansibleの学習環境をvSphereで作ってるお話 https://speakerdeck.com/skyjoker/ansiblefalsexue-xi-huan-jing-wovspheretezuo-tuteruohua 「ElasticBeanstalk で Ansible を使っている話」 by @laugh_kさん! https://www.slideshare.net/laughk/elasticbeanstalk-ansible 「マイベストVariables設定場所(異論、反論Wellcome!)」 by @morihaya55さん https://www.slideshare.net/ssuser1f3c12/ansiblejpbestvariablesplace 22箇所も variables を設定できる https://docs.ansible.com/ansible/2.6/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable group_vars, host_vars … 10数個のrole変数ならInventoryに書き込んだ方がシンプルになる!! »

第12回Camel In Action 読書会@恵比寿

OpenShift FUSE Online https://www.openshift.com/products/fuse Podsを増やしてのスケールアウトができない。 OpenShiftと名前がついているが、実際はKubernetesとのこと。 勉強会メモ 1章から6章までの振り返り。 勉強内容については山下さんの資料を参照のこと(非公開の資料のためここではリンクを記載しない) ルーティング中にずっと使い続けたい値があれば、ExchangeインスタンスのPropertiesに値を設定すれば良い。 »

第5回Camel In Action 読書会@恵比寿

2.6.2 - 2.7 カスタムプロセッサを自作できるが、setBodyなどを設定できるが見えにくくなるためやめたほうが良いとのこと。 3.2 Componentにhttpを使用すると、ApacheのHTTP Clientを使うため、HTTPの受け口を開けるなら、JettyやUndertowを使えば良いらしい。 transformは手元のメッセージを変換する。 enrich, pollEnrichはリモートのメッセージを取得してごにょごにょするらしい。 前の情報を意図的に覚えておいて、情報を操作する場合にenrichを使えば良いのでは、との話が挙がった。 »

JAWS DAYS 2019

JAWS DAYS 2019 AWSのManagement Toolsを使ったハイブリッドアーキテクチャ 対象者はAWSomeDay、Technical Essentials1受講済みレベルを想定。 Transit Gatewayを利用すれば、ルーターとして利用できるため、VPCとVPN、Direct Connect間を快適に結べる。 AWSのエージェントについては中から外に対しての通信しかしていないのでセキュリティ的に安全ですよ SessionManager … サーバーにログインせずにインタラクティブに操作できる。サーバーでの操作ログを記録できる。 Raspberry Piもエージェントを仕込めばAWSから監視できるよ!! S3にAnsible PlaybookやShell Scriptを置いておけば、SystemsManagerのRunCommand経由でオンプレに対してコマンドを実行できる。 CloudWatchでOSメトリクスを収集&監視できるようになった。 CloudWatchの統合エージェントを導入すれば、OSのメトリクスを情報収集できる。 ただし課金されるので注意。 Systems ManagerのRun Cpmmandについては、Black Belt資料を参考にすること。 CodeDeployはインターネットに一度でないとダメ。 クラウド時代のモニタリングといえばDatadogだよね Cloud Functionsで、サーバーレスのサービスも簡単に監視できる コンテナモニタリングで、Kubernetesの利用が多い。 Fargateモニタリングは増加傾向。 ECSではDockerレジトリに公開されているイメージはあまり使われていない。カスタムアプリケーションの用途がメイン? 8 emerging trends in container orchestration コンテナの負荷状況を一覧表示できる Sysntetics - 外形監視もできるようになってきてる。 ハンズオン Amazon LightsailでWordpressを構築しEC2へマイグレーションを実行 AWS CognitoとIAMで認証認可を学び、S3バケットへの権限制御を試す Amazon API GatewayとAWS Lambdaを活用してAmazon Dynamo DB へRESTインターフェースでデータ操作を行う Lightsail利用上のTIPS VPC Peeringにより既存ネットワークへのアクセスが可能。デフォルトはVPCのみ 下り通信費用が固定、かつ低価格。 1TB = 3.5USD/Mo. EC2の場合は、1TB = 116.74USD IAMの違い IAM ユーザー、ロール、ポリシーそれぞれの違いを説明。 »

JJUG CCC 2017 - Autumn

Selenide or Geb? あなたはそのときどちらを使う? 資料: テスト用のCSS Selectorを取得するにはChrome Developer Toolを実際に叩く Gebを使うには、Groovy, Gradleに関しての知見があるメンバーがいないと導入にコストが高くつく。 Jenkinsで不安定になりやすい。 Selenium全般の話。 録画機能などを使わないと原因追求が困難。 waitがうまくかからない、など。 Q&A テストの並列実行をしたいのであればTestSuiteを使う、物理マシンを複数用意するなどした方が良いとのこと。 参考: SelenideよるDSL風E2Eテスト基盤開発の実例 Apache Camel + Hawtio + Spring Bootによるモダンなインテグレーションマイクロサービス SOA + ESBといった重量なアーキテクチャを使わずに REST + Message Queueを使ったアーキテクチャを使うのが主流。 30台後半のようなベテランエンジニアからすると、マイクロサービスにするとスパゲティ化するのではないかと心配する人もいる 1つのチーム(5, 6名)で1つのマイクロサービスを作るように、組織も小さくしていった方が結果的によい Apache Camel 軽量なインテグレーションフレームワーク 直感的なルーティングDSL Enterprise Integration Patterns マイクロサービスのサポート(Spring Boot, WildFly Swarm) Java DSL fromは1つだけ、toは複数書ける。 Camel用のIDEA PluginはシンプルにJavaをかけるようなDSLPluginがある。 JolokiaはSpring Bootにデフォルトで追加されている。 280+個のコンポーネントがサポートされているが、それぞれのコンポーネントをどのように利用してCamelに渡すのか、クセがあるとのこと。 Spring Bootの本当の理解ポイント 資料: https://www. »

JJUG CCC 2017 - Spring

Java Libraries You Can’t Afford to Miss Behavior Retrofit Type-safe HTTP client for Android and Java Multi Thread JDeferred Testing JUnitParams WireMock Better Performance by Kirk Pepperdine JITの監視をするにはJITWatchが有効 JITの最適化について話していた jClarity HotSpotの特徴を最大限に活かすには、アルゴリズムの最適化とメソッドをそれぞれ小さくすることなど細かいリファクタリングが必要。 SIプロジェクトでよくあるフレームワークのカスタム開発ってまだ必要なの? by Hideyuki Fujikawa フレームワークを使うことで、コード量の削減、品質標準化をできる 昔のFWは、単なる家(箱)で、家具(カスタムFW)が必要だった。 最近のFWは、家具付きの家になってきたので、特にカスタムFWは不要になってきたことが増えてきた。ただしどのように使うかはガイドが必要 フレームワークの選定 Spring、Java EEが有力 Java EEは企業の偉い人に人気、サポートの安心感 開発者に人気、最新技術への対応が早い どの機能を使うか決める Spring IO Stack Java EE Stack 決めるための質問 »

JJUG CCC 2018 - Autumn

アンカンファレンス - 非同期分散、CQRS、イベントソーシング、DDD アトミックとなるように厳密にやるよりは、1か0ではなく、中間状態を許容するアーキテクチャとしたほうがスケールする 「結果整合性」という中間状態を許容する考え方もある Amazon S3が有名な例 公式ドキュメント: https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/Introduction.html 結果整合性は、CAP定理でいうところのAPを保証し、最新の状態を取得できなくても確実にデータを返す設計? Migration Guide from Java8 to Java11 資料: https://www.slideshare.net/mobile/YujiKubota/migration-guide-from-java-8-to-java-11-jjug JDK10の互換性リスト: http://git.io/jdk10 JDK11の互換性リスト: http://git.io/jdk11 マイグレーションの障壁 ソースコード、バイナリ、動作それぞれの互換性が担保されるようにしているが、互換性が保たれないこともある。 非互換性のポリシー APIは最短2バージョンで消える 非互換性の追い方 普通はRelease Notesを読めばいいが、載ってないものもあるので、CSRも読んでいるとのこと。 Issue Tracker JEP Compatibility & Specification Release Release Notes Source Repository モジュール化を今回説明しないわけ クラスパスとモジュールパスの説明をすると時間が足りないため Moduleグラフを理解するまではModule化をするには危険。 Java11化について メリット VMのパフォーマンスが上がる G1GCのGCがパラレル化される デメリット サポートライセンスを考慮しなければならない バイナリの非互換性 対処内容 実行時例外 完全に削除されたオプションの中で、ログGCの移行が特に気をつけないといけない 動作不整合、パフォーマンス java. »

JJUG CCC 2018 - Spring

JJUG CCC 2018 Spring Swagger(OpenAPI Specification)入門 SwaggerとはRESTベースのAPIのためのドキュメンテーションフレームワーク。 2015年にOpen API Initiativeに寄贈された。 Programmable Web https://www.programmableweb.com/ 事例: Fidor BankのAPI https://api-docs.fidor.de/v1/introduction/welcome-text Generation Gapパターンの適用 自動生成されたクラスを継承してカスタマイズする。 Swagger Hub https://swaggerhub.com/ LINE LIVE のチャットが 30,000+/min のコメント投稿を捌くようになるまで 全体構成 WebSocket Aerver Clientの通信 単一のコネクション 双方向のメッセージング 低いレイテンシ akka actor model Server内での高速な並列処理 高い障害耐性 メッセージが大量に流れるため。 軽量スレッドによる高速な並列処理 Redis Cluster Pub/Sub Server間のメッセージ同期、高速なKVS コメントや各種データのキャッシュ Lua Scriptingを使ったatomicな処理 チーム構成 もともとPerlを書いていたメンバーが初めてJavaを書く案件となった。 2015年から始めた案件。 当時Java 8が流行ってきていたため、新しい流儀に慣れるのが大変だった Perl vs Java Perl(マルチプロセス) Parallel::Prefork Parallel::ForkManager Java(マルチスレッド) java. »