並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 1510件

新着順 人気順

シェルスクリプトの検索結果121 - 160 件 / 1510件

  • Microservices と会計システム | メルカリエンジニアリング

    この記事は、 Mercari Bold Challenge Month の18日目の記事です。 こんにちは。メルカリで Product Manager として働いている津田と申します。私は社内で「会計システム」と呼ばれる、会社が運営するサービスに付随して発生した債権債務の増減を記録・集計するシステムを開発するチームで働いています。 はじめに メルカリでは、お客さまの行動に応じて日々さまざまなお金の流れが発生しています。たとえばメルカリで商品が出品され購入された(取引が行われた)場合を考えてみます。 この取引は、会社から見るとそれぞれの相手先に対する債権債務関係の変化と捉えることができます。メルカリにとっては、購入したお客さまに対する債権(= 商品代金)と出品したお客さまに対する債務(= 売上金)が発生します。このとき、商品代金の一定割合(通常は 10%)が販売手数料としてメルカリの売上とな

      Microservices と会計システム | メルカリエンジニアリング
    • シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表

      JavaScriptランタイムのBunは、新機能としてシェルスクリプトをJavaScriptもしくはTypeScriptで記述し、特定のOSに依存せずに実行できる「Bun Shell」を発表しました。 シェルスクリプトは特定のシェルに依存するもの LinuxやmacOS、WindowsなどのOSは一般に、「シェル」(Shell)と呼ばれる機能を備えています。 シェルはコマンドラインインターフェイスなどのユーザーとの対話機能を備えており、例えばLinuxのコマンドラインで「ls」コマンドを打ち込むとファイルの一覧が返ってくるという動作はシェルが提供しています。 そしてシェルでは一般に、こうしたコマンドを複数つなげた一連の動作をスクリプトとして定義し実行できる「シェルスクリプト」が利用可能です。例えば、次のシェルスクリプトは、「ls」コマンドによるファイルの一覧をファイル「list.txt」に

        シェルスクリプトをJavaScript/TypeScriptで記述、どのOSでも実行できる「Bun Shell」、JavaScriptランタイムのBunが発表
      • 『UNIXという考え方―その設計思想と哲学』を読んだ - stefafafan の fa は3つです

        English translation of this post: Read the book "The UNIX Philosophy" | stefafafan's tech blog あけましておめでとうございます。『UNIXという考え方―その設計思想と哲学』という本を読んでいたら年越していました。 この記事は はてなエンジニア Advent Calendar 2022 の 1月1日の記事です。*1 昨日は id:tkzwtks による コーポレートサイトドメイン引越しの裏側 - Hatena Developer Blog でした。 今回は表題の本を今更ながら読みましたので、感想を軽く書きます。 この本で紹介されている9つの定理 設計思想に関する定理 開発プロセスの話 細かい手法の話 全体的な感想 この本で紹介されている9つの定理 この本では以下の9つの定理が紹介されていました。 ス

          『UNIXという考え方―その設計思想と哲学』を読んだ - stefafafan の fa は3つです
        • Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば

          そこそこの規模があるプロジェクトで実行すべきタスクを定義するとき、初手として Makefile を使いがち。 Pros make は事実上どんな環境にもあることを期待してよい シェルで実行されるコマンドをそのまま書ける タスクの依存関係が明示できる Cons make では positional arguments が使えない 少し複雑なことをしようとすると Makefile 専用の文法を覚える必要がある 現代では、ファイルベースのタスクの依存関係は make が発明されたころほどは必要ではない Docker とか Go とか Webpack がよしなにしてくれることが多い 例: docker compose のラッパー ちょっとしたコマンドのラッパーを書きたいことがある。Makefile を書きはじめたらすべてのエントリポイントを make にしたい。ということで、以下のような Make

            Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば
          • DXって何じゃらほい?或いは2025年の崖っ淵に向かって熊とワルツを踊る刹那について|楠 正憲(デジタル庁統括官)

            何週間か前のこと、急にエンプラっぽくないAIベンチャーの社長さんからメッセで飲みに誘われ、秋葉原の焼き鳥屋さんでDXとやらについて聞かれて、とりあえずこのレポート読んどけと返しつつも考えちゃった訳です。Direct Xとか、よくテレビに出てるマツコの方じゃなくて「2025年の崖って実際どうなんだ?」とか何とかオッサンたちから相談される話あるじゃないですか。あれって何なんですかね?オンプレをクラウドにリフトしたらDXなのか。華麗にk8sやらコンテナ使いこなしてCIパイプライン組み立ててテスト自動化したらDXなのか、だいたいDigital Transformationなのに、どうしてDXなのか。SAP R/3とCOBOL PL/Iを捨てて、どこぞのSaaS入れてSparkぶん回してPythonとか書いたらDXなのか。おいおい、そんな話だっけ?って心配になっちゃう訳です。 内製内製って簡単に言う

              DXって何じゃらほい?或いは2025年の崖っ淵に向かって熊とワルツを踊る刹那について|楠 正憲(デジタル庁統括官)
            • POSIX準拠シェルスクリプトでマルチコアの能力を活用する並列処理の実装(最大並列数あり、GNU Parallel, xargsなし) - Qiita

              実は最大並列数の制限がなければジョブ(標準入力からの一行単位のデータ)の数だけバックグラウンドプロセスを起動すればいいのでかなり簡単に実装できます。ですが普通は嫌ですよね?ということで最大並列数を制限する処理を入れています。また通常の利用で必要になりそうな CTRL-C と TERM シグナルへの対応もしています。 #!/bin/sh set -eu [ "${ZSH_VERSION:-}" ] && setopt shwordsplit MAX_PROC=4 # 最大並列数 # INT(CTRL-C)、TERM による終了処理 terminate() { trap '' TERM kill -TERM 0 exit "$1" } trap "terminate 130" INT trap "terminate 143" TERM # trap : CONT # 並列で実行される処理 fu

                POSIX準拠シェルスクリプトでマルチコアの能力を活用する並列処理の実装(最大並列数あり、GNU Parallel, xargsなし) - Qiita
              • Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について|ハイクラス転職・求人情報サイト AMBI(アンビ)

                Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について ナイル株式会社メディアテクノロジー事業本部の工藤さんにMVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について解説いただきました。 こんにちは、ナイル株式会社メディアテクノロジー事業本部で開発マネージャをしています工藤@ta99toです。 今回は大規模で複雑度の高い開発をMVCフレームワークベースで構築する際に僕が課題と捉えているポイントやその具体的な解決手法について解説させていただきたいと思います。 「MVC以上の責任分離イメージがつかないよ!」 「DDDとかクリーンとかオニオンとかあのへんの設計パターンの導入モチベーションが不明」 「どうやっても最終的には複雑になって追加開発や修正開発が怖い状態になっちゃう」 ↑このような悩みを持った方に対して

                  Laravel大規模開発入門!MVC分離のFatModel問題に対する責任分離と依存管理、その設計と考え方について|ハイクラス転職・求人情報サイト AMBI(アンビ)
                • NetBSDを手探りで移植したときの話 - Qiita

                  この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどういう物が用意され何を調べてどういう手順で移植していったかを記録に残せればと思います。(って前置きした割に苦労話が多いような気がします、すみません) かなり昔の話なので、けっこう忘れてることも多く、微妙に記憶が間違っていたりすることも、順番が前後していることも

                    NetBSDを手探りで移植したときの話 - Qiita
                  • 動的解析を利用し、実働6日でレガシーコードを1/3削った話(Perl編) - CARTA TECH BLOG

                    こんにちは!株式会社VOYAGE MARKETINGで働くエンジニアの yopidax です。 約20年ほど続くサービス、ECナビの技術的負債の返済に取り組んでいます。 ecnavi.jp 今回は直近で、レガシーコードを大量に削除したので、そのアプローチをご紹介したいと思います。 目次 目次 解析の対象と抱える課題 アプローチ 実行されるファイルを洗い出す ログを出力するモジュール 実行 ログのサンプル いざ、大量削除 Perlファイルをgrepする リリース単位を細かくする 結果 工数 実績 まとめ 合わせて読みたい 解析の対象と抱える課題 ECナビを長年支える、Perlで書かれたバッチが対象です。コードはGitLabのリポジトリで管理されていて、規模をまとめるとこんな感じです。 ファイルの数 バッチ関連全体 : 3,315 うち、Perlファイル(.pm, .pl) : 1,111 P

                      動的解析を利用し、実働6日でレガシーコードを1/3削った話(Perl編) - CARTA TECH BLOG
                    • 達人出版会

                      探検! Python Flask Robert Picard, 濱野 司(訳) BareMetalで遊ぶ Raspberry Pi 西永俊文 なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 Jesse Storimer, 島田浩二(翻訳), 角谷信太郎(翻訳) 知る、読む、使う! オープンソースライセンス 可知豊 きつねさんでもわかるLLVM 柏木餅子, 風薬 R/RStudioでやさしく学ぶプログラミングとデータ分析 掌田津耶乃 データサイエンティストのための特徴量エンジニアリング Soledad Galli(著), 松田晃一(訳) 実践力をアップする Pythonによるアルゴリズムの教科書 クジラ飛行机 スッキリわかるサーブレット&JSP入門 第4版 国本 大悟(著), 株式会社フレアリンク(監修) 徹底攻略 基本情報技術者教科書 令和6年度 株式会社わくわくスタディワール

                        達人出版会
                      • 京大のスパコンでファイル約77TB分が消失、実行中のスクリプト更新で誤動作

                        2021年12月、京都大学のスーパーコンピューターがトラブルに見舞われた。学術論文に使う重要データなど、実に77テラバイト(TB)分のファイルが消失した。ITベンダーの担当者が実行中のスクリプトを不用意に更新したのが原因だった。本来はログ削除の処理が利用者のファイルを削除する誤動作を引き起こした。ミスを犯したITベンダーも問題だが、監督不十分だった京都大学の責任も重い。 「弊社100%の責任によりLustreファイルシステムのファイル消失の重大障害を来し、多大なるご迷惑をお掛けしたことを深くお詫び申し上げます」 京都大学が2021年12月28日に公表した「スーパーコンピュータシステムのファイル消失のお詫び」のお知らせには、大規模なデータ消失を引き起こした日本ヒューレット・パッカードが同大学宛てに提出した報告書がリンクされていた。「弊社100%の責任」という説明は、ITベンダー側の「完全降伏

                          京大のスパコンでファイル約77TB分が消失、実行中のスクリプト更新で誤動作
                        • ITエンジニアが薦める技術書はこれだ 「ITエンジニア本大賞2023」ベスト10発表

                          翔泳社は、ITエンジニアが薦める書籍を紹介するイベント「ITエンジニア本大賞2023」のベスト10を発表した。 翔泳社は1月16日、ITエンジニアが薦める書籍を紹介するイベント「ITエンジニア本大賞2023」のベスト10を発表した。部門は技術書とビジネス書の2部門を用意。2022年を振り返っておすすめしたい書籍(刊行年問わず)をWebでITエンジニアに聞いた。調査期間は11月11日~2月9日。 技術書部門ベスト10は以下の通り。 「ITエンジニア1年生のための まんがでわかるLinux コマンド&シェルスクリプト基礎編」(日経BP) 「AWSの知識地図~現場必修の基礎から構築・セキュリティまで」(技術評論社) 「競技プログラミングの鉄則 アルゴリズム力と思考力を高める77の技術」(マイナビ出版) 「Googleのソフトウェアエンジニアリング」(オライリ-・ジャパン) 「Clean Craf

                            ITエンジニアが薦める技術書はこれだ 「ITエンジニア本大賞2023」ベスト10発表
                          • NISCと気象庁が使用していたメール関連機器へのサイバー攻撃についてまとめてみた - piyolog

                            2023年8月4日、内閣サイバーセキュリティセンター(NISC)と気象庁はそれぞれ電子メール関連のシステム・機器から不正通信の痕跡が確認され、メールデータの一部が外部に流出した可能性があると公表しました。ここでは関連する情報をまとめます。 政府組織に対しゼロデイ攻撃 NISCと気象庁及び気象研究所、国立科学博物館、教職員支援機構が各々運用を行っていた電子メール関連システム・機器に脆弱性が存在しており、その脆弱性に関連した不正通信が確認された。 今回確認された不正通信により、メールデータの一部が外部に流出した可能性がある。両組織ではメールアドレス等の個人情報が漏えいした可能性を排除できないとして個人情報保護委員会に報告した他、対象者にも個別に連絡を行う。公表時点では流出可能性のある情報の悪用は確認されていないが、NISCでは約5,000件の個人情報が対象に含まれており、流出可能性のある事案が

                              NISCと気象庁が使用していたメール関連機器へのサイバー攻撃についてまとめてみた - piyolog
                            • Managed Kubernetesサービス開発者の自宅k8sクラスタ全容

                              となっています。 構成図 クラスタを構成するものを図にすると以下のようになります。 この中の一部コンポーネントは次節以降で登場します。 Kubernetes基盤 クラスタの基盤部分についてどのような構成になっているのか説明します。 kubeadm クラスタの構築自体については kubeadm を利用しています。 kubeadm を利用したクラスタの構築方法については公式のドキュメントが参考になります。 Static Pod と systemd kubeadm でデプロイすると kube-apiserver 等は Static Pod で、kubelet は systemd 以下で動作するようになります。 kube-apiserver は意外にメモリを食ってしまうのでそのまま動作させているとメモリ不足になることがあります。(ありました) なので kube-apiserver と etcd の

                                Managed Kubernetesサービス開発者の自宅k8sクラスタ全容
                              • N予備校のプログラミング教材編集に約3年携わって得られた知見 - Qiita

                                プログラミング教材の編集に携わって3年経ち、いろいろな知見が貯まってきたので「ドキュメント執筆に関するアウトプット」を行ってみようと思います。 自己紹介 ドワンゴでN予備校のコンテンツ制作に携わっているアルバイトの1人、 ryo-a です。 現在の本業は大学生で、慶應義塾大学にて計量経済学の分析に関係するあれこれをやっています。4月から慶應義塾大学大学院に進学予定です。交通関係の情報や大規模データの処理を好んでおり、最近は地理空間情報処理ツールや各種CLIツールなどを作っていたりします。 2017年4月よりアルバイトとしてドワンゴで働いており、主にプログラミング教材の制作補助に関わっています。働きはじめて3年近く経ち、色々な知見が貯まってきたので教材編集を通じて得られた知見を書いてみます。 併せて、プログラミング教育におけるノウハウが業界内で共有されていけばいいな、とも思います。 (個人的

                                  N予備校のプログラミング教材編集に約3年携わって得られた知見 - Qiita
                                • 詳細解説 jqコマンドとシェルスクリプトの正しい使い方と考え方 〜 データの流れを制するUNIX哲学流シェルプログラミング - Qiita

                                  詳細解説 jqコマンドとシェルスクリプトの正しい使い方と考え方 〜 データの流れを制するUNIX哲学流シェルプログラミングShellScriptUNIXシェル芸jqUnix哲学 はじめに シェルスクリプトから JSON データを処理する時に良く使われるのが jq コマンドです。しかしほとんどの人は jq コマンドとシェルスクリプトのつなぎ方を間違えています。jq コマンドの使い方が間違っているというより、シェルスクリプトの設計思想や考え方を正しく理解していないために、間違ったつなぎ方をしていると言った方がより正確でしょう。「シェルスクリプトは正しい書き方をすれば簡単になる」このことをこの記事では明らかにしています。 追記 「jqコマンドとシェルスクリプトの上手い速い使い方」に要約版を書きました。この記事は長すぎた…。 タイトルの「UNIX 哲学流」とは jq コマンドをフィルタして使い、J

                                    詳細解説 jqコマンドとシェルスクリプトの正しい使い方と考え方 〜 データの流れを制するUNIX哲学流シェルプログラミング - Qiita
                                  • シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita

                                    この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが重要であることを思い出させてくれるでしょう。 Dateutils の重要な特徴と使用例 大抵のコマンドは機能の説明から想像できると思いますし、公式サイトにも例があるので詳細を一つ一つ説明することはしません。その代わりに「Dateutils の使いこなしに必要な考え方」が分かるような例をいくつか紹介します。 重要な注意点ですが Dateutils はロケールをサポートしていますが、原則としてシステムのロケール情報やユーザーの環境変数には依存していません。内部にロケー

                                      シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
                                    • データライフサイクルとトレードオフ | フューチャー技術ブログ

                                      ソフトウェアの中身を大きく2つに分解すると、プログラムとデータに分かれます。コードコンプリートやA Philosophy of Software Designなど、評判の良いソフトウェア設計の本はいくつかありますが、それらはどれもプログラムの説明がメインでデータのライフサイクルについての説明はなかったと思います。しかし、データの表現にもいくつもの方針があって、それによるトレードオフがあるな、というのはもやもやと考えていたので、その考えをまとめて文章にしてみました。 データといっても、処理中の短期間の間では変わらない、いわゆるマスターデータ的なデータです。ジャーナルというか、トランザクション的なデータはここでは触れません。 この記事では、それぞれのトレードオフについて考えていきます。 即値(リテラル) 定数 コマンドライン引数 環境変数 設定ファイル ダウンロードコンテンツ オンラインデータ

                                        データライフサイクルとトレードオフ | フューチャー技術ブログ
                                      • 1週間で数百万回もダウンロードされる人気JavaScriptライブラリが乗っ取られる、Windowsデバイスはパスワード盗難の恐れも

                                        パッケージ管理ツールのnpmで公開されている「UAParser.js」は、ユーザーエージェントの判定処理を実行するJavaScriptライブラリであり、Facebook・Microsoft・Amazon・Googleなどの超大手企業を含む1000以上のプロジェクトで採用されています。そんなUAParser.jsがハッカーによってハイジャックされ、LinuxおよびWindowsデバイスを対象に暗号資産採掘やパスワードの盗難を行うトロイの木馬が仕込まれていたことが判明しました。 Security issue: compromised npm packages of ua-parser-js (0.7.29, 0.8.0, 1.0.0) - Questions about deprecated npm package ua-parser-js · Issue #536 · faisalman/u

                                          1週間で数百万回もダウンロードされる人気JavaScriptライブラリが乗っ取られる、Windowsデバイスはパスワード盗難の恐れも
                                        • レガシーなインフラを改善するつもりが組織の悪者になる話 - Qiita

                                          はじめに みなさんの職場に古いインフラはありますか?ありますよね。 SVN,CVS...ですらないファイル名駆動のバージョン管理 id/pass不明でログインできない稼働中のビルドサーバ WindowsServer200X アンタッチャブルな巨大シェルスクリプト ... 小規模の会社でサーバサイドを齧っていると、 「クラウドネイティブ」という言葉とは無縁の世界で仕事をすることがあります。 え、そんなこと一度もない? これからもあなたの幸運が続きますように。 改善活動スタート さすがに辛いので、改善を視野に入れて地道に調査をするわけです。 えいやで滅ぼしたい気持ちをグッと抑えます。 予算確保(のためのリスクの整理) 利害関係者の洗い出し 業務のフローで必須なインフラのリストアップ いざ置き換える算段がついたら、工事の計画を練ります。 業務の影響確認 バックアップ 移行期間の周知 等々。 現実

                                            レガシーなインフラを改善するつもりが組織の悪者になる話 - Qiita
                                          • Dev Containerを使ってステップバイステップで作るPythonアプリケーション開発環境 - 電通総研 テックブログ

                                            みなさんこんにちは、電通国際情報サービス(ISID)Xイノベーション本部ソフトウェアデザインセンターの佐藤太一です。 この記事では、VS CodeのDev Containerを使ってOSに依存しないPythonの開発環境を構築する方法をステップバイステップで丁寧に説明します。 VS Codeの利用経験があり、またPythonによるアプリケーション開発に興味のある方を想定読者として記述しています。Pythonの初心者から中級者向けを意識して書いていますので、意図して冗長な説明をしています。 すでにPythonによるアプリケーション開発に十分に詳しい方は、まずはまとめだけ読んでみてください。私自身それほどPythonのエコシステムに詳しいわけではありませんので、知識の抜け漏れは恐らくあるでしょう。そういった事に気が付いたら、XなどのSNSでこの記事のURLを付けてコメントをしていただけると幸い

                                              Dev Containerを使ってステップバイステップで作るPythonアプリケーション開発環境 - 電通総研 テックブログ
                                            • Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                              Slim Framework と Docker を使って本格的にアプリを作ってみよう はじめに Web アプリケーションの開発をするにあたっては勉強しなければならないことは多く、どう勉強すれば良いかはなかなか難しい問題です。初心者向けの解説は比較的たくさんあるのでとりあえずやってみるくらいは何とかなるものの、実戦的な開発がどうなっているかという総合的な話は実務を経験しないとわからないことが多いことでしょう。 ということで、本記事では最近流行の Docker と、そこそこ名前は見かける PHP のマイクロフレームワークの Slim Framework を使って実戦的な Web アプリの開発をしてみる(開発環境を作ってみる)こととします。実装的には、ドメイン実装としてユーザー登録、ログイン、ユーザー情報取得の3つのAPIを実装するところまでを取り扱います。また、静的解析を最大限活用してユニット

                                                Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                              • 「実践Redis入門」所感 ~「E.G.コンバット」の観点から語る~ | フューチャー技術ブログ

                                                積読を消化しようというテーマの、読書感想文連載 の2冊目です。 導入『自分たちは、クラウドネイティブじゃなくてマネージドネイティブなんだよ…』 TIGの原木です。 最近、冒頭のような開発者の嘆きを人づてに聞く機会があり、今も脳裏に残り続けています。 昨今のITシステムにおいて、クラウドサービスは欠かせないものとなっています。しかしユーザー、そして開発者として大きな利便性を享受する裏で、クラウドサービスによって巧妙に隠蔽された裏のソフトウェアを意識する機会は減り続けているのではないでしょうか? Webサービスにおいて、RedisやMemcachedに代表されるキャッシュサーバーもそのようなソフトウェアの1つです。 キャッシュサーバーは、Webアプリケーションなどデータの読み込みや保存を効率化するために欠かせない存在ですが、同じデータストアであるRDBMSなどと比較していま一歩隠れた存在だと思

                                                  「実践Redis入門」所感 ~「E.G.コンバット」の観点から語る~ | フューチャー技術ブログ
                                                • bashの機能いろいろ

                                                  シェルスクリプトを書いていると「それはbash独自機能だから」「POSIXシェルには無い機能だから」と言われることがよくあります。だいたいは「それみんな使ってるのでPOSIXで標準化されてると思った」といったものなのですが、本記事では便利なものから「え、それやるくらいならPythonでよくない?」まで、bashの機能を紹介しようと思います。 for文でC言語っぽくループを回す シェルスクリプトでfor文といえばfor i in $(seq 10)とかをよく使いますが、bashだと以下のように書けます。

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

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

                                                      大規模サービスのインフラを全面的にリプレイスした話 - Qiita
                                                    • 無印良品のウェブサイトが止まってる件について思うこと

                                                      この件⇒ https://togetter.com/li/1452558 ユニケージはbashのパイプで作られた、RDBMSを使わずテキストファイルによる空白区切り行志向レコードへのデータ処理(だいたいプログラム1本の処理内容がメインフレームのCOBOLのそれと同じくSQLクエリ1個に相当する)で、同形式によるマスタとトランザクションファイル(RDBMS内部のredoログに相当)を使う(データに含まれる空白文字0x20はアンダーバー0x5Fに置換する、アンダーバーが複数存在するデータの場合どう扱うかは知らない) 開発と更新は早いんだけど参照が(テキストファイルなので)インデクスが効かないためシャーディングするしかなく、要するに検索機能の柔軟性がなく、リアルタイム性を損なう おそらく基幹系というか在庫管理をユニケージでやっているので、ウェブサイト自体はユニケージで実装されていないかもしれない

                                                        無印良品のウェブサイトが止まってる件について思うこと
                                                      • タイミー、オライリー本30冊が自宅に届く「オライリータワー」制度開始。「オライリータワー」プレゼントのお年玉企画開催中!|Timee

                                                        タイミーは昨年11月に「開発組織のメンバー一人ひとりが能力とモチベーションを最大限発揮し続けるための環境づくり」をMissionとした「DevEnable室」を設立しました。 日々エンジニアが感じる課題に向き合い、学習機会の充実や、キャリアアップのサポートなどを通して「エンジニアの進化」に伴走しています。 ※DevEnable=Developer Enablement 向き合った課題:求められる技術は学んできたけど、もっと体系的に理解を深めたい…・アプリケーションレイヤーを開発する上では、OSレイヤーやネットワークのこと、監視についても色々学んだほうがよさそうだ… ・技術書を買うこと自体はいいんだけど、申請を一件ずつあげるのも面倒だ… エンジニアが開発を行う上で、現在自分が使える技術をよく知っているというだけではスキルを高めることはできません。 関連する周辺の技術や過去に主流だったもの、そ

                                                          タイミー、オライリー本30冊が自宅に届く「オライリータワー」制度開始。「オライリータワー」プレゼントのお年玉企画開催中!|Timee
                                                        • これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル

                                                          自分は、仕事でScalaを数年間・プライベートな経験を含めると10年弱のScalaの経験がある、そこそこの熟練Scalaエンジニアだ。チームにメンバーが入ってきたり他人に勧めるたびにScalaの環境構築を教えている一方、最新の知見を反映した記事が無くて他人に勧めづらかったので、自分が書くことにした。 現在ある記事 けっこう古びている 覚えながら書かれていることが多いのでやや曖昧な箇所がある(でもありがとう!) 最新のツールが利用できておらず無駄が多い 網羅的でない 今回目指す内容 最新の知見を活用して最短距離を目指す 何もない状況から一通りのツールが揃う所を目指す Scalaの環境構築は年を追うごとに簡単になってきているので、大多数の読者は引っかからずに進めるようになっているはず。 Scalaは基本的にJVMで動作する言語だ。このため環境構築にはJVMのセットアップも含まれるのだが、それに

                                                            これだけ読めばOK!Scalaの環境構築2023 - Lambdaカクテル
                                                          • DBのリストアテストを全自動化した話 - Pepabo Tech Portal

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

                                                              DBのリストアテストを全自動化した話 - Pepabo Tech Portal
                                                            • Erlangについて思うところ

                                                              職場の今までいた部署が潰れてしまったので、新しい部署で仕事のためにErlangを学んでいる。基礎的な文法については学び終わったので、現時点でのErlangについての雑感を書いておこうと思う。 Erlangは多数派のプログラミング言語とはだいぶ違う文法を持っている。終端記号がドットであることもそうだが、比較演算子もだいぶ違っている。多くの言語が!=を使うなか、Erlangは/=を使っている。Less than or equal toが=<であるのも多数派とは異なっている。ただし、Greater than or equal toは>=だ。一貫性がない。 終端文字はドットだが、関数の中には一つの式しか書くことができない。式はカンマで区切ることができるので、以下のようになる。 func() -> expr1 , % カンマ expr2 , % カンマ expr3 . % ドット このような文法はリ

                                                              • 『みずいろ』HDDフォーマット事件は本当だったのか検証する - castaneaiのブログ

                                                                あるとき、ネット上でこんな事件の噂を発見した。 『みずいろ』 HDDフォーマット 事件 エロゲー業界を彩る悲惨な事件は数多あれど、威力と内容を考えて4番を張れるものといえば、やはりこれだろう。2001年、ねこねこそふとから発売された『みずいろ』初回ロット版に限り、アンインストールするとHDDの他のデータを巻き込んで吹っ飛ばす、という恐るべき不具合が発生していた。実はこの件、「インストールしたフォルダをまるごと消す」(当時は、自動で「mizuiroフォルダ」などを作らなかったので、たとえばProgram Fileフォルダに直接インストールしてしまうと、アンインストール時にProgram Filesフォルダそのものを削除していた)というものと、「インストールしたフォルダ外のデータを消すことがある」という話が出ていて、不具合な正確なところは私も把握していないのだが、とりあえずヤバいバグということ

                                                                  『みずいろ』HDDフォーマット事件は本当だったのか検証する - castaneaiのブログ
                                                                • インフラエンジニア学習ロードマップ | 電算星組

                                                                  はじめに Developer Roadmapsの内容が興味深く、自分の経験を元に日本のインフラエンジニア向けの学習ロードマップを作ってみました。 これからキャリアをスタートする駆け出しエンジニアの参考になれば幸いです。 ※私自身の限られた経験のもとに作成した学習ロードマップです。偏った内容や、時代の流れで主流が変わってしまった部分もあると思うので、色々な方のご意見コメントを頂けると嬉しいです! [2020/8/12追記] 図中の技術選定や学習順序について解説を追記しました。 前提条件 以下の前提条件で作っています。自身の置かれている環境に合わせて、学習内容は適宜取捨選択することをお勧めします。 1〜3年目の新人エンジニア向け SI業界で使われるエンタープライズ系技術を想定 オンプレとクラウドはどちらも扱う オンプレ機器は経験上よく見かける製品を代表して記載 ファシリティ、アプリケーションの

                                                                  • Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita

                                                                    はじめに 30年以上もの長い間 UNIX を支えてきた Bourne シェルも UNIX のサポート終了とともに消え去ろうとしています。みなさん、他のシェルへの移行はお済みでしょうか? 残り一年、まだ移行が済んでいないという人のために、移行のための簡単なガイドラインと各シェルの特徴をまとめました。 sh は昔は Bourne シェルのことでしたがそれも過去の話です。今どき「Bourne シェル」を解説している記事や sh のことを Bourne シェルと呼んでいる記事は情報が古い(大学関係に多い)、または古い情報を元にして書かれたか、シェルのことを正しく理解してない不正確な記事なので参考になりません。分かりやすい基準ですね。 関連記事 シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 残り1年というのはどういうこと? Bourne シェルは POSIX に

                                                                      Bourneシェルの終焉まで残り1年 ~ 新しいシェルへの移行は完了していますか? - Qiita
                                                                    • 【実録】WordPressサイトをAWS+Laravel+Nuxtにフルリプレイスした話 - Qiita

                                                                      概要 創業2期目のスタートアップ株式会社NoSchoolにて、WordPressで開発された自社サービスを、2ヶ月掛けてAWS+Laravel+Nuxt.jsにフルリプレイスした際の技術選定について書きます。 対象読者 Laravelを使ってみたい/使えるライブラリを一通り知りたい AWS構築の全体感を知りたい Nuxt.jsやVuetifyの使用感を知りたい WordPressを脱却したい 技術選定の背景 技術選定と言っても好きな技術を選べばいいというわけではありません。自社が持っている技術力、事業の状況によるところが大きいため、まずは背景としてそのあたりを説明していきます。 先に技術が気になる方はここは読み飛ばして、あとで戻ってきてください ①自社の技術力 CTO @mejileben NoSchoolは創業2期目で2019年6月現在、フルタイムメンバーが僕と社長しかいません。 そして

                                                                        【実録】WordPressサイトをAWS+Laravel+Nuxtにフルリプレイスした話 - Qiita
                                                                      • NVIDIA Docker って今どうなってるの? (19.11版) - Qiita

                                                                        大事なお知らせ NVIDIA Docker リポジトリでの 2020 年 9 月の変更により、この記事内容と最新の状況に割と大きな差ができてしまいました。最新の状況に合わせた改訂版を、エヌビディアジャパンの Medium ページに投稿しましたので、今後は是非 Medium のほうをご覧ください。 NVIDIA Docker って今どうなってるの? (20.09 版) 以下、2020 年 8 月までの内容です。 ※ 2020/07/09 CUDA 11 の正式リリースに伴い、CUDA のインストールコマンド例を 11.0 のものに更新しました。 ※ 2020/06/13 CUDA 11 RC のリリースに伴い、CUDA 10.2 のインストールページからインストールしても CUDA 11 RCがインストールされるケースが確認されたので、10.2 を明示的に指定するように例示コマンドを更新しま

                                                                          NVIDIA Docker って今どうなってるの? (19.11版) - Qiita
                                                                        • 実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ

                                                                          [追記] 実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ 調べてみたけどこれが良さそう <a href="https://stackoverflow.com/a/3399850/1921216" target="_blank" rel="noopener nofollow">https://stackoverflow.com/a/3399850/1921216</a>2022/01/02 17:02 b.hatena.ne.jp このブックマークコメントで指摘されましたが、immutableにするまでもなくこのラッパースクリプトを噛ませると良さそう。 #!/bin/bash # usage: # sh-run.sh script-you-want-to-run.sh args... set -ue file="$

                                                                            実行中のシェルスクリプトをchattr(1)を使ってimmutableにするというのはどうか - その手の平は尻もつかめるさ
                                                                          • 入門 継続的デリバリー

                                                                            継続的デリバリーとは、コード変更を必要に応じて迅速かつ安全に、継続的にリリースできるようにするための開発手法です。本書は、初めて継続的デリバリーに取り組む読者向けに、必要な知識とベストプラクティスをていねいに紹介する入門書です。基本的な概念や技術、アプローチの解説はもとより、章ごとに事例を使用しながら、継続的デリバリーを実践する際に直面するさまざまなシナリオを取り上げ、その全体像・世界観を包括的に理解することができます。 序文 はじめに 第1部 継続的デリバリーとは 1章 『入門 継続的デリバリー』へようこそ 1.1 継続的デリバリーは必要? 1.2 なぜ継続的デリバリー? 1.3 継続的デリバリーとは 1.4 インテグレーション 1.5 継続的インテグレーション 1.6 何をデリバリーするのか? 1.7 デリバリー 1.8 継続的デリバリーと継続的デプロイメント 1.9 継続的デリバリー

                                                                              入門 継続的デリバリー
                                                                            • ISUCON12で優勝しました(チーム NaruseJun)

                                                                              8月27日に開催されたISUCON12 本選にチームNaruseJunとして参加し、スコア341,258点で優勝しました。(ISUCON12 本選の結果発表と全チームのスコア) メンバーは @sekai と @takashi_trap でした。 この記事はその参加記です。 チームについて このメンバーでのISUCONへの参加は10(予選敗退), 11(準優勝)から3回連続です。 それぞれのISUCON参加回数は @to-hutohu, @sekaiが6回目、@takashi_trapが5回目です。 予選準備 7月9日と7月17日に予選のために集まって作戦会議をしました。 7/9 1時間程度集まって素振りに向けた作戦会議 素振りの環境準備、チートシート、初動のAnsible整備、Goを思い出すなどがそれぞれ宿題として持ち帰ることに 7/17 素振り会(ISUCON11予選) 5時間くらいで初

                                                                                ISUCON12で優勝しました(チーム NaruseJun)
                                                                              • ようこそdotfilesの世界へ - Qiita

                                                                                はじめに 少し前から話題になっているが、日本の労働生産性はG7で最も低いらしい。 日本生産性本部資料より https://www.jpc-net.jp/intl_comparison/intl_comparison_2018_press.pdf 日本は人口減少に突入していることもあって、「作業の効率化」や「自動化・省力化」をいうフレーズをあらゆる業種で聞くようになった。 ITエンジニアは、あらゆる職業の中でも最も効率化、自動化をして生産性を高められるといっても過言ではないだろう。プログラマの三大美徳(「怠惰」「短気」「傲慢」)にもあるように、同じことを何度もやらない、楽をするためにがんばるという生産性を意識した感性が重要視されているからだ。 生産性を高めることで、勉強する時間が作れたり、新しいことを経験したりするなどしてさらにスキルアップができ、さらに生産性が上がるという好循環を作り出すこ

                                                                                  ようこそdotfilesの世界へ - Qiita
                                                                                • SSDを簡単に消去するコマンドを作ってみた - Qiita

                                                                                  SSDを簡単に消去するコマンドを作ってみた 更新情報 2024-02-16 「ドライブのfrozen」と「本当に消去できているのか」を追加 ストレージの消去コマンド 最近になってSSDやHDDのストレージには、セキュアイレース(Secure Erase)という書き込まれているデータを消去する制御コマンドがあることを知りました。FreeBSDやLinuxにはこの制御コマンドを発行するコマンド(FreeBSDではcamcontrol, Linuxではhdparm)が用意されています。書き込み済データを完全に消去できるのであれば、廃棄時に機密情報の漏洩を心配をする必要が無くなります。 消去そのものは制御コマンドを送るだけなのですが、そのためには事前に指定した手順でストレージ側を消せる状態にする必要がありOSのコマンドをそのまま使うだけでは微妙に手間です。そこでこれらの手順をまとめて、データ消去を

                                                                                    SSDを簡単に消去するコマンドを作ってみた - Qiita