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:
Consume innovation, begin transformation
Subscribe to our newsletter to stay updated on the latest best practices for leveraging technology to drive business impact
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:
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.
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.
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:
- In the terminal, the first step is to log in to the platform using the “stk login” command.
- Next, select your team’s Workspace with “stk use workspace”. For demonstration purposes, we’ll use the platform team’s own Workspace.
- 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”.
- 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.
- Then, list the Studio Plugins and apply them:
- list them using “stk list plugin –studio edp”
- Then, list the Studio Plugins and apply them:
- applying the ECR repository using “stk apply plugin edp/core/ecr-repository” and answer its inputs
- applying the S3 Bucket in our case “stk apply plugin edp/core/s3-bucket” and answer its inputs
- We can register the application in StackSpot with “stk register app”. It will then be visible on the portal and ready to start deploying.
- 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.
- In the portal, you can see the Connection Interfaces created for the resources provisioned in the cloud.
- 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”
- Our Plugin generates the Dockerfile and app.py:
- Then we apply the Plugin that will generate the deployment and the other Kubernetes objects for our Application.
- Finally, commit & push the files, fire the pipeline, and we’ll have our application ready for internal access:
- Our pipeline is generated by the Plugin that makes use of a Reusable Workflow in our Organization:
- We’ve added an example file to the Bucket:
- 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:
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!