Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
個人ブログ作ってデプロイしました。
Search
Yuxki
April 17, 2024
0
53
個人ブログ作ってデプロイしました。
Yuxki
April 17, 2024
Tweet
Share
More Decks by Yuxki
See All by Yuxki
TypeScriptのクロージャで型エ ラーにハマった話
yuxki
0
21
N+1問題について調べてみた
yuxki
0
18
Conoha VPSでIaCはできる!!!
yuxki
0
180
チームでプロダクトを作る機会でタスクの自走に役立った、個人開発の経験や習慣。
yuxki
0
51
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Fireside Chat
paigeccino
41
3.8k
How GitHub (no longer) Works
holman
316
140k
Chasing Engaging Ingredients in Design
codingconduct
0
84
The #1 spot is gone: here's how to win anyway
tamaranovitovic
1
870
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
Done Done
chrislema
186
16k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
32
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
45
Transcript
個人ブログ作ってデプロ イしました。 Yukihiro Uejo
自己紹介 New‼ • 自己紹介 ◦ エンジニア職への就職(アプリのバックエンド)を目指して、日々勉強中です。 経 験者と初心者の中間くらいだと思ってます。(実務2年 →個人開発3年) ◦
最近はご縁もあって、ベンチャー企業の手伝いもさせてもらってます。 ▪ PythonとPostgreSQL、時々TypeScript • 使用言語 ◦ Go言語、TypeScript、Python、SQL、AWK、Bash、Vimスクリプト、Scratch
ブログサイトをつくる必要ってある? • 世の中には便利なブログサイトが山ほどある。 • 現代のネット環境において、自分で作る理由はなかなか見つかるものではな い。 • ZennやQiitaで十分。そっちの方がLaprasやFindyで連携できるので、転 職にも有利に働くのではないか?
いやいや、
自分の秘密基地を持ち、カスタマイズし、自分 でデータを持ち、管理することに憧れがあるの です。
あえて具体的な理由をつけるなら • 発信活動を長続きさせるために、まずは愛着を持てるブログをつくろうと 思ったから。 • DBを使った動的ウェブサイトを作ってみたかったから。 • せっかく自分のためのアプリ公開基盤をつくったのだから、それを利用して みたかった。 •
ブログサイトを作る→ブログが書きたくなる→ネタ探しのために勉強する→ス キルが上がる。みたいな流れを期待しているから。
気持ちの後押しもありました • VimCon 2023 Tinyや、YAPC::Hiroshima 2024に参加し、少しでも自 分のスキル向上をしたい!発信活動も欠かさずやっていきたい!と背中を押 された気持ちになりました。
利用した技術 Conoha VPS(OpenStack) Ubuntu Alpine Linux Postgre SQL NextJS Terraform
Packer Next Auth Docker Swarm Docker Nginx
ブログの機能 • ログイン機能(Auth0によるOAuthを利用) • 記事の編集機能(Markdownで書く形式) ◦ タイトル、タグ、サマリー、本文 • 記事の公開・非公開機能 •
プロフィールの編集機能 ◦ プロフィール、Githubアカウント、Xアカウント、自分のホームページ
デモ blog.atoriegg.net
開発工程(DB編) • Postgre SQLと監視用のエージェントが入ったイメージを作成(Packer) ◦ Packerはサーバー仮想化やコンテナ仮想化で使うイメージを作成するツール。 • ConohaVPSにサーバーインスタンスを作成(Terraform) ◦ ConohaVPSはOpenStackを採用しているため、
IaC関連のインフラが利用できる!すご い! • スキーマとロールを設計して設定(手動) • マイグレーションを実行(Drizzle) ◦ DrizzleはTypeScriptのORMライブラリ
開発工程(アプリ編) • コンポーネントのデザイン(Storybook) • 単体テストを作成(Jest) • E2Eテストを作成(Cypress) • Github ActionsでCI・CDのワークフローを作成。
• アプリをプログラム(NextJS+TypeScript+Drizzle+NextAuth) ◦ NextAuthは認証、特にOAuthを楽に実装できるライブラリ。 • Dockerでイメージをビルド • AWSのECRにプッシュ
開発工程(デプロイ編) • ブログのドメインのためにサーバー証明書を更新 ◦ Let's Encryptを使わせてもらいました。 • ローカルネットワークのための、サーバ証明書を発行 ◦ プライベートCAを運用しているので、この工程が必要。
• Docker Swarmの設定ファイルを作成 ◦ 言わずと知れた、Docker内蔵のコンテナオーケストレーションツール ! • Portainrの設定 ◦ PortainerはDockerのコンテナを管理できる OSSのWebアプリケーション。 ◦ Kubernetesのダッシュボードのようなもの!多分。
ブログを開発して • 動的アプリをイチから開発して、イチからデプロイしたことはなかったの で、良い経験になった。 • 自分の作ったアプリで記事を書いて公開するというのは、心地が良い。 • 「不特定多数の人に対するサービスの開発」という目標に一歩近づいた。
反省 • 認証基盤は自作したかった。 ◦ できればGo言語で • 技術的に基礎的なことしかやれなかったのは残念。 ◦ あまり複雑なことはやっていない。 •
もっと面白い要素を加えられればよかった。 ◦ 独自インフラという特徴以外、オリジナリティーのある要素はない。
今後の展開 • OpenAIのAPIを使って、記事から自動的にサマリを作れるようにしたい。 • 画像の添付機能が欲しい。 • DBのバックアップは早めにとれるようにしたい。 • 動作が安定してきたら、ぜひOSSとして公開したい。
最後に • エンジニア職への就職のアドバイス待ってます!