タグ

ブックマーク / qiita.com/koduki (11)

  • マイクロサービス開発を容易にするDaprをJavaで利用してみた - Qiita

    はじめに Microsoft Build2020を見てDistributed Application Runtime のDaprが中々面白そうでした。 チュートリアルがNode.jsだったので参考にしつつQuarkusからDaprを利用するサンプルを作ってみました。 コードは下記を参照 https://github.com/koduki/example-dapr/tree/v01/api-with-java Daprって? Daprはサイドカー(Proxy)によりサービス間呼び出し、ステート管理、サービス間メッセージングなどの非機能要件を実現する事でマイクロサービスの実装を簡単にするマイクロソフトによって開発されているフレームワークです。 OSSで開発されているため下記より利用できます。 https://dapr.io/ https://github.com/dapr/dapr サイドカー

    マイクロサービス開発を容易にするDaprをJavaで利用してみた - Qiita
  • 2020年のMavenリポジトリの作り方 - Qiita

    はじめに Javaエンジニアであれば何だかんだでMavenリポジトリを使うことは非常に多いと思います。Gradleであっても使いますしね。 OSSなどはセントラルリポジトリから落とすとして自作のライブラリの管理をどうしていますか? ローカルだけで開発していればmvn installで事足りますが、CI/CDを行っていたりチームや組織でライブラリを共有している場合はそうもいきません。 という分けで今回はMavenで作成したライブラリを公開するための方法に関してまとめました。ちなみに2020年8月時点でのおすすめはGCSをリポジトリにする方法です。 Maven Central Repositoryに登録 OSSのリポジトリサーバを立てる GitHub Pagesを使う GitHub Packages + Actions を使う S3/GCS/Azure Blobにリポジトリを構築する GCP

    2020年のMavenリポジトリの作り方 - Qiita
  • COS(コンテナ最適化OS)でDockerの利用できるディスク容量を増やす - Qiita

    はじめに GCPだとcreate-with-containerを使う事でCOS(Container-Optimized OS)を利用したコンテナ用のインスタンスを作る事ができます。 イメージ名とかも指定できるので、小規模なコンテナ運用ならGKEでやるより簡単かと思います。 ただデフォルトのdiskサイズが10GBなので大きめのDocker Imageをビルドすると下記のように容量不足のエラーが出ます。 Error processing tar file(exit status 1): write .... : no space left on device なので、今回はビルドの容量を確保するためにCOSに永続化ディスクを追加したのでそのやり方のメモになります。 戦略 boot diskのサイズ変更ではなく新規ディスクの追加 /var/lib/dockerの上書きではなくdaemon.js

    COS(コンテナ最適化OS)でDockerの利用できるディスク容量を増やす - Qiita
  • バッチ処理について考える - Qiita

    TL;DR ひとくちにバッチといっても色々ある 夜間バッチをもう作るな オンラインバッチはSQL以前にDB設計がんばれ はじめに Twitterのタイムラインで以下のようなツイートが回ってきました。 バッチ処理をみんな舐めてかかったり、ショボイとか思ってる人多い印象なんだけれども、数十万~数千万件規模のデータを処理したことあるのかな。テンプレ通りのコードじゃ動かないよ?ネットににも答え載ってないよ?低レイヤも意識しないと動かないよ? 2020年1月10日 ツイートされたわだっしーさんの意図がどこにあるかは確認してないですが、極限の世界でテンプレート的な処理では対応出来ないのはあるよな、と思いつつもある程度はバッチの作法としての書き方があると思っています。 このツイートとその関連ツイートを読みながら、そういえばバッチ処理に関して書いてある記事はあまり見ないなぁ、とおもったので他のネットや

    バッチ処理について考える - Qiita
  • OpenJDKで使えるパフォーマンス分析と障害診断ツール - Qiita

    Oracle JDKを含むOpenJDKディストリビューション(以下、JavaまたはJDK)にはJFRを筆頭にさまざまな分析ツール/仕組みがあります。 JDK7からJDK12にかけてトレンドが変わった部分もあるので、少しサマったメモを書きます。 メトリクス取得のための仕組み Javaにはパフォーマンスメトリクスを取得するための方法がいくつかあります。代表的なのは下記の3つでしょう。 JMX ログ JPLIS(javaagent) JMX Java Management Extensions(JMX)はJavaのリソース監視および管理のためのプロトコルです。簡単にいえばJava版のSNMPです。 JSR-174としてJava 1.5より取り込まれています。 Managed Bean(MBean)を利用してCPUやメモリの情報を取得したり、特定のイベント(例えば強制GC)とかを実行することも可

    OpenJDKで使えるパフォーマンス分析と障害診断ツール - Qiita
  • Java対応のFaaSフォーム「Fn Project」を動かしてみた - Qiita

    下記の記事にある通り、JavaOne2017のKeynoteにてOracleよりJavaも動作するFaaSプラットフォームの「fn project」が公開されました。 [速報]Java対応のサーバレスプラットフォーム「Fn Project」、オラクルがオープンソースで公開。JavaOne 2017 主な特徴としては Multi-Language(Java, Go, Ruby, Python, PHP, Node.js) Container Native(depends only docker) Powerful どこまで気で育てていく予定なのかは測りかねますが、プレゼンを見る限り結構面白そうだったので試しに動かしてみました。 なお、試した環境はWindows10 + Docker toolbox + WSL(Ubuntu)なので適宜自分の環境で読みかえてください。 インストール まずはf

    Java対応のFaaSフォーム「Fn Project」を動かしてみた - Qiita
  • Windows Subsystem for LinuxからDockerを使う - Qiita

    Bash on WindowsことWSLはUbuntuの強力な開発ツールチェインをWindows10で利用できるとてもイカした仕組みです。 以前、こんな記事も書きました。 Windows Subsystem for Linux + Cmderで最強のCLI環境を作る ただ、Docker動かないのは不便だなーと思ってたのですが、試してみたらDocker Toolboxで立ち上げてるDockerに繋げることは出来ました。 手順はいたって簡単で下記の通り。 1 WSLにDockerをインストール $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu

    Windows Subsystem for LinuxからDockerを使う - Qiita
  • JDK9のモジュールとjlinkでアプリ配布向けのJVMを作る - Qiita

    JavaOne2017を前にして、待望のJava9が遂にリリースしましたね! さて、Java9といえばやはり気になるのはjigsawによるモジュール機能です。モジュールの使い方までは良く見ますが、jlinkが個人的には気になってたので試した結果をまとめました。 はじめに Jigsawに関してですが少なくとも現時点では、fat-jarやgo言語のようなシングルバイナリを代替するようなことは単独ではできません。 ただ、モジュールとjlinkを使うことでアプリケーションを含んだ配布用のJVMを生成することが可能で、今回はそれについての説明になります。 モジュールで公開範囲の改善や依存の早期発見ができるようになったことは特に触れないので、その辺はこの記事とかを参考にされると良いと思います。 コードの準備 まずは、コードの準備です。 下記のような感じでアプリからライブラリが三階層で呼ばれてるようなサ

    JDK9のモジュールとjlinkでアプリ配布向けのJVMを作る - Qiita
  • これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita

    もうちょっと規約的なものを「JavaでのUT作成基準を整理してみた」にもまとめてみました。 はじめに 去年、ブログの方に「ふつうのユニットテストのための7つのルール」という記事を書いたのですが、思ったより反響がありました。 あの記事で書いたのはあくまで原理・原則で、それを実現するためにはいくつかのテクニックが必要です。 特に、ああいうルールを作って「ユニットテストを書く事」を厳守するようにしても、 適切なテクニックを知らなければメンテが困難だったり、品質に寄与しなかったり、実行性能が悪いゴミが量産される可能性があります。 じゃあ、どうすれば良いかというと「最初からユニットテストが書きやすいように元のコードを設計する」ということです。 そう。まず身に付けるべきは「テストコードの書き方」では無く「テスト対象コード」すなわち「プロダクトコードの書き方」なのです。 また、ここで言ってる「最初から」

    これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita
  • さあ、並列プログラミングをはじめよう - Qiita

    この記事はJava Advent Calendar 2016の12日目です。 前日は、leak4mk0さんのデータベースを簡単にーJavaSEでもオブジェクト指向データベース(JPA) でした。 次は、tkxlabさんのJavaSEでもオブジェクト指向データベース(JPA)をとなります。 はじめに 「フリーランチの終焉」と言われマルチコアの時代に突入してはや数年。 Webアプリを作る事が多かったのも理由ですが、ほとんどシングルスレッド(サーブレッドとかでマルチスレッドを意識するケースはあるけど)で開発してた私にも、今年は並列プログラミングの波が押し寄せてきました。 そんなわけで今年のアドベントカレンダーは並列プログラミング入門に関してまとめてみます。 Java 8標準の並列API Javaは当初よりマルチスレッドプログラミングを喧伝してただけあって、それなりに並列プログラミングがやりやすい

    さあ、並列プログラミングをはじめよう - Qiita
  • Heroku Container Registryで作るDocker時代のRails 5 入門 - Qiita

    この記事はRuby Advent Calendar 2016の5日目です。 昨日はiguchi1124さんの「Railsアプリケーションでより良いリソース設計を実装するためのテクニック」 でした。 明日は、tomokane@githubさんの記事になります。 はじめに 最近、個人的なプロダクトを久しぶりにRailsで書いています。 自分の場合、Rubyはテキスト処理とかスクレイピングとかそういったスクリプトで使う用途が多いので、 Railsをまともに触るのは実に2以来。そのせいで5を触るにあたって大分忘れてたことや時代に取り残されたところがありました。 あと、Heroku格的に使ったことは無かったのですが、今回Dockerに完全対応したということで使ってみたので、 Heroku Container Registryを使ったDockerによるRails環境について備忘録がてら、今年はまと

    Heroku Container Registryで作るDocker時代のRails 5 入門 - Qiita
  • 1