OpenStack上に展開するContainer as a Service を本番で利用するために必要だったことMasaya Aoyama
?
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
at OpenStack Days / Cloud Native Days 2018
CyberAgent, Inc
adtech studio
Strategic Infrastructure Agency
@amsy810
@makocchi
[Japan Container Days v18.04 Keynote (Production User Stories)]
CyberAgentではプライベートクラウド上にGKEライクなコンテナ基盤を展開するサービスを提供しています。最近では様々な利便性からコンテナでの開発が増えており、オンプレ環境でも Kubernetes as a Serviceの需要があります。サーバ上にKubernetesを展開するだけでは利用できないLoadBalancerやIngressを実現する方法やOpenStackとの連携方法について説明しながら、アドテク領域での利用に耐えうるコンテナ基盤の事例を紹介します。
by Masaya Aoyama (@amsy810)
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったことMasaya Aoyama
?
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
at OpenStack Days / Cloud Native Days 2018
CyberAgent, Inc
adtech studio
Strategic Infrastructure Agency
@amsy810
@makocchi
[Japan Container Days v18.04 Keynote (Production User Stories)]
CyberAgentではプライベートクラウド上にGKEライクなコンテナ基盤を展開するサービスを提供しています。最近では様々な利便性からコンテナでの開発が増えており、オンプレ環境でも Kubernetes as a Serviceの需要があります。サーバ上にKubernetesを展開するだけでは利用できないLoadBalancerやIngressを実現する方法やOpenStackとの連携方法について説明しながら、アドテク領域での利用に耐えうるコンテナ基盤の事例を紹介します。
by Masaya Aoyama (@amsy810)
Micro Python is a version of Python that runs on microcontrollers. It allows Python code to control microcontrollers like the STM32F4 Discovery board. The document discusses the Micro Python project, the pyboard development board, and demonstrates some example Python code for controlling LEDs, reading switches, and using other hardware on the STM32F4 Discovery board with Micro Python.
Hirotaka Kawata introduces PyCon JP 2014, the 4th annual Python conference in Japan happening September 12-15. It will include 1 English track and 2 Japanese tracks, as well as keynotes from Hirokazu Nishio and Kenneth Reitz (who spoke at PyCon Singapore). The venue will be in Odaiba, Tokyo at Plaza Heisei. Attendees are encouraged to submit proposals by the deadline of June 20th.
9. KotlinConf 2018 から?る最近の Kotlin サーバーサイド事情
http4k
val app = routes(
? ? "bob" bind GET to { Response(OK).body("you GET bob") },
? ? "rita" bind POST to { Response(OK).body("you POST rita") },
? ? "sue" bind DELETE to { Response(OK).body("you DELETE sue") }
)
val server = app.asServer(SunHttp(8000)).start()
Ktor
embeddedServer(Netty, 8080) {
routing {
get("/") {
call.respondText("Hello, world!", ContentType.Text.Html)
}
}
}.start(wait = true)
Server as a Function
10. KotlinConf 2018 から?る最近の Kotlin サーバーサイド事情
Spring Boot を Kotlin で快適に使うには…
?SpringFu, KoFu を使って Functional!! DSL!! (ただし incubating feature)
? やっぱり Spring 使いたいですよね
? https://github.com/spring-projects/spring-fu
?Annotation を多?した Configuration, Bean registration は?魔術に近い
? 何が起きているのかわからない、辿れない
? 解決策としての Functional configuration with Kotlin DSL で明?的な Configuration を実現
? 上記のプレゼンでは、Live coding で1つづつアノテーションを削っていく実演
from Kotlin and Spring Boot, a Match Made in Heaven
11. KotlinConf 2018 から?る最近の Kotlin サーバーサイド事情
SpringFu, KoFu のサンプル https://github.com/ajavageek/springfunctional-migration
@SpringBootApplication
class MigrationDemoApplication
fun main(args: Array<String>) {
runApplication<MigrationDemoApplication>(*args)
}
@RestController
class PersonController(private val personRepository: PersonRepository) {
@GetMapping("/person")
fun readAll() = personRepository.findAll()
@GetMapping("/person/{id}")
fun readOne(@PathVariable id: Long) = personRepository.findById(id)
}
interface PersonRepository : PagingAndSortingRepository<Person, Long>