Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
個人ブログ作ってデプロイしました。
Search
Yuxki
April 17, 2024
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
個人ブログ作ってデプロイしました。
Yuxki
April 17, 2024
More Decks by Yuxki
See All by Yuxki
TypeScriptのクロージャで型エ ラーにハマった話
yuxki
0
32
N+1問題について調べてみた
yuxki
0
26
Conoha VPSでIaCはできる!!!
yuxki
0
240
チームでプロダクトを作る機会でタスクの自走に役立った、個人開発の経験や習慣。
yuxki
0
61
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
Why Our Code Smells
bkeepers
PRO
340
58k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Fireside Chat
paigeccino
43
4.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Producing Creativity
orderedlist
PRO
348
41k
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として公開したい。
最後に • エンジニア職への就職のアドバイス待ってます!