PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
よく、仕様書を書いていなくて、書いてみたいけど、具体的な仕様書がネット上に落ちてなくってこまってるって相談を受けるので 「仕様書の記載内容のイメージ」を作りました! ※前提として「現在仕様書を書いていない、自社開発のMVP検証前後のフェーズのスタートアップ向け」に書いています。PMが仕様書、エンジニアがDesign Docを書く分担です。 ついでに、システム開発の基礎である「システム開発のV字モデルをベースにした設計書の紹介」も含めてまとめてみましたー! 大規模開発に使われたり、古くからあるフレームワークなので、スタートアップの方だと、システム開発のV字モデルの概念やそれにあわせた成果物を知らない人が多いけど、「要件定義書」と「設計書」を全てドキュメント化するとどうなるかを理解した上で、「仕様書」として情報を削る方が、考慮漏れ防止やエンジニアがやっている設計内容の理解につながるので、全体を
Speaker Deck This deck requires a password Password
このエントリはMySQL Casual Advent Calendar 2015の10日目のエントリです。 先日のMySQL Casual Talks Vol8で@karupaneruraさんがパラメータの振り返りのような発表をされていたので、昨今あまり書かれなくなったMySQLに絡む設定パラメータについて書きます。それなりのメモリ(32GBとか)やSSDとか使ってる事を前提にしたような内容となります。 依存して変更した方が良いパラメータもあるので内容が前後に飛びますがご容赦下さい。またソースコードをがっつり読んだわけではなく、ベンチマーク中の挙動から推測している箇所が多分にあります。MyISAMのテーブルがサービス用データベースに同居する事を考慮していません。 結構突貫で書いているので後から微妙に修正する可能性があります。 InnoDBのパラメータ innodb_buffer_pool_
はじめに 株式会社デジサク がお送りするプログラミング記事、 今回は要件定義・システム設計について扱っていこうと思います。 プログラミングを勉強していて、こんな事を感じた経験はないでしょうか。 「勉強してもプロダクトが作れない」 「そもそも開発ってどうやるの?」 「要件定義ってなに?」 その悩みを解決するために、まずは開発の全体感を理解しましょう。 下図『ソフトウェア開発プロセス』をご覧ください いつも勉強しているプログラミングは 『実装』 の部分に該当します。 つまり、プログラミングの実力を発揮する前に4つも壁が存在するのです。 そのため、本記事では実装(プログラミング)を開始する前に必要となる、 『企画~設計』 について順を追って説明して行きます。 特に、エンジニアが理解しておくべき 『要件定義』『設計』 にフォーカスします。 なお、開発全体において実装(プログラミング)に使用する時間
グロース分野においてユーザがそのサービスを平均でどのくらいの期間使ってくれるか?という数値は重要な値です。 例えば、広告の費用対効果を見るためにも計算するLTV(Life Time Value)。 LTVはユーザを1人獲得することで平均でどのくらいの売上に繋がるかという値ですので、平均継続期間×ARPUという算出方法になります。 ここで、ARPU(Average Ravenue Per User)のほうの計算は簡単です。 1ユーザあたりの売上を表す数字ですので一定期間の売上/ユーザ数、以上です。 しかし、ユーザの平均継続期間はどのように計算するべきでしょうか? 離脱したユーザのデータを基に算出しようとしても、それはあくまでも「離脱したユーザ」の平均値となり全体の平均とは異なる明らかに誤ったサンプルから得られた結果となってしまいます。 そしてもちろん、多くのユーザはまだそのサービスを使ってい
ちなみにこの時点では、サブネットがpublicなのかprivateなのかの設定は存在しない。 インターネットゲートウェイ(IGW)の作成 このままだとインターネットから繋がらないので。 メニューはルートテーブルが先にあるが、ルートテーブルの設定でIGWの選択があるのでこちらを先に実施する。 設定は名前のみ detached状態で作成される [アクション]から[VPCにアタッチ]を選択 作成したVPCを選択して[アタッチ]する ルートテーブルの作成 VPCとサブネットの作成で、メインのデフォルト設定のルーティングが作成されている。 関連付けられているサブネット ルートテーブルは変更・削除不能のデフォルト設定がある(AWS認定ソリューションアーキテクト(アソシエイト) p.27-28)ため、勝手に作られたこのルートテーブルをprivate通信用に設定する(タグ付け) このデフォルトのルートテー
雪山ジャンキー渡辺です。 今年もクラスメソッド雪山部は絶賛活動中ですよ。 さて、少し前ですが、AWS NAT Gateway(以下、NAT Gateway)がリリースされました(【新機能】ついに登場!Amazon VPC NAT GatewayでNATがAWSマネージドに)。 NAT Gatewayは、プライベートサブネットからインターネットへの通信を実現する仕組みです(外向きのみ)。 今日は、このNAT Gatewayを利用するひとつのパターンを紹介します。 サブネットを構成する3つのパターン サブネットは種別として、パブリック・プライベート・プロテクトの3つの形態が選択できます。 外部アクセス可能なパブリックサブネット パブリックサブネットは、ルートテーブルがインターネットゲートウェイと関連付けられたサブネットです。 パブリックサブネットでは、インスタンスにEIPを付与する事により外部
Vue.js 講演用資料です。 # 概要 コンポーネントをどのような粒度で分割し、どのように実装するべきかというのは難しいテーマです。 一概に正解があるとも言い切れないテーマですが、この指針を疎かにすることはチームを混乱に陥れることと同義です。 それが SPA 未経験のチームであればなおさらです。 直近のプロジェクトはまさにそんなプロジェクトでした。 本セッションではアトミックデザインのエッセンスを用いてコンポーネント分割の指針を示し、 またコンポーネント実装時に注意すべき事柄についてお話します # URL HomePage: https://nrslib.com Twitter: https://twitter.com/nrslib
Grafana LokiではじめるKubernetesロギングハンズオン (NTT Tech Conference #4 ハンズオン資料) 2020年1月31日 株式会社NTTデータ / NTT DATA Masahiko Utsunomiya
Percona Data Performance Blogの翻訳。Percona CEOのPeter Zaitevによる、MySQLのメモリー使用量をどのように決めるべきか、またそれを決める時に気にするべきことは何かについてのまとめ。 この記事では、最適なMySQLのメモリー使用量を設定するためのベストプラクティスを扱おうと思います。 使用できるメモリーのリソースをどのように使うか正しく設定するのは、MySQLを最適なパフォーマンスでかつ安定して使うために最も重要なことのひとつです。MySQL 5.7では、デフォルトの設定では非常に少ない量のメモリしか使いません。デフォルトのままにしておくのは、最も良くないことのひとつでしょう。しかし、不適切に設定してしまうと、パフォーマンスを更に悪くする(あるいはクラッシュする)ことにもなりかねません。 MySQLのメモリ使用量を設定するにあたっての最初
概要 ある朝自宅に神奈川県警が乗り込んできた。 (なお自宅は神奈川県ではない) どうやら俺はTwitterにモロ画像を投稿していたらしい。 「間違いなくこの家から投稿されていた。プロバイダにも確認済みだ。」 「(ハンドルネーム)というアカウント使ってるでしょ」 「心当たりあるでしょ?」 「(ブランド名)のTシャツ持ってるでしょ?」 おやっ、何かがおかしいです。 想定される経緯 自宅サーバーではTwiGaTen( https://twigaten.204504byse.info/ )というWebサイトが稼動している。 そしてこいつはTwitterアカウントでログインしたアカウントのタイムラインを24時間365日収集し続けている。Twitterの仕様上、これは時々ログイン履歴として記録される。 そして警察はモロ画像をうpしたアカウントのログイン履歴を見て… 「固定回線からうpか。バカめ。」 「
こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
こんにちは、芝田 将 ( @c_bata_ ) です。 この資料はPyCon JP 2016で行った 「基礎から学ぶWebアプリケーションフレームワークの作り方」 の書き起こし資料です。 誤字等があれば、Issue or PRをお待ちしております。 はじめに¶ この資料では200行に満たないシンプルなWebフレームワークの作り方をボトムアップで解説します。 テンプレートエンジンとしてJinja2を使ったりもしますが、基本的にはPythonの標準ライブラリのみを使っています。 FlaskやDjango等を使ったWeb開発の経験があり、基本的なHTTPの知識があれば読み進められるんじゃないかなと思うのでぜひチャレンジしてみてください。 本資料を読み終えた方はBottleやDjango、筆者の公開している Kobin というフレームワークのコードを 読んでみたり、自分でWSGIフレームワークを実
先日の WordCamp Tokyo 2015 でいろいろお話させて頂きましたが、本体のテストや、そこら辺のリソースのまとめです。 WordPress本体のテストコードを取得する。 WordPressのテストコードは、WordPressの開発レポジトリから取得できます。subversion が必要なので、Xcodeとか、Windowsの人は TortoiseSVN とかインストールすればいいと思います。 んで、こんな感じで取得できます。 $ svn mkdir wordpress-develop $ cd wordpress-develop $ svn co https://develop.svn.wordpress.org/ サブバージョンのチェックアウトは、現在のディレクトリに直接行われるので、適当にディレクトリを作ってそこで行います。ホームディレクトリとかでやると結構悲惨です。 全部
こんにちは。ハウスマートの高松(@t2kmt)です。 皆さんは開発要件をまとめるのにどんなフォーマットを使っていますか? 開発要件をいい感じにまとめるのって大変ですよね。 ドキュメント整備せずに開発に着手し始めてしまうと手戻り抜け漏れが出てしまいますが、一方で要件定義書をガチガチなフォーマットにするとドキュメントの作成自体の工数が増えてしまいます。 スタートアップはスピードが命。ドキュメントを書きまくって開発が進まないなんて言語道断です。 開発要件の整理はプロジェクトの成否に多大なインパクトを与えますが、ほとんどの現場では企画を考える人にフォーマットが委ねられていることが多いと思います。 今回は皆さんが快適に開発要件をまとめられるように、ハウスマートで利用している mini spec というフォーマットをご紹介します。 mini spec とは mini spec とは開発の要件をまとめる
『マネタイズ』 ネットサービスにおいて非常に重要な概念かと思います。 顧客からサービス利用料をいただく際に実装必須な課金処理ですが、 システムの性質によって、求められる要件は大きく異なります。 例えば、一般的な金融機関における決済処理のイメージは、、、 厳密性が問われる機能であるため、テストを何重にもに行う必要がある 堅牢性を求められるため、絶対に落ちないような構成を取らなければいけない。 セキュリティの関係上、あらゆる穴になりうる箇所に注意しなければならない。 といったイメージがあるかと思います。 しかし、決済処理はWEBサービスにおいては、サービス上競争の源泉力にはなりえないので なるべく工数をかけずに実装したいものです。 クレカ決済代行サービスを使うと上に記載したデメリットをとることなく 非常に手軽に決済処理の実装が行なえます。 今回のイベントでは、簡単に決済処理を行えるサービスであ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く