enosyoのブックマーク (282)

  • golangとDockerとOOM — KaoriYa

    golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

    enosyo
    enosyo 2020/01/20
  • Go Micro

    A Go microservices framework Redirecting you to GitHub

    enosyo
    enosyo 2019/12/27
  • 「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!

    目次 目次 概要 題 私がこのを購入した理由 数ある言語処理系の技術書でも恐らく最も初歩的 Goは現在恐らく最も可読性が高い言語 何故オススメ? プログラミングの質が見えるから 単純にコード量が多いのでやってて楽しい テスト駆動開発 読者の為に残された多くの課題 総評 おまけ 概要 ※注意 Go言語でつくるインタプリタ 作者: Thorsten Ball,設樂洋爾出版社/メーカー: オライリージャパン発売日: 2018/06/16メディア: 単行(ソフトカバー)この商品を含むブログを見る こちらのを読み終わりました(付録以外)。 言語処理系に興味を持った衝動で買ったではありましたが、 今まで読んだでもトップレベルで完成度の高いものだったので、 ここで紹介しておきたいと思います。 簡単に良いところをまとめておくと、 プログラミングの抽象的な概念をより深く学べる これは言語処理系

    「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!
    enosyo
    enosyo 2019/12/12
  • Go の命名規則 | micnncim

    記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney

    Go の命名規則 | micnncim
    enosyo
    enosyo 2019/12/12
  • EKSでの認証認可 〜aws-iam-authenticatorとIRSAのしくみ〜 - もうずっといなかぐらし

    こちらはAmazon EKS #1 Advent Calendar 2019 7日目の記事です。 EKSでIAM RoleをUserAccountに紐付けたり、ServiceAccountをIAM Roleに紐付けたりする際、AWSのドキュメントに従って設定してはいるものの、その設定によって実際にどんな処理が行われているかを具体的に知らない方も多いのではないでしょうか?(私も今回の記事のために調べるまではそうでした。) そこで今回の記事では、Kubernetesの認証認可の仕組みを解説したあと、AWSのIAMの認証情報をKubernetes内のUserAccountに紐付けるaws-iam-authenticatorの動作の仕組みとKubernetesのService AccountにIAM Roleを紐づける仕組みについて設定方法のレベルから一段掘り下げて実際の動作に焦点を当てながら説明

    EKSでの認証認可 〜aws-iam-authenticatorとIRSAのしくみ〜 - もうずっといなかぐらし
    enosyo
    enosyo 2019/12/12
  • GoとDockerでLet's try gRPC - LiBz Tech Blog

    はじめに gRPCとは gRPCの特徴 gRPCが解決するマイクロサービスの課題 gRPCの課題 Let's try gRPC 1. 準備 2. protoファイルの作成 3. server側の処理 4. client側(リクエスト)の処理 5. buildして実行 最後に はじめに こんにちは!エンジニアの渡邊です。早いもので、11月でLiBに入社して丸1年がたちました。 このブログへの投稿も4回目になります。 前回の とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を番環境に導入した話 では、jetsの開発者であるtongueroo氏や、Rubyの生みの親まつもとゆきひろ氏をはじめ、多くの方にシェアをしていただき大変励みになりました!みなさんありがとうございました。 今回はGoogleが開発したRPCフレームワークgRPCについて書こうと思います。 g

    GoとDockerでLet's try gRPC - LiBz Tech Blog
    enosyo
    enosyo 2019/11/20
  • Goでヘキサゴナルアーキテクチャ - Qiita

    はじめに 『Standard Go Project Layout』と『ヘキサゴナルアーキテクチャ』を参考にサンプルプロジェクトを作ってみました。 トランザクション周りも取り扱います。 『Standard Go Project Layout』とは ↓これです。 Standard Go Project Layout 上記の内容を日語で簡潔にまとめてくださってる記事もありました。 Goにはディレクトリ構成のスタンダードがあるらしい。 別の記事になりますが、こちらもとても参考になりました。 Practical Go: Real world advice for writing maintainable Go programs ヘキサゴナルアーキテクチャとは ↓これです。 ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳) 家サイトへのリンクも張りたかったのですが、現

    Goでヘキサゴナルアーキテクチャ - Qiita
    enosyo
    enosyo 2019/11/20
  • 404 | Developers.IO

    404 Not Found. お探しのページは見つかりませんでしたが、 他のたくさんの技術記事やイベント情報が見つかりました。 以下のリンクを開き、気になる技術を探しましょう!

    enosyo
    enosyo 2019/11/19
  • https://dena.github.io/codelabs/

    「Now in Android App」アプリを題材に、アプリアーキテクチャのレイヤに沿って、テストの書き方を学ぶハンズオンです。 ※Codelab形式ではありません。詳しくはリンク先のREADMEを参照してください

    https://dena.github.io/codelabs/
    enosyo
    enosyo 2019/10/29
  • TDD(テスト駆動開発)で始めるGoのテスト

    このコードラボでは、テスト駆動開発(TDD)という開発手法を使ってFizzBuzzを実装します(FizzBuzzをご存じない方はリンク先でご確認ください)。 テスト駆動開発(TDD)によるソフトウェア開発の流れを学びつつ、Goのテストコードの書き方を学ぶことができます! このコードラボでは1からソースを作成していきますが、事前に雛形・ディレクトリ構成が用意された以下のサンプルコードをgit cloneまたは、ZIPでダウンロード・解凍しておくとスムーズに開始できます。 $ git clone https://github.com/DeNA/codelabs.git このコードラボのサンプルコードはsources/tdd-go以下に格納されています。 $ cd codelabs/sources/tdd-go $ ls 1_fizzbuzz_start 2_fizzbuzz_answer ディ

    enosyo
    enosyo 2019/10/29
  • Suggestions and techniques for building neural networks with Go

    Goで単語をベクトル化するためのニューラルネットワーク「Word2Vec」 をスクラッチで構築した経験から、Goでニューラルネットワークを組む際のエッセンスについてお話しします。「Go+ニューラルネットワーク」と言う組み合わせはあまりイメージが無いかもしれませんが、仕組みと行列計算のクセを理解すれば難し…

    Suggestions and techniques for building neural networks with Go
    enosyo
    enosyo 2019/10/29
  • サンドボックス、開発、テスト環境で IAM ポリシー作成を一元化および自動化する方法 | Amazon Web Services

    Amazon Web Services ブログ サンドボックス、開発、テスト環境で IAM ポリシー作成を一元化および自動化する方法 番環境に対応したアーキテクチャに移行する際、お客様のアプリケーションチームはサンドボックス環境で AWS のサービスを試して、AWS の進化していくイノベーションに対応することができます。アプリケーションチームは、さまざまな AWS のサービスとリソースにタイムリーにアクセスする必要があります。つまり、最低限の権限を与えられることを保証するメカニズムを必要とします。通常、アプリケーションチームは、定期的に Amazon Elastic Block Store のスナップショットバックアップを行う AWS Lambda 関数や、セキュリティチームが管理する一元化された情報セキュリティアカウントにイベントを送信する Amazon CloudWatch Even

    サンドボックス、開発、テスト環境で IAM ポリシー作成を一元化および自動化する方法 | Amazon Web Services
    enosyo
    enosyo 2019/10/29
  • GitHub - uber-go/guide: The Uber Go Style Guide.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - uber-go/guide: The Uber Go Style Guide.
    enosyo
    enosyo 2019/10/16
  • Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 - Qiita

    自分は普段はChromeのブックマークを使ってよく見返す記事を保存しています。Goを一年間書いてきてブックマークを整理したのですが、せっかくなのでお世話になったブックマーク記事を晒します。 Blog & Serial The Go Blog Goの公式ブログ。深いところまでしっかり書かれているので、調べたいトピックはまずはここで調べたい。 https://blog.golang.org/ Practical Go GoのcontributorであるDave Cheneyさんのブログです。Goで開発&運用する上でのアドバイスが書かれており、入門記事だけでは得られないノウハウがふんだんにまとめられています。 https://dave.cheney.net/practical-go Goならわかるシステムプログラミング @shibukawaさんの連載です。Go低レイヤーを学んでいきます。根底の

    Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 - Qiita
    enosyo
    enosyo 2019/10/11
  • ソシャゲエンジニアの自分が開発に必須だなと思った知識(MySQL編) - Qiita

    この記事の目的 自分は、とある会社様の元でソシャゲAPI 開発をさせていただいています。 ソシャゲは、リリース時やイベント時などに集中アクセスされやすく、負荷軽減の知識がない状態で開発を行ってしまうと、運用時に緊急メンテ祭りになりやすいジャンルかなと思っています。 これまで培ってきた MySQL の知識ですが、脳内メモリ量の関係上、暗記できないのでメモしておこうというのが主目的です。 ここ数年ほどソシャゲ開発しかしていないため、偏っている感がある内容ですのでご注意ください。 概要 ストレージエンジンは InnoDB。メインで扱っている MySQL バージョンは 5.6。 記事の内容ですが、これらのキーワードを見て、おおよそ分かる方は読む必要はないかと思います。 インデックス系 クラスタインデックス カバリングインデックス EXPLAIN で注意するべき値 トランザクション系 MVCC

    ソシャゲエンジニアの自分が開発に必須だなと思った知識(MySQL編) - Qiita
    enosyo
    enosyo 2019/09/25
  • あらためてGenericsを知る / Learn about Generics again

    Go v1.13 Release Partyでお話しした資料です。Aug 23th, 2019

    あらためてGenericsを知る / Learn about Generics again
    enosyo
    enosyo 2019/09/17
  • Golangで書くレイヤードアーキテクチャ 簡易APIサーバーを構築 - Qiita

    はじめに & この記事を書いた理由 この記事は、レイヤードアーキテクチャをちょっと理解した学生が残したものです。コードに自信がないので、改善点やコメントなどを残して頂けると勉強になるので助かります。 コードはGolangMySQLで書いています。(サンプルコード) クリーンアーキテクチャについてもそのうち記事にします。 バカな僕だけかも知れませんがアーキテクチャについての記事を読んで、「層って何?どういう構造になってるの?どう実装するの?」って思いませんか? アーキテクチャを勉強中の僕はいろんな記事を読んで、バカなりに理解したことを伝えたくて今回の記事を書きました。 [追記] この記事 [DDD]ドメイン駆動 + オニオンアーキテクチャ概略 によると、これオニオンアーキテクチャです。 レイヤードアーキテクチャ とは ① レイヤードアーキテクチャについて を読んでいただけると理解できると思

    Golangで書くレイヤードアーキテクチャ 簡易APIサーバーを構築 - Qiita
    enosyo
    enosyo 2019/09/17
  • AWS運用設計 パッチ運用を考える | DevelopersIO

    こんにちは。 ご機嫌いかがでしょうか。 "No human labor is no human error" が大好きな吉井 亮です。 オンプレミスで稼働しているシステムを AWS へ移行する or すでに移行した会社は多いと思います。 移行にあたり運用設計を見直すことになりますが、AWS 特有の考え方や AWS サービスを活用するための運用はどのようにシステムに取り込んでいけば良いでしょうか。 今回は、主にエンプラ系システムの運用設計 パッチ運用について考えてみます。 パッチ適用の目的 前提としてパッチを適用する目的は以下です。 セキュリティホールを塞ぐ ソフトウェアのバグを修正する ソフトウェアの機能追加をパッチという形式で提供されることもある パッチ分類 パッチと一言に言っても様々なパッチがあります。 パッチ運用では適用対象ごとに分類していきます。 分類 説明

    AWS運用設計 パッチ運用を考える | DevelopersIO
    enosyo
    enosyo 2019/09/17
  • DynamoDB の GUI ツールが公式から出たよ! - Qiita

    はじめに みなさんAWS使ってますか? DynamoDB 使ってますか? DynamoDB のコンソールってすごく使いづらくないですか? 頑張っても100件しか表示されないし、その100件の中でしか昇順降順の並び替えできないし…見た目もなんかあれだし……… でも今回紹介するツールを使えばそんな悩みも解消されるかもしれません! 今回紹介するのは NoSQL Workbench for Amazon DynamoDB です! NoSQL Workbench for Amazon DynamoDB AWSが公式でリリースしたデスクトップアプリです。(2019/09/17時点ではプレビュー版) https://aws.amazon.com/jp/about-aws/whats-new/2019/09/introducing-nosql-workbench-for-amazon-dynamodb-n

    DynamoDB の GUI ツールが公式から出たよ! - Qiita
    enosyo
    enosyo 2019/09/17
  • Kyoto.なんか #5で「AWS上に構築する メンテ容易なElasticsearch System」というタイトルで話してきました - その手の平は尻もつかめるさ

    表題の通りKyoto.なんか #5で話してきました.もうかれこれ3週くらい前の話なのですね……筆不精がたたっております. kyoto-nanka.connpass.com 内容としてはここ数年ElasticsearchをAWS上で運用しているのでそのアーキテクチャのご紹介という感じの発表をしたという次第です.現状上手いこと回っております. この発表の後にElasticの@johtaniさんからのメンションで,クラスタまたぎのレプリケーションがElasticsearch 6.7以降サポートされていることを教えていただきました.ありがとうございます! 一応補足。6.7から有償機能だけど、クラスターまたいだレプリケーションあるんです。Elastic Cloudで使えたかはパッとは出てこないけど、、、 https://t.co/89om47nkSF— Jun Ohtani (@johtani) A

    Kyoto.なんか #5で「AWS上に構築する メンテ容易なElasticsearch System」というタイトルで話してきました - その手の平は尻もつかめるさ
    enosyo
    enosyo 2019/09/12