Jon Shanks, May 30, 2023
As technology continues to evolve, platform engineers are increasingly being asked to enable developer self-service with existing technologies. This can be a daunting task, as it requires a deep understanding of the underlying technologies and how they interact with each other.
Jon Shanks and Jay Keshur discuss how cloud technology has made it easier to provide self-service. They also elaborated on the importance of playing to people’s strengths when it comes to upskilling developers and operations teams in the cloud, the use of self-service technologies such as Kubernetes and Terraform, and the goal of self-service.
Research has shown that it’s crucial for members of the platform engineering team to concentrate on their specific areas of responsibility. This approach ensures that each team member can give their best effort, resulting in positive outcomes and successful project delivery. Additionally, a self-serving technology can be considered effective when it seamlessly integrates with other technologies and produces results that are beneficial for platform engineers and user-friendly for end-users.
They discussed the evolution of self-service technologies over time, starting from simple ticket requests to accessing complex operating systems like Linux or Windows. They specifically highlighted how cloud technology has significantly simplified the process of providing self-service options.
During their discussion, Jay and Jon elaborated that for the platform engineers to create an enabling environment that allows developers to quickly and easily deploy their applications without having to rely on manual intervention from the engineering team, there is a need to leverage existing tools and processes to create this enabling environment. The first step in enabling developer self-service is understanding what technologies are available and how they can be used together.
Afterward, Jay mentions that it is important for platform engineers to take time to research different solutions that could potentially provide the necessary functionality for their application. This includes looking into cloud providers such as Amazon Web Services (AWS) or Microsoft Azure, as well as open-source solutions like Kubernetes or Docker Swarm. When this is achieved, it can be agreed that the purpose of creating an enabling environment has been reached.
To better understand the deployment of self-service technologies, it’s essential to recognize the significant advancements they’ve undergone in recent years. In the past, self-service technologies were often complicated to use and implement. Jay explained that the history of self-service technology was quite remarkable. βIn the past, self-service was about requesting a Linux box, or something like that, without having to wait. But it was not attached to any value and obfuscated work done by others to make that a thing. Fast forward to now, and cloud computing has made self-service easier with templates and configurations. With containers, the configuration one has to maintain to provide self-service is even smaller, but the experience has to be good, and the outcome has to be considered.β
Deploying these technologies can be a daunting task that requires immense effort and expertise. The executives provided a detailed explanation of the steps, which included:
By automating this process, developers can quickly deploy their applications without having to intervene manually at any point in the process.
Platform engineers need to focus on ensuring that all the essential components are available and in place before deploying, including automating the deployment process. They must ensure that all the necessary configuration files have been correctly set up beforehand and that all required libraries are installed on the production systems. Before deploying to the production servers, any custom code, such as plugins or scripts, that is needed for deployment must be thoroughly evaluated to prevent any unforeseen issues. It’s crucial to exercise diligence and attention to detail throughout the deployment process to achieve a smooth and successful launch.
Furthermore, it is essential for platform engineers to keep a close eye on deployments once all components are in place and the system is ready for launch. This involves actively monitoring for errors or performance issues during the launch process, ensuring that any problems can be addressed promptly. This level of vigilance is particularly crucial when dealing with large-scale deployments across multiple environments, such as staging and production.
Jay and Jon were brimming with excitement as they discussed the benefits of self-service technology. They highlighted how it has made life easier for users over the years, thanks to its user-friendly interfaces and streamlined deployment process.
To enable developer self-service within their organization, platform engineers can leverage existing technologies and build automated processes around them. This will empower developers to deploy their applications more easily while still maintaining control over crucial deployment factors like security settings and performance monitoring tasks.
They also discussed the need for documentation, versioning, lifecycle management, security testing, and visibility of developers’ decisions regarding cost and identity management.
But how does a developer know how to consume these services? According to Jon, “They can refer to documentation, module libraries, or catalogues to understand the spec and optional variables.” Standardising technology stacks, creating patterns for self-service, and ensuring developers can deliver software quickly and securely allow for a focus on business value.
With careful planning and execution of these steps outlined above β along with ongoing monitoring after launch β organizations will be able to reap significant benefits from enabling developer self-service within their environment while still maintaining control over critical aspects of development operations.