Developer platform: deploy securely and scalably with StackSpot

Cover of the developer platform article with a man and a woman, both white, sitting in office chairs in front of a monitor displaying programming codes. The woman points at the screen and the man watches.
Get to know StackSpot as a developer platform. Learn about the key features that make applications more agile, scalable and secure.

Agility in software development is vital for success in today’s world. Every modern company needs a developer platform, now a standard tool across organizations of all maturity levels. 

In this article, we’ll explore StackSpot, a developer platform packed with features designed for standardization, scalability, and application security. Let’s dive in!

What is a developer platform?

A developer platform can be anything from a “developer portal” offering standard team practices and automation scripts for standardization to a platform enabling developers to use self-service automated processes.

The maturity of a platform is therefore determined by the capabilities that have already been developed and implemented. In summary, a platform that can handle the five key components outlined below:

  • Application configuration management;
  • Infrastructure orchestration;
  • Environment configuration management;
  • Deployment management;
  • Access and permission management (RBac/Abac/Pbac).

StackSpot and developer platform

StackSpot is a developer platform that offers the major advantage of allowing you to leverage a robust, ready-to-use solution, instead of creating everything from scratch and acquiring new skills. 

The platform provides a comprehensive foundation that optimizes the entire development process, enabling teams to focus on delivering value quickly and securely.

Customized workspaces for each team

StackSpot allows us to create dedicated Workspaces for each team, offering an organized and contextualized development environment. This approach ensures that each team has the necessary resources and configurations to work efficiently. 

We use this approach internally to structure access to our platform:

Image from the developer platform article with screen showing the Workspaces available within the environment.

Granular management of access and cloud accounts

With StackSpot, we configure access to Workspaces, ensuring that each team member has the appropriate level of access to perform their tasks. This prevents unauthorized access and safeguards the company’s confidential data.

Next, we create groups for the teams, adding members and assigning roles to each person accordingly.

We also define the Resources that each group can access, allowing granular additions of resources:

Image from the developer platform article with types of resources listed that can be added to groups.

Standardization, scalability, and security with Plugins

Teams rely solely on Plugins created in the platform team’s Studio to build their applications and infrastructure resources in the cloud. This approach ensures standardization, scalability, and security across the entire development process.

Image from the developer platform article with EDP Studio home screen

Plugins are shared with teams’ Workspaces through the concept of Stacks, where they are grouped based on their purpose. The Stacks and Plugins are versioned and documented, providing clear insights into how they function and evolve over time.

Image from the developer platform article with Stack Core screen on the developer platform, showing the Plugins listed.

Image from the developer platform article with Plugin details screen showing documentation.

Rapid creation and deployment of new applications 

Now, check out the day-to-day experience of a developer using StackSpot to create a new application and its infrastructure. The process is straightforward and intuitive, following these steps:

  1. In the terminal, the first step is to log in to the platform using the “stk login” command.
  1. Next, select your team’s Workspace with “stk use workspace”. For demonstration purposes, we’ll use the platform team’s own Workspace.
  1. Create the application from a Starter. In our example, we’ll create a simple Application that lists files from an S3 Bucket and runs on our Kubernetes Cluster. So, here, we’ll use the eks-app Starter, which already initializes the application with the pipeline ready to be deployed when needed. To do it we use “stk create app app-python“, and from cli we answer the required steps like, studio, stack, starter, and after that fill the inputs from the plugin creator”.
  2. Now, the user defines the infrastructure resources for their application. An ECR repository is needed to store the application’s images, and an S3 Bucket will serve as a source for listing the files it contains.
    1. Then, list the Studio Plugins and apply them:
      1. list them using “stk list plugin –studio edp”
  1. applying the ECR repository using “stk apply plugin edp/core/ecr-repository” and answer its inputs
  2. applying the S3 Bucket in our case “stk apply plugin edp/core/s3-bucket” and answer its inputs
  1. We can register the application in StackSpot with “stk register app”. It will then be visible on the portal and ready to start deploying. 
  1. We will perform the application’s initial deployment in our development environment version 0.0.1 so we use “stk deploy app -e development -v 0.0.1”. The infrastructure resources (ECR and S3 bucket) will already be provisioned.
  1. In the portal, you can see the Connection Interfaces created for the resources provisioned in the cloud.
Image from the developer platform article with StackSpot interface screen with the Connection Interfaces app-python-s2 option.

  1. Let’s apply the Plugin that generates our example Python code, in our case “stk apply plugin edp-private/edp-demo-python/edp-app-python”
  1. Our Plugin generates the Dockerfile and app.py:
Image from the developer platform article with StackSpot screen with the Dockerfile option selected with the code.

Image from the developer platform article with StackSpot screen with app.py selected and the code.

  1. Then we apply the Plugin that will generate the deployment and the other Kubernetes objects for our Application.
  1. Finally, commit & push the files, fire the pipeline, and we’ll have our application ready for internal access:
    1. Our pipeline is generated by the Plugin that makes use of a Reusable Workflow in our Organization:
Image from the developer platform article with StackSpot screen with the deploy-dev.yaml option selected. 

Image from the developer platform article with Screen triggering the development pipeline.

Image from the developer platform article with Screen triggering the development pipeline.

  1. We’ve added an example file to the Bucket:
Image from the developer platform article with Screenshot with the example file.

  1. As our Plugins already define internal address patterns for the Applications, everything is already provisioned and, via our internal VPN, we can access our new application:
Image from the developer platform article with Screen with the final result of the Plugins.

Conclusion

StackSpot has become an indispensable platform for our software development process. 

By creating customized Workspaces, granular access management, standardized Plugins, and automated pipelines, we have accelerated the development of new applications, ensured the security and scalability of the infrastructure, and optimized the teams’ time.

In short, StackSpot enables us to work more efficiently and collaboratively, driving innovation and the success of our company.

Please leave a comment below if you have any questions about developer platform!

Consume innovation,
begin transformation

Subscribe to our newsletter to stay updated
on the latest best practices for leveraging
technology to drive business impact

Related posts