デブサミ2019のセッション
先週仕事でやったのをメモします。 CI力が低いので、記事を公開することでツッコミをもらうのが目的です。 モチベーション 弊社ではCIの実行が1回あたり20分ほどかかっています。 これはわりとストレスなので速くしたいです。幸いにも削れそうなところが2つ見つかったので削ってみました。 Shallow Clone CircleCIではデフォルトのcheckoutを使用するとリポジトリの全体をcloneしてきます。 これを回避するためにshallow cloneを導入しました。 まず、次のようなコマンドを定義します。 commands: shallow-clone: description: 'Git clone shallowly' steps: - run: name: 'shallow clone' command: | set -x echo "machine github.com log
Lambdaで動くアプリやフレームワークの事例はよく見るのですが、LambdaのCIやCDにしやすさに主眼をおいた紹介はあんまり見ないので現時点での自分のベストプラクティスのメモです tl;dr; このエントリで書いていること Lambdaをデプロイするのに肝になること デプロイしやすさに着眼したフレームワーク紹介 論外 コンソールからアップロードする できなくはないがかなり厳しい Terraform Apex 8/12 17:20追記 実用レベル Serverless Framework AWS SAM native extension問題と戦う Amazon LinuxのEC2インスタンス内でビルドする Amazon Linux互換のDockerイメージを使う Serverless Frameworkのプラグインを使う ライブラリをインストールするジョブとデプロイするジョブを分ける 【
突然ですが、 README.md に動的なコンテンツを埋め込みたいと思ったことはないですか?僕はあります。 具体的には、リポジトリのコントリビューターをREADME.mdに埋め込みたいという願望がありました。 つまりこういうことです。 しかし毎回CIなどでREADME.mdを編集するのはセットアップが面倒です。 <contributors-list> みたいなCustom Elementsが使えたらきれいな世界だなあと思ったのですが、肝心のscriptタグが動かないのでそれは無理です。 ということで、頼れるのは 画像 ということになりました。 Image via Function README.mdに埋め込めて、なおかつ動的なコンテンツを扱えるのは画像のURL展開だけなので、つまりコントリビューターリストを画像化するHTTPエンドポイントを用意し、そのURLをREADME.mdに埋め込めば
GitHubを使ってPull-Request駆動で開発していると、CIに待たされることがよくあります。 レビューは一瞬で通る軽微な変更をPull-Requestにした時マージする前にrebaseしてコミットを整理した時リリースの為にdevelopからmasterへのPull-Requestをした時このようなケースでは、CIが通り次第Pull-Requestをマージしたいでしょう。そんな時に人間がCIが通るのを待つのは時間の無駄です。5分、10分かかるテストをただ待っていても何も良いことはありません。 かと言ってPull-Requestを放置していると、そのPull-Requestの存在を人間は忘れてしまいます。運が良ければ1時間後にそのPull-Requestの存在を思い出して、マージできるかもしれません。運が悪いとPull-Requestが他の変更とコンフリクトして、もう一度CIを待つハ
趣味チーム? 趣味チームに所属している方はいらっしゃるでしょうか。 お仕事関係なしに友人たちと趣味で開発するような人たちです。 趣味と言えどもチームですから、チームで使える開発環境を整えたくなります。 「 趣味チームの開発環境を整えたい 」 そう思った時に課題になるのが お金 です。 もちろん投資だと思ってお金を出せればいいのですが、基本線は趣味ですから中々そうもいきません。 ここはひとつ趣味の一環として、 無料縛り という制約を貸した上で、趣味チームの開発環境をどこまで整えられるのかを考えてみたいと思います。 環境イメージ 先にネタばらしをしておくと、以下のような感じに落ち着きました。利用量の制限はありますが 無料 です。 簡単に言うと以下のようなことができます。 メンバ数 制限なし プライベートリポジトリ 作成可 任意のデバイスからのチャット(~1万メッセージ)、ファイル共有(~15G
みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が http://www.perl.com/pub/1998/08/show/onion.html で述べたのが最初とされています。 三大美徳として 怠惰(laziness) 短気(impatience) 傲慢(hubris) があげられています。 怠惰(laziness)については、以前にこちらの記事でお話しました。 tech.mercari.com 今回は 短気(impatience) についてです。 短気(impatience) 優秀なプログラマーが持っている怠惰という美徳は素晴らしいのですが、その反面というか怠惰さゆえに腰が重いときがあります。 そこで短気な面をうまく刺激することでプロジェクトを円滑に進めることが可能です。 メルカリでの例 みなさんもCIにてテストを動か
zatsu_monitor でdep対応をしたのでその時のメモ depについて .travis.yml depをいれたメリット depについて depについては下記を参照 mattn.kaoriya.net .travis.yml 必要最低限だとこんな感じ language: go go: - 1.7 - tip before_install: - go get github.com/golang/dep/... install: - $GOPATH/bin/dep ensure script: - go test depのREADMEに書いてるのを.travis.ymlに書いただけです。 .travis.ymlの完全版はこちら https://github.com/sue445/zatsu_monitor/blob/c265f1b9301c056cbac5006952270812c915
PHP コードスタイルのチェック、整形を行うサービスである Style CI を紹介します。 このエントリは、Laravelリファレンス Advent Calendar 2015 の22日目です。 Laravel 公式が利用しているサービス Style CI は、Alt Three が運営している GitHub にホストしている PHP コードのコードスタイルをチェックするサービスです。 GitHub へコードを push すると、コードチェックが行われ、適合しないコードがあればエラーになります。メールによるエラー通知も飛んできます。 Style CI のサイトに行くと修正が必要が箇所のコードが提示されます。 shin1x1/phpkansai-20151216-demo - StyleCI チェックできるフォーマットは、インデントやブレース位置、文字エンコーディングなどの基本的なものから
以前までメインで担当していたPHPなプロジェクトが最近Jenkins使ってCI回したり、 バージョン管理ツールをsvnからgitに移行していたり(まだ完全移行できてない)、 FluentdやDocker、Ansibleを使ったりとモダンな開発環境へと生まれ変わろうとしている。 全ては主導してくれている同僚H氏の活躍のおかげなのだが 実はこれらは以前からボク自身もやりたいと考えていたのだがなかなかすすめられなかった。 その原因が判明したので自戒の意味も込めてブログに書いておく。 補足情報 なお、誤解されそうなので補足するとボクがプロジェクト在籍中にすでにモダン環境への改善は行われており ボクが別のプロジェクトにアサインしてしばらくしてからそれらの成果が表に現れてきた、という感じです。 ボクが同僚H氏にとっての癌になっていたわけではないっす。 むしろH氏のアプローチを全面的に支持表明してました
技術部の鈴木 (@eagletmt) です。 先日、クックパッドで使われている Ruby のバージョンを 2.0.0 から 2.2 にアップグレードしました。 アップグレードは主に @sorah と私で進めました。 今回はアップグレードまでの過程やアップグレード当日の流れ、そして今のところ見られているアップグレードによる効果などについて紹介します。 アップグレードまでの準備 テストを通す Ruby 2.1 がリリースされたときから 2.1 にアップグレードできないか検証環境でテストを回していました。 しかし、当時はクックパッドの全テストを実行すると必ず途中で Ruby がクラッシュする現象に悩まされていました。 Ruby の GC のバグ、拡張ライブラリのバグを疑いながら色々やってみたものの結局解決できず、Ruby 2.2 がリリースされてからもこの状況は改善されませんでした。 しかしある
RailsがMySQLのcollationをサーバー側のデフォルトのutf8_general_ciからutf8_unicode_ciにわざわざ変えてるのどうせ大した理由じゃないだろと思って掘ってみたらやっぱり大した理由じゃなかった… https://t.co/6NeetGhTF0— Ryuta Kamizono (@kamipo) April 18, 2014 Railsでcollationとしてutf8_unicode_ci(RailsのDEFAULT_COLLATION)が採用されるのはcharsetが未指定もしくはutf8(RailsのDEFAULT_CHARSET)のときだけで、utf8mb4にすることとかは全く考慮されてない。— Ryuta Kamizono (@kamipo) April 19, 2014 @frsyuki MySQLのcharset utf8のときのデフォルト
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーションOperation Lab, LLC.
技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの
Web技術について横断的に語り合うイベント「CROSS 2014」が1月17日、都内で行われました。 そのセッションの1つ「現場に聞く!テスト/CI/DevOps、実際のところどうなの」では、フリーランスエンジニアの伊藤直也氏がセッションオーナーとして司会を担当し、クックパッドで開発まわりのエンジニアをしている舘野祐一氏、はてなでアプリケーションエンジニアをしている伏井洋平氏、KAIZEN platform Inc.の石橋利真氏らがスピーカーとして登壇。 先進的な現場でテストやCIがどのように行われ、エンジニアのチームがどのように情報共有をしているか、本音で語るという注目すべき内容でした。本記事ではそのダイジェストを紹介しましょう。 現場に聞く!テスト/CI/DevOps、実際のところどうなの 伊藤 今日のテーマとしてはCI(Continuous Integration、継続的インテグレー
今年の3月に 入門Chef Solo - Infrastructure as Code という本を書いた。 その名の通り Chef の入門書なのだけど、このサブタイトルは "Configuration Management Tool (構成管理ツール)" でもなく "Provisioning Framework (プロビジョニングフレームワーク)" でもなく、はたまた "Automated Infrastructure (自動化されたインフラ)" でもなく、"Infrastructure as Code" にした。 この一年で Chef や Puppet にはずいぶんと注目が集まった。おそらく、AWS をはじめとするクラウドサービスがより広いユーザーに浸透したことで仮想化環境が前提になって、以前よりも頻繁にサーバーを構築し直したりする機会が増えたとかその辺がひとつ理由として挙げられると思う
Node.js Advent Calendar 2013 - Adventar 9日目です。 あまりネタを用意する時間がなかったので、GitHubにNode.jsのリポジトリを置いたりnpmにパッケージを公開したりしたときに便利な定番サービスを3つ紹介します。 Travis CI Coveralls David タイトルは釣りですが、特にTravisとCoverallsは一度体験すると離れられないぐらいほんとにlife changing。コードをpushしたらブランチのビルド結果をプルリクに表示してくれたり、カバレッジ結果をコメントで書き込んでくれるので、それを見ながらコーディングを進めていけます。これが無料なのは意味不明なぐらいの神です*1。 サンプルコードはこちらのプロジェクトで見てください。 Github: https://github.com/teppeis/fixclosure
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く