* update page with on-demand youtube link, remove countdown * update docs ad for on-demand pulumiUP version * remove pulumiUP bottom banner * fix docs ad sizing and alt text
357 lines
22 KiB
HTML
357 lines
22 KiB
HTML
{{ define "main" }}
|
||
{{ $pageContext := . }}
|
||
|
||
|
||
<div class="banner-image-confirmation flex justify-center items-center">
|
||
<div class="text-center py-8">
|
||
<img src="/images/pulumiup-2023/logo.svg" alt="Pulumi UP, virtual, free" class="mx-auto h-40" />
|
||
<h3 class="yellow-header-text">June 15, 2023</h3>
|
||
<h4>Thank you for registering</h4>
|
||
</div>
|
||
</div>
|
||
|
||
<section id="templates" class="container mx-auto my-16 text-center">
|
||
<div class=" text-center mx-auto my-8">
|
||
<h3>Pulumi Templates for Common Use Cases</h3>
|
||
<p>
|
||
Pulumi templates are the fastest way to deploy infrastructure. Templates come with predefined infrastructure as code so you can get started instantly. Find some of
|
||
our templates below, and Happy Templating!
|
||
</p>
|
||
</div>
|
||
<div class="container mx-auto">
|
||
<div class="flex flex-wrap items-stretch justify-center">
|
||
{{ range $item := .Params.templates.items }}
|
||
<div class="lg:w-1/3 md:w-1/2 w-full my-4">
|
||
<div class="card h-full relative bg-white pb-8 mx-4">
|
||
<img class="rounded h-40 mx-auto" src="{{ $item.image }}" />
|
||
<div class="px-6 py-4">
|
||
<h5 class="mt-4">{{ $item.heading }}</h5>
|
||
<p>{{ $item.description }}</p>
|
||
<div class="mt-8">
|
||
<a href="{{ $item.link }}" target="_blank" style="font-size: 0.9rem" class="btn-secondary">{{ $item.action }}</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{ end }}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="workshops" style="background: linear-gradient(180deg, #7BDEFF 0%, #DBF4E4 100%);">
|
||
<div class="container mx-auto py-16">
|
||
<h2 class="px-4 pb-8">Workshops</h2>
|
||
|
||
<div class="flex flex-wrap justify-center items-stretch">
|
||
{{ range .Params.workshops }}
|
||
<div class="w-full lg:w-1/2 p-3">
|
||
<div class="card bg-white p-6 text-black h-full">
|
||
<h5>{{ .title }}</h5>
|
||
<span class="my-0 py-1 inline-block mr-3 text-gray-600">
|
||
<i class="fas fa-calendar mr-2"></i>
|
||
{{ .date }}
|
||
</span>
|
||
<p>{{ .description }}</p>
|
||
<div class="my-8">
|
||
<a href="{{ .url }}" class="btn-secondary">
|
||
<span class="text-violet-600">Register Now →</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{ end }}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="automation-features" class="relative mt-12">
|
||
<div class="container mx-auto mb-16">
|
||
<h2 class="my-12 text-center">Use Cases</h2>
|
||
|
||
<div class="automation-scenarios-carousel-items">
|
||
<span id="self-service" class="hidden"></span>
|
||
<span id="saas" class="hidden"></span>
|
||
<span id="workflow" class="hidden"></span>
|
||
<span id="tooling" class="hidden"></span>
|
||
|
||
<ul id="automation-scenarios-carousel-headers" class="automation-scenarios-carousel-headers">
|
||
<li class="" data-product-carousel-type="self-service">
|
||
<h6 class="my-0 text-black"><a href="#self-service" class="text-black">Self-service infrastructure</a></h6>
|
||
</li>
|
||
<li class="" data-product-carousel-type="saas">
|
||
<h6 class="my-0"><a href="#saas" class="text-gray-500">Single-tenant SaaS instances</a></h6>
|
||
</li>
|
||
<li class="" data-product-carousel-type="workflow">
|
||
<h6 class="my-0"><a href="#workflow" class="text-gray-500">Workflow Orchestration</a></h6>
|
||
</li>
|
||
<li class="" data-product-carousel-type="tooling">
|
||
<h6 class="my-0"><a href="#tooling" class="text-gray-500">Custom Infrastructure Tooling</a></h6>
|
||
</li>
|
||
</ul>
|
||
|
||
<ul class="automation-scenarios-carousel-items-list">
|
||
<li class="w-full pb-3" data-product-carousel-type="self-service">
|
||
<h3 class="lg:hidden text-center">Self-service infrastructure</h3>
|
||
<div class="flex flex-wrap">
|
||
<div class="w-full lg:w-2/3 py-3 px-6">
|
||
<div class="card p-6 bg-white">
|
||
<h5>Overview</h5>
|
||
<p>
|
||
Build developer portals and self-serve platforms that make it easier for your development teams to use cloud infrastructure. Infrastructure
|
||
and security teams can scale their best practices by creating declarative infrastructure and exposing it behind a REST, gRPC, or Custom
|
||
Resource API that developers and operators can easily consume, without needing to understand every underlying resource.
|
||
</p>
|
||
|
||
<h5>Examples</h5>
|
||
<div>
|
||
<p class="font-bold">Pulumipus’ Self-Service Web App Platform</p>
|
||
<p>
|
||
This is a self-service interface for creating customized static sites, databases, virtual machines, and more. The code is open source
|
||
and available on
|
||
<a href="https://github.com/komalali/self-service-platyform" target="_blank" rel="noreferrer noopener" class="link"> GitHub</a>.
|
||
</p>
|
||
</div>
|
||
|
||
<div>
|
||
<p class="font-bold">Python IaC in your Jupyter notebook</p>
|
||
<p>
|
||
Use Pulumi’s Python SDK with Automation API to create infrastructure interactively from a Jupyter notebook. Examples are available on
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/tree/main/python/pulumi_via_jupyter"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>
|
||
GitHub</a
|
||
>.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="w-full lg:w-1/3 lg:order-first py-3 px-6 lg:p-3">
|
||
<div class="card p-3 pb-8 relative bg-white">
|
||
<div class="w-2/3 mx-auto my-2 px-6">
|
||
<a href="{{ relref . "/case-studies/sans-institute" }}" class="link">
|
||
{{ partial "customer-logo.html" (dict "logo" "sans") }}
|
||
</a>
|
||
</div>
|
||
<p>
|
||
SANS Institute provides cybersecurity training and certification. It used Pulumi Automation API to build a self-service platform that
|
||
enables instructors to provision virtual learning environments using an automated process.
|
||
</p>
|
||
|
||
<div class="card-cta-btn text-center">
|
||
<a href="{{ relref . "/case-studies/sans-institute" }}" class="btn-secondary">Learn More</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
|
||
<li class="w-full pb-3 lg:hidden" data-product-carousel-type="saas">
|
||
<h3 class="lg:hidden text-center mt-16">Single-tenant SaaS instances</h3>
|
||
<div class="flex flex-wrap">
|
||
<div class="w-full lg:w-2/3 py-3 px-6">
|
||
<div class="card p-6 bg-white">
|
||
<h5>Overview</h5>
|
||
<p>
|
||
Simplify the management of multi-instance SaaS architectures where you need single-tenant infrastructure for each customer. You can create
|
||
declarative infrastructure defined by your best practices and expose it behind a REST, gRPC, or Custom Resource API that can be consumed by
|
||
your applications.
|
||
</p>
|
||
|
||
<h5>Examples</h5>
|
||
<div>
|
||
<p class="font-bold">Infrastructure as RESTful resources</p>
|
||
<p>
|
||
This example demonstrates how to run Automation API in an HTTP server to expose infrastructure as RESTful resources. The code is
|
||
available on GitHub in
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/go/pulumi_over_http"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>Go</a
|
||
>,
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/nodejs/pulumiOverHttp-ts"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>Node.js</a
|
||
>, and
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/python/pulumi_over_http"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>Python</a
|
||
>.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="w-full lg:w-1/3 lg:order-first py-3 px-6 lg:p-3">
|
||
<div class="card p-3 pb-8 relative bg-white">
|
||
<div class="w-2/3 mx-auto my-2 px-6">
|
||
{{ partial "customer-logo.html" (dict "logo" "cockroach-labs") }}
|
||
</div>
|
||
<p>
|
||
Cockroach Labs provides the CockroachDB database-as-a-service. It uses Pulumi Automation API to manage Kubernetes clusters behind the scenes
|
||
on behalf of their customers.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
|
||
<li class="w-full pb-3 lg:hidden" data-product-carousel-type="workflow">
|
||
<h3 class="lg:hidden text-center mt-16">Infrastructure Workflow Orchestration</h3>
|
||
<div class="flex flex-wrap">
|
||
<div class="w-full lg:w-2/3 py-3 px-6">
|
||
<div class="card p-6 bg-white">
|
||
<h5>Overview</h5>
|
||
<p>
|
||
Manage complicated infrastructure tasks like database migrations, microservice deployments, schema migrations, and more. Distributed systems
|
||
and microservices incur a significant coordination burden, and dependencies across API boundaries are difficult to track and maintain. With
|
||
the Automation API, you can use a strongly typed, familiar programming environment to orchestrate multi-stack deployments, codify
|
||
dependencies, and enable safe incremental deployment.
|
||
</p>
|
||
|
||
<h5>Examples</h5>
|
||
<div>
|
||
<p class="font-bold">Database Migration</p>
|
||
<p>
|
||
This example provisions an AWS Aurora SQL database and executes a database "migration" using the resulting connection info. The code is
|
||
available on GitHub in
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/go/database_migration"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>Go</a
|
||
>,
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/nodejs/databaseMigration-ts"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>Node.js</a
|
||
>,
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/python/database_migration"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>Python</a
|
||
>, and
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/dotnet/DatabaseMigration"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>.NET</a
|
||
>.
|
||
</p>
|
||
</div>
|
||
|
||
<div>
|
||
<p class="font-bold">Multi-Stack Orchestration</p>
|
||
<p>
|
||
This example shows how to use Automation API to tame the complexity of multiple stacks with dependent stack outputs. The code is
|
||
available on
|
||
<a
|
||
href="https://github.com/pulumi/automation-api-examples/blob/main/go/multi_stack_orchestration"
|
||
target="_blank"
|
||
rel="noreferrer noopener"
|
||
class="link"
|
||
>GitHub</a
|
||
>.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="w-full lg:order-first lg:w-1/3 py-3 px-6 lg:p-3">
|
||
<div class="card p-3 pb-8 relative bg-white">
|
||
<div class="w-2/3 mx-auto my-2 px-6">
|
||
<a href="{{ relref . "/case-studies/lemonade" }}" class="link">
|
||
{{ partial "customer-logo.html" (dict "logo" "lemonade") }}
|
||
</a>
|
||
</div>
|
||
<p>
|
||
The Automation API allowed Lemonade further automate its deployment process. For example: customizing runners for multi-step provisioning,
|
||
automating recovery for well-known errors like fixing state for interrupted jobs and managing approvals for sensitive operations like
|
||
deleting old resources.
|
||
</p>
|
||
|
||
<div class="card-cta-btn text-center">
|
||
<a href="{{ relref . "/case-studies/lemonade" }}" class="btn-secondary">Learn More</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
|
||
<li class="w-full pb-3 lg:hidden" data-product-carousel-type="tooling">
|
||
<h3 class="lg:hidden text-center mt-16">Custom Infrastructure Tooling</h3>
|
||
<div class="flex flex-wrap">
|
||
<div class="w-full lg:w-2/3 py-3 px-6">
|
||
<div class="card p-6 bg-white">
|
||
<h5>Overview</h5>
|
||
<p>
|
||
Build user-friendly infrastructure tooling such as CLIs, higher-level frameworks, CI/CD workflows, and even desktop apps. Infrastructure
|
||
teams can use Automation API to build self-service tools for building, deploying, and managing infrastructure and offer the right levels of
|
||
complexity and customization for the tool’s target audience.
|
||
</p>
|
||
|
||
<h5>Examples</h5>
|
||
<div>
|
||
<p class="font-bold">Ploy, a CLI in Go</p>
|
||
<p>
|
||
Ploy is a Heroku-like interface for deploying Docker images to a Kubernetes cluster. Ploy combines Pulumi with a Go CLI using Promptui.
|
||
It is
|
||
<a href="https://github.com/jaxxstorm/ploy" target="_blank" rel="noreferrer noopener" class="link"> open source on GitHub</a>.
|
||
</p>
|
||
</div>
|
||
|
||
<div>
|
||
<p class="font-bold">Pulumi GitHub Action for CI/CD</p>
|
||
<p>
|
||
Pulumi’s GitHub Action is powered by Automation API and it gives you complete control over Pulumi in your CI/CD workflows.
|
||
<a class="link" href="{{ relref . "/blog/supercharging-our-github-action-with-the-pulumi-automation-api" }}"
|
||
>Learn how it was created</a
|
||
>
|
||
or see the
|
||
<a href="https://github.com/pulumi/actions" target="_blank" rel="noreferrer noopener" class="link"> code on GitHub</a>.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="w-full lg:w-1/3 lg:order-first py-3 px-6 lg:p-3">
|
||
<div class="card p-3 pb-8 relative bg-white">
|
||
<div class="w-2/3 mx-auto my-2 px-6">
|
||
<a href="{{ relref . "/case-studies/mercedes-benz" }}" class="link">
|
||
{{ partial "customer-logo.html" (dict "logo" "mercedes-benz") }}
|
||
</a>
|
||
</div>
|
||
<p>
|
||
Automation API powers custom infrastructure platforms for organizations like Mercedes-Benz Research & Development North America. These
|
||
platforms empower their teams to stand up the cloud infrastructure that they need and when they need it.
|
||
</p>
|
||
|
||
<div class="card-cta-btn text-center">
|
||
<a href="{{ relref . "/case-studies/mercedes-benz" }}" class="btn-secondary">Learn More</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{{ partial "virtual-communities" . }}
|
||
{{ partial "help-links" . }}
|
||
{{ end }}
|