2018-01-01から1年間の記事一覧

Knative EventingのSourceにAWS SQSをつかいServiceを起動する

前回のエントリではKnativeの Buildの知見をまとめたが今回は Eventingをまとめる。試したところServerlessを体感できて、これぞKnativeの醍醐味ではという感想である。 モチベーション KnativeのEventingを導入する際にAWS環境ではどのようなAWSサービスを…

サーバサイドKotlinをはじめよう。Ktor Tips集をまとめた。

この記事はCyberAgent Developers Advent Calendar 2018の22日目の記事です。 Ktor KtorはKotlin純正のWebフレームワークです。APIはラムダ式を使った関数呼び出しでKotlin DSLによりルーティングを宣言的なコードで保守できます。KtorアプリケーションはTom…

Knative Buildのbuild templateにBazelをつかいビルドする

KnativeはKubernetesを基盤としたプラットフォームをビルド、デプロイを管理するためフレームワークを提供する。Serving、Build、そしてEventingの3つのコンポーネントで構成されている。これら3つが疎結合に連携する。 cloud.google.com Kubernetesを基盤…

BazelでビルドするマルチプロジェクトとCircleCIを連携する

今回のエントリではBazelでビルドしたマルチプロジェクトとCircleCIの連携をまとめていく。マルチプロジェクトとCIを連携する際の実運用の課題を洗い出して解決方法を考えた。 プロジェクト構成 CIと連携させるマルチプロジェクトは次のような構成である。 (…

BazelでDockerイメージのビルドとレジストリへのプッシュをする

前回までのエントリに引き続きBazelのビルドをまとめていく。 GoとKotlinのマルチプロジェクトをBazelでビルドする - 平日インプット週末アウトプットぶろぐ BazelでGoプロジェクトのビルド。Gazelleのgo_repositoryで外部ライブラリの依存とBazelのgo_test…

gRPCサーバを含むGoプロジェクトをBazelでビルドする

前回までのエントリに引き続きBazelのビルドをまとめていく。 blog.soushi.me blog.soushi.me 今回のエントリではgRPCサーバを含むGoプロジェクトをBazelでビルドする方法をまとめる。 Protocol BufferとgRPCサーバのInterfaceの生成をBazelで行う これまで…

BazelでGoプロジェクトのビルド。Gazelleのgo_repositoryで外部ライブラリの依存とBazelのgo_testでテスト。

BazelをつかったGoプロジェクトのビルドをまとめている。前回のエントリではバイナリのビルドとDockerイメージのビルドをまとめた。 blog.soushi.me 今回は外部ライブラリをGoプロジェクトに依存させる方法とテストの方法をまとめていく。 Gazelleのgo_repos…

GoとKotlinのマルチプロジェクトをBazelでビルドする

Googleが開発するビルドツールのBazelを試していく。 Bazel - a fast, scalable, multi-language and extensible build system" - Bazel モチベーション GoやKotlinでつくるマイクロサービス開発は1つのサービスに1つのレポジトリで行ってきた経緯がある。…

Spring FuをGraalVMで動かす。起動速度に驚いた。

Serverlessプラットフォームが注目される中、その潮流にJava勢も乗っかりたいので起動速度が速いと注目のGraalVMを試してみた。 モチベーション GraalVMのアプリケーション起動までを理解したい。 GraalVMでSpring Fuを動したい。 GraalVMでHTTP/1.1とgRPCの…

Spring Web Flux でServer Sent EventsのPush型APIをつくってみた

Spring Boot 2.0からWebFlux frameworkが導入された。Reactorが使えてReactive Programmingが可能になったのでPush型のAPIをつくってみた。 どんなAPIをつくるか コンテンツが更新されたら件数を教えてくるAPI Server Sent EventsのContent-typeをサポートす…

Android JetpackのNavigationを試して導入手順をまとめた

Google IO 2018で発表されたJetpackの新しいコンポーネントのNavigationをアプリに導入してみた。 developer.android.com TL;DR Toolbar、Bottom Navigation、onClickイベントに関わる画面遷移をNavigationに置き換えてみた。 試した結果、コード短縮をゲッ…

Android Support LibraryのChipを触ってみた

Android Support LibraryのChipの使い方をまとめていく。ChipはMaterial DesignにあるがSupport Libraryに組み込まれたのは28.0.0.Alpha 1からである。 material.io developer.android.com よってgradle settingを次のように更新する。 ext { compileSdkVers…

SwipeRefreshLayoutとRecycleViewをListViewに導入してみた

ブログエントリで試しているアプリにSwipeRefreshLayoutとRecycleViewをListViewに導入してみたのでまとめていく。 SwipeRefreshLayout SwipeRefreshLayoutはViewGroupの1つで引っ張って更新する機能を導入することができる。 まずはレイアウトからまとめて…

rx-preferencesをつかってSharedPreferencesの更新をSubscribeする

ブログエントリで試しているAndroidアプリにFluxアーキテクチャを導入をしたことでデータの流れがStreamになった。SharedPreferencesも rx-preferencesをつかえば更新状態をSubscribeできるので導入過程をまとめていく。 github.com お試し中のアプリはOpenW…

Dagger2 + uber/Autodispose + RxJava2でFluxアーキテクチャを導入してみた

ブログエントリで試しているAndroidアプリにFluxアーキテクチャを導入してみたのでまとめる。 Fluxアーキテクチャ Fluxアーキテクチャに関する情報は調べるとたくさん見つかるので概要までに留めておく。 github.com Fluxはアプリケーションデータを管理する…

Dagger2(android support module)をつかってFragmentにDIする

Dagger2(android support module)をつかってFragmentにDIする方法をまとめていく。 HasSupportFragmentInjectorを実装する MainActivityにHasSupportFragmentInjectorを継承させ必要な実装をします。 class MainActivity : AppCompatActivity(), HasSuppor…

Dagger2 (android support module)とretrofit2をつかってAPIレスポンスをListViewで表示する

掲題のとおりAndroidのListViewを表示してみる。 APIリクエストは retrofitを使い天気情報を取得できるOpenWeatherMapのAPIを利用する。 github.com DIにはDaggerを使い、2.11から有効なandroid support moduleを利用する。 github.com APIをリクエストするS…

minikube + helmでローカル環境を構築する

plasmaの動作確認のためにローカル環境を構築する機会がありminikube + helmで構築してみようと始めたのがエントリのモチベーション。 github.com plasmaはServer Push型のミドルウェアでFRESH!で使われている。ポーリング撲滅を掲げgRPC/SSEを用いて省コネ…