1
0
Fork 0

refactor: move to monorepo

This commit is contained in:
Vojtěch Mareš 2023-10-04 18:13:04 +02:00
parent f81e3e1dd6
commit d891426a12
Signed by: vojtech.mares
GPG key ID: C6827B976F17240D
88 changed files with 403 additions and 160 deletions

View file

@ -0,0 +1,16 @@
import { Analytics } from '@vercel/analytics/react';
import { AppProps } from "next/app";
import "@/css/tailwind.css";
function App({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
<Analytics />
</>
);
}
export default App;

View file

@ -0,0 +1,55 @@
import { Head, Html, Main, NextScript } from "next/document";
export default function Document(props: any) {
let pageProps = props.__NEXT_DATA__?.props?.pageProps;
return (
<Html
className="h-full scroll-smooth bg-white antialiased [font-feature-settings:'ss01']"
lang="cs"
>
<Head>
{/* <link rel="preconnect" href="https://fonts.googleapis.com" />
<link
rel="preconnect"
href="https://fonts.gstatic.com"
crossOrigin="anonymous"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Lexend:wght@400;500&display=swap"
/> */}
<link
rel="apple-touch-icon"
sizes="180x180"
href="/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicon-16x16.png"
/>
<link rel="manifest" href="/site.webmanifest" />
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
<meta name="msapplication-TileColor" content="#da532c" />
<meta name="theme-color" content="#ffffff" />
<script
defer
data-domain="vojtechmares.com"
src="https://plausible.io/js/script.js"
></script>
</Head>
<body className="flex h-full flex-col">
<Main />
<NextScript />
</body>
</Html>
);
}

View file

@ -0,0 +1,39 @@
import Head from "next/head";
import { Header } from "@/components/layout/Header";
import { Hero } from "@/components/homepage/Hero";
import { CallToAction } from "@/components/homepage/CallToAction";
import { Faqs } from "@/components/homepage/Faqs";
import { Footer } from "@/components/layout/Footer";
import { Services } from "@/components/homepage/Services";
import { WhatIDo } from "@/components/homepage/WhatIDo";
import { Testimonials } from "@/components/homepage/Testimonials";
import { KubernetesEverywhere } from "@/components/homepage/KubernetesEverywhere";
import { TrainingList } from "@/components/homepage/Training";
export default function Home() {
return (
<>
<Head>
<title>Vojtěch Mareš - DevOps konzultant, lektor, engineer</title>
<meta
name="description"
content="Vojtěch Mareš - DevOps konzultant, lektor, engineer"
/>
</Head>
<main>
<Header />
<Hero />
<WhatIDo />
<TrainingList />
<KubernetesEverywhere />
<CallToAction />
<Testimonials />
<Services />
{/* <Faqs /> */}
</main>
<Footer />
</>
);
}

View file

@ -0,0 +1,49 @@
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
import logoArgo from "@/images/logos/tools/argo.png";
export const meta = {
name: "ArgoCD",
price: {
open: 5900,
company: 24000,
},
logo: logoArgo,
description:
"ArgoCD je GitOps nastroj kterym nasazujeme aplikace do Kubernetes. Pracuje na zaklade deklaraticnich konfiguracnich souboru, ktete si stahuje z Gitu. To znamena, ze vse co commitneme do repozitare, se na nasadi do Kubernetes. O vsech zmenach: co, kdy, kdo udelal budeme mit prehledne zaznami v Gitu.",
days: 1,
featured: true,
weight: 49,
};
# Popis technologie
ArgoCD je GitOps nastroj kterym nasazujeme aplikace do Kubernetes. Pracuje na zaklade deklaraticnich konfiguracnich souboru, ktete si stahuje z Gitu. To znamena, ze vse co commitneme do repozitare, se na nasadi do Kubernetes. O vsech zmenach: co, kdy, kdo udelal budeme mit prehledne zaznami v Gitu.
# Co Vás naučím
- Uvod do CD
- Co je ArgoCD
- Instalace a konfigurace
- GitOps
- Plain Kubernetes manifests
- Helm packages
- Kustomize
- Jsonnet
- Rollbacks
- Best Practices
- User Management
# Pro koho je školení určeno
Školení je určeno pro vývojáře a DevOpsáky, kteří chteji automaticky nasazovat do Kubernetes podle GitOps principu.
# Předchozí znalosti
Zakladni znalost Kubernetes
Technické požadavky
Webový prohlížeč
Přístup na internet
export default ({ children }) => (
<TrainingLayout content={children} meta={meta} />
);

View file

@ -0,0 +1,52 @@
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
import logoGit from "@/images/logos/tools/git.png";
export const meta = {
name: "Git",
price: {
open: 5900,
company: 24000,
},
logo: logoGit,
description:
"Git je moderní verzovaci nástroj, který se stal de facto standardem mezi vývojáři. Používají jej na denní bázy jednotlivci, startupy i korporace. Git vám nabízí jednoduchou kolaboraci na projektu s více lidmi a práci na více částech současně aniž byste si zasahovali do rozdělaných věcí nebo je jinak narušovali. Spolupráci na vývoji projektu ještě zlepšuje Gitlab, což je kolaborativni platforma na návrh, vývoj a provozování software (více o Gitlabu v samostatném kurzu).",
days: 1,
weight: 1,
};
# Co je to Git?
Git je moderní verzovaci nástroj, který se stal de facto standardem mezi vývojáři. Používají jej na denní bázy jednotlivci, startupy i korporace. Git vám nabízí jednoduchou kolaboraci na projektu s více lidmi a práci na více částech současně aniž byste si zasahovali do rozdělaných věcí nebo je jinak narušovali. Spolupráci na vývoji projektu ještě zlepšuje Gitlab, což je kolaborativni platforma na návrh, vývoj a provozování software (více o Gitlabu v samostatném kurzu).
# Jak školení probíhá
Na školení formou workshopu si vysvětlíme proč je dobré Git používat, jak funguje (proč dnes nemá konkurenty) a best practice. Ukážeme si vše od instalace a základního nastavení Gitu, přes jednoduchou práci na jedné větvi až po práci v teamu a s více větvemi za pomoci různých mergovacích strategií (merge, rebase). Ukážeme si výhody a nevýhody obou z nich a je pak na Vás jak to budete dělat. Také si ukážeme jak se dostat ze špatných situací, jako omylem jsem si všechno smazal a podobně.
# Co Vás naučím
Konfigirace GITu
Vytvořit nový repozitář
Základní ovládání GITu
Práce v jedné větvi
Práce ve větvích - merge, rebase (silná stránka Gitu)
Práce se vzdálenými repozitáři
Záchrana smazaných dat z repozitáře
# Pro koho je školení určeno
Školení je určeno primárně pro vývojáře, kteří neverzují vůbec nebo nepoužívají Git. Zároveň je vhodné i pro ty, kteří Git nevyužívají na 100% (git commit, git pull, git push). Ať jde o malé weby nebo velké projekty, Git si najde uplatnění. Dále je kurz vhodný i pro ty, kteří nepíšou kód tak často, ale občas potřebují něco zaverzovat, například nějaké migrační skripty DB anebo konfiguraci serveru. Git pomůže i DBA nebo DevOps.
## Předchozí znalosti
Základy programování
Základy práce v terminálu výhodou
Základní znalost Gitu výhodou
## Technické požadavky
Nainstalovaný Git
Přístup na internet - ideálně bez korporátní proxy, případně nastavenou proxy v prohlížeči
export default ({ children }) => (
<TrainingLayout content={children} meta={meta} />
);

View file

@ -0,0 +1,52 @@
import logoKubernetes from "@/images/logos/tools/kubernetes.png";
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
export const meta = {
name: "Kubernetes",
price: {
open: 11900,
company: 44000,
},
logo: logoKubernetes,
description:
"Kubernetes jsou dnes nejrozšířenější platformou na hostování Docker kontejnerů a jsou podporovány velkými hráči na trhu (Google, Amazon, Microsoft) skrz Cloud Native Computing Foundation. Kubernetes pro provoz používají všechny velikosti firem, od startupu po korporace.",
days: 2,
featured: true,
weight: 50,
};
# Popis technologie
Kubernetes jsou dnes nejrozšířenější platformou na hostování Docker kontejnerů a jsou podporovány velkými hráči na trhu (Google, Amazon, Microsoft) skrz Cloud Native Computing Foundation. Kubernetes pro provoz používají všechny velikosti firem, od startupu po korporace.
# Jak školení probíhá
Školeni probíhá formou workshopů, vše si prakticky vyzkoušíme a osaháme. Ukážeme jak spustit Kubernetes lokálně (pro vývoj) a na cloudové platformě DigitalOcean. Dozvíme se základní strukturu Kubernetes a projdeme si jeho komponenty. Naučíme se jak napsat Kubernetes manifest a jak jim nasadit aplikaci v Dockeru. Dále si ukážeme jak pracovat s právama v Kubernetes a jak používat (a psát) Kubernetes balíčky v Helmu.
# Co Vás naučím
- Teoretický úvod do Kubernetes
- Instalace Minikube a kubectl (pro ty kteří nenainstalovali doma)
- Popis Kubernetes komponent
- Deployment do Kubernetes
- Práce s právy v Kubernetes clusteru
- Teoretický úvod do Helm balíčku
- Instalace / Deployment pomocí Helmu
- Psaní vlastního Helm balíčku
# Pro koho je školení určeno
Školení je určeno pro lidi (vývojáři a devops), kteří mají zájem provozovat své Docker aplikace v Kubernetes.
# Předchozí znalosti
Základy práce s Dockerem
Základy práce s Linuxem
Základy práce v terminálu
Technické požadavky
Nainstalovaný Kubernetes
Přístup na internet - ideálně bez korporátní proxy, případně nastavenou proxy v prohlížeči
export default ({ children }) => (
<TrainingLayout content={children} meta={meta} />
);

View file

@ -0,0 +1,59 @@
import TrainingLayout from "@/components/trainingpage/TrainingLayout";
import logoTerraform from "@/images/logos/tools/terraform.png";
export const meta = {
name: "Terraform",
price: {
open: 5900,
company: 24000,
},
logo: logoTerraform,
description:
"Terraform je nástroj, který se používá ke správě infrastruktury v cloudu, jak veřejném (AWS, Azure, GCP), tak privátním (OpenStack, VMware vSphere). Terraform Vám umožní spravovat infrastruktutru jako kód, to znamená verzovanou v Gitu, přidávání resources pomocí merge (pull) requestů a mnoho dalších výhod. Infrastrukturu můžete dále nasadit do testovacího prostředí přesně tak, jako je v produkci bez zbytečného úsilí. O všech komponentách máte přehled a můžete predikovat ceny. Konec klikání infrastruktury, zkuste Terraform. Terraform umožnuje spravovat více cloudových providerů současne, zároveň umožnuje pracovat s hibridními cloudy (část v privátním cloudu, část ve veřejném).",
days: 1,
featured: true,
weight: 31,
};
# Co to je Terraform a k čemu se používá?
Terraform je nástroj, který se používá ke správě infrastruktury v cloudu, jak veřejném (AWS, Azure, GCP), tak privátním (OpenStack, VMware vSphere).
Terraform Vám umožní spravovat infrastruktutru jako kód, to znamená verzovanou v Gitu, přidávání resources pomocí merge (pull) requestů a mnoho dalších výhod. Infrastrukturu můžete dále nasadit do testovacího prostředí přesně tak, jako je v produkci bez zbytečného úsilí. O všech komponentách máte přehled a můžete predikovat ceny. Konec klikání infrastruktury, zkuste Terraform.
Terraform umožnuje spravovat více cloudových providerů současne, zároveň umožnuje pracovat s hibridními cloudy (část v privátním cloudu, část ve veřejném).
# Jak školení probíhá
Školení je formou workshopu, všechno si podrobně vyzkoušíme a vysvětlíme. Ukážeme si jak Terraform pracuje, jak jej používat v teamu a jak jím spravovat infrastukturu. Uděláme si příklad infrastruktury jednoduché aplikace, kde nastavíme vše - od DNS, přes Kubernetes cluster po S3 file storage.
# Co Vás naučím
- Základní koncept Terraformu
- Výhody Terraformu proti Ansible, Puppetu, ...
- Konfigurace Terraformu pro práci v teamu
- Ovládání Terraform CLI
- Úvod do Terraform Configuration Language (HCL)
- Terraform Providers - napojení na cloudy
- Práce s resources v Terraformu
- Terraform moduly
- Best Practice
# Pro koho je školení určeno
Školení je určeno pro DevOps a adminy, kteří chtějí lépe a efektivněji spravovat infrastrukturu. Zároveň také pro vývojáře, kteří se starají o nejakou infrastrukturu v cloudech.
# Předchozí znalosti
- Základní znalost veřejných cloudů (AWS, DigitalOcean, Azure, ...)
- Základy práce v terminálu
# Technické požadavky
- **Přístup na internet** (ideálně bez korporatni proxy)
- Nainstalovaný Terraform
- Vlastní účet v [DigitalOcean (referral)](https://m.do.co/c/a0d4508fa827) výhodou
export default ({ children }) => (
<TrainingLayout content={children} meta={meta} />
);