2023-10-07 21:08:39 -07:00

338 lines
20 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{ define "hero" }}
{{ partial "hero" (dict "title" .Params.hero.title) }}
{{ end }}
{{ define "main" }}
{{ $pageContext := . }}
<section id="overview" class="my-16">
<div class="flex flex-wrap container mx-auto">
<div class="w-full order-last lg:mt-0 lg:order-first lg:w-1/2 px-5">
<h2>Universal Infrastructure as Code for AWS</h2>
<p class="mr-4">{{ .Params.hero.description | markdownify }}</p>
<div>
<div class="flex justify-start items-start mt-8">
<div class="flex flex-col lg:flex-row items-start">
<a class="btn-primary mr-4" href="/docs/clouds/aws/get-started/">Get Started</a>
<a class="btn-secondary" href="/resources#upcoming">Watch a Workshop</a>
</div>
<img class="w-32 mr-4" src="/images/partners/aws-devops-badge.png" alt="AWS Devops Badge" />
</div>
</div>
</div>
<div class="w-full order-first lg:order-last mt-8 lg:mt-0 lg:w-1/2 lg:mt-0">
<div class="rounded shadow-md" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
<iframe
src="//www.youtube.com/embed/M8PEXcFh_aQ?rel=0"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;"
allowfullscreen=""
title="Pulumi + AWS: Universal Infrastructure as Code"
srcdoc="<style>*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img{position:absolute;width:100%;top:0;bottom:0;margin:auto}</style><a href=https://www.youtube.com/embed/M8PEXcFh_aQ?autoplay=1><img src='/images/partners/kube-interview-thumbnail.jpg' alt='Pulumi + AWS: Universal Infrastructure as Code'></a>"
></iframe>
</div>
</div>
</div>
</section>
<div class="container mx-auto carousel-always-visible mb-24">
<section class="w-full text-center">
<div>
<div>
<div class="inline-block bg-blue-100 border-4 border-blue-200 rounded-full p-3" style="fill: #4387c7;">
{{ partial "superpower-icon.html" (dict "type" "architecture") }}
</div>
</div>
<h2>Build</h2>
</div>
<h4 class="w-10/12 mx-auto mt-0">Use familiar software practices and tools to build cloud infrastructure.</h4>
<p class="text-center w-full p-5 lg:w-1/2 lg:p-0 mx-auto">
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of familiar programming languages and
tools.
</p>
<div class="flex flex-col xl:flex-row xl:mt-12">
<div class="w-full p-5 xl:p-0 xl:w-1/2">
<div class="carousel-item opacity-1 transition-all-200 text-xs shadow-xl">
{{ partial "home/ide" . }}
</div>
</div>
<div class="w-full xl:w-1/2 text-left px-10">
<h5>IDE Autocomplete</h5>
<p>
With Pulumi, you can use your preferred IDE and productivity features like autocompletion so that you author infrastructure code faster and with more
accuracy.
</p>
<h5>Native Testing Frameworks</h5>
<p>
Use your favorite programming languages and popular testing frameworks to validate your infrastructure and applications through their entire lifecycle.
Pulumi can also mock cloud resources for you so that you can perform offline testing thats faster and cheaper.
</p>
<h5>Sharing and Reuse</h5>
<p>
Sharing and reusing your infrastructure code is available right out of the box with <a href="/product/packages/">Pulumi Packages</a>. You
can use your preferred programming language's native package managers to share and distribute infrastructure code within your organization. Or, browse
publicly available packages in <a href="/registry/">Pulumi Registry</a>.
</p>
</div>
</div>
</section>
<section class="w-full text-center mt-16">
<div>
<div>
<div class="inline-block bg-blue-100 border-4 border-blue-200 rounded-full p-3" style="fill: #4387c7;">
{{ partial "superpower-icon.html" (dict "type" "provisioning") }}
</div>
</div>
<h2>Deploy</h2>
</div>
<h4 class="w-10/12 mx-auto mt-0">Increase automation and collaboration to ship faster.</h4>
<p class="text-center w-full p-5 lg:w-1/2 lg:p-0 mx-auto">
Getting an application into production can be an overwhelming process. Pulumi empowers you and your team to work together to reduce obstacles and increase
collaboration across your entire software delivery pipeline.
</p>
<div class="flex flex-col xl:flex-row xl:mt-12">
<div class="w-full p-5 lg:p-0 xl:w-1/2">
<div class="carousel-item opacity-1 transition-all-200 text-xs shadow-xl">
{{ partial "home/cli" . }}
</div>
</div>
<div class="w-full xl:w-1/2 text-left px-10 flex flex-col justify-center">
<h5>Full Coverage of AWS</h5>
<p>
You can deploy the entire breadth of AWS services with Pulumis AWS Classic Provider and Native Provider SDKs. The newly released AWS Native Provider
(Preview) uses the AWS Cloud Control API to provide direct integration with AWS resource models and same-day updates for newly released AWS features.
</p>
<h5>Architect for self-service</h5>
<p>
Pulumi's unique approach to <a href="/what-is/what-is-infrastructure-as-code/">Infrastructure as Code</a>
allows you to build self-service infrastructure platforms. You can abstract away complexity for your teammates, allowing folks to focus on what's important.
</p>
<h5>Continuous delivery for infrastructure</h5>
<p>
Pulumi gives you the power to continuously test and deliver your cloud infrastructure by
<a href="/docs/using-pulumi/continuous-delivery/">integrating</a> with your favorite CI/CD platforms. By automating your testing and
delivery you can focus more on delivering value to your customers.
</p>
</div>
</div>
</section>
<section class="w-full text-center mt-16">
<div>
<div>
<div class="inline-block bg-blue-100 border-4 border-blue-200 rounded-full p-3" style="fill: #4387c7;">
{{ partial "superpower-icon.html" (dict "type" "testing") }}
</div>
</div>
<h2>Manage</h2>
</div>
<h4 class="w-10/12 mx-auto mt-0">Gain full auditability and visibility into all your environments to tame complexity and put security first.</h4>
<p class="text-center w-full p-5 lg:w-1/2 lg:p-0 mx-auto">
Manage cloud infrastructure with dashboards that provide visibility into your infrastructure and any changes,
<a href="/docs/pulumi-cloud/organizations#organization-roles">role-based access controls</a>, and
<a href="/docs/using-pulumi/crossguard/">Policy as Code</a> enforcement across your organization.
</p>
<div class="flex flex-col xl:flex-row xl:mt-12">
<div class="w-full p-5 lg:p-0 xl:w-1/2">
<div class="carousel-item opacity-1 transition-all-200 text-xs shadow-xl">
<img src="/images/home/pulumi-console.svg" alt="Pulumi Service" />
</div>
</div>
<div class="w-full xl:w-1/2 text-left px-10">
<h5>Secrets management made easy</h5>
<p>
Pulumi provides you with any easy way to ensure secrets are kept safe during the entire software development lifecycle. You can have Pulumi manage your
<a href="/docs/concepts/secrets/">secrets</a> for you or bring your own secrets management provider.
</p>
<h5>Keep your workflows secure</h5>
<p>
Enable <a href="/docs/using-pulumi/crossguard/">Policy as Code</a> within your organization so that you can define guardrails for your
infrastructure, ensuring engineers are following best practices and putting security first. This helps you prevent mistakes before they occur and respond
rapidly to any incidents.
</p>
<h5>Clear visibility across AWS resources</h5>
<p>
The Pulumi Service gives you full visibility into your cloud infrastructures current and past states. See every resource running in each stack with deep
links to the AWS Console, actions performed by team members, Git-like diffs for infrastructure changes, and much more.
</p>
</div>
</div>
</section>
</div>
<!-- Customer logos -->
<section class="my-16 px-4">
<h3 class="mt-12 mb-8 text-center">Trusted by top engineering teams</h3>
<div class="container mx-auto">
<div class="lg:flex items-center justify-center my-4">
<a data-track="customer-logo" href="https://www.snowflake.com/" target="_blank" rel="noreferrer noopener">
<img class="mx-auto my-8 md:my-0 lg:mx-8 h-12 mx-8" src="/logos/customers/snowflake-logo.svg" alt="Snowflake" title="Snowflake" />
</a>
<a data-track="customer-logo" href="https://www.tableau.com/" target="_blank" rel="noreferrer noopener">
<img class="mx-auto my-8 md:my-0 lg:mx-8 h-12 mx-8" src="/logos/customers/tableau_logo.png" alt="Tableau Software" title="Tableau Software" />
</a>
<a data-track="customer-logo" href="https://www.mbusa.com/" target="_blank" rel="noreferrer noopener">
<img
class="mx-auto my-8 lg:my-2 lg:mx-8 h-12 mx-8"
src="/logos/customers/mercedes-benz-RDNA_logo.png"
title="Mercedes-Benz Research and Development"
alt="Mercedes-Benz Research and Development"
/>
</a>
<a data-track="customer-logo" href="https://www.mindbodyonline.com/" target="_blank" rel="noreferrer noopener">
<img class="mx-auto my-8 lg:my-2 lg:mx-8 h-6 mx-8" src="/logos/customers/mindbody_logo.svg" alt="MindBody" title="MindBody" />
</a>
<a data-track="customer-logo" href="https://www.nih.gov/" target="_blank" rel="noreferrer noopener">
<img class="mx-auto my-8 lg:my-2 lg:mx-8 h-10 mx-8" src="/logos/customers/nih.png" alt="National Institutes of Health" title="National Institutes of Health" />
</a>
</div>
</div>
<p class="text-blue-500 text-center font-bold mt-10">
<a class="link" data-track="logos-case-study" href="/case-studies/">Read our customer use cases</a> &rarr;
</p>
</section>
<!-- Automation API -->
<section id="automation-api" class="container mx-auto mb-12 px-8 lg:px-0">
<div class="flex flex-col lg:flex-row">
<div class="w-full lg:w-5/12 px-8">
<h3>Programmatic Infrastructure as Code</h3>
<p>
Pulumi <a href="/automation/">Automation API</a> exposes the full power of infrastructure as code through a programmatic interface, instead of
through CLI commands. Automation API lets you use the Pulumi engine as an SDK, enabling you to create software that can create, update, configure, and destroy
infrastructure dynamically. This enables you to build custom cloud interfaces that are tailored to your team, organization, or customers.
</p>
{{ partial "sparkle-arrow-cta" (dict "url" "/blog/automation-api" "text" "Learn More About Automation API" "textColor" "grey" "textAlign" "left") }}
</div>
<div class="w-full mt-8 lg:mt-0 lg:w-7/12">
<img class="shadow-xl rounded" src="https://www.pulumi.com/uploads/content/blog/automation-api/http.gif" alt="Pulumi over HTTP" />
<!-- {{ partial "code" (dict "code" .Params.automation_api_code "lang" "js" "mode" "dark" "chrome" true) }} -->
</div>
</div>
</section>
<!-- AWSX -->
<section id="awsx" class="container mx-auto mt-32 mb-12 px-8 lg:px-0">
<div class="flex flex-col lg:flex-row">
<div class="w-full order-last mt-8 lg:mt-0 lg:order-first lg:w-1/2">
<pulumi-chooser type="language" options="typescript,python,go,csharp,java,yaml">
<pulumi-choosable type="language" class="highlight" value="typescript">
{{ partial "code" (dict "code" .Params.awsx.ts "lang" "ts") }}
</pulumi-choosable>
<pulumi-choosable type="language" class="highlight" value="python">
{{ partial "code" (dict "code" .Params.awsx.py "lang" "go") }}
</pulumi-choosable>
<pulumi-choosable type="language" class="highlight" value="go">
{{ partial "code" (dict "code" .Params.awsx.go "lang" "go") }}
</pulumi-choosable>
<pulumi-choosable type="language" class="highlight" value="csharp">
{{ partial "code" (dict "code" .Params.awsx.csharp "lang" "csharp") }}
</pulumi-choosable>
<pulumi-choosable type="language" class="highlight" value="java">
{{ partial "code" (dict "code" .Params.awsx.java "lang" "java") }}
</pulumi-choosable>
<pulumi-choosable type="language" class="highlight" value="yaml">
{{ partial "code" (dict "code" .Params.awsx.yaml "lang" "yaml") }}
</pulumi-choosable>
</pulumi-chooser>
</div>
<div class="w-full order-first lg:order-last lg:w-1/2 px-8">
<h3>Use Well-Architected Practices</h3>
<p class="mt-0">
Pulumi Crosswalk for AWS is a collection of libraries that use automatic well-architected best practices to make common infrastructure-as-code tasks in AWS
easier and more secure. Secure and cost-conscious defaults are chosen so that simple programs automatically use best practices for the underlying
infrastructure, enabling better productivity with confidence.
</p>
<h5>Deploy CDK Constructs with Pulumi</h5>
<p>
You can deploy any AWS CDK construct from within a Pulumi deployment. If you're already using AWS CDK, you can now use Pulumi to orchestrate deployments instead
of CloudFormation. This gives you [improved deployment speed](/case-studies/panther-labs/#proving-pulumis-advantages/) and integration with all features of
Pulumi (like [Policy as Code](/docs/using-pulumi/crossguard/), [Audit Logs](/docs/pulumi-cloud/audit-logs/), Secrets, and much more).
</p>
<h5>Application and Infrastructure Together</h5>
<p>
Crosswalk enables you to blur the lines between application and infrastructure code enabling you to author an entire full-stack application in one program. With
support for inline Lambda functions and ease-of-use helper functions, building robust applications on AWS has never been easier.
</p>
{{ partial "sparkle-arrow-cta" (dict "url" "/docs/clouds/aws/guides/" "text" "Learn More About Crosswalk" "textColor" "grey" "textAlign" "left") }}
</div>
</div>
</section>
<!-- Start AWS re:Invent takeover content -->
<section id="workshops" class="container mx-auto text-center mb-12 mt-24">
<h2 class="mb-16">Watch a workshop</h2>
<ul class="flex flex-col px-0 lg:flex-row list-none text-left items-center">
{{ $webinars := (where $.Site.Pages "Type" "webinars") }}
{{ $reInventWorkshops := slice }}
{{ range $webinars }}
{{ if eq .Params.title "Building a Kubernetes Platform in Amazon EKS with Pulumi" }}
{{ $reInventWorkshops = $reInventWorkshops | append . }}
{{ else if eq .Params.title "Deploying Microservices with Pulumi and AWS Lambda" }}
{{ $reInventWorkshops = $reInventWorkshops | append . }}
{{ else if eq .Params.url_slug "introduction-to-pulumi" }}
{{ $reInventWorkshops = $reInventWorkshops | append . }}
{{ end }}
{{ end }}
{{ range $reInventWorkshops }}
{{ $link := printf "/resources/%s" .Params.url_slug }}
{{ $displayDate := "" }}
{{ if .Params.multiple }}
{{ $displayDate = dateFormat "January 2, 2006" (index (.Params.multiple) 0).datetime }}
{{ else }}
{{ $displayDate = dateFormat "January 2, 2006" .Params.main.sortable_date }}
{{ end }}
{{ $tileOptions := (dict "pageContext" $pageContext "external" false "filters" "" "link" $link "icon" "users" "description" .Params.meta_desc "displayDate" $displayDate "data" . ) }}
{{ partial "content-tile.html" $tileOptions }}
{{ end }}
</ul>
</section>
<section id="get-started" class="container mx-auto my-32">
<h2 class="text-center">Get Started</h2>
<div class="flex">
<div class="w-1/2 p-8">
<div class="shadow-2xl bg-violet-600 px-16 pt-4 pb-12 rounded">
<h4 class="text-white">Get started now</h4>
<p class="mb-16 text-white">Deploy your first app in just five minutes. Follow our tutorials for AWS, Azure, Google Cloud, Kubernetes, and more.</p>
<a href="/docs/clouds/aws/get-started/" class="btn-secondary">Get Started</a>
</div>
</div>
<div class="w-1/2 p-8">
<div class="shadow-2xl px-16 pt-4 pb-12 rounded">
<h4>Migrating from other tools</h4>
<p class="mb-12">Transition to Pulumi with converter tools for Terraform, AWS CloudFormation, Azure Resource Manager, and Kubernetes.</p>
<a href="/docs/using-pulumi/adopting-pulumi/" class="btn-secondary">Explore Convertor Tools</a>
</div>
</div>
</div>
</section>
{{ partial "hand-raise-section" . }}
{{ end }}