タグ

juve534のブックマーク (324)

  • 今までありがとうTravis CI、さよならTravis CI - xuwei-k's blog

    しっかり調査してないですが、こういったCIサービスがほぼ存在しない時期にほぼほぼ最初に登場して、一時期明らかにデファクトスタンダードだったと思うので、昔からOSS活動している人ほど、とても多く利用してお世話になっていたと思うので、そういう人であればあるほど、この状況は、怒りではなく、悲しいというか残念というか、辛いと思うんですよね・・・。 今までありがとう・・・。 長年Travis CI使ってきたので、GitHub Actionsによって潰される(のかどうなるのかわからないけど)、の可愛そう、という気持ちが若干あるけど、とはいえ、こういうのよくある話な気はするな…— Kenji Yoshida (@xuwei_k) 2020年10月7日 買収されて方針変わったのかなと感じるところもありますし、OSSプロジェクトが無料で使っていても会社としては辛いのではという気もするので今までの感謝の気持ち

    今までありがとうTravis CI、さよならTravis CI - xuwei-k's blog
    juve534
    juve534 2020/11/05
    「複数バージョンでテストをするのが楽」と聞いたが、GitHub Actionsの波が強かったか
  • Mackerelでは計画メンテナンスをどう実施しているか? RedisをElastiCacheに移行した裏側をご紹介 - Hatena Developer Blog

    こんにちは。MackerelチームSREのid:heleeenです。 Mackerelでは、2020年10月14日に計画メンテナンスを実施しました。今回は告知ブログに記載の通り、Mackerelが利用しているRedisをAmazon ElastiCache for Redis(以下、ElastiCache)へ移行しました。 記事では、この10月の計画停止の裏側を紹介します。 どのようにElastiCacheへ移行するか 大半のRedisを無停止で移行 最後はElastiCacheへのオンライン移行を使用 メンテナンスに向けたさまざまな準備 メンテナンス手順書のチーム内レビュー メンテンス実施中の役割分担 なぜタイムキーパーが必要になったのか リモートで停止メンテナンスを実施する方法 検証環境を利用して事前にリハーサルも実施 Redisを安全に効率よく切り替えるために 参照するRedisを

    Mackerelでは計画メンテナンスをどう実施しているか? RedisをElastiCacheに移行した裏側をご紹介 - Hatena Developer Blog
    juve534
    juve534 2020/11/05
    オンサービスでの移行、メンテナンスしての移行への判断のどちらも良いなー
  • 【Flash作者様へ】Flashの希望と未来【Ruffle】

    この記事は夏のブログリレー2020の記事です。 この記事は、Flashゲームの作者様に特に読んで欲しい記事です。この記事はとても長いですが、どうか最後までしっかりと読んでください。そして、サーバーからFlashゲームを削除するのを思い止まってください。将来、比較的安全にFlashをブラウザで実行できるようになるかもしれない方法が残されています。 また、Flashゲームを愛している、あるいはかつて愛した人も、この記事を読み、そしてできる限り多くのFlashゲーム作者様にこの記事が届くよう、拡散に協力をお願いします。 この記事のポイント Flashは2021年以降、従来の方法で遊ぶのはほぼ不可能 比較的安全かつ合法にFlashを動かす新たな方法が現在進行形で開発されている だから作者の方々は既存のFlashゲームを消さないで欲しい このことを広めて欲しい はじめに どうも、実はFlashゲーマ

    【Flash作者様へ】Flashの希望と未来【Ruffle】
    juve534
    juve534 2020/10/29
    とても熱い記事。RuffleはRust製なんだな。
  • pprof を使って nodejs アプリケーションのプロファイルを取る - その手の平は尻もつかめるさ

    pprof って go のやつでしょ? node のプロファイルが取れるわけ無いやろ,と僕も思っていたんですが以下のライブラリを使うことで取れることがわかりました. github.com 使い方については Using the Profiler に書いてあるとおりで,アプリケーション側に const profile = await pprof.time.profile({ durationMillis: 10000, // time in milliseconds for which to // collect profile. }); const buf = await pprof.encode(profile); fs.writeFile('wall.pb.gz', buf, (err) => { if (err) throw err; }); という風に書いてあげるとwall time

    pprof を使って nodejs アプリケーションのプロファイルを取る - その手の平は尻もつかめるさ
    juve534
    juve534 2020/10/29
    Goじゃなくても使えたのは驚き
  • スタディサプリENGLISHの基盤をECSからEKSに移行しました | Recruit Tech Blog

    こんにちは、スタディサプリ ENGLISH SREグループの大島です。 オンライン英語学習サービスであるスタディサプリ ENGLISHは2015年10月のリリース1)当時は英語サプリという名前でリリースしていましたから5年が経ち、おかげさまでサービスを拡充させることができています。リリース当初からインフラにはコンテナを採用し、長い間AWSのコンテナオーケストレーションサービスのAmazon Elastic Container Service(以下、ECS)で運用してきましたが、この度ECSからAmazon Elastic Kubernetes Service(以下、EKS)に移行しました。 今回の記事では、その歴史の変遷となぜEKSにしたのかというところを書いていきたいと思います。 コンテナと歩んできた5年間 まず、ECSからEKSに移行しようと思ったきっかけの前に、インフラの歴史を少し振

    スタディサプリENGLISHの基盤をECSからEKSに移行しました | Recruit Tech Blog
    juve534
    juve534 2020/10/28
    "なぜ" の部分が書かれていて、読んでいてもわかりやすいな。
  • RDBの作成時刻や更新時刻用カラムに関するプラクティス | おそらくはそれさえも平凡な日々

    RDBのレコードに、作成日時や更新日時を自動で入れ込むコードを書いたりすることあると思いますが、それに対する個人的な設計指針です。ここでは、作成日時カラム名をcreated_at、更新日時をupdated_atとして説明します。 tl;dr レコード作成日時や更新日時をRDBのトリガーで埋めるのは便利なのでやると良い ただ、アプリケーションからそれらのカラムを参照することはせず別に定義した方が良い MySQLにおける時刻自動挿入 MySQL5.6.5以降であれば、以下のようにトリガーを設定すれば、レコード挿入時に作成日時と更新日時を、更新時に更新日時を、DATETIME型にも自動で埋めてくれます。いい時代になりました。(MySQLが遅すぎたという話もある) `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_

    RDBの作成時刻や更新時刻用カラムに関するプラクティス | おそらくはそれさえも平凡な日々
    juve534
    juve534 2020/10/27
    "アプリケーションから使うのであれば、汎用的な名前ではなく意味のある名前にすべき"
  • Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)

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

    Laravel実践入門! シンプルなREST APIを実装して学ぶ、多機能なPHPフレームワークの使い方|ハイクラス転職・求人情報サイト AMBI(アンビ)
    juve534
    juve534 2020/10/26
    "フレームワークを学ぶ上で大切なこと" は必読
  • マイクロサービスでチームを分離したくないマン - まっちゅーのチラ裏

    コンウェイの法則とかで、マイクロサービス=組織 という話になることが多いなと感じる。 正解の場合もあるし、不正解の場合もあると思っていて、個人的には小さいチームでもマイクロサービスをやるメリットは技術的にも組織的にもあると思う。 そのメリットを無視してすぐ組織の話に持っていきたくないので、基分離したくないマンとしての主張を書いておく 技術観点でのメリット いまさら語るまでもないけど、 ドメイン境界の分離 デプロイ独立性 リソースの最適配分 障害の局所化(サーキットブレーカー等) このうち、ドメイン境界の分離だけはモジュラモノリスで対応可能だが、あとの3つにはマイクロサービスが必須。(もっとあるかも) この3つが必要なのにモノリス or モジュラモノリス で進める判断をするということはシステムの表現力を落とすことに直結する。 もちろん、複雑度は増すし難易度も増す。熟練のサーバーサイドエンジ

    マイクロサービスでチームを分離したくないマン - まっちゅーのチラ裏
    juve534
    juve534 2020/10/22
  • モノリス分割はこうやる!「How to break a Monolith into Microservices」を読んだ - kakakakakku blog

    研修中に「マイクロサービス」の解説をしていると,たまに「モノリス分割」に関する質問が出てディスカッションをすることがある.当然ながら万能な分割アプローチはないけど,例えば DDD (Domain-driven design) などのアプローチを選択するなど,選択肢はいろいろある.そして最近「モノリス分割」に役立つアプローチを紹介した martinfowler.com の記事「How to break a Monolith into Microservices」を読んだ. 具体的には以下の「計8種類」のアプローチが紹介されている.原著を翻訳するのではなく,あくまで個人的なメモとしてまとめる.なお,日語も個人的に載せているため,参考程度にしてもらればと! Warm Up with a Simple and Fairly Decoupled Capability(シンプルかつ分離された機能で準

    モノリス分割はこうやる!「How to break a Monolith into Microservices」を読んだ - kakakakakku blog
    juve534
    juve534 2020/10/20
    原著に興味が湧いた良い記事
  • インフラ自動化ツールのAnsibleでKubernetesクラスタの構成や運用管理を実現。Red HatがAdvanced Cluster Managementとの統合機能を発表

    インフラ自動化ツールのAnsibleでKubernetesクラスタの構成や運用管理を実現。Red HatがAdvanced Cluster Managementとの統合機能を発表 Red Hatは、構成管理ツールの「Ansible Automation Platform」と、Kubernetesの運用管理ツールである「Advanced Cluster Management」の統合機能を、オンラインで開催したイベント「AnsibleFest2020」で発表しました。 これにより、AnsibleからAdvanced Cluster Managementを通じてKubernetesのクラスタの構成や運用管理などを容易に実現できるようになります。 Ansibleは、多数のサーバに対するソフトウェアのインストールや設定、ネットワーク機器の構成変更などを含むさまざまなインフラの設定を、スクリプトを記述

    インフラ自動化ツールのAnsibleでKubernetesクラスタの構成や運用管理を実現。Red HatがAdvanced Cluster Managementとの統合機能を発表
    juve534
    juve534 2020/10/15
    Ansible勉強していて得な未来があるかも?
  • STORESってMongoDBを使ってるらしいけど正直どうなの? - STORES Product Blog

    STORESのECサービスを開発している@morihirokです。 STORES ECはRuby on Railsで開発されているWebアプリケーションですが、データベースにはMySQLやPostgreSQLといったリレーショナルデータベースではなく、MongoDBを採用しております。 この記事ではカジュアル面談等で必ず聞かれる「MongoDBって正直どうなの?」といったところを、ストレートにお伝えできればと思います。 なぜMongoDBを採用しているのか そもそもなぜMongoDBを採用しているのか。それは考古学になるのでフィールドワークが必要です。筆者も開発に携わるようになったのは2018年の終わり頃からなので、まずは一緒にSTORES ECの歴史について紐解いていきましょう。 STORES EC(旧STORES.jp)は、heyグループとなるずっと前の2012年、会社名がブラケットだ

    STORESってMongoDBを使ってるらしいけど正直どうなの? - STORES Product Blog
    juve534
    juve534 2020/10/13
    トランザクションないとどうするのかと思ったけどRedisでロックか👀経験があるけどまあ大変だよね
  • BASEのチーム開発における設計レビューの取り組み - BASEプロダクトチームブログ

    Service Dev所属、サーバサイドエンジニアの宮村です。 現在私は、Service Devのチームに所属し、ネットショップ作成サービス「BASE」及びショッピングアプリ「BASE」の機能開発を担当しています。 BASEでは最近、機能開発の際に設計レビューを行うようにしています。その取り組みについて紹介したいと思います。 開発チームについて BASEの開発チームは、メンバーが増えるに従って専門化する形でチームを分割してきました。 現在、サービスの機能開発を主に担当しているService Dev Sectionは、バックエンドが担当領域を分担して2Group、フロントエンド、ネイティブアプリを担当するそれぞれ1Groupの計4つのGroupから成り、Service Devのエンジニアはいずれかのチームに所属する形となっています。 (組織図について興味を持たれた方は、こちらの会社説明資料を

    BASEのチーム開発における設計レビューの取り組み - BASEプロダクトチームブログ
    juve534
    juve534 2020/10/13
    設計レビューをやりたいなと思っていたので参考になるな👀
  • プライベートメソッドのテストは書かないもの? - t-wadaのブログ

    この文章の背景 この文章はプライベートメソッドのテストを書くべきか否かに関する knsmr さんのご質問に対して 2013/03/13 に QA@IT で回答したものです。残念ながらQA@IT のサービス終了(2020/02/28)と共にアクセスできなくなってしまったため、運営を行っていたアイティメディア株式会社様、開発を行っていた永和システムマネジメント様、そして質問をされた knsmr さんに許可とご協力をいただき、当時の回答をサルベージしてブログに転載する運びとなりました。 プライベートメソッドのテストはよく議論になるテーマですので、当時の回答を再編集し、knsmr さんのご質問も含め、ご利用いただきやすいライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で公開いたします。 目次 この文章の背景 目次 knsmr さんのご質問 私の回

    プライベートメソッドのテストは書かないもの? - t-wadaのブログ
    juve534
    juve534 2020/10/12
    privateメソッドにテストを書くことがあるので、それはなにか間違っているんだろうとは思っていた
  • Vimの思想を取り入れて開発速度を2倍に|NAVITIME_Tech

    こんにちは、みみぞうです。 ナビタイムジャパンで『システムや開発環境、チームの改善』を担当しています。 記事は社内勉強会で発表した内容に沿っています。 この勉強会は、社内全エンジニアの1/4ほどが参加して好評だったため、記事を書かせていただくことになりました。 なお、Vim歴は2年半です。 読んで欲しい方以下のように感じる方を対象にしています。 ❶ VimよりVS CodeやJetBrainsのIDEを使った方が速いので使う必要がない ❷ Vimは学習コストが高いのにメリットがない ❸ Vimの勉強/スキルアップの仕方が分からない この業界に入って7年以上もの間..私も❶~❸の考えをもつ人間でした。 もし昔の自分に会えるなら..『今すぐVimの思想を取り入れよ』と言いたいですね😅 Vimは使わなくていい、されどVimの思想を取り入れよ『すべての開発をVimでせよ』なんて言うつもりはあり

    Vimの思想を取り入れて開発速度を2倍に|NAVITIME_Tech
    juve534
    juve534 2020/10/09
    Vimの思想を取り入れてみようと思える良記事
  • AWSと自動化で顧客とサービス運用に寄与し自分たちも楽に ラクスのインフラエンジニアが自動化にこだわる理由

    株式会社ラクスが開催するエンジニア向けのイベント「RAKUS Meetup」。今回は「SaaS新規プロダクトの技術」をテーマに、同社プロダクト「楽楽労務」など、AWS関連のインフラを担当する柏木達仁氏が登壇し、「積極的にAWSサービスと自動化を使ってtoBのSaaSをローンチしたその後」という内容で話をしました。 なぜAWSを多用するのか 柏木達仁氏(以下、柏木):楽楽労務の担当をしている柏木達仁と申します。今回のテーマは、インフラから「積極的にAWSサービスと自動化を使ってtoBのSaaSをローンチしたその後」というテーマで発表します。よろしくお願いいたします。 自己紹介です。私は2010年に新卒で入社して、SIerだったのですが、パッケージシステムやSaaSに関わっていました。2017年にご縁があってラクスに入社して、インフラ開発部に所属しています。主にblastmailというサービス

    AWSと自動化で顧客とサービス運用に寄与し自分たちも楽に ラクスのインフラエンジニアが自動化にこだわる理由
    juve534
    juve534 2020/10/08
    Slackをインターフェイスにする場合、実行ログが流れやすいので、Rundeck等を使うのはありはありだよな ※管理が面倒だけど
  • はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog

    はてなブログでSREをやっているid:cohalzです。 2019年12月頃からid:utgwkkやid:onkとともに、はてなブログにおけるキャッシュ周りの改善を行いました。その結果、次のような成果が得られました。 ブログ記事のキャッシュヒット率が、1日平均で8%から58%に向上 アプリケーションサーバの台数を、以前の半数以下に削減 DBに届くリクエスト数が、以前の3分の2まで減少 レスポンスタイムの平均が、以前の8割まで減少 この記事では、実際にどういった改善を行ったのか、その際に気をつけたことや大変だったことを紹介します。 はてなブログがVarnishを導入した経緯と課題 開発合宿をきっかけに問題が明らかになる 進め方をまず考える ホストのメモリをできるだけたくさん利用する メモリを積んだホストでなぜかレイテンシが悪化 キャッシュが分散しないようVaryヘッダを使う デバイス情報を適

    はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog
    juve534
    juve534 2020/10/08
    見様見真似でモニタリング会を始めており、こういうことまでやっていきたい
  • PHP 8 Attribute シンタックスの変遷 - Shin x Blog

    PHP 8 の新機能の一つ、Attribute の形式が紆余曲折ありながら最終的に #[] となりました。実用上は #[] 形式だけ覚えておけば良いのですが、シンタックスの変遷は興味深いものだったので残しておこうと思います。 Attribute Attribute 仕様の変遷 8.0.0alpha1: <<>> 8.0.0alpha2 8.0.0beta1: @@ @@ の問題 8.0.0beta4: #[] #[] の注意点 さいごに Attribute PHP 8 の Attribute は、他のプログラミング言語によくあるアノテーションです。クラスやメソッド、プロパティ、関数に付与することで任意の処理を追加することができます。PHP では従来 Doc コメントでこれを指定する文化がありましたが、これを言語仕様として実装したものです。 <?php declare(strict_type

    PHP 8 Attribute シンタックスの変遷 - Shin x Blog
    juve534
    juve534 2020/10/02
    紆余曲折のRFCと聞いたがこういう流れだったのか。"PHP では namespace が空白で区切られていても、それを読み飛ばして結合して解釈するようになっていました" これは把握していなかった。
  • AWS Lambdaの裏側をなるだけ詳しく解説してみる - Sweet Escape

    AWS Lambdaの環境がどのようになっているか、ユーザが用意したLambdaファンクションがどんな感じで実行されるかってあたりを可能な限り詳しく説明したいと思います。 はじめに 大前提 コールドスタート/ウォームスタート コントロールプレーン/データプレーン アイソレーション AWS Lambdaのコンポーネント群 同期実行かつ初回呼び出し(コールドスタート)、もしくはスケーリング 同期実行かつ再利用(ウォームスタート) 非同期実行 スケールアップ エラーハンドリング リトライ その他 ネットワーク まとめ はじめに この投稿は2020年9月29日の21時から開催予定のイベント(ライブストリーミング)で話す内容です。 serverless-newworld.connpass.com もし間に合えば、かつ時間があればぜひライブ配信のほうにも参加ください。 (2020.09.30 upda

    AWS Lambdaの裏側をなるだけ詳しく解説してみる - Sweet Escape
    juve534
    juve534 2020/09/29
    Lambdaってこう作られているんだな。普通にアプリケーションの設計として参考になる。
  • 強い組織は、人の欠点を無視することで「凡人」を戦力化する。

    結構前の話だ。 とある会社で、一人のマーケティング担当が辞めた。 彼はそれまで、その会社に存在しなかった メディアを使ってリードを獲得する手法を駆使し、大量の成果をあげていた。 当初、その功績は経営陣たちから大きく評価された。 給与はアップし、大きなボーナスが彼に支払われた。 しかし、残念ながら、その高い評価は長続きしなかった。 なぜなら、彼の「だらしなさ」が、あらわになってきたからだ。 前の日にクライアントと飲み歩いて、次の日昼過ぎに出社する。 机の上は大量の書類で汚く汚れている。 彼の上司は彼に警告した。 遅刻はするな。机を整理しろ。 彼は「成果はあがっている。時間や机はそれと関係ない。」と言い張ったが、上司は彼に「態度を改めなければ減給する」と警告した。 彼は、結局それを断り、知人のスタートアップに転職した。 「今は、紙を使わないから机が汚れないし、出社自由だから、最高だよ」 と彼は

    強い組織は、人の欠点を無視することで「凡人」を戦力化する。
    juve534
    juve534 2020/09/24
    良いところよりだめなところの方が目に付きやすいものあるよなー。良いところってあんまり気づかれないんだよね…
  • 【レポート】インフラエンジニアは働かない~AWSのフルマネージドサービスでメンテフリーになるまで~ #AWSSummit | DevelopersIO

    DA事業部の春田です。 AWS Summit Online絶賛開催中!ということで、記事では「CUS-60: インフラエンジニアは働かない~AWSのフルマネージドサービスでメンテフリーになるまで~」の内容についてまとめていきます。 セッション情報 株式会社カプコン システム開発部 中村 一樹 氏 株式会社カプコン システム開発部 中島 淳平 氏 DL数500万を超える大型タイトル、モンスターハンターライダーズ。 メンテフリー、省コスト、最先端、をテーマにしたカプコン史上最大のインフラアーキテクチャはどの様に設計され、どう運用されているのか。コンテナって実際どうなの、Kubernetes?ECS?RDBMSを使わずしてサービスを提供することは可能?大量アクセスにより生成されるログを安全に回収するにはどうする?実際に運用してみた経験や事例を踏まえて、カプコンの考えるクラウドネイティブ時代の

    【レポート】インフラエンジニアは働かない~AWSのフルマネージドサービスでメンテフリーになるまで~ #AWSSummit | DevelopersIO
    juve534
    juve534 2020/09/23
    ぶっちゃけトークがあったりでとっつきやすいwDynamoDB周りやログ周りは参考になる。