Introduction to Porter: Deploy Applications with Ease

In the realm of cloud computing, deploying applications efficiently and effectively is crucial. This is where Porter, a platform as a service (PaaS), comes into play. Porter runs in your own cloud, bringing the magical experience of deploying an application with just a few clicks into a cloud provider of your choice, whether that is AWS, GCP, or Azure. With Porter, you can provision and manage the underlying infrastructure effortlessly - simply point at your repository and Porter will handle the rest, from building your application to autoscaling it.

What is Porter?

Porter is a platform as a service (PaaS) that seamlessly integrates with your chosen cloud provider, be it AWS, GCP, or Azure. It simplifies the deployment process by managing the underlying infrastructure for you. All you need to do is connect your repository, and Porter takes care of everything else, from building your application to scaling it automatically.

Getting Started with Porter

To get started with Porter, you can refer to their comprehensive documentation:

Provision Infrastructure

Connecting your AWS, GCP, or Azure account to Porter is straightforward. Porter will guide you through the process of provisioning resources in your selected cloud provider. This setup allows Porter to manage and scale your applications efficiently.

Provisioning on Different Cloud Providers

Porter provides detailed instructions for provisioning infrastructure on various cloud providers:

Deploying Applications

Deploying applications with Porter is designed to be as seamless as possible. You can deploy from a GitHub repository, Docker registry, or even write your own workflow. This flexibility ensures that you can integrate Porter into your existing development and deployment processes without any hassle.

Launch Your Application

To launch your application, navigate to the Porter dashboard and click on New Application. After naming your application, you'll be prompted to deploy it from a Git repository or a Docker registry. If you choose to deploy from a Git repository, your application will automatically update when there is a push to the specified branch. For those who maintain their own CI/CD pipelines and docker images, deployment from a Docker registry is also supported.

Installing the Porter GitHub App

Before you can start deploying your application, you need to install the Porter GitHub app. This app integrates with your GitHub repositories, allowing Porter to manage your deployments seamlessly. Once you’re redirected to a GitHub authorization and installation screen, select the repositories you want to integrate with Porter.

Why Porter?

Many companies initially build on a PaaS but eventually migrate away as they scale due to technical and economic constraints. The simplicity of traditional PaaS platforms may be appealing at first, but they often come with the risk of being locked into inflexible infrastructure. This presents a dilemma: should you build on a PaaS to move fast, or run your own infrastructure to avoid future problems?

The Porter Advantage

Porter offers the best of both worlds by combining the simplicity of a PaaS with the flexibility of managing your own infrastructure. You can fully control your infrastructure, and if necessary, directly interact with it through your cloud provider. Additionally, Porter allows you to eject your infrastructure if needed, ensuring there is no vendor lock-in.

Simply put, Porter is a PaaS that you can’t outgrow.

Relationship with Kubernetes

Porter runs on top of Kubernetes, leveraging its powerful orchestration capabilities while abstracting away its complexity. Porter manages each cloud provider’s native Kubernetes offering (i.e., EKS on AWS, GKE on GCP, and AKS on Azure), making it accessible even to teams who are not familiar with Kubernetes.

Simplified Kubernetes Management

For those daunted by Kubernetes, it's important to note that Kubernetes is an incidental implementation detail. You don’t need to know much about Kubernetes to use Porter effectively. In fact, many traditional PaaS platforms run on top of Kubernetes, although this detail is hidden from the end user. This means that users migrating from another PaaS to Porter often experience no learning curve.

Internal Developer Platform

Porter can serve as a foundational layer for building your own internal developer platform. It is completely open-source with a commercial license, allowing you to experiment with and customize the codebase to suit your needs. You can explore Porter’s GitHub repository here. For more information, you can contact Porter for a demo and pricing details.

Building on Porter

During project creation, Porter prompts you to provision resources in a cloud provider of your choice. This setup enables Porter to manage the underlying infrastructure in your cloud. For step-by-step instructions on provisioning infrastructure, refer to the links provided earlier.

Applications and Services

Understanding the concepts of Applications and Services is key to using Porter effectively. An Application is a group of Services that share the same build (i.e., container image) and environment variables. Services within the same application cannot run different builds or have different environment variables. If you need to deploy applications with different container images or environment variables, you will need to deploy them as separate applications.

Types of Services

Porter supports three different types of services, each designed to meet specific deployment needs. Detailed information on these service types can be found here.

FAQ

How much does the underlying infrastructure cost?

The cost of your infrastructure varies based on the amount of resources you use. By default, clusters provisioned by Porter cost around $200 per month.

What does Porter-provisioned infrastructure consist of?

Infrastructure provisioned by Porter on AWS includes a VPC, a Network Load Balancer, and an EKS cluster. The EKS cluster consists of three node groups: two t3.medium instances for system workloads, one t3.large instance for monitoring workloads, and a t3.medium instance for application workloads that scales based on usage. The architecture is similar on GCP and Azure, with equivalent components on each cloud provider.

Conclusion

Porter bridges the gap between traditional PaaS platforms and the flexibility of managing your own infrastructure. By leveraging Kubernetes, Porter provides a powerful, scalable solution that simplifies application deployment and management. With Porter, you get the best of both worlds: the ease of use of a PaaS without the limitations of vendor lock-in. Whether you're a small startup or a large enterprise, Porter can scale with your needs, ensuring that you never outgrow your platform.

To learn more about how Porter can revolutionize your application deployment process, visit their documentation or contact them for a demo. Porter is the future of PaaS, offering unparalleled flexibility and control over your cloud infrastructure. Start your journey with Porter today and experience the magic of seamless application deployment.

Next Post Previous Post
No Comment
Add Comment
comment url