Customer Identity Cloud powered by Auth0 を使ったマルチプロダクト構築の実践と総括
現在 estie では、デプロイの改善・統一に取り組んでいます。複数プロダクトのそれぞれの技術スタックが大きく違う中、どう考えたら効率的なデプロイを組めるのか。2024年のデプロイの原則について、あらためて考えてみました。
こんにちは。梅原です。 今日はECSのデプロイタイプについて改めて整理します。 ECSのデプロイ方法は3つあります。 ローリングアップデート Blue/Greenデプロイ 外部デプロイ の3つです。 この記事ではローリングアップデートとB/Gデプロイについて流れをおさらいします。 ECSの前段にALBを置いた構成を例にします。 ローリングアップデート ローリングアップデートの流れを見る B/Gデプロイ B/Gデプロイの流れを見る ローリングアップデートとB/Gデプロイの比較 最後に ローリングアップデート ローリングアップデートとは、稼働中のECSタスクをそのまま新しいタスクに置き換える方法です。一番オーソドックスなデプロイ方法なのではないでしょうか。 ECSのみでデプロイすることができ、設定箇所も主に後述する2つだけなので手軽にできます。ですがデプロイ中は新旧のタスクが混ざる状態となるた
「GitHub Actions extension for VS Code」パブリックベータ公開。VSCodeからワークフローの実行と監視、管理が可能に GitHubは、Visual Studio Codeの拡張機能としてGitHub Actionsによるワークフローの実行や監視、管理を可能にする「GitHub Actions extension for VS Code」のパブリックベータ公開を発表しました。 GitHub Actions extension for VS Codeを使うことで、VSCodeの画面上からGitHubのActionを実行し、ビルドやデプロイなどの状態を監視できるようになります。 問題が発生した場合にはログの参照も可能。
皆様はじめまして! NewsPicks SREチームの中川です。 本日はコンテナイメージのバージョン管理についての記事をお届けします。 概要 実装 ビルド デプロイ Pros Cons おわりに 概要 NewsPicksではECSやKubernetesに代表されるコンテナサービスを使用しておりますが、コンテナのデザインパターンとしてサイドカーパターンを採用しているサービスがあります。 詳しい説明は省きますが、サイドカーはメインアプリケーション用コンテナを補助するコンテナです。 これらのサービスをデプロイするとき、サイドカー毎に使用するDockerfileを ImageTag で指定していました。 実際には latest で固定するか、特定のImageTagを設定ファイルに書き込んで運用していました。 こうした運用方法の場合、Dockerfileを変更するときは事前にイメージを登録しておく必
こんにちは! フロントエンドエンジニアのもりやです。 コロナの影響でコネヒトも3月からフルリモート体制が始まり、早4ヶ月が過ぎました。 流行に乗り遅れがちな私は、今になって自宅のリモートワーク環境を整えようと動き始めています。 まずはローテーブルを卒業しよう・・・。 さて、今回はそんなフルリモート下で発生した課題の1つを CodeBuild を使って解決したので紹介させていただきます。 コネヒトにおける検証環境のデプロイ方法について コネヒトでは、本番リリース前のチェックや開発時にAWS環境で動作確認に使う検証環境を用意しています。 この検証環境にデプロイするには以下の2つの方法がありました。 master ブランチにPRをマージする(本番リリース前に動作確認するため) 開発PCから直接デプロイする(開発時に検証環境で動作確認したい時など) 2. の方法をコネヒトでは「ローカルデプロイ」と
おはようございます、藤本です。 先日、AWS re:Invent 2016 でリリースされた CodeBuild を CodeCommit、CodeDeploy、CodeCommit と組み合わせて、デリバリプロセスの自動化を試してみました。 CodePipeline で CodeCommit/CodeBuild/CodeDeploy を繋げてデリバリプロセスを自動化してみた #reinvent こちらは master ブランチにプッシュしたら、テスト、ビルドを通して、インスタンスにアプリケーションをデプロイします。リポジトリへプッシュするだけでデプロイまで全て自動化されていて、デプロイが簡単ですね。ただし、テストが全て自動で網羅されていることが前提となっています。 ユニットテスト、単一アプリケーション内のインテグレーションテストであれば、ある程度できるかもしれませんが、ペネトレーションテ
Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に Dockerの創始者であるSolomon Hykes氏らが中心となって開発しているオープンソースのCI/CD環境構築ツール「Dagger」が公開されました。 Windows、Mac、Linuxで試すことができます。 And we are live! Introducing Dagger, a new way to build CI/CD pipelines. By the creators of Docker. https://t.co/DU8racmoUo — dagger (@dagger_io) March 30, 2022 Daggerが定義したCI/CDパイプラインはポータブルになる Daggerとは「A P
以下の5日目のエントリです。 CI/CD Advent Calendar 2021 [1] AWS Containers Advent Calendar 2021 [2] CircleCI Advent Calendar 2021 [3] 2021年の年明けから Fargate に取り組み、3月・5月に運用され始め、問題起きては改善していったた我がCI/CDのおさらい的な記事です。 土台情報をまず並べておきます。 3->4->8->10月 に公開した 4記事 3月 Laravelプロダクト Fargate化への道 4月 とある Blue/Green Deployment 構築・運用案(ecspresso + CodeDeploy) 8月 思い立って70分で tfenv の CircleCI Orb を作った 10月 Bitbucket Pipelines から CD の一部を CodeBu
ソフトウェア開発、ITインフラ運用、そしてその境界線上にあるトピックをカバーし、特にDevOpsを実現するための自動化、テスト、セキュリティ、組織文化にフォーカスした「DevOpsDays」。ここでソフトウェアエンジニアのチェシャ猫氏が「Infrastructure as Code の静的テスト戦略」をテーマに登壇。まずはInfrastructure as Codeについてと、そのつらみから発生する“オートメーション恐怖症”を防止する方法を紹介します。 「コード化の“つらみ”をいかにうまく防ぐか」が今日のテーマ チェシャ猫氏:チェシャ猫と言います。Twitterは@y_taka_23の名前でやっているので、よろしくお願いいたします。今日は「Infrastructure as Code の静的テスト戦略」をテーマに選びました。Infrastructure as Codeはここ数年で、非常にメ
それでは、1パターンずつ構成を確認していきます。 1. 全部GitHub Actionsでやる GitHub Actionsでパイプライン全体を構築する場合は、以下の図のような構成になります。 ちなみに、GitHubのDeploymentsを使用することで、Slackと組み合わせてのChatOpsや、任意のコミットのデプロイを実行などいろいろと便利になります。 ですが、Deployments APIをパイプラインで利用するには、Actionsのトリガーの条件を変えたり、ECSへのデプロイの成否に応じてAPIを使ってDeploymentのステータスを更新したりする処理が必要になり、少々パイプラインが複雑化してしまいます。 なので、今回の趣旨とちょっとずれているため、各パターンには記載していません。 では、以下で処理を順に説明していきます。 Image Build 図中の Build Imag
はじめに サーバーレス開発部@大阪の岩田です。 re:Invent2018でLambda関連の新機能としてLambda Layersが発表されました。 【速報】【アップデート】Lambdaが複数のファンクションで共有するコードを持てるようになりました(Lambda Layer) #reinvent この機能を使うことで複数のLambda Functionから共通利用するロジックやライブラリをLambda Function毎にデプロイする必要が無くなり、共通ロジックの管理が簡素化されるという待望の機能です!! ・・・本当にそうなんでしょうか?? マネジメントコンソールから直接コードを編集するようなレベルの小規模なLambda Functionであれば、Lambda Layersを使う事でライブラリをデプロイする手間が省けてハッピーになれそうです。 しかし、我々サーバーレス開発部における開発で
はじめに 現代では、ソフトウェアは一般にサービスとして提供され、Webアプリケーション や Software as a Service と呼ばれる。Twelve-Factor Appは、次のようなSoftware as a Serviceを作り上げるための方法論である。 セットアップ自動化のために 宣言的な フォーマットを使い、プロジェクトに新しく加わった開発者が要する時間とコストを最小化する。 下層のOSへの 依存関係を明確化 し、実行環境間での 移植性を最大化 する。 モダンな クラウドプラットフォーム 上への デプロイ に適しており、サーバー管理やシステム管理を不要なものにする。 開発環境と本番環境の 差異を最小限 にし、アジリティを最大化する 継続的デプロイ を可能にする。 ツール、アーキテクチャ、開発プラクティスを大幅に変更することなく スケールアップ できる。 Twelve-F
AppSpec AppSpec は AWS CodeDeploy (以下、CodeDeploy) で実行するデプロイ処理の内容です。デプロイでどのようなことを処理させるか、具体的な内容を記述していく YAML フォーマットで構成されたファイルです。 CodeDeploy を利用する上で、AppSpec でどのような設定を記述するかがとても重要になってきます。 ということで、本記事ではこちらのドキュメントを意訳していきたいと思います。 はじめに Application Specification File (AppSpec file) は、CodeDeploy があなたの EC2 インスタンスに対して、Amazon S3 または GitHub にあるアプリケーションのリビジョンをどのようにインストールするか決定する、YAML フォーマットのファイルです。また同様に、デプロイの様々なライフサイ
概要 AWSではアプリケーションのデプロイや、システムのスケーリングを自動化することができます。 しかしそれらを実現しようとすると、似たようなサービスの中から用途に合ったものを選ぶ事になると思います。 今回は選択肢となり得るサービスを挙げて、それぞれの出来る事、出来ない事をベースに比較していこうと思います。 比較の軸 以下のように、評価軸を設けました。 サービスの機構として提供されているものは◯とします。 機構として提供されているが、使い難いものは△とします。(例: AWS CLIを利用した場合のみ利用可能など) 機構としては提供されていないが、別の機構などを組み合わせることで容易に実現可能なら△とします。 別の機構などを組み合わせても辛い場合や、実現不可能なら×とします。 デプロイ自動化 まずはアプリケーションのデプロイを自動化するサービスの比較を行います。 以下の4つの選択肢があります
1年分の自分のはてなブックマークを見直した。 およそ 2,000 URLのエントリの中から、特に感銘を受けたり、記憶に残ったエントリを紹介したい。 2015年にブクマしたというだけで、必ずしも2016年に公開されたエントリばかりではないことに注意。 エントリ Scalable Deployments Advanced Techinic for OS upgradeing in 3 minutes MySQLやSSDとかの話 モバイルアプリのスレッドプールサイズの最適化 性能測定道 情報科学における18のメタテクニック Webオペレーションエンジニアのアウトプットと開発力 はてなに入った技術者の皆さんへ シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ペパボのインターネット基盤技術研究・開発の活動 インフラチーム改め Site Reliability Engi
「でも、ステージング環境ではちゃんと動いています!」 こう言われてブチ切れた経験があります。業務アプリのバギーな動作を社内のエンジニアに指摘したところ、テスト用の環境では動いているというのです。「いや、ぼくら本番環境のアプリを使っていて現に困っているので、それを直してほしいだけなんですけど」というと、「でも、ちゃんとステージング環境では動いています。お使いになっているのがChromeのようですが、Chromeでの動作検証はしていません(キリッ」というようなやり取りに絶望しました。原因はブラウザではなく、バージョンアップしたアプリ自体にあったのですが、ステージング環境では問題が発現しなかったんですね。 というように、開発環境、ステージング環境、プロダクション環境(本番環境)の3つは、大小いろいろな違いがあって、完全に一致させることは難しいものです。手元の環境で動いているアプリが、プロダクショ
12月20日に第1回ワンクリックデプロイ勉強会で、デプロイの自動化について好き勝手に喋ったりデモしたりする予定なのですが、当日話す内容の概略について以下に載せておきます。 以下にあげることをやっておけばデプロイ自動化、ワンクリックデプロイはそんなに遠くないところにあると思います。 ソースコードのバージョン管理いわずもがな。全ての起点はここにあるコードの共同所有の原則への理解このソースコードは本番環境または開発環境などで同じように動作しなければならないテストを書く習慣、コミット前に他のテストも含めて通してからコミットする習慣設定ファイルのバージョン管理環境によって異なる設定値(接続先データベース情報など)が書かれた設定ファイルもバージョン管理する開発環境用、ステージング環境用、本番環境用などに分けて定義し、容易に切り替え可能にする本番環境に配置する際に、アプリケーションの各所を書き換えなけれ
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー microneを作ってみたのだけど,もうちょっと実践的なアプリを作った方がいいかな〜,と思ったので,画像掲示板を作ってみた。microneimageboardといいます。Twitterアカウントで認証をし,画像を投稿できます。 使い方 ここからブートストラップを取ってくる。 buildout.cgfの50行目あたり,「aha」「aha.plugin.microne」「aha.plugin.twitteroauth」を消して,「aha.application.microneimageboard」に置き換える。また,app/application.pyというファイルを消す。 「python
ごきげんよう、TrinityTです。桜も咲き始め春の到来を感じますね! 今日は最近になって使い始めたとても便利なツール、Capistranoについて説明します。Railsを使っている人はもちろん、使っていない人両方にオススメです。 Capistranoって何?簡単に言うと「複数の環境に同じ処理を同時に実行させる」ツールです。・昔はSwitchTowerと呼ばれてました。・RoR環境でしか使えないと誤解されがちだが、他の環境でも十二分に便利。・(サービスがPerlで書かれてる)はてなでも導入・RoR環境だと基本的なコマンドが揃っているため特に便利。 何がうれしいの?WebアプリでよくあるパターンとしてAPサーバが複数ある場合に各サーバに対して全く同じ処理(APを転送&APサーバ再起動...etc)を行う場合ってありますよね?そういう場合にCapistranoを導入すれば以下のようなメリット
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く