サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
kencharos.hatenablog.com
概要 前職の同僚がずっと、PullRequest ごとにプレビュー環境でアプリケーションをデプロイしたいと言っていた。 確かにそれができれば便利ではあるけど、たとえ k8s の力を借りても実現するまでの手順は多く、遠い夢かと思っていた。 でも ArgoCD で頑張ればその夢は近くなるかもしれない。 これは、ArgoCDの Config Management Plugin (CMP) と呼ばれる機能を使って、動的なマニフェスト生成を行い、さらにPullRequestごとの固有の情報をマニフェストに柔軟に埋め込むための仕組みを考えてみたという話。 想定読者 k8s にある程度詳しい ArgoCD にもある程度詳しい ArgoCD の ApplicationSet や Generator の機能を知っている、あるいは調べればわかる方 参考資料 GitブランチやPullRequestごとにプレビュ
最近バックグラウンドのジョブスケジューラとして使用しているのが、 Apache Airflow だ。 https://airflow.apache.org/ Pythonで複数ジョブ(Operator)の依存関係をDAGとしてDSL的に書けるのは魅力的だが、 一方でスケジューラーとしては、UI付きのcronだと思っていたら相当なハマりどころを感じたので、 同じくハマりそうな人や将来の自分に向けてAirfronのスケジューリングの知見を残しておきたいというのが趣旨。 TL;DR 以下の通り、ちゃんと公式でも書いてあるが、正直なところ自分でやってみないとわかりづらく、 ちゃんと補足してある資料があったので紹介しておく。 自分で試しつつ、以下の資料と照らし合わせて自分の認識が一致したことを再確認した。 airflow.apache.org towardsdatascience.com Airfl
「みんなのJava OpenJDKから始まる大変革期!」という本を共同執筆しました。 gihyo.jp 3/13日発売予定で、電子化の予定もあり gihyo.jp から購入するとDRMフリーです。 書籍について ここ数年、Java に関する書籍はあまり出ておらず、 特にJava 11 以降 や OpenJDK のリリースモデル変更に関する最新情報などは、インターネットや情報雑誌などに頼らざるを得ない状況だったと思います。 Java の動向についてはリリースモデルの変更により、よりオープンになり継続的に改善が行われていくことになったのはとても良いと思います。 現職では AdoptOpenJDK のLTSであるJava11を使用していますが、特に問題は起きていませんし。 (リリースモデル変更時に色々と騒ぎになったのは、オラクル社のアナウンスが十分ではなかったとは今でも思っていますが。。。私もあ
ちょっと前にこんなニュースがありました。 www.publickey1.jp 公式はこの辺かな? dapr.io github.com Microsoft が OSS で、しかも golang で作ったという異色のライブラリです。 また最近は envoy を使ったサービスメッシュについて色々と調べていたこともあり、似たような問題を解決するものであるといこともあり、興味を持ちました。 サンプルやコンセプトページを見ているとなんとなく雰囲気がつかめてきます。 github.com github.com Isito のように、各サービスにサイドカーとして起動するDapr インスタンスとサイドカーインスタンスを管理するDaprサーバーから構成されている。 サイドカー経由でサービスにアクセスすることでアドレス解決を任せたり、プロトコル変換ができる。 例えば、HTTPしかないサービスをgRPC経由で呼
5/18 に行われた JJUG CCC 2019 Spring に「初めてのgRPC」 という内容で発表してきました。 www.java-users.jp 発表資料はこちらです。 speakerdeck.com 全体の資料もこちらでまとまっています。 github.com 今回は、登壇者兼ボランティアスタッフとして申し込みしました。 ボランティアスタッフは2回目だし慣れてるだろうから、部屋の進行と発表同時にやっちゃえということで、 スタッフからの注意事項の説明の後、そのまま発表するというちょっと面白い流れになりました。 会社の人からもいい感じのツッコミをいただきました。 スタッフでもあるので自ら注意事項を読み上げつつトークを開始したの面白かった https://t.co/FGdoQIwuNk— 941 (@941) 2019年5月18日 技術イベントの登壇はいつかやってみたいことの一つでし
ブログの方は久しぶりです。 Qiita にはそこそこ書いてましたが、QIita に書いてもあまり個人に評判とかが反映されないなという思いが強まったので、 今後はブログに色々書いていこうかなと思います。 更新も一年ぶり、、頻度あげます、、はい、、 ちょっと前の記事をさかのぼれば 5年前の転職の記事が出てきてしまうのであれですが、 2度目の転職をすることになりました。 どこに行くのはここでは書かないですが、しばらくしたら Twitter で何かしら所属については発言する気がします。 ここでは、転職活動の振りかえりを書きます。 何をしていたか ITコンサル的な会社にいました。 技術提案、PMO、一次受け開発などをするところで、主に開発やってました。 ここ一年は クラウドネイティブなシステム作るみたいなお仕事をしていて、 IaaS をいかに使わずに 開発と運用を回すかみたいなことに取り組んでました
Chris Richardson 氏の Microservices Patterns を読んだ。前回からの続きです。 Microservices Patterns: With examples in Java 作者: Chris Richardson出版社/メーカー: Manning Publications発売日: 2018/11/19メディア: ペーパーバックこの商品を含むブログを見る 前回はこちら。 kencharos.hatenablog.com 全13章の後半、8章からです。 8章 外部API マイクロサービス群を外部公開する場合に、API Gateway を適用することが書かれている。 API Gateway に求めらる機能は、ルーティングのほか、認証、プロトコル変換(REST->gRCPとか)、前述の API Composition など。 認証の例として、外部からの Bas
Chris Richardson 氏の Microservices Patterns を読んだ。 Microservices Patterns: With examples in Java 作者: Chris Richardson出版社/メーカー: Manning Publications発売日: 2018/11/19メディア: ペーパーバックこの商品を含むブログを見る マイクロサービスという言葉が出て来て数年経ちます。 私もマイクロサービス的な複数のサービス間でデータのやり取りを頻繁にするようなシステムを構築したことがあります。 その際にデータの整合性は最重要ではなかったのでトランザクション的なものは使いませんでしが、 お金を扱うようなシステムをマイクロサービスにした場合ちゃんとしたトランザクションはどうするのかは気になっていました。 本書にはその疑問に対する現実的な回答が載っています。
Rはじめました。 統計解析やるぞーって段階ではなく、Rの実行環境を作ってる最中です。 データベースとの連携で色々面倒だったのでメモ。 Linux(Cent OS)への導入 (最新だとわかりませんが)CentOS 6.4には、yumにRはありませんのでEPEL導入します。 導入後もRのライブラリインストールでこけたりするので、どちらにしろEPELは入れたほうがいい。 sudo rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo yum install R あと、必要ならR Studio Server入れます。 RStudio R Studio ServerすごいよR Studio Server。 RODBC, XMLを使うな
ConcurrentHashMapを使うときの注意点 タイトルの通りです。 ConcurrentHashMapは同期を取りつつ、パフォーマンスも優れたとても優秀なやつで、最近Webアプリケーションで、キャッシュみたいなものを作るときに使いました。 とはいえ同期を取るとはいっても以下のようなキーの存在を確認して、putするような複合アクションの呼び出し(いわゆるcheck-then-act)では同期されません。(別にこれは、従来のHahMapとかCollections.syncronizedMapとかでも同じです) // atomicではない操作。 if(!map.containsKey(key)) { map.put(key, value); } 以下が実証コードで、実行すると高い確率で複数スレッドで同一キーへのputを行います。 (今回のケースだとあまり問題にならないですが、valueを
ちょっと興味があって[www.playframework.com/:title=Playframework]を触っています。 自宅のmacと会社のWindowsPCにそれぞれPlay2.1の環境を作って共有しているんだけど、 WindowsPCでPlayプロジェクトでplayコマンドをうつと、以下のようにコンソールにで起動に失敗する。 Error occurred during initialization of VM Could not reserve enough space for object heap Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.PCのスペックはWin7 32bit メモリ2G ヒープ領域が確保で
9月末をもって現職のSIerから転職する事になりました。 転職先は今流行りのWeb系ではなく、ITコンサルとかSIとかをやる会社で、10月より働き始めます。 僕には華々しい実績があるわけではありませんが、 現職のこと、転職のことなんかを簡単にまとめ、誰かの参考になったら幸いだし、 数年後自分でこのエントリを見て気持ちの変化が無いかを確認してみたいと思う。 おおざっぱにまとめると 転職の理由を一言で言えば、"俺10年くらい仕事でJavaしかやってないけど、このままだと10年後もJavaやってんじゃないの?" という思いに尽きる。 (Javaをdisるわけではなく、それしか選択肢が無いという状況をどうにかしたい) 別に仕事があるならそれでいいじゃんという人もいると思うが、個人的にはエンジニアとしてこれからも生きていくならもっと面白いと思うことをやって行きたいと思った次第。 あんた誰? 都内の某
Ruby 認定資格Gold合格したので、何か作ろうかなと考えていた所、 Google DriveのOCRって使い物になるのかなと思い、 ファイルをアップロードしたらGoogle Driveに登録して、OCRのテキストを取得するような物を作ってみた。 Trying Google Drive OCR 利用するにあたって、GoogleのアカウントとDriveの利用、OAuth認証が必要です。 また、ここでアップロードされたファイルは、Driveに保存されます。 イメージはこちら 見て分かる通り、Driveに元画像とOCRの解析結果テキストが一つになった文書が作成されます。 テキストだけの取得は、色々調べたけどどうしてもページ内に埋め込めず断念。 というか、 OCRの精度は低い。あと日本語もまだ対応してないっぽい。 以下は作成時のメモ Google Drive SDKのドキュメントはこちらにある。
最近仕事でSeleniumに手を出していて、Selenium2.0以降のAPIを使用している。 ところが、2.0以降についての情報が少なく、こんなことするにはどうすれば?みたいなことを調べると大抵旧バージョンだったりするので、2.xでのコードのサンプルのようなものをメモとして書いてみる。 また職場のブラウザがIE6だったりするので、Selenium IDEはほとんど使ってません。 言語はJavaメインなので、他の言語やブラウザでは使えないかもしれません。 また、旧バージョンのSelenium1.xに触ったことはありません。 導入 ここからダウンロードする。 1.xでは、Selenium-RCと呼ばれていた、各言語のAPIは、WebDriverという名称に変わっているので、 各言語向けのWebDriverをダウンロードして、展開してクラスパスを通せば完了。 ただし、どのWebDriverを使
このページを最初にブックマークしてみませんか?
『kencharosの日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く