Description of Assignment
During this internship, you will set up and automate Curity (an Access Management tool) in a scalable infrastructure. The focus is on deploying the tool in a DevOps manner across multiple environments: test, acceptance, and production. Redundancy will be provided by running multiple instances per environment, spread across virtual machines or within a Kubernetes cluster.
What will you do?
- Design a deployment strategy that can be VM-based or Kubernetes-based
- Automate installation and configuration via CI/CD pipelines (e.g., GitHub Actions, GitLab CI, Azure DevOps)
- Ensure redundancy and availability within each environment
- Integrate Curity with different authentication methods in an end application
- Document the process and deliver a reusable setup
What will you learn (technical)?
- Working with DevOps tools and principles, including applying automation and continuous integration
- Applying Infrastructure-as-Code with tools such as Terraform, Helm, Ansible, and Git
- Provisioning and managing Kubernetes clusters and/or virtual machines
- Setting up and managing CI/CD pipelines for efficient software delivery
- Integrating Curity with an end application
Which soft skills will you develop?
- Communication skills: reporting and documenting clearly and professionally, and collaborating with colleagues and stakeholders
- Teamwork: functioning effectively within a multidisciplinary team in an agile environment
- Problem-solving: analyzing technical challenges and resolving them independently or in consultation
- Self-organization: taking responsibility for your tasks, planning, and progress
- Critical thinking: substantiating choices and continuously improving based on feedback and evaluation
- Customer focus: considering user needs and business context when designing solutions
Project Methodology
- The internship assignments follow the Scrum project methodology to ensure a structured and efficient approach to (sub)tasks.
- This reflects IdentIT’s project approach.
- Scrum is a flexible framework that:
- Promotes collaboration
- Encourages adaptability
- Ensures transparency
- The work is organized into time-boxed iterations called sprints:
- Each sprint lasts 2 to 3 weeks
- Each sprint has clear objectives and tasks
- At the start of each sprint:
- Intern(s) and supervisor(s) hold a sprint planning session
- Objectives are defined
- A sprint backlog is created
- During the sprint:
- Weekly stand-up meetings take place
- Progress is discussed
- Potential obstacles are identified and addressed
- At the end of each sprint:
- A sprint review is conducted
- If possible, a demo is given
- Feedback is collected
- Scrum contributes to a collaborative and adaptable work environment.
- The goal is to achieve the best possible results within the given timeframe.
MVP
The minimum feature set we expect is:
- Final application (in 3 environments) integrated with Curity and supporting different authentication methods (such as username/password, MFA, etc.)
- Three environments (test, acceptance, and production) where configuration can be “promoted” between environments
Expected Outcomes
At the end of the assignment, the following outcomes are expected:
- (Technical) analysis of the problem statement
- Architecture of the required components
- The MVP and possible extensions
- Demo of the DevOps integration/functionality
- Documentation