Are you looking to start an Identity Governance and Administration (IGA) project? Maybe this is a first-time endeavor, or perhaps this isn’t your first rodeo. For many who embark on the path towards adopting an identity governance solution, there is a host of potential problems staring you down. There are many common pitfalls, and some are more severe than others. In fairness, there are many important things to consider when deploying these complex solutions. Let’s look at a few that are critical for a successful implementation of IGA projects.
How many environments should I prepare and maintain?
Perhaps the most common environments are Development, Quality Assurance, Staging, and Production. Some customers maintain these solely for stress testing. Let’s dive deeper into each of these environments.
• Development – This is where your implementers develop and test the functionality of their code. It is to be expected that this environment is prone to restarts and data-pruning.
• Quality Assurance – Some customers opt to have a separate environment if they have other teams dedicated to unit testing code once it has been developed. The data in this environment is test-like, but it is good enough to test the functionality of any given component.
• Staging – This environment contains data that mirrors production. It is one of the most critical environments to have and maintain, as it is your final safeguard for catching ostensibly good code before it is promoted into production.
• Production – This is where all the magic happens for your organization. Production is expected to run cleanly, smoothly, and is not to be touched outside of a change-request window.
Many customers try to go forward in their integration without a staging environment. It seems redundant to some, and the cost associated with deploying and maintaining it can be prohibitive. Often, organizations find themselves in an unexpected situation when requirements that could’ve been caught early in the staging environment are instead wreaking havoc once code goes live in production. Therefore, a suitable testing environment that mimics your production environment is critical for success.
With this in mind, the next logical question is how to maintain and deploy code between these environments, especially when there is environment-specific data present? This is where experience and proper processes shine through. Experienced implementers leverage tools, such as SailPoint’s Services Standard Build and Deployment Accelerator, to assist them in the development and deployment process. Knowing how to construct code to take advantage of things like reverse-tokenization can be the difference between a seamless deployment and a drawn-out manual process.
However, there is more to a successful implementation than using fancy tools. Some processes must be followed. Both the individual pieces of code and the overall architecture should be framed in a manner that is modular and adaptable. There are many beneficial processes that teams can adhere to in a development lifecycle. For instance, using version control during the development cycle can significantly benefit an IGA implementation.
What is version control? It is a repository used to version and store code throughout the development process. There are many version control systems out there, with Subversion and Git being a few notable examples. While it doesn’t matter which flavor of version control you choose, it does matter how your team uses it.
Version control offers the ability for multiple developers to operate on the same segment of code with the ability to merge changes and assist in resolving conflicts, should they arise. It is also a tool that can be used to facilitate code reviews. Even experienced teams pass completed code over to other members of the team for review. This process helps to ensure that code is not only functional but that it adheres to the established standards.
Projects are always changing, whether it is code being completed or altered to meet new or changing requirements, or it is fixing bugs identified in the testing stage. Regardless of what causes the change, having a process in place that allows developers to update and commit code changes into a centralized repository, complete with version numbers and comments, only benefits your implementation and prevents many headaches down the road.
In closing, it’s essential to make sure that you have a solid plan of attack when implementing an identity governance solution. You want a clean and successful implementation: Don’t cut corners! Make sure that you’ve got the appropriate environments in place, and that the team implementing your IGA solution has a solid plan in mind for development, testing, and deployment.
As always, you can trust that the engineers at GCA can help lead you down the path of success. We align to your needs and objectives and create a shared vision together on what your results should be. Each identity governance project is unique, and our team can design a flexible, scalable solution, tailored to your specifications. We’ve completed dozens of successful enterprise-level IGA projects, and we’ll leverage our experience and creativity to get you the results you need.