Skip to content
/ adhar Public

ADHAR Internal Developer Platform - Open Foundation for Modern Businesses

License

Notifications You must be signed in to change notification settings

adhar-io/adhar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Adhar Logo Adhar Logo

ADHAR - Open Foundation for Modern Businesses

Releases Docker pulls Build status Last commit License Website adhar.io

💡 Adhar aims to revolutionise the software development by providing a comprehensive and integrated IDP(Internal Developer Platform) that seamlessly integrates the leading open-source frameworks and libraries, embraces cutting-edge cloud-native practices, utilises containerization technology, leverages cloud infrastructure, strengthens identity and access management, ensures robust API governance, offers low-code application development capabilities, powers rapid application creation with Artificial Inteligence(AI), and oversees holistic application lifecycle management. ADHAR empowers developers and businesses with an all-encompassing ecosystem to innovate, collaborate, and deliver software solutions of unparalleled quality and efficiency.

Adhar Platform Goals 🎯

  1. Comprehensive All-in-One Integrated Platform: The platform encompasses the entire software development lifecycle, from defining requirements and designing solutions to developing, testing, and deploying applications. This unified approach eliminates the need for switching between disparate tools, improving efficiency and collaboration.

  2. Enhanced Developer and Operator Experience: The platform prioritizes developer and operator experience by providing intuitive interfaces, automated tasks, and streamlined workflows. This user-centric design reduces friction and empowers users to focus on their core responsibilities.

  3. Clear Responsibility Segregation: The platform establishes clear boundaries between application teams and platform teams, promoting a well-defined division of labor. This separation of concerns ensures that each team focuses on their respective areas of expertise, enhancing overall efficiency.

  4. Holistic Governance and Compliance: The platform incorporates robust governance and compliance mechanisms to ensure adherence to regulatory requirements and maintain data integrity. This built-in compliance framework minimizes risk and promotes transparency.

  5. Platform-as-a-Product Approach: The platform adopts a product-centric approach, eliminating the need for each organization to reinvent the wheel. This shared infrastructure model reduces development costs and promotes standardization across the industry.

  6. Polyglot Technology Stack: The platform embraces a polyglot approach, supporting a wide range of programming languages, frameworks, and cloud environments. This flexibility allows developers to choose the tools that best suit their needs, fostering innovation.

  7. Continuous Evolution: The platform remains perpetually evolving, incorporating modern technology trends and industry best practices. This commitment to continuous improvement ensures that the platform remains relevant and cutting-edge.

  8. Optimal Open Source Cloud-Native Integration: The platform involves seamlessly combining open-source tools and technologies to build, deploy, and manage cloud-native applications. This integration enables organizations to leverage the flexibility, scalability, and cost-effectiveness of cloud computing while maintaining control over their infrastructure and data.

  9. GitOps for Infrastructure and Applications: The platform adheres to GitOps principles for managing both infrastructure and applications. This declarative approach ensures consistency, reproducibility, and simplified configuration management.

  10. Self-Service Resource Provisioning: The platform empowers users to provision resources on-demand, eliminating the need for manual intervention. This self-service model enhances agility and reduces administrative overhead.

  11. AI Powered Low-Code Platform: Adhar's low-code application development capabilities can empower non-technical users to create simple applications without extensive coding knowledge, broadening the pool of contributors and accelerating application development. AI can automate repetitive tasks, provide code recommendations, and accelerate application testing, leading to faster and more efficient software development.

  12. Fully Open Source: The platform embraces open-source principles, fostering transparency, collaboration, and continuous improvement. This open-source philosophy aligns with the values of the developer community and promotes innovation.

How Adhar Platform Helps 🚀

💅Design Team - AI-powered design assistance and realistic content generation are rapidly transforming the creative process, making it easier and more efficient for designers and developers to create high-quality products. Additionally, easy design-to-code and code-to-design sync tools are helping to bridge the gap between design and development, ensuring that designs are implemented accurately and efficiently.

  • Use the Figma design components to build the application design
  • AI can generate the initial DRAFT version of the design and export to Figma
  • Designers love Figma, use it with full freedom
  • Export all visual elements as design-tokens which developers consume directly
  • Keep the sync between the design and the actual application code
  • Immidiate feedback look, make the change in design, see it in actual application immidiately
  • Don't have to depend on Developers for any change, be involve with the proccess
  • Evolve your design as long as it doesn't break the contract
  • Easy Collaborate with business team, tech team on same platform

💰Business Team - Business team involvement in transparent collaboration with the Tech team is crucial for designing and developing software products that align with business objectives and meet user needs. By providing wireframes, prototypes, and detailed business requirements directly in the system used by the Tech team, businesses can ensure seamless communication and alignment throughout the development process.

  • Create the prototypes which are part of real application, no through away effort after handing over to developers
  • Involve in improving the user journey through out the lifecycle
  • All the tools at your finger tip to create awesome journeys
  • Don't depend on developers to recreate the jourenies based on your input, you take the ownership
  • Developers will help to take it forward to next stages of the lifecycle
  • Always on top of the realistic status for various features, don't have to ask tech team
  • Improve UI/UX by providing feedback to design team in same system
  • Improve functionality and app performance by giving feedback to development team
  • All the analytics in same platform for making any business decission after delivery
  • Discover the insights and improve the product incrementaly

💻 Application Team - Easy self-service is a crucial aspect of enabling developers and operators to focus on their core responsibilities and reduce the burden of managing infrastructure and resources. By providing self-service capabilities, organizations can empower their technical teams.

  • Scan source code for vulnerabilities
  • Build OCI compliant images from application code and store them in a private registry
  • Deploy containerized workloads using a developer catalog with build-in or BYO golden path templates
  • Automatically update container images of workloads
  • Publicly expose applications
  • Get instant access to logs, metrics and traces
  • Store charts and images in a private registry
  • Configure network policies, response headers and CNAMEs
  • Manage secrets
  • Create private Git repositories and custom CI/CD pipelines

🔋 Platform Team - Platform engineers play a critical role in enabling developers to build, deploy, and manage applications effectively. By building and managing a Kubernetes-based platform, platform engineers provide developers with a self-service platform that simplifies and streamlines the process of bringing applications to production.

  • Create your platform profile and deploy to any K8s
  • Onboard development teams in a comprehensive multi-tenant setup and make them self-serving
  • Get all the required capabilities in an integrated and automated way
  • Ensure governance with security policies
  • Implement zero-trust networking
  • Change the desired state of the platform based on Configuration-as-Code
  • Support multi- and hybrid cloud scenarios
  • Prevent cloud provider lock-in
  • Implement full observability (metrics, logs, traces, alerts)
  • Create Golden path templates and offer them to teams on the platform through a catalog

👮 Management Team - It is important for the management team to have access to all the insights and reports to make the best possible business or technical decisions based on actual data points. This is because data can help to identify trends, patterns, and opportunities that would otherwise be invisible. It can also help to track progress, measure performance, and make informed decisions about resource allocation and strategy.

  • Fully integrated analytics platform
  • AI powered automated insights and recomendations
  • Various reports showcasing different aspects of the application
  • Realtime insights with zero filter
  • Usage statistics and projection
  • Easy Technology and Risk goverance
  • Visibility of end to end process

Getting started ✨

Terraform ⚡

To create new kubernetes cluster and install Adhar platform, you can use provided terraform installer based on your cloud provider. Before starting the process make sure you have a cloud account and DNS zone for cloud.example.com is ready:

NOTE: This example showing digitalocean setup, you can follow same steps for other clouds as well.

# Clone adhar repo
git clone https://github.com/adhar-io/adhar.git
cd platform/installer/digitalocean

Adjust your config in values.yaml file, e.g name, domainSuffix, domainFilters etc.

# Token configuration
API_TOKEN="<YOUR-DO-TOKEN>"
sed -i "" "s/<API_TOKEN>/$API_TOKEN/g" values.yaml
export TF_VAR_do_token=$API_TOKEN

# Run terraform
terraform init
terraform apply --auto-approve

# Destroy the setup
terraform destroy --auto-approve

Helm ⛵

To install Adhar platform on existing kubernetes cluster, make sure to have a kubernetes cluster running with at least:

  • Version 1.25, 1.26, 1.27 or 1.28
  • A node pool with at least 16 vCPU and 32GB+ RAM (more resources might be required based on the additional capabilities)
  • When using the custom provider, make sure the K8s LoadBalancer Service created by Adhar can obtain an external IP (using a cloud load balancer or MetalLB)

NOTE: Install Adhar with DNS to unlock it's full potential. Check adhar.io for more info.

Add the Helm repository:

helm repo add adhar https://chart.adhar.io
helm repo update

and then install the Helm chart:

helm install adhar adhar/adhar \
--set cluster.name=adhar-cloud \
--set cluster.provider=digitalocean # use 'azure', 'aws', 'google', 'digitalocean', 'civo', or 'custom' for any other K8s

Contribution Guide 🎓

Learn about integrating, deploying and managing your apps on Adhar platform.

Platform Architecture 🔮

Adhar platform

Platform Components

Adhar consists of the following components:

Adhar Console (Self Service Portal)

Adhar Console stands as the centerpiece of our platform, offering a seamless user experience tailored for both developers and platform administrators. It serves as a one-stop solution for a multitude of tasks. Developers can leverage the Adhar Console to build images, deploy applications, expose services, configure CNAMEs, manage network policies, and handle secrets.

On the other hand, platform administrators can use it to enable and configure platform capabilities, as well as onboard development teams. The Adhar Console goes beyond just a web-based self-service portal, providing direct and context-aware access to platform capabilities like code repositories, registries, logs, metrics, traces, and dashboards.

Moreover, it includes a Cloud Shell feature, allowing both developers and admins to run CLI commands. In essence, the Adhar Console is a comprehensive tool designed to streamline and simplify the management of your platform.

Adhar Console

Adhar Console

Command Line Interface (CLI)

The Adhar Command Line Interface (CLI) provides a powerful tool for developers and administrators to interact with the Adhar platform, enabling them to manage resources, execute tasks, and automate workflows directly from the command line.

Platform Control plane (api-server)

In the Adhar platform, the api-server plays a crucial role in enabling seamless integration. Every alteration made via the Console is first verified by the api-server within the control plane. Once validated, these changes are stored in the state store. This action initiates an automatic process where the platform aligns the actual state with the desired state, thereby ensuring smooth integration and consistency across the platform.

Adhar Assist (AI)

Adhar Assist is an innovative feature of the Adhar platform that integrates AI assistance into your workflow. It leverages advanced machine learning algorithms to provide intelligent recommendations, automate routine tasks, and enhance decision-making processes. Whether you're configuring your platform, troubleshooting issues, or optimizing performance, Adhar Assist is there to guide you. It learns from your platform's data and usage patterns, continually improving its assistance over time. With Adhar Assist, you get a smart companion that helps you make the most of the Adhar platform. As a developer, you will enjoy the assistance provided by Adhar Assist during development.

Git Based Infrastructure

Upon installation of Adhar, the desired state of the platform is captured and preserved in the Git repository, specifically within the adhar/values repository in the Gitea. This Git-based state store plays a pivotal role in infrastructure management, serving as a reliable and version-controlled source of truth. Any modifications made through the Console are promptly mirrored in this repository. This approach not only ensures consistency and traceability but also facilitates collaboration and rollback capabilities, underscoring the importance of a Git-based state store in modern infrastructure.

Golden Templates Catalog

The adhar/helm-charts Git repository houses a collection of built-in Helm charts, which serve as the backbone for creating workloads within the Console. These charts are designed as golden templates, adhering to trending technology standards, ensuring optimal performance and compatibility. In addition to the built-in charts, the platform also offers the flexibility to add custom charts. This allows users to tailor their workloads to specific needs while maintaining the benefits of standardization. Thus, the adhar/helm-charts repository is not just a resource, but a gateway to efficient and standardized workload management on the Adhar platform.

Automation & Self Service

Automation and self-service capabilities are crucial aspects of modern platforms like Adhar. Automation helps in maintaining consistency, reducing human error, and increasing efficiency by automating repetitive tasks. For instance, it can be used to synchronize the desired state with the actual state of applications, ensuring they are always in sync and reducing the need for manual intervention. On the other hand, self-service capabilities empower users by giving them direct control over their services. This not only improves user satisfaction by providing immediate access to services but also reduces the load on support teams. In the context of Adhar, a platform that serves over a billion users, these features are not just beneficial, they are essential for scalability and user satisfaction.

Platform Capabilities

The platform offers a set of Kubernetes applications for all the required capabilities. Core applications are always installed, optional applications can be activated. When an application is activated, the application will be installed based on default configuration. Default configuration can be adjusted using the Console.

Integrated Applications:

  • Istio: The service mesh framework with end-to-end transit encryption
  • Keycloak: Identity and access management for modern applications and services
  • Cert Manager - Bring your own wildcard certificate or request one from Let's Encrypt
  • Nginx Ingress Controller: Ingress controller for Kubernetes
  • External DNS: Synchronize exposed ingresses with DNS providers
  • Argo CD: Declarative continuous deployment
  • Kaniko: Build container images from a Dockerfile
  • Paketo build packs: Cloud Native Buildpack implementations for popular programming language ecosystems
  • Cloudnative-pg: Open source operator designed to manage PostgreSQL workloads
  • Tekton Pipeline: K8s-style resources for declaring CI/CD pipelines
  • Tekton Triggers: Trigger pipelines from event payloads
  • Tekton dashboard: Web-based UI for Tekton Pipelines and Tekton Triggers
  • Gitea: Self-hosted Git service
  • Velero: Back up and restore your Kubernetes cluster resources and persistent volumes
  • Knative: Deploy and manage serverless workloads
  • Prometheus: Collecting container application metrics
  • Grafana: Visualize metrics, logs, and traces from multiple sources
  • Grafana Loki: Collecting container application logs
  • Harbor: Container image registry with role-based access control, image scanning, and image signing
  • HashiCorp Vault: Manage Secrets and Protect Sensitive Data
  • OPA/Gatekeeper: Policy-based control for cloud-native environments
  • Jaeger: End-to-end distributed tracing and monitor for complex distributed systems
  • Kiali: Observe Istio service mesh relations and connections
  • Minio: High performance Object Storage compatible with Amazon S3 cloud storage service
  • Trivy: Kubernetes-native security toolkit
  • Falco: Cloud Native Runtime Security
  • Grafana Tempo: High-scale distributed tracing backend
  • OpenTelemetry: Instrument, generate, collect, and export telemetry data to help you analyze your software’s performance and behavior

Supported providers ☁️

Adhar Platform can be installed on any Kubernetes cluster. At this time, the following providers are supported:

Contribution 🙏

If you wish to contribute please read our Contributor Code of Conduct and Contribution Guidelines.

If you want to say thank you or/and support the active development of Adhar:

  • Star the Adhar project on Github
  • Feel free to write articles about the project on dev.to, medium or on your personal blog and share your experiences

This project exists thanks to all the people who have contributed

License ❄️

Adhar is licensed under the Apache 2.0 License.