Shekhar Gulati, while being a CTO, with wide experience in providing top-level software architectural direction, has been driving decisions towards technology innovation, strategy, and governance across complex businesses. He is not just a technology pragmatist with a strong understanding of new technologies, their patterns, and paradigms and how they can be applied to meet business needs, but also has a solid background in software architecture and design. He has helped many clients via architecture guidance, review, and mentoring, and has delivered high-quality business solutions using Clean Code and DevOps practices.
Enterprises today prefer to build their internal developer platforms (IDP) for – improved developer experience, automated change management, and integrated security. While Internet as a Service (IaaS) and Platform as a Service (PaaS) vendors are already providing cloud native functionalities through application platform integrations (API). Building IDPs is more customized to an organization’s business need as it helps provide telemetry at every stage of the application delivery value stream.
An IDP approach segregates the responsibilities of the operations team and the developer team. The operations team builds and manages the platform. It is responsible for monitoring, managing performance, performance load, application schedules, database layers, and more. The Developer team is responsible to build, deploy and monitor application components on the platform. They only focus on customer needs, app relationships, and its features. Having separate responsibilities allows each group to make decisions quickly pertaining to the area of their responsibility. This reduces conflict and enables faster delivery of high-quality software.
“A digital platform is a foundation of self-service APIs, tools, services, knowledge, and support which are arranged as a compelling internal product. Autonomous delivery teams can make use of the platform to deliver product features at a higher pace, with reduced coordination.” – Evan Bottcher, Head of engineering, ThoughtWorks1
Evan’s description of a Digital platform is a key defining characteristic of an IDP. Simply put an IDP works as a self-service layer built over an existing delivery system. It enables DevOps to deliver features and services with increased speed and flexibility whether they are using the public, private or hybrid cloud.
“By 2025, 70% of new cloud-native application monitoring will use open-source instrumentation instead of vendor-specific agents for improved interoperability.” –2021 Strategic Roadmap for IT Operations Monitoring (2020, p. 2)2
Open-source application container orchestration platforms like Kubernetes provide a cost-effective option to deploy application containers across multiple hosts. It abstracts away the underlying hardware infrastructure and acts as a distributed operating system for your cluster. Containerized modern APIs built on open-source technologies like Linux containers and Kubernetes, help faster development and delivery of apps. The use of Microservices helps break applications into smaller independent components. This approach helps identify similar process components across multiple apps during application development. Optimizing apps help drive business value for a cloud-native model.
“Through 2022, 80% of organizations adopting cloud services without using a performance-focused approach for dependency mapping will experience a decrease in service quality levels.” – Predicts 2021: Infrastructure Operations and Cloud Management (2020, p. 4)3
The process of building the IDP, breaking up apps, managing and modifying them based on the data they generate, and establishing a cloud-native infrastructure can prove to be complicated and expensive. Even if you decide to build your IDP, there is the dilemma of justifying existing IT investments?
This is where large enterprises can leverage the expertise of Xebia Cloud Services for cost-effective cloud technology solutions.
Key Capabilities of owning an IDP.
IDPs in large enterprises are characterized by 4 key capabilities.
Self-service Managing APIs composed of different services across multiple environments can get complicated. IDP provides an interface between the underlying infrastructure and the teams consuming the services by using a source code management format. As the complexity of the API increases so does the complexity of the platform. The self-service feature on the platform allows developers to work at their own pace without having to make requests or wait for their fulfillment.
Reusable services Continuous Integration (CI) and Continuous Delivery (CD) workflow tools are used at every stage of the DevOps evolution. Interfaces in platform allow users to build on them creating workflows they need without having to consult a higher authority. The use of external CI/CD pipelines like Docker build and GitLab help users use external codes in their projects. Implementation of a CI/CD pipeline enables teams to deliver code changes more frequently and reliably. Integration of CI/CD with version control, email, chat, and ticketing systems allows engineers to get immediate feedback while in the flow of their work.
Observable Monitoring distributed data patterns in a microservice architecture is key to understanding the behavior of an application to troubleshoot problems. Often requests spam multiple services and log entries for requests are scattered across numerous logs. By using the distributed tracing method, external requests are assigned a unique id and included in the log, they are then traced and delivered to Zipkin Server, which gathers and displays traces. Distributed tracing helps provide insights into the behavior of the system including the sources of its latency. Developers can search across aggregated logs using external request ids to view how requests are handled.
Developer Experience (DX) Just like User Experience (UX) focuses on improving customer experience, DX focuses on creating developer experience to engage developers and to use the IDP to fuel better experiences. Organizations that treat API as a product invest in their IDP to support developers with tools and mechanisms such as – Registry of APIs, documentation, role-based access control (RBAC), sample codes and SDKs, social media SEOs and analytics that provide insight into API usage. This not only enables developers to be more creative but also helps them develop APIs faster.
Treating your IDP like a platform
It’s best not to develop a platform with a project mindset, that is build a platform and move on to the next. Platforms require constant work. You need to constantly evolve and adapt them to meet developer expectations. It needs to be a compelling internal product that developers want to contribute to and use.
What does it mean to be a product?
- Platform needs to have a backlog. A backlog is a prioritized list of work for the development team that is derived from the roadmap and its requirements. This means you need to have a product owner for the platform and they should use the tools like JIRA for project tracking.
- You need to have a long-running stable team to keep the platform stable, upto date, and deliver new features.
- You need to work with consumers of the platform to provide them an easy onboarding journey. This includes providing adequate training and writing documentation.
- You need feedback from consumers of the platform and keep Net Promoter Score (NPS) high.
Above all the platform needs to be stable, secure, and compliant.
BYOP: Build your own platform
Platforms are not a new concept. Cloud providers have been trying to provide one since 2008 in the form of a cloud delivery model called Platform-as-a-service (or PaaS). My first experience with PaaS was in 2008 when the Google App Engine was launched. The problem with the first generation PaaS solutions like Google App Engine, Heroku, OpenShift(till version 2), and more was that they were restrictive and forced you to write code in a certain manner. This changed in 2014 when Kubernetes was released. Today you can either build your custom platform on top of Kubernetes or you can use other commercial off-the-shelf platforms like OpenShift or CloudFoundry. No matter which route you take, the first step requires you to build a compelling IDP. State of DevOps report 2020 by Puppet and CircleCI4 reveals that internal platforms were key for organizations to move up the DevOps evolution ladder. Building a custom platform involves stitching together multiple open-source technologies into a productive developer workflow where the underlying complexity is abstracted from the end consumers.
We at Xebia have the expertise and knowledge to help you adopt the right strategy to be a cloud native.
Platforms are the foundation that help deliver successful digital transformation initiatives. The key to building the first version of your platform is to start small. Xebia, Binx, Oblivion, and Xpirit operate cloud services with partners like – Google Cloud, Amazon Web Services, Azure Cloud, and Alibaba Cloud to help migrate and modernize workloads to develop cloud native infrastructures and applications.
Contact our Xebia Cloud consultants to help you figure the minimal use cases you need to create the first version of the platform. We will help you identify a Minimum Viable Product (MVP) to build the platform. We focus on building compelling internal developer platforms that our customers want to use. For this, we first need to understand your requirements.
Our Cloud Consultants will help you define a cost-effective digital strategy by utilizing existing resources, provide expertise from architecture to building platforms, and conduct training to ensure that you continue your cloud journey even after we leave. Some of the customers who have benefited from our expertise in cloud-native journey include – Coin, Key bank, Proactive and NICOLAB. Connect with us to build your IDP.
1 Bottcher, E. (2018, March 5). what I talk about when I talk about platforms. MartinFowler.com. https://martinfowler.com/articles/talk-about-platforms.html
2De Silva, F., & Byrne, P., (2020, October 8). 2021 strategic roadmap for IT operations monitoring (ID: G00732455). Gartner. https://www.gartner.com
3 De Silva, F., Williams, R., Wilson, D., Chessman, J., Matchett, C., & Bhat, M.,(2020, October 9). Predicts 2021: infrastructure operations and cloud management (ID: G00734509). Gartne. https://www.gartner.com
4Puppet & Circle CI., (2020). State of DevOps report 2020