並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 591件

新着順 人気順

マイグレーション dbの検索結果41 - 80 件 / 591件

  • 大規模サービスのインフラを全面的にリプレイスした話 - Qiita

    はじめに こんにちは。雑食系エンジニアの勝又です。 今回は、私が2年ほど参画させていただいた大規模サービスのインフラやDevOps周りを全面的にリプレイスしたお話について簡単にご紹介させていただきます。(内容に関しては事前に参画先企業様に確認していただいております) サービス概要 詳細な内容は伏せますが、メインとなるテーブルのレコード数が数十億件、スパイク時には数万〜数十万のユーザーが一斉にアクセスする大規模サービスです。 技術的負債 長く運用されてきたサービスのあるあるですが、新機能の追加が最優先されてきたことにより、こちらのサービスにも下記のような技術的負債が大量に積み上がっていました。 RubyやRailsやMySQLのバージョンがかなり古い インフラの構成がコードではなくドキュメントで管理されている アプリケーションの構成管理がおこなわれていない CI/CDパイプラインが構築されて

      大規模サービスのインフラを全面的にリプレイスした話 - Qiita
    • Aurora MySQL 5.7とRailsで実現する全文検索機能 - dely Tech Blog

      こんにちは。 クラシル開発部、バックエンドエンジニアの松嶋です。 delyに入社してから約3年間、私はSREチームに所属していましたが、昨年10月にバックエンドに転向しました。バックエンドに転向してからは、主にクラシルアプリの公式レシピおよびCGMコンテンツの検索機能に関する開発・改善に取り組んでいます。 クラシルは、2016年2月にサービスを開始してから、管理栄養士監修の「誰でも安全に・おいしい料理を作ることができるレシピ動画」を5万件以上提供してきました。 昨年12月には、クラシルのブランドリニューアルを行い、今後はシェフや料理研究家を中心としたクリエイターとともに多様化したユーザーの食の好みや課題解決に応えられるよう、幅広い食のコンテンツを提供するプラットフォームを目指しています。 ブランドリニューアルの詳細に関しては、こちらを御覧ください。 www.kurashiru.com この

        Aurora MySQL 5.7とRailsで実現する全文検索機能 - dely Tech Blog
      • DBのリストアテストを全自動化した話 - Pepabo Tech Portal

        ホスティング事業部の業務信頼性向上チームでエンジニアをしているはらちゃんです。 先日STREET FIGHTER 6のオープンベータに参加し、友人にボコボコに負けました。 製品版買っていい勝負ができるように特訓を重ねたいと思います。 今回、ホスティング事業部のサービスであるロリポップ、ムームードメイン、ヘテムル、おさいぽのDBリストアテストを自動化したので紹介します。 まず業務信頼性向上チームとは? リストアテストを継続的にやっている理由 なぜ自動化したのか 全体像 具体的な実装 実装時に困ったこと dumpのサイズが大きすぎて通常のrunnerではリストアテストができない場合 scpをするアカウントにdumpファイルを操作する権限がない場合 dumpファイルのファイル名が微妙に違ってうまく指定できない場合 終わりに まず業務信頼性向上チームとは? 最初に、自分の所属している業務信頼性向上

          DBのリストアテストを全自動化した話 - Pepabo Tech Portal
        • Rails開発者が採用面接で聞かれる想定Q&A 53問(翻訳)|TechRacho by BPS株式会社

          概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 53 Ruby on Rails Interview Questions and Answers - Better Programming - Medium 原文公開日: 2020/04/03 著者: GreekDataGuy -- データサイエンティスト、フルスタックエンジニア、起業家。トロント在住。 日本語タイトルは内容に即したものにしました。 私はこれまで100人を超えるRuby on Rails開発者と面接を重ね、私自身も職階に関する面談をいくつも受けました。本記事は、これまで私が受けたり尋ねたりした質疑応答をまとめたものです。 2020年現在、どれほど多くの大企業がRailsを利用していることを知ったら皆さんは驚くかも知れません。Shopify、Airbnb、GitHub、Dribble、Etsy、Kickstarter

            Rails開発者が採用面接で聞かれる想定Q&A 53問(翻訳)|TechRacho by BPS株式会社
          • Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ

            Javaの開発と言っても、各種ミドルウェアやフレームワーク、ライブラリ、ツールなどが豊富にあり選択に悩むことは少なくないと思います。 そこで関連技術のインデックスになればと作成しました。 あくまで知っている範囲で記述しているので、コメントしてもらえれば随時追加します! すべてを書くと膨大な量になるため、現状採用が減ってきているものや、そもそもあまり採用されていないもの、後継があったり、類似のものと比較した場合に明らかに劣っているものは省いています。 ちなみにライブラリには高機能なものも多いので、分類は参考程度にご覧下さい。 サーバ系 Apache HTTP Server 世界中でもっとも多く使われているWebサーバ。 nginx フリーかつオープンソースのWebサーバで、処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。 Tomcat Java ServletやJSP

              Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ
            • ECS Fargate 楽々構築テンプレート|Dentsu Digital Tech Blog

              この記事は電通デジタルアドベントカレンダー2020の22日目の記事になります。前回の記事は「ADH APIを効率的に呼び出すために開発したHooksの紹介」でした。 改めましてこんにちは! Docker使ってますか? AWSでDockerを使おうと思うと以下の3つの選択肢があります。 ・Elastic Container Service ・Elastic Kubernetes Service ・EC2に構築する この中でもECSいいですよね、僕も好きです。運用に手間もかからなくて気軽に使えるところに好感もてます。さすがAWSのマネージドサービス。 ただし実際にECSで構築しようとすると周辺のリソースが色々と必要になるので初心者にとってハードルが高く見えるのも事実です。そんなわけで初心者にも使えるようなテンプレートを提供したいと思います。 このテンプレートでは最低限の機能しか提供しません。何

                ECS Fargate 楽々構築テンプレート|Dentsu Digital Tech Blog
              • 技術のトレンドと開発テクニックの知見を、無料で公開します! - Qiita

                技術のトレンドと開発テクニックの知見を、無料で公開します! いかに無駄な努力をせず、効果的にトレンドに沿ったアプリ開発ができるかを研究してきました。 この記事は、定期的にトレンドに沿って更新していこうと思います。 twitterもやってます! 今後も情報発信しようと思うので、フォローお願いします! https://twitter.com/joer_sbt 自分が一番知見のある、フロントエンドの分野中心に見解を述べたいと思います。 結論から言うと、 React, Next.js, Typescript, Tailwind, react-query, prettier, Stylelint, auth0, tRPC, Prisma, playwright, vscode, github actions, PostgreSQL, Terraform, Flutter これらの技術スタックが今後ま

                  技術のトレンドと開発テクニックの知見を、無料で公開します! - Qiita
                • Flask実践入門 - 基本的なアプリ構成を問い合わせフォームをつくりながら学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)

                  コンフィグ設定 まずはapps/config.pyを作成し以下のコンフィグを追加しましょう。実践的なアプリでは開発環境の他にstaging環境、本番環境、テスト環境などが存在するのでそれぞれ専用のコンフィグ設定を行います。 from pathlib import Path basedir = Path(__file__).parent.parent class BaseConfig: """ BaseConfigクラス """ SECRET_KEY = os.environ["SECRET_KEY"] WTF_CSRF_SECRET_KEY = os.environ["WTF_CSRF_SECRET_KEY"] class LocalConfig(BaseConfig): """ BaseConfigクラスを継承してLocalConfigクラスを作成する """ SQLALCHEMY_DA

                    Flask実践入門 - 基本的なアプリ構成を問い合わせフォームをつくりながら学ぶ|ハイクラス転職・求人情報サイト AMBI(アンビ)
                  • 開発/Stg環境のための本番DBマスキングと継続的リストアの仕組みを作りました | ランサーズ(Lancers)エンジニアブログ

                    SREチームの安達(@adachin0817)です。今回はMENTA、Lancers Creative、Lancers Agencyでマスキングした本番環境のデータをStgや開発環境のMySQLコンテナへ毎週リストアする仕組みを実装しました。実際にここらへんは運用をしていく中で一苦労されている方も多いのではないでしょうか。それではまず背景と、実装するに当たっての活動含めてご紹介できればと思います。 背景 今回はMENTAを例にしています。各サービスの開発環境はDockerを利用しており、本番とStg環境はTerraformで管理しています。カラム追加ではマイグレーションを実行することでサンプルのスキーマファイルを投入して開発をしているのですが、たまに開発環境で動いていたソースがStgや本番で動かないといったことで開発効率が下がることが見受けられます。開発メンバーにとってはより本番環境に近い

                      開発/Stg環境のための本番DBマスキングと継続的リストアの仕組みを作りました | ランサーズ(Lancers)エンジニアブログ
                    • 新規事業を開発するために必要な知識をまとめた

                      こんにちは。株式会社プラハCEOの松原です。 弊社は主にスタートアップの新規事業に特化してデザイン・開発をするものづくり集団です。 最近改めて「プラハでエンジニアとして働く上で最低限必要なスキルって何よ?」という話になったのでリスト化してみました。 ついでにそれらにまつわる知識をうまくまとめてくれている情報源を追記しておくので、何かしらの学習素材として使っていただけると幸いです。 前提 前提として弊社が相手にしているスタートアップや新規事業の開発においては とにかく速く仮説検証し続けること が重要なので、継続的に機能改修しやすい柔らかなソフトウェアを作ることに重点が置かれています。他の事業であれば他のスキルが重視されますし、これらが新規事業の開発において絶対の指針だと言うつもりは全くないので 「あ〜新規事業の開発を主に手掛けているプラハっていう特定の会社(N=1)ではこんなスキルが求められ

                        新規事業を開発するために必要な知識をまとめた
                      • Nuxt + Sails + TypeScript + Fargateでタスク管理ツールを作ったら快適だった話 - Qiita

                        Repsona LLCの@GussieTechです。無料ガントチャート、無料カンバン、無料ドキュメント管理が便利な「理想のプロジェクト管理ツール」を作っています。 タスク管理ツール、情報共有ツール、便利ですね! これまでいろんな仕事で、いろんなツールを使ってきました。それぞれ、特に不自由もなく、乗り換えるほどのモチベーションもなく使い続けていたんですが、不満が全くなかったわけではありませんでした。 ・遅い ・ダサい ・わかりにく ・カンバンがない ・ガントチャートがない ・Wiki的なものがない ・なぜか仕事がうまく進まない ・SNSみたいな感じで、社員がもっと楽しくつながれたらおもしろそう ・スキルがレベルアップしてる様子とか、可視化されたらおもしろそう ・勝手に仕事してくれたりしないかな、AIとかで ・使ってたら無意識にPMBOKみたいになるように、レールが敷かれていると便利な気がする

                          Nuxt + Sails + TypeScript + Fargateでタスク管理ツールを作ったら快適だった話 - Qiita
                        • とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 - LiBz Tech Blog

                          はじめに 経緯 構成 技術選定 Lambdaのランタイム(言語)は何で実装するのか? サーバーレスアーキテクチャの構成管理に何を利用するのか? Jetsをちょっとだけ解説 プロジェクトの作成 ルーティングの設定 コントローラー 必要なIAMポリシー シークレットキーなどの扱い方 デプロイ方法 最後に おまけ はじめに こんにちは!先日26歳を迎え、30歳への恐怖感が着々と増してきた渡邊です。 今回が3回目のブログ投稿になります。 前回のKubernetes(GKE)にお安く入門するではたくさんのブックマークをいただきありがとうございました。 今回は実際に業務での利用をしはじめたRailsライクなRuby製 サーバーレスフレームワーク 「Ruby on Jets」について書きます。 経緯 自分が開発を担当しているプロダクトには、求職者の方と弊社のキャリアアドバイザーがLINEを介してメッセー

                            とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 - LiBz Tech Blog
                          • ZOZOTOWN マイクロサービスプロジェクトにおける継続的な改善を支えるCI/CD戦略 - ZOZO TECH BLOG

                            ZOZOテクノロジーズ SRE部の川崎(@yokawasa)です。ZOZOTOWNのアーキテクチャをマイクロサービスで再設計してリプレイス化を推進するチームに所属しております。 本記事では、このZOZOTOWNのマイクロサービスプロジェクトで実践している継続的インテグレーション/継続的デリバリー(以下、CI/CD)についてご紹介します。 はじめに まずはじめに、本記事に登場する中心的なキーワードであるCI/CDと、Infrastructure as Code(以下、IaC)について簡単に説明します。 IaCとは、インフラ構成をコード化して、そのプロビジョニングを自動化する手法です。コード化されたファイルはコードリポジトリで管理することが多く、また、IaCを実現するためのツールやサービスの利用が不可欠になります。 CI/CDは、その名の通り、CI(継続的インテグレーション)とCD(継続的デリ

                              ZOZOTOWN マイクロサービスプロジェクトにおける継続的な改善を支えるCI/CD戦略 - ZOZO TECH BLOG
                            • データベースのテーブル定義の仕様書を自動生成しよう | CyberAgent Developers Blog

                              AI事業本部 DX本部の黒崎(@kuro_m88)です。 社外(取引先など)向けに作成する仕様書を自動生成する取り組みを試しているので、アイデアを紹介します。今回はSnowflakeで構築されているデータ分析基盤のテーブル定義の仕様書を例に紹介していきます。ツールはGoを使って開発しました。 仕様書の運用コストを減らしたい DX本部でのプロジェクトは、開発環境を社内向けに別途用意することが大半なので、取引先に許可を取らないと何かを試すことができないということは今のところほとんどありません。 そのため、実際の開発フローとしては詳細な仕様書を書き起こしてから実装することはあまりなく、大まかな方針を決めてから軽く実装してみて、うまくいきそうであればそれを仕様としてまとめつつ実装することが多いです。 データベースのテーブル定義であれば、それらの定義はGitHub上で管理されており、リリース時に自動

                                データベースのテーブル定義の仕様書を自動生成しよう | CyberAgent Developers Blog
                              • Cloudflare Workers を活かしきるスタックを考えた(remix+d1 on pages-functions) + 残タスク

                                Cloudflare Workers を活かしきるスタックを考えた(remix+d1 on pages-functions) + 残タスク このスクラップ で試行錯誤していたまとめ。 最終形はここにアップロードした。 docs の下に、このリポジトリを生成した手順、セットアップ方法、リリース方法を書いてある。 (remix-validated-form や vitest のテストの追加でもうちょっといじるとは思う) なぜ cloudflare-workers + d1 のポテンシャルは最強で、近い未来、開発者|個人開発者の銀の弾丸になると思っているのだが、それを活かす開発スタックが知られていない(要出典)。この記事では GW の間に自分で周辺ライブラリを使い倒しながら選定していった。 2021年 は Fullstack Next.js 元年なので、有望な Next.js 系フレームワークを

                                  Cloudflare Workers を活かしきるスタックを考えた(remix+d1 on pages-functions) + 残タスク
                                • RESTful APIをシュッと作る技術 - PythonとFastAPIでバックエンドを5時間ちょいで作ってみた - Lean Baseball

                                  久々に開発ネタです. 大晦日ハッカソン2019 #大晦日ハッカソンで, 野球のデータをシュッと見るためのDashboardを作る(理由は後ほど). そんなDashboardのBackend APIをシュッと開発する. を目標に立て現在進行系でやってるのですが, 午後の進捗その2 Docker化が特に滞りなく完了. API Docも見れるとかFast API強すぎぃ 昨日の夕方から開発してたAPIはアッサリ1st Ver.できたので, 大晦日の買い物終わったらフロントエンドを除夜の鐘が鳴るまでになんとかするぞ #大晦日ハッカソン pic.twitter.com/wWMiSvQDKu— Shinichi Nakagawa (@shinyorke) 2019年12月31日 Backendを昨日(12/30)の18:00から着手して(実質作業時間)約5時間ちょいで完成させてしまいました. 本年最後

                                    RESTful APIをシュッと作る技術 - PythonとFastAPIでバックエンドを5時間ちょいで作ってみた - Lean Baseball
                                  • Laravel+PostgreSQL+Vue.jsでSPA開発【チュートリアル】 - OPTiM TECH BLOG

                                    はじめに 皆様こんにちは。OPTiM新卒1年目エンジニアの青木です。 前回は早押しボタンなんかを作っていました。 tech-blog.optim.co.jp 今回は、PHP フレームワークの Laravel を、PostgreSQL と Vue.js と組み合わせて作成する TODO アプリを通して紹介します。 このフレームワークらはこちらの記事でも密かに利用しています。 tech-blog.optim.co.jp OPTiMではあまり利用されていませんが、一部のアプリケーションで実利用されている箇所もございます。 PHPは昔のイメージからかなり避けられていていますが...今のPHPとそのフレームワークはすごく発展していてとても使いやすいので是非使っていただきたい!という気持ちがあります。 ですが、現状はあまり利用していただけなくて個人的には悲しい気持ちでいっぱいです。 そんなPHPですが

                                      Laravel+PostgreSQL+Vue.jsでSPA開発【チュートリアル】 - OPTiM TECH BLOG
                                    • Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                      これからLaravelを利用するのであれば、どのバージョンを使えばよいでしょうか? 現在(2020年9月時点)の状況であれば、6もしくは8のいずれかを選択することになります。どちらを選ぶかはアプリケーションの要件次第です。長期間安定したバージョンを利用したいのであれば6を、最新機能を利用していきたければ8を選ぶことになります。 この選択はさらに、セキュリティフィックス期限が切れた後にも影響します。例えば6を選択した場合、おそらく長期間利用することになるので、次にバージョンを上げる際は最新バージョンとの差異が大きくなり、アップグレードに手間がかかる可能性があります。 一方、8を選択して最新バージョンに適宜アップグレードしていけば、頻度は増えますが、都度の手間は小さくなります。ご自身やチームの開発状況や方針などを鑑みて、どちらを選ぶか検討してください。 なお、Laravelは6以降、セマンティ

                                        Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                      • リリースまで至らなかった個人開発サービスのコードを全公開して反省してみる【Nuxt + Go】 - Qiita

                                        これはなに これはDeNA20卒内定者エンジニアによるアドベントカレンダーDeNA 20 新卒 Advent Calendar 2019の記事として書かれています。 はじめに 僕は趣味の一環でWebサービスを作ったり作ろうとしたりしています。ちょうど一年程前に企画・開発を始めたのですが、リリースまで至らなかったサービスがあったことを思い出したのでこれを機にコードを全公開して振り返ってみることにします。 公開したコードはこちらになります。 https://github.com/tockn/emukone_public 自分で実装しておきながらすごく無責任なのですが、正直どういう思想で実装していたのかその詳細はもう忘れてしまっているので、コードを読んで思い出しながら書く形になります。 なぜリリースしなかったのか? まずはこれです。当時DDDやクリーンアーキテクチャといったソフトウェアアーキテク

                                          リリースまで至らなかった個人開発サービスのコードを全公開して反省してみる【Nuxt + Go】 - Qiita
                                        • Prisma 基礎

                                          Prismaのドキュメントを読んでみたので、基本的なことをまとめていきます。 Primsaとは オープンソースのORM(Object-relational mapping) Node上のアプリケーションで直接DBに接続し、クエリー発行が可能 RDB周りの処理をより簡単に行えるようにし、開発者の生産性を向上させることを目的に開発 Next.jsアプリケーションでDBを扱う際に特に有用 Schemaファイルから型情報が生成され、クエリ結果がタイプセーフになる 対応状況 言語 JavaScript TypeScript Go (開発途中) データベース PostgreSQL MySQL SQLite SQL Server (開発途中) 主な構成要素 Prisma Model アプリケーションで使用するモデルを表現する。 モデル内でテーブルやカラムの定義を行う。 また、Prisma Clientで

                                            Prisma 基礎
                                          • RedwoodJS を Ruby on Rails と比較してみる

                                            RedwoodJS RedwoodJS は JavaScript/TypeScript で構築されたフルスタック Web アプリケーションフレームワークです。RedwoodJS プロジェクト自体は Tom Preston-Werner 氏 (GitHub 創設者であり Gravatar や Jekyll などの作成者) が中心となり始まりました。 私自身もつい最近になって同じ職場の @sakitoさんに存在を教えてもらったばかりです。 RedwoodJS は、READMEから抜粋するだけでも、次のような機能を持ちます。 フォーマット・ディレクトリ・ビルドなどに関するデフォルト構成 単一ファイルによるルーティング定義 GraphQL Client / API (with Serverless deploy) の構築 ページ・レイアウトなどのジェネレータ CRUD 操作に特化した Scaffo

                                              RedwoodJS を Ruby on Rails と比較してみる
                                            • コードレビューで気をつけていること 5 選

                                              こんにちはnasaちゃんです。 コードレビューの記事を見かけたので僕がコードレビュー時に考えていること、行っていることを書いてみようと思いました。 この記事ではレビューを受ける側、行なう側それぞれの話がありましたが、ここではレビューを行なう側のことを書いていきます。(洗い出してみるとすべてがレビューコメントに関するものでした。) Whyを書く コードの変更をリクエストする際になぜ変更したほうが良いのかを書くようにしています。 レビュイーが変更を取り込むか判断する材料になるのでちゃんとなぜこっちのコードのほうが望ましいのかを書くようにしています。あと、言語化することで自分の理解も深まるので良いですね。 このとき、レビュー中のコードを批判しないことを心がけています。 「今のコードは〇〇というデメリットがあるので変えたほうが良い」と伝えるよりも「このような書き方をすることで〇〇がよくなると思いま

                                                コードレビューで気をつけていること 5 選
                                              • go-swaggerを用いたWebアプリケーション開発Tips19選 | フューチャー技術ブログ

                                                はじめにTIG DXユニット 1の真野です。echo → 生net/http → gorilla/mux → go-swagger, gqlgenの経歴でGoのHTTP APIを実装してきました。本記事では最近業務でヘビーユーズしているgo-swaggerについての開発Tipsをまとめました。 背景フューチャーではGoを採用する案件が増えて来ており、その際にgo-swagger というツールを利用することが多いです。 2 理由はWebAPIのスキーマを駆動に開発することに慣れているという開発文化(DBレイヤのERDやデータフローを駆動に開発することは今も多い)や、リリース後の保守や将来のマイグレーションを考慮しなるべく特定のDSLに依存したくないというポリシーを強く持つこと、開発前にある程度固く機能数を洗い出して工数見積もりや開発スケジュールに活かしたいといった大人な事情など、色々相性が良

                                                  go-swaggerを用いたWebアプリケーション開発Tips19選 | フューチャー技術ブログ
                                                • パスワードレスな認証を実現する認証ミドルウェアのhanko | フューチャー技術ブログ

                                                  名前からすると日本の古き良き(悪名高い)デバイス認証方式のあれのように見えますが、パスワードレスな認証(passkey)を実現するOSSのプロダクトです。Go製でライセンスはAGPL3です。なかなか面白そうなので動かしてみました。 https://www.hanko.io/ このhankoのメンバーが運営しているpasskeys.ioというウェブサイトもあり、パスワードレスなログインを広めていこう!という啓蒙サイトになっています。 https://www.passkeys.io/ この↑のサイトの存在を知らなかったのですが、@takuan_oshoさんからタレコミをいただきました。ありがとうございます。 動かし方READMEに書いてある通りにdocker composeで一通り必要なものを起動します。 $ docker compose -f deploy/docker-compose/qu

                                                    パスワードレスな認証を実現する認証ミドルウェアのhanko | フューチャー技術ブログ
                                                  • 少人数での爆速開発を目指してgolang×GCPの技術選定をした話

                                                    この1年くらいでgolangとGCPを使ったWebアプリケーションをフルスクラッチで開発したので、その際の技術選定の理由だったりを言語化して残しておきたいと思い、HHKBを手に取りました。 少し長くなってしまいましたが、どなたかの参考になればと思います。 どんな人が書いてるの? 立ち上げ期のスタートアップCTOをしています。雑に言うとフルスタックエンジニアです。 開発歴はざっくり、Androidアプリの開発歴が一番長くて3年、バックエンド開発(Elixir × GCP)に転身して1年ほど担当、その後、これから言語化するプロジェクトを1年くらいかけてgolangで構築したところです。 今回の範囲からは外れますが、並行してNuxt.js×TypeScriptで書かれたフロントエンド開発も行っていたので、今はその辺りも一通り習得しています。 1. 方針 表題にもある通り、少人数での爆速開発を目指

                                                      少人数での爆速開発を目指してgolang×GCPの技術選定をした話
                                                    • tblsとGitHub Actionsを使ってDBマイグレーションを含むPRには自動更新したER図を追加する - BASEプロダクトチームブログ

                                                      BASEアドベントカレンダー2021 10日目の記事です。 BASEアドベントカレンダー2021 10日目 BASE BANKでエンジニアをしている @budougumi0617 です。 マイグレーションファイルが含まれたPull Request(PR)が作られたとき、自動更新したER図をPRに追加するGitHub Actionsを作りました。 本記事では紹介するGitHub Actionsを利用すると次のようなメリットが得られます。 マイグレーションファイルをPRに出すだけでPRに更新されたER図が追加される 開発者は面倒なER図の更新作業から開放される レビューアはマイグレーションファイルを含んだPRをER図を見ながらレビューできるようになる プロジェクト関係者は常にメインブランチのマイグレーションファイルの状態と一致したER図を確認できる サンプルPR 自動生成したER図 TL;DR

                                                        tblsとGitHub Actionsを使ってDBマイグレーションを含むPRには自動更新したER図を追加する - BASEプロダクトチームブログ
                                                      • なぜ「共有データの整合性」が重要なのか? ゲームにおけるサーバーサイド設計のいろは

                                                        2019年5月22日、『神姫PROJECT』などソーシャルゲームの企画・開発を手がける株式会社テクロスが主催するイベント「TECH x GAME COLLEGE」が開催されました。第20回となる今回のテーマは「正しいゲーミング Web サーバーの作り方」。株式会社gumi、CTOの幾田雅仁氏が、自身の経験をもとにさまざまな事例について解説します。後半パートとなる今回は、ゲーム本体のデータストア設計のコツや、言語・サービスなどの技術選定における考え方について語りました。講演資料はこちら ゲーム本体のデータストア設計のコツ 幾田雅仁氏(以下、幾田):続いて「RDBMS+NoSQL」です。 先ほどと同じ流れですが、ゲーム本体のデータストアの設計のコツを1つ挙げると「共有データの整合性を担保する」ことです。 ゲームの本体以外のマイクロサービスって、裏側はNoSQLがメインデータでぜんぜんOKなんで

                                                          なぜ「共有データの整合性」が重要なのか? ゲームにおけるサーバーサイド設計のいろは
                                                        • メインフレーム、無停止サーバ、クラウドにおける信頼性 - ブログなんだよもん

                                                          「メインフレームの異常処理」という記事が話題になってましたがとても面白かったです。 qiita.com せっかくなので自分が知ってる範囲で各システムの信頼性における考え方を書いてみました。特にシステムが死んでも仕掛かり中のプロセスが正常完了する事を「無停止システム」としてフォーカスしています。 詳しいわけじゃないからあまり詳しくは話せないので、指摘とか頂けると嬉しいです メインフレーム HPE NonStopサーバ Stratus FT Server オープン系: クラスタ オープン系: 負荷分散(シェアードナッシング) クラウド/仮想環境: Live Migration ソフトウェア: Jakarata EE/EJB ソフトウェア: Oracle RAC ソフトウェア: Erlang/OTP ソフトウェア: Cloudで良くありそうなMSAや非同期キューをベースとした無停止デザイン まと

                                                            メインフレーム、無停止サーバ、クラウドにおける信頼性 - ブログなんだよもん
                                                          • できるだけインフラ運用したくない Ruby on Rails on Google Cloud

                                                            TL; DR Google Cloud 上で Rails をできるだけインフラ運用しなくて済むように構築するとしたら、こういう構成にするのはどうだろうか? メインの Web アプリは Cloud Run メインのデータベースには Cloud Spanner 非同期ワーカーには GKE Autopilot 非同期メッセージングキューには Cloud Pub/Sub DB マイグレーションには GKE Autopilot rails console には GKE Autopilot はじめに 先日、Cloud Spanner の ActiveRecord アダプターのバージョン 1.0 がリリースされました。 Scale your Ruby applications with Active Record support for Cloud Spanner | Google Cloud Blog

                                                              できるだけインフラ運用したくない Ruby on Rails on Google Cloud
                                                            • AWS GlueからAWS Batchにしたことで費用を75%削減した - Classi開発者ブログ

                                                              こんにちは、最近データエンジニア業を多くやっているデータサイエンティストの白瀧です。 これまでClassiのデータ基盤は、Reverse ETLをしたり監視システムを導入したりとさまざまな進化をしてきました。しかし、Classiプロダクトが発展するとともにデータ量が増加し、これまでのデータ基盤では耐えられない状態に近づいてきました。 そこでデータ基盤の一部(DBからのExportを担う部分)のリアーキテクチャを実施したので、この記事で紹介したいと思います。 概要 Classiのデータ基盤では、Amazon RDSからAmazon S3へJSONで出力し、その後GCS→BigQueryという流れでデータを送り、BigQueryからもBIツールやReverse ETLなどで使っています。詳細は、Classiのデータ分析基盤であるソクラテスの紹介 - Classi開発者ブログを参照してください。

                                                                AWS GlueからAWS Batchにしたことで費用を75%削減した - Classi開発者ブログ
                                                              • ndiagでAWSのアーキテクチャドキュメントを書く

                                                                書き始める とりあえずチュートリアルを一周しました。 https://github.com/k1LoW/ndiag/blob/main/docs/tutorial.ja.md チュートリアルの順に、nodesを書いてみてndiag doc --rm-dist、networksを書いてndiag ...、relationsを書いて以下略、とするのが良さそうです。 アイコンのキーはndiag list iconsで表示できるので、これを見ながらndiag.ymlに書き込んでいきます。 VSCode ExtensionsでMarkdown Preview Enhancedをインストール。 Previewを見ながらndiag.ymlを書いては生成、書いては生成します。 とりあえず --- name: Sample AWS web service docPath: docs/arch views:

                                                                  ndiagでAWSのアーキテクチャドキュメントを書く
                                                                • 2年かけて個人で全く新しいSNSアプリを作ったお話し - Qiita

                                                                  こんにちは。歴10年のアプリエンジニア(Best of AppStore🏅受賞歴あり)です。 neeboor🗯という位置情報を使った新しいSNSアプリを作りました。 toC向け&コンテンツ系&モバイルアプリというサービスの特性上、最初からある程度高い完成度のサービスを提供しないとユーザーの手に取ってもらえないなと思い、UI/UX中心にかなりこだわって開発した結果、開発に2年以上かかってしまいました。 今回はサービスの紹介をしつつ、開発で苦労した点や工数をかけた点について記事にしたいと思います。 サービスの紹介 neeboor🗯は、「あなたの生活圏をもっとおもしろくするSNS (Make your living area hackable)」というコンセプトの位置情報系SNSアプリです。従来のローカル系サービス(=地域情報サイト、半径◯メートルでお店や友達探す系、出会い系、ナビ系、トラ

                                                                    2年かけて個人で全く新しいSNSアプリを作ったお話し - Qiita
                                                                  • SREがカバー株式会社に入社して3ヶ月でおこなったこと|カバー株式会社 公式note

                                                                    こんやっぴー👾 カバー株式会社 技術開発本部のSです。カバー株式会社では組織横断的にSRE(Site Reliability Engineering)やサーバーサイドのエンジニアをしています。 2023年5月に入社し3ヶ月ほどホロプラスのパフォーマンスチューニングや開発環境の整備をしてきましたので、今回はそちらについてご説明します。 ホロプラスとは?ホロプラスは「推しをもっと好きになる!」がコンセプトの、ホロライブプロダクション公式アプリです。先日8月29日に正式リリースされました。主に、以下の二つの体験を提供します。 ホロライブプロダクションの最新情報が公式アプリならではの機能で手軽に逃さずチェックできる 共感でつながるファンコミュニティで投稿やいいねを通じたコミュニケーションが楽しめる ※画面は開発中のイメージですホロプラスのシステム構成ホロプラスは図のようなシンプルな構成でGo言語

                                                                      SREがカバー株式会社に入社して3ヶ月でおこなったこと|カバー株式会社 公式note
                                                                    • Next.js + NestJS で新サービスを作った話 | EUPHORIA DEV BLOG

                                                                      はじめに はじめまして、ユーフォリア開発部エンジニアの山本未知彦です! このたび、ユーフォリアではJRFU(日本ラグビーフットボール協会)協力のもと、ラグビー選手の育成・強化のためのフィジカルデータベースシステムSCOTのリリースを行いました。(詳しくはこちらのプレスリリースをご覧下さい) 本記事では、SCOTのWebアプリケーション部分のアーキテクチャ紹介について、その技術選定理由と実際に開発してみて感じた良い点・気になった点をご紹介したいと思います。 SCOTのアーキテクチャ選定 まず技術選定の話をするに際して前提となるユーフォリア開発部の体制を説明します。当時、開発部にはエンジニアが2名しか在籍しておらず、SCOT開発に際しては業務委託の方々に協力いただいての開発となりました。そのため、技術選定においてはコードのレビューのしやすさと、仮にプロジェクト途中で人員の入れ替えが発生した場合

                                                                      • [レポート] 高速でPDCAサイクルを回し、ゼロダウンタイムでAWSに移行したPokémon GOプロジェクト #reinvent [GAM304] | DevelopersIO

                                                                        こんにちは。DA事業本部の春田です。 本記事は、AWS re:Invent2019の GAM304: Migrating the live Pokémon database to Aurora PostgreSQL のセッションレポートです。 The English version is here. 概要 Learn how the Pokémon Company International stores and supports data for more than 300 million players with the help of AWS. In this session, Jeff Webb (development manager) and David Williams (senior DevOps engineer) discuss how they migrated to

                                                                          [レポート] 高速でPDCAサイクルを回し、ゼロダウンタイムでAWSに移行したPokémon GOプロジェクト #reinvent [GAM304] | DevelopersIO
                                                                        • GitHub Actions + AWS CodeBuildでPRごとの検証環境を作ってみた

                                                                          はじめに 必要に応じて検証環境の追加・削除などの管理をするのが面倒くさいので、PR作成時に検証環境を構築、PRマージ・クローズ時に検証環境を削除ができないか考えてみました。 今回の作成したGitHub Actions ワークフロー、Terraformなどはこちらのリポジトリにあります。 概要図 どのように実現したか 実現あたり、コンテナイメージのプッシュ、ECS サービスのデプロイはGitHub Actions、Terraformの実行はAWS CodeBuildで行うことにしました。 なぜTerraformの実行はCodeBuildを利用するようにしたかというと、CodeBuildはVPC内のリソース(今回の場合はAurora Serverless)にアクセスできるからです。 これによってアプリケーション、DBマイグレーション時に使用するMySQL ユーザーをTerraformで作成する

                                                                            GitHub Actions + AWS CodeBuildでPRごとの検証環境を作ってみた
                                                                          • PlanetScaleとは何か、なぜ外部キー制約をサポートしていないのか

                                                                            PlanetScaleとは PlanetScaleはMySQLのマネージドサービスです。 内部の実装には元々YouTubeのために開発されたMySQLのクラスタリングシステムであるVitessが使用されています。 Vitessの開発に携わってらっしゃるSugu SougoumaraneさんがCTOとして在籍しており、スケーラブルなデータベースを構築するためのサービスとなっています。 すでにSlack, Square, GitHubなどの企業で採用されているそうです。 この記事ではPlanetScaleのどういった点が優れているのか、これまでMySQLが抱えていた問題点をどのように解決しているのかといったことをまとめます。 その中でタイトルにもつけましたが、なぜ外部キー制約をサポートしていないのかといった点も交えて説明します。 これまでのMySQLの問題点 大量のレコードが存在するテーブルの

                                                                              PlanetScaleとは何か、なぜ外部キー制約をサポートしていないのか
                                                                            • 5万台を超える物理サーバーを運用する専門組織 大規模インフラを支えるLINEインフラエンジニアのミッション

                                                                              LINEサービスに対してインフラを提供するITサービスセンター 小笹哲哉氏:ITサービスセンターシステム室の小笹といいます。よろしくお願いします。まずは、ITサービスセンターとはどういった組織なのかを簡単に説明いたします。 LINEでは「LINEアプリ」「LINE マンガ」「LINE MUSIC」「LINE LIVE」といったサービスに加えて、FinTechなどのサービスも提供しています。ITサービスセンターは、これらLINEに関わるすべてのサービスに対して、インフラサービスを提供しています。 ここにさまざまなアイコンが載っていますが、すべてのサービスに対して私たちは関わっています。 これは、ほかの部署との関わり合いを視点にした図ですが、私たちLINEのインフラエンジニアは、LINEアプリ、LINEのファミリーサービス、広告のプラットフォームなどに関わる開発者たちに対して、インフラを提供し

                                                                                5万台を超える物理サーバーを運用する専門組織 大規模インフラを支えるLINEインフラエンジニアのミッション
                                                                              • DBマイグレーションツールのロールバック機能は使うな - モヒカンメモ

                                                                                データベースマイグレーションツールのロールバック機能は安全に使えないので使うべきではないと思う。 ロールバック機能 RDBMSのデータベーススキーマを管理するためのツールとして flyway や、ウェブアプリケーションフレームワーク組み込みのマイグレーションツール (例: Laravel Migration ) がある。 DBマイグレーションツールにはマイグレーションを進める (up) 機能のほかに、進めた変更をロールバックする (down) 機能がついている。 マイグレーションを進める例: CREATE TABLE customers ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) ); マイグレーションをロールバックする例: DROP TABLE customers; この記事では、ロールバックする (down) 機

                                                                                  DBマイグレーションツールのロールバック機能は使うな - モヒカンメモ
                                                                                • Railsで成功するには、 コンピュータ書鑑賞、本との出会い方【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog

                                                                                  Rubyist Hotlinksにインスパイアされて始まったRubyistめぐり。第1回は高橋征義さんをゲストに迎えて、お話を聞きました。こちらは後編です。前編はこちら。 Rubyが他の言語に与えた影響 藤村:第2部、高橋さんについて聞いてみようと思います。今更ながらRubyについて聞きたいんですけど、好きな機能とかありますか? 高橋:好きな機能ですか?あんまり機能としてこれというのなくて、全体的に使い勝手がいいですね。まあでも、そういう意味でいえばオープンクラスの方がいいんじゃないの?みたいな感じがしますね。オープンクラスじゃないRubyはつらそうだって。 藤村:確かに。 高橋:つらそうというかつまらなさそうですね。オープンクラスが原因でつらいことになるのはわかるんですけど、でもあれがないんだったら他の言語でもいいよね、って。 藤村:Rubyがああじゃなかったら他の言語は今のようになって

                                                                                    Railsで成功するには、 コンピュータ書鑑賞、本との出会い方【Rubyistめぐりvol.1 takahashimさん】 - STORES Product Blog