タグ

ブックマーク / dev.classmethod.jp (110)

  • 【小ネタ】CircleCIのManual Approvalを利用したシンプルなブランチ/タグ運用 | DevelopersIO

    はじめに こんにちは、中山です。 私が現在関わっている案件ではCircleCIを利用してAWS SAMで管理されたサーバーレスアプリケーションのCI/CDを整えています。ご存じの方も多いかと思いますが、CircleCIは去年2.0を発表しその機能を大きくアップデートしてくれました。Dockerを全面的に取り入れたアーキテクチャに変わっていたり、ローカルでの実行などもサポートされ日々便利に使っています。 今回は、そんなアップデートの内Manual Approvalについてご紹介したいと思います。この機能はワークフローに静止点を作ってくれるものなのですが、これを応用して複雑になっていたブランチ/タグ運用をシンプルにできた事例についてご紹介します。 今までの課題 私が関わっている案件ではGitのブランチ運用をGitHubフローにしています。つまり、フィーチャーブランチを master ブランチ

    【小ネタ】CircleCIのManual Approvalを利用したシンプルなブランチ/タグ運用 | DevelopersIO
  • HashiCorp Vaultの基礎知識と導入 | DevelopersIO

    Vaultとは VaultはHashiCorpが2015年4月28日にリリースしたソフトウェアです。リリース時のブログは以下をご参照下さい。 Vault Vaultは、機密情報を管理するためのソフトウェアです。現在の情報システムでは機密情報は多岐にわたり、ユーザー名やパスワードはもちろん、APIキーや証明書など、様々な種類のものが様々な形式で存在します。また保存される場所も違うし、場所が違うってことはアクセス制御のやり方や管理の仕方も違います。こういった機密情報を統合的に一貫して管理しアクセスコントロールするものがVaultです。クライアント/サーバ型で動作し、クライアントで機密情報の保管や取得のコマンドを実行し、機密情報自体はサーバに保管されます。 なお2018年2月5日時点での最新バージョンは0.9.3です。 Vaultの主な機能 Vaultの主な機能は次のとおりです。 Secure

    HashiCorp Vaultの基礎知識と導入 | DevelopersIO
  • HashiCorp Vault ServerをAmazon EC2に構築する | DevelopersIO

    はじめに 前回はHashiCorp Vaultについての基礎知識を確認し、ローカルPC(MacBook Pro)にDev Serverとして導入してみました。 今回はAmazon EC2上にHashiCorp Vault Serverを構築し、ローカルPCから接続してみます。 やってみた サーバ側作業 Amazon EC2を起動します。OSはAmazon Linux 2017.09です。まずはビルドに必要となるGolangをインストールします。 $ sudo yum install go ところが、ここでインストールされるGolangは1.8.4で、HashiCorp Vaultに必要な1.9以上ではありません。 $ go version go version go1.8.4 linux/amd64 そこで、最新バージョンであるGolang 1.9.3を取得し、/usr/local下に展開

    HashiCorp Vault ServerをAmazon EC2に構築する | DevelopersIO
  • 「毎日Kotlin」はじめました | DevelopersIO

    はじめに 最近Androidの記事がKotlinで書かれることが多くなってきました。流行り好きが使う言語から、普及が進み一般的に使うようになってきました。 社内でどうやって布教したらよいのか考えました。個人的には、読書会のような時間をロックし、個人の負担が多くなるのは嫌でした。準備をたくさん必要とするわりに、離脱率高いし、一度都合で参加できないとなかなか再度参加するのが大変。そして手を動かしてないから忘れる。ある程度の知識が付いた状態で深く議論するのには向くけど、布教には向かないと思いました。 もっと自分のペースに合わせて、好きな時に、好きなように勉強できる。あまりに自由すぎると結局やらないし、何をしたら良いのかわからない。検索用語がわかれば、自分で調べられる。指針やテーマだけあればよい。ドキュメント読め以外の何かないか。 そこで、考えたのが「毎日Kotlin」 毎日「Kotlin Koa

    「毎日Kotlin」はじめました | DevelopersIO
  • Atomとtextlintで始めるその場で文章校正ができる環境の作り方 | DevelopersIO

    こんにちは。サービスグループの武田です。 AWS re:Invent 2017が開催されますね。弊社からは実に34人が現地に乗り込みます。 AWS re:Invent 2017、クラスメソッドは34人が現地参加!そして全社員でイベントを盛り上げます! #reinvent 今年はお留守番ですが、来年は行きたいと今から狙っています。 さて、弊社はブログの執筆を仕事の一環としてとらえており、毎日たくさんの記事が公開されています。 記事を書く際には、内容はもとより、誤字脱字・表記ゆれにも気を付ける必要があります。 今回は文章のチェック・校正を楽にするためのツールとして、以前から気になっていたtextlintを使ってみましたので紹介します。 もちろんこの記事も、textlintを使って書いています。 環境 macOS Sierra Atom Node prh textlint textlint-ru

    Atomとtextlintで始めるその場で文章校正ができる環境の作り方 | DevelopersIO
  • モバイルアプリのユーザーエージェント設計のベストプラクティス | DevelopersIO

    ユーザーエージェントとは? ユーザーエージェント(User Agent)は、HTTPリクエストを行う際にリクエストを行う元(クライアント)の種類を特定するものです。 ユーザーエージェント (User agent)とは、利用者があるプロトコルに基づいてデータを利用する際に用いるソフトウェアまたはハードウェアのこと。 特にHTTPを用いてWorld Wide Webにアクセスする、ウェブブラウザなどのソフトウェアのこと。 ユーザーエージェント - Wikipedia モバイルアプリではAPIリクエストを行う際、HTTPリクエストヘッダの User-Agent を使ってユーザーエージェントの情報を送信します。ユーザーエージェントの情報は任意の文字列となりますが、特に決まりがないため、何をどのように設定すれば良いか迷ってしまいます。 そこで記事では、ユーザーエージェントが果たす目的を考えつつユー

    モバイルアプリのユーザーエージェント設計のベストプラクティス | DevelopersIO
  • ChromiumをHeadlessにしてスクリーションショット画像を作成する | DevelopersIO

    ChromiumでHeadless 最近、ChromeがHeadlessに対応しているという情報を目にしましたので備忘録として手順を共有したいと思います。 Amazon Linuxでやろうとしたけどツライ 最初にAmazon Linuxを使ってChromiumをインストールしようとしましたが、各種パッケージが足りないとエラーが続き諦めました。 Ubuntuでラクラクセットアップ とても簡単にセットアップできましたのでこちらの方法をご紹介します。 まずはじめに適当なタイプのEC2インスタンスを起動します。サーバーの種類は、Ubuntu Server 16.04 LTS (HVM), SSD Volume Typeを選択しました。 次に、SSHでサーバーにアクセスを行い、以下の手順で必要なソフトウェアをインストールします。 $ sudo apt-get update $ sudo apt-ge

    ChromiumをHeadlessにしてスクリーションショット画像を作成する | DevelopersIO
  • スクリーンショットを撮るのはChromeがいちばん?! | DevelopersIO

    新しい職場、新しいパソコン。まず始めに入れるツールの一つがスクリーンショットではないでしょうか。 でも、Chromeのver.59からは、標準機能として装備されたようなのです。 やりかた ChromeのDevelopers Toolを立ち上げる。 Macだと、Chromeを開き「alt + command + i」を同時に押す。 レスポンシブ表示にする 続いて、command + shift + m を押します。または、下記のボタンを押してください。 画面上部に、解像度やデバイスを変更するセレクトボックスが表示されます。 デバイスの選択肢を増やす 必要最低限はありますが、PCのスクリーンショットも取れるようにしたいので、Editを押します。 デベロッパーツールの表示が切り替わるので、「Laptop with HiDPI Screen」と「Laptop with MDPI Screen」をチ

    スクリーンショットを撮るのはChromeがいちばん?! | DevelopersIO
  • Developers.IO 2017セッション「基礎からの OAuth 2.0」でお話してきました #cmdevio2017 | DevelopersIO

    よく訓練されたアップル信者、都元です。クラスメソッドが運営するIT技術ブログDevelopers.IOのカンファレンスイベントDevelopers.IO 2017にて、セッション「基礎からの OAuth 2.0」を発表しました。エントリーはそのレポートです。 発表スライド 発表動画 セッション概要 システム開発をする以上、ほとんどの場合「認証と認可」は切っても切れない問題です。マイクロサービスが話題を集め、コンポーネントのWeb API化が急加速を見せる昨今。OAuth 2.0 という仕組みが継続的に注目を集めています。 しかし、いざその仕様を紐解いてみると Authorization code や Implicit 等、簡単には理解できない概念や選択肢が並んでおり、 自分が導入すべきなのはどのような仕組みなのか、判断が難しいのも確かです。 セッションでは OAuth 2.0 の仕組

    Developers.IO 2017セッション「基礎からの OAuth 2.0」でお話してきました #cmdevio2017 | DevelopersIO
  • S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO

    どうも!AWS勉強中の西村祐二@大阪です。 みなさんLambdaは使ってますでしょうか。 サーバレスでいろんなことができるので個人的にかなり好きなサービスです。 Lambdaは様々な使い方ができますが S3と連携してファイルがアップロードされたらLambdaで 何かしらの処理を実行するなどの使い方をしている方多いのではないでしょうか。 そんな時に重要になってくるのが冪等性です。 今回はLambdaの冪等性をDynamoDBの条件付き書き込みという機能を利用して 冪等性を実現してみたいと思います。 なんで冪等性が必要なのか Lambdaはたまに2回以上実行されるときがあるからです 例えば Lambdaでアクセスログの集計処理などを行っている場合、 複数回処理されると複数回集計されて結果がおかしくなるときがあります。 また、複数のファイルをまとめてアップロードした際に 何らかの理由で一部のファ

    S3をトリガーとするLambdaの冪等性をDynamoDBで実現してみた | DevelopersIO
  • [Mac] Emacs 25.2 をビルドする | DevelopersIO

    ビルドしよう Web 上で公開されている Mac 用の Emacs 25.2 は日本語入力時に画面がチラつきます。 このままでは使いづらいため、パッチを当ててソースコードからビルドしてしまいましょう。 チラつき防止のパッチは hylom さんという方が作成してくれたものを使用します。 素晴らしいです。 ありがとうございます hylom さん。 手順 mkdir build_dir cd build_dir curl -LO http://ftpmirror.gnu.org/emacs/emacs-25.2.tar.xz curl -LO https://osdn.net/dl/macemacsjp/emacs-25.x.patch tar xvf emacs-25.2.tar.xz cd emacs-25.2 patch -p1 < ../emacs-25.x.patch ./config

    [Mac] Emacs 25.2 をビルドする | DevelopersIO
    okinaka
    okinaka 2017/05/24
    ML では、設定の変更でも回避できるとのこと
  • Slack,ChatWork,Github,Backlogをまとめて管理『Franz』が便利すぎる | DevelopersIO

    はじめに アプリ開発・システム開発を行っていると、さまざまなウェブアプリやチャットツールを使うことが多いと思います。これらをひとつのアプリでまとめて閲覧・管理できるMacアプリがFranzです。 公開されているプラグインを入れたり、自分だけのプラグインを作ったりすることも簡単です。 実際にすずしゅんは、こんなかんじで利用しています。これだけまとめておくとめっちゃ便利です。 プロジェクト管理ツール/Git Backlog Zube (おそらくズービって読む) Github チャットツール Slack複数PJ ChatWork GoogleApps系 Google Calendar Gmail その他 Soundcloud 更新履歴 2017/01/26 : KDDIChatWork, Backlogの通知ができるようにwebview.jsについてを追記 1. インストール 公式サイトからダウ

    Slack,ChatWork,Github,Backlogをまとめて管理『Franz』が便利すぎる | DevelopersIO
    okinaka
    okinaka 2017/01/30
  • 【新サービス】AWS BatchがGA(一般利用開始)になったので使ってみた | DevelopersIO

    こんにちは、せーのです。今日は日よりGAになった新サービス「AWS Batch」を使ってみたいと思います。 AWS Batch クラウド上で特定のバッチ処理を流したい場合、最初に考えるのはEC2を立ち上げてバッチを書いてcronあたりにセットする方法でしょう。もう少しAWSに詳しくなるとLambdaを使ってサーバレスにバッチを流すことを考えるかもしれません。ただLambdaでは処理時間5分を超えるような大規模なバッチは流せません。いくつかのバッチをフローとして次々流すのであればSWF(Amazon Simple Workflow)というサービスもあったりするのですが、こちらはとにかく仕組みを覚えるのが大変です(経験者談)。どのサービスも一長一短、ちょうどいい感じのものはないものか、という要望に答えるのがこの「AWS Batch」となります。 AWS BatchとはAWSフルマネージドなB

    【新サービス】AWS BatchがGA(一般利用開始)になったので使ってみた | DevelopersIO
    okinaka
    okinaka 2017/01/13
    Docker を使う理由がまた一つ増えた感じ
  • 【Auth0】Auth0+Apache(mod_auth_openidc)でシングルサインオンしてみる | DevelopersIO

    はじめに こんにちは植木和樹@上越妙高オフィスです。いろいろなユースケースでAuth0を使ってみています。前回はWordPressAuth0プラグインをインストールして、ユーザー認証を行ってみました。 【Auth0Auth0事始め/WordPressのユーザー認証をAuth0+Google Appsでシングルサインオンしてみる | Developers.IO 今回はApacheからAuth0を扱ってみたいと思います。ApacheとAuth0を組み合わせることで、たとえば社内システムを外部アクセスから保護するためのBasic認証の代わりにAuth0を使ったアクセス制限として利用するということが可能になります。またApacheをリバースプロキシ−として用いれば、Auth0を扱うことが(アプリの改修コストなどで)難しい場合にも最低限のアクセス制限をかけることが可能になるかと思います。 mod

    【Auth0】Auth0+Apache(mod_auth_openidc)でシングルサインオンしてみる | DevelopersIO
  • Atom と PlantUML で快適シーケンス図駆動開発ライフ | DevelopersIO

    サーバーサイド開発担当のエンジニアが「設計と実装を進めようとしている」という背景で話を進めます。 PlantUMLは強い 「認識合わせ」という名目でホワイトボードに図を書いて会話することがよくあります。共通言語で会話してあいまいなところを少なくしたら、マネージャーも安心感がありますし、プログラマも自分がやるべきことに集中できますね。 …3日経ちました。あのとき描かれていたホワイトボードの図のとおりに、実装することになりました。認識の齟齬をなくしてくれた貴重な図です。写真に撮りました。どこに保存してたっけ。やっぱり変更したくなったらどうしましょう。またホワイトボードに書き起こす?DRYじゃないですねえ。 そこで、UML図 が登場します。表現したい図を電子データで作成、保存できて、あとで見るときも役に立ちますね。が、しかし、UML図はそれはそれでやや手間がかかるところもあります。作図を助けてく

    Atom と PlantUML で快適シーケンス図駆動開発ライフ | DevelopersIO
  • OSSのジョブ管理システム Kuroko2を使ってみた | DevelopersIO

    私の所属するプロジェクトで、OSSのジョブ管理ツールKuroko2を導入しました。 簡単にKuroko2の特徴、設定手順をご紹介します。 導入の経緯 プロジェクトが始まった時、一定間隔で起動する小さなジョブが一つか二つあるだけなのでcronで動かしていました。 ですが、リリースから時間が経ちサービスが成長するにつれ次第にジョブも増えていきました。 「こっちのDBから1日1回データを同期して画面に反映して欲しいです!」 「FTP接続してこっちのファイル取得してほしいんだけど...」 「対象のデータがあったらS3にJSON書き出してくれない?」 その場しのぎで次々にcron起動のジョブを増やしていったところ、ある日 崩壊した... (青:使用可能メモリ、緑:使用済みメモリ) ジョブ管理システム Kuroko2の導入 自前でジョブ管理システムを構築することも検討しましたが、時間がないことやすでに

    OSSのジョブ管理システム Kuroko2を使ってみた | DevelopersIO
  • Digdagのアーキテクチャとコンセプトを理解する #digdag | DevelopersIO

    Treasure Data社によってOSSワークフローエンジン『Digdag』はその発表以後多くの反響を呼び、社内外を含め良く利用されるようになってきていますが個人的には下記の『試してみた』エントリ以降、あまり触って来ていませんでした。ちょっと個人的にも腰を据えて取り掛かってみようかという感じになってきましたので、仕組みや使い方を把握するという意味で一番参考になるであろう公式ドキュメントの一部を読み進めてみた記録をブログエントリとして残しておきたいと思います。 Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO Digdagのアーキテクチャ Digdagによるワークフローの自動化 ワークフローを使って、手動で行なっているあらゆる操作を自動化出来ます。一連のタスクを『ワークフロー』として定義し、Digdagを使

    Digdagのアーキテクチャとコンセプトを理解する #digdag | DevelopersIO
  • CodeDeployとCircleCIを利用したBlue/Greenデプロイメント | DevelopersIO

    はじめに こんにちは、中山です。 今回CircleCIとCodeDeployを組み合わせてイミュータブルなBlue/Greenデプロイ環境を作ってみました。内容的には以下のエントリを組み合わせたものになります。 [公式チュートリアルではじめる]CircleCI+CodeDeployを使ったCD(継続的デプロイ) TerraformとCodeDeployでイミュータブルなBlue/Greenデプロイ環境を構築する TerraformのコードをCircleCI経由でデプロイさせる 構成図 デプロイの流れが異なるのでDevとOpsで構成図を分けました。今回説明を簡略化させるためにDev用コード(CodeDeploy)、Ops用コード(Terraform)を混ぜていますが、番環境では別リポジトリに分離して管理することをオススメします。 Devの場合 Devの場合のデプロイフローは以下のとおりです

    CodeDeployとCircleCIを利用したBlue/Greenデプロイメント | DevelopersIO
  • jackson-jqを使ってJavaでjqクエリを処理する | DevelopersIO

    よく訓練されたアップル信者、都元です。APIのデータ入出力フォーマットとして、JSONはすっかり市民権を得た感がありますね。私、XMLも意外と好(もごもご Jacksonで目的の値を取り出す さて、Javaの世界において、よく使われているJSON処理ライブラリとしてJacksonというものがあります。 ここでは、OpenWeatherMapの出力を使って説明していきます。(ただし、以下を実際に試してみるためには、OpenWeatherMapに対して無料登録をおこなって、APIキーを手に入れる必要があります。) http://api.openweathermap.org/data/2.5/weather?APPID=XXXXAPIKEYXXXX&q=Tokyo,jp 上記URLにアクセスすることによって、下記のような情報が得られます。 { "coord": { "lon": 139.69,

    jackson-jqを使ってJavaでjqクエリを処理する | DevelopersIO
  • 【社内資料公開】運用手順書を作る時のポイントについて書いてみた | DevelopersIO

    はじめに こんにちは植木和樹@上越妙高オフィスです。日は私がここ10年くらい意識している運用手順書を書くときのポイントについてまとめてみました。 対象読者 開発・構築したシステムを別の人に引き継ぐ予定のある人 他の人が作ったシステムを引き継ぐ担当の人 半年後の自分でも分かる手順書の書き方に困っている人 (この記事を読むのにかかる時間の目安:5分) 1. ドキュメントの冒頭に書くこと まず個々の詳細手順の前に、ドキュメント自体について記載してもらいたいことです。 1.1. ドキュメントに書かれていることを3行で書く ドキュメントの最初には、このドキュメントに何が書かれているのかを100文字くらいで書いておくと良いでしょう。 システムが増えれば増えるほど手順書も増えていくものです。見つけたドキュメントに自分の期待するものが書かれているのか、冒頭数行でわかるようになっているとうれしいです。 1

    【社内資料公開】運用手順書を作る時のポイントについて書いてみた | DevelopersIO
    okinaka
    okinaka 2016/06/30