Septeni Engineer's Blog

セプテーニ・オリジナルのエンジニアが綴る技術ブログ

EOSを使った分散型アプリでブロックチェーン革命の波に乗る!

こんにちは。菅野です。

近頃はビットコインなどの暗号通貨の話題を目にすることが多くなっていますよね。
ブロックチェーンという言葉を聞いたことがないエンジニアはいないと思います。
もうブロックチェーンを使ったDApp1のひとつやふたつくらいは作っているのではないでしょうか。

ところでDAppとは何ですか?
ちなみに私は今年になって初めてそれを知りました。

分散型アプリケーションDApp

DAppとはDecentralized Applicationの略で、サービスを提供する管理サーバーがある普通のアプリとは違う、非中央集権型のアプリです。

なぜ今DAppなのかというと、高機能なスマートコントラクトを実装したEthereum等が登場したことに関係しています。スマートコントラクトを利用することで簡単にDAppを作成できて、お金のやり取りまで簡単に組み込めるためDAppの数が増えています。

プランニングポーカーアプリはついにブロックチェーンの時代へ

存在を知ったからには早速DAppを作ってみないといけませんね。


  1. なおダップは、dapp, Dapp, dApp, DAppという表記ブレの激しさに定評がある

続きを読む

【2019年度版】セプテーニ技術読本の無料配布

こんにちは。セプテーニ ・オリジナルの池田です。

2019年残すところもあと少しになりましたが、やり残していたことが一つあります。

そうです。

セプテーニ技術読本2019」の公開です!

f:id:taketor:20191227171956j:plain

▲ 左から2019年、2018年、2017年、2016年度の技術読本

続きを読む

GraalVM for Scala ワークショップ開催レポート

こんにちは!GANMA! DevOps エンジニア兼、技術広報の青山です。

2019年もあと僅かですが、みなさん如何お過ごしでしょうか?

先日開催いたしました「GraalVM for Scala ワークショップ by Oracle & セプテーニ・オリジナル」の模様をお伝えします!

shinjuku-geek-lounge.connpass.com

なお、当日のスライドとワークショップ資料はご厚意により公開されておりますので、ご興味のある方はこちらも合わせてご参照ください。

www.slideshare.net

github.com

続きを読む

Terraformを使って複数のAWSアカウントにAWS Integrationを導入する

これは Datadog Advent Calendar 2019 13日目の記事です。

門脇(@blac_k_ey)です。

PYXISのデータ基盤チームでSREっぽいことを行っている傍ら、インフラチームとして横断的なインフラの管理・運用を行っています。

モチベーション

最近PYXISチームではモニタリングツールとしてDatadogの採用が進んでいます。
PYXISのインフラは主にAWSを利用しており、DatadogのAWS Integrationを導入することで各種サービスのメトリクスを取得することが可能になります。

ここで課題になるのが弊社のAWSのアカウント構成です。
PYXISチームのAWSアカウント管理は以下のような構成になっています。

f:id:Nomad_Blacky:20191212214328p:plain

このように、基幹となるAWSアカウントからAssumeRoleを使って、各プロジェクトで利用しているAWSアカウントにログインするという形を取っています。

続きを読む

お気に入りのScalaライブラリ・ツールをだらだら紹介する

この記事は Scala Advent Calendar 2019 の6日目です。

こんにちは。最近はPYXISのデータ基盤チームでSREっぽいことしている 門脇(@blac_k_ey)です。
TETRIS99の次はポケモンに進捗を奪われる日々を送っています。


締め切りギリギリまで ポケモンで忙しかった 「これ書きたい!」というテーマが思いつかなかったので、個人的に最近のScala開発でお世話になっているライブラリやツールなどを紹介していこうと思います。

詳細はあまり書かず、「ここが好き!」ぐらいのお気持ち表明ぐらいの文章でしかないので、ゆるく暖かい気持ちで読んでくれたら幸いです。

Ammonite

リッチなScalaREPL、Scalaスクリプト

自分のScala生活が豊かになっている大きな要因のひとつ。

Magic Importsを使って、ライブラリをちょっと試したいときにササッと使えるし、

$ amm
Loading...
Welcome to the Ammonite Repl 1.7.1
(Scala 2.12.10 Java 1.8.0_181)
If you like Ammonite, please support our development at www.patreon.com/lihaoyi
@ import $ivy.`com.typesafe.play::play-json:2.7.4`
https://repo1.maven.org/maven2/com/typesafe/play/play-json_2.12/2.7.4/play-json_2.12-2.7.4.pom
  100.0% [##########] 4.2 KiB (1.0 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/play-functional_2.12/2.7.4/play-functional_2.12-2.7.4.pom
  100.0% [##########] 1.5 KiB (12.0 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/play-functional_2.12/2.7.4/play-functional_2.12-2.7.4-sources.jar
  100.0% [##########] 9.7 KiB (79.4 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/play-functional_2.12/2.7.4/play-functional_2.12-2.7.4.jar
  100.0% [##########] 175.5 KiB (389.2 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/play-json_2.12/2.7.4/play-json_2.12-2.7.4-sources.jar
  100.0% [##########] 52.5 KiB (94.5 KiB / s)
https://repo1.maven.org/maven2/com/typesafe/play/play-json_2.12/2.7.4/play-json_2.12-2.7.4.jar
  100.0% [##########] 706.6 KiB (705.2 KiB / s)
import $ivy.$

@ import play.api.libs.json._
import play.api.libs.json._

@ val json = Json.parse("""{"language": "Scala", "repl": "Ammonite"}""")
json: JsValue = JsObject(Map("language" -> JsString("Scala"), "repl" -> JsString("Ammonite")))

スケジュール実行に対応したCIツールを使えば、手元で書いたちょっとしたスクリプトでささっと自動化できるし、

(esa.ioのメトリクスをDatadogに送信する例)

続きを読む