AWS Dev Day 2022 で発表したJava アプリケーションの起動速度のアプローチの資料
![ぼくたちは Java アプリケーションの起動速度をどこまで縮められるか](https://cdn-ak-scissors.b.st-hatena.com/image/square/712c1bc9435452561b8c575eb3439be400ccfcf8/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F3237618fa97f4959b017f54084d18634%2Fslide_0.jpg%3F23376190)
Red Hat で Java Platform Advocate として OpenJDK を担当している伊藤ちひろ(@chiroito)です。 この記事は、Red Hat Developerのブログ記事、Java 17: What’s new in OpenJDK's container awareness | Red Hat Developer の翻訳記事です。 OpenJDKは、以前からLinuxコンテナ(DockerやPodman、またKubernetesのようなコンテナオーケストレーションフレームワークなど)を意識してきました。コンテナ対応とは、OpenJDKがコンテナ内で動作していることを検出することを意味します。この記事では、コンテナ対応がなぜ有用なのか、OpenJDKのその領域で最近何が変わったのか、そして、開発者がJVMの設定決定方法について理解を深めるために利用できる診断
はじめに 先日、JakartaOne Live Japan 2022というイベントで登壇させていただく機会を頂きました。 QuarkusやHelidonのような新しめのEEフレームワークがこれまでのPayaraやWebLogicとどう違うのか? CloudRunのようなサーバレス環境でMicroProfileのどの機能が効果的に働くのか? という点を最近のWeb開発周りのトレンドと絡めながら話ました。上記のようにアーカイブ動画も公開されていますが、せっかくなのでQuarkusがサーバレス環境で実行に最適化されるまでの周辺事情等をまとめたいと思います。Javaだけに留まらず最近の環境事情の整理にも役立つかと思います。 TL;DR Quarkus/Helidonは軽量で高速な新しいEEフレームワーク コンテナや、サーバレス、クラウドネイティブなど最新のトレンドに基づいた設計 GCPのCloud
仮想スレッド/ネイティブイメージ/CRaC/ノンブロッキングにも対応! msで起動しオンプレからサーバレスまで幅広く利用できる 軽量OSSフレームワークQuarkus
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング統括本部の川口です。 本記事では、2022年2月から3月にかけて開催された超PayPay祭の事例をもとに、クラウドネイティブ環境におけるJavaチューニングの進め方について解説します。 本記事の内容は2022年6月19日に開催された、JJUG 2022 Springで発表した内容をベースにしています。 Yahoo!ショッピングにおける超PayPay祭は高負荷 超PayPay祭は全国のPayPay加盟店とオンラインショップでお得に買い物をお楽しみいただける大規模キャンペーンです。Yahoo!ショッピングにおいても、PayPayポイントがもらえるキャンペーンなどさまざまなお得な施策が実施されます。超PayPay
SpringBootのDependency Injection(DI)は便利ですよね?利用する側にコンストラクタインジェクションやら、フィールドインジェクションやらセッターインジェクションやらの形式で書いておくと、DIコンテナが勝手に実行時に対象となるクラスをもってきてインスタンスの生成をしてくれますし、インスタンスのライフサイクルをインジェクションされるクラス側に書けます。 @Component public class UseDI { private final MyService myService; @Autowired public UseDI(MyService myService) { this.myService = myService; } } @Service public class MyService { public MyService() { System.ou
はじめに 前提事項 お試し動作確認 仕組みの調査 javaagentとは バイトコード変更が行われている箇所 バイトコードの変更内容 アプリケーション間のコンテキスト伝播 Spanに設定される名前 Spanに追加されるタグ 未調査項目 OpenTelemetry Instrumentation for Java のカスタマイズ WARやEARアプリケーションへの適用 まとめ 執筆者 : 山下雅喜 はじめに 分散トレーシングを行うためのソフトウェアとして、最近は OpenTelemetry が流行してきているように感じます。 OpenTelemetry は CNCF の Incubating プロジェクトであり、OpenTracing や OpenCensus を統合したものとして活発に仕様策定や開発が行われています。 一方、実際に分散トレーシングを行うためには、トレースを出力する仕組みをア
情報処理推進機構(IPA)は4月20日、プログラミング言語「Java」の基本的な実行環境「Java SE」に重大な脆弱(ぜいじゃく)性が見つかったとして注意を呼び掛けた。活用範囲が広く攻撃された場合の影響が大きいため、IPAはできるだけ早急に修正プログラムを適用するよう呼び掛けている。 CVE識別番号はCVE-2022-21449。影響度を示すCVSS v3のベーススコアは、「情報改ざんの可能性がある」として10点中の7.5。この脆弱性を悪用すると、ネットワークアクセスさえできれば認証せずとも、遠隔地からデータやプログラムの不正操作を行える恐れがあるという。 対象バージョンはOracle Java SE 18、Oracle Java SE 17.0.2、Oracle Java SE 11.0.14、Oracle Java SE 8 Update 321、Oracle Java SE 7 U
SpringBootの実行可能Jarとは? 実行可能Jar(Executable Jar)とは、そのJarファイル単体をJavaコマンドで呼び出せばWebアプリケーションが動いてくれるものです。 具体的には、自作のクラス群以外にも、 依存関係(依存するライブラリ・依存するクラス)設定ファイルTomcat本体(Webサーバー+Servletコンテナ) 上に3つを含まれていると、Jarファイル単体でWebアプリケーションとして動かすことができます。 SpringBootプロジェクトは、この実行可能Jarを作る機能が組み込まれています。このような実行可能JarはファットJar(Fat、太っちょ)と呼ばれています。 自作したクラス群だけでなく、Tomcat本体なども含むため、自然とサイズが大きめのJarファイルになります。 しかし、そのJarファイルさえあれば、Javaコマンドで実行できるのが大き
Javaフレームワークを利用したソフトウェア開発は、今やすっかり当たり前の開発スタイルになった。今日では数多くのJavaフレームワークが存在するが、中でも特に国内外の数多くのJavaデベロッパーに支持されているのが「Springフレームワーク」だ。その魅力や使いこなしのポイントについて、SB C&S株式会社のDevOps推進チームでさまざまな製品・サービスの情報をデベロッパー向けに発信している佐藤梨花氏と河上珠枝氏に紹介してもらった。 SB C&S株式会社 テクニカルマーケティングセンター ビジネス開発課 佐藤梨花氏(上)、同 河上珠枝氏(下) 今、Javaフレームワークが必要とされている理由 今日のシステム開発においてJavaフレームワークが広く必要とされている背景として、佐藤氏は「ITが果たす役割の変化」を挙げる。 「2000年代にはITの役割はあくまでもビジネスのための道具、ツールの
はじめに こんにちは。マイグレーションブロックの藤本です。 ZOZOのマイクロサービスの開発では、以前の「OpenAPI3を使ってみよう!Go言語でクライアントとスタブの自動生成まで!」や「Go言語におけるOpenAPIを使ったレスポンス検証」の記事にもあるように、OpenAPI(Swagger)を使ってAPIの仕様を管理しています。そして私たちのチームでは、OpenAPIのYAMLからControllerのInterfaceとレスポンスオブジェクトのコードを生成して、それを実装することでAPIの開発を進めています。 この記事では、OpenAPI Generatorを使ったOpenAPI定義からのコード生成と、Spring Framework(以下、Spring)のカスタムデータバインディング1を共存させるために実施したことをご紹介します。 先に結論から 今回はテンプレートを編集する方法で
2022年3月31日、Spring Frameworkに致命的な脆弱性が確認され、修正版が公開されました。ここでは関連する情報をまとめます。 1.何が起きたの? JDK9以上で実行されるSpringMVC、SpringWebFluxでリモートコード実行が可能な脆弱性(CVE-2022-22965)が確認された。脆弱性の通称にSpring4shellまたはSpringShellが用いられている。 Spring FrameworkはJavaで採用される主流なフレームワークの1つのため、Javaで実行されるWebアプリケーションで利用している可能性がある。 2022年3月31日時点で脆弱性のExploitコードが出回っており、関連するインターネット上の活動が既に報告されている。 2.脆弱性を悪用されると何が起きるの? 脆弱性を悪用された場合、リモートから任意コード実行が行われることで、機密情報の
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Javaアプリケーションフレームワーク「Spring」において、サーバーレス実行環境の「Spring Cloud Function」で脆弱性が報告された。これとは別に「Spring Framework」コアにも深刻だとする脆弱性の存在が指摘され、情報が交錯している。 VMwareの情報によると、Spring Cloud Functionのバージョン3.1.6および3.2.2とサポートが終了している古いバージョンでは、ルーティング機能を有効にしている場合に、細工された「SpEL」によって、ローカルリソースへのアクセスを許容してしまう脆弱性(CVE-2022-22963)が存在する。 この脆弱性を修正したSpring Cloud Funct
Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能 Javaの新バージョン「Java 18」が正式にリリースされました。 Java 18 is now available! #Java18 #JDK18 #openjdk Download now: https://t.co/hTJU1ZzAWQ Release notes: https://t.co/Xdkj5TObNP API Javadoc: https://t.co/izFBPlYkd9 Features: https://t.co/3z0l5sXyDX pic.twitter.com/Ct1BvYmDYs — Java (@java) March 22, 2022 Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるバージョンアップが行われ、そのなかの1つのバージョンが
modules: jmeter: version: 5.4.1 # ここに書いてあるバージョンを勝手にダウンロードしてくれる properties: log_level.JMeter: WARN log_level.JMeter.threads: WARN system-properties: org.apache.commons.logging.simplelog.log.org.apache.http: WARN 既存ツールのラッパーとして動作 デフォルトでは内部的にJmeterが実行されますが、以下のようなツールで作成されたスクリプトを流用することが可能です。 JMeter Gatling Locust Selenium Vegeta つまり、さきほどはYAMLでシナリオが記述可能とは言いましたが、もちろん既存のスクリプトを流用できるってことです。 いままで作り上げてきたスクリプトや
Google Cloudは、Apache Tomcatで実行されているJavaアプリケーションを自動的にコンテナ環境へ移行してくれるツール群「Tomcat modernization flow」のパブリックプレビュー版をリリースしました。 Apache TomcatはJavaでアプリケーションサーバを実装するプラットフォームとして人気の高いアプリケーションンサーバです。ただしApache Tomcatが登場し普及した時期はDockerコンテナなどの技術が登場する前であるため、多くのApache Tomcatは仮想マシンなどの上で稼働していると見られます。 Google Cloudが発表したTomcat modernizatio flowは、この仮想環境上のApach Tomcatの情報を自動的に収集し、移行計画を策定、Google Kubernetes Engine(GKE)などコンテナ環
This is part of my "Concurrency in Modern Programming Languages" series Concurrency in modern programming languages: IntroductionConcurrency in modern programming languages: RustConcurrency in modern programming languages: GolangConcurrency in modern programming languages: JavaScript on NodeJSConcurrency in modern programming languages: TypeScript on DenoConcurrency in modern programming languages
本連載では、Javaプログラムの実行を担うJava仮想マシン(JVM)について、その情報を取得するさまざまなツールの利用を通じて理解を深めます。JVMやそのツールに関する知識はアプリケーションが正常に動作しているときではなく、障害など異常が起こった際に大いに活躍します。それだけでなく、Javaプログラムを動作させる仕組みを知ることはソフトウェアを開発するエンジニアの皆さんの知的な部分を刺激するとともに、シニアレベルのJavaエンジニアへと進む第一歩となります。連載第1回はJVMの概要を解説し、模擬的なトラブルシュート体験としてヒープダンプを取得して解析します。 はじめに 今後もアプリケーションをJavaで開発、運用していくことを前提にすると、そうした業務に携わる方は次のようなことを学び続けるでしょう。 Javaの半年ごとのバージョンアップに追随して新機能などを学ぶ アーキテクチャなどでの新
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く