Part Three
We recognise that in having such complex server layouts and systems in place, the challenge becomes ensuring a strong developer experience.
To wrap up this series we'll discuss how we work with you to smooth the way.
User Experience
All people in your organisation who interact with Code Enigma systems and servers will have one single user account. We'll provision a Code Enigma user for all your staff who need to raise tickets, access deployment tools, access servers, etc.
They'll use the same user for everything. The same credentials are used for logging into staging websites, logging into ticketing, logging into servers, managing your own users, even logging into Drupal if you wish. We've implemented single sign-on across all our services to make your lives easier.
As part of your package you'll automatically receive an account with our ticketing system, a dedicated ticketing dashboard and your own space on our secure file sharing platform, Nextcloud. Your developers will also get access to monitoring services, deployment tools and even version control, if you require it.
Utilities Server
We almost always insist clients invest in their own developer utilities server. This is normally an additional 4GB virtual machine that can house your Git repositories (using a system called Gitlab), your dedicated deployment scripts (which are triggered using the Jenkins Continuous Integration system) and potentially run things like automated testing services. A utilities server is also used for deploying AWS infrastructure and other AWS related administration tasks, such as orchestrating AutoScale cluster builds.
Development Server
We also recommend a dedicated development server, for holding development and staging versions of your websites.
Once utilities and dev servers are in place, the typical developer experience is:
-
Jenkins triggers our deployments scripts automatically once it detects changes in the Git repository where the code is stored.
-
All your developers need to do to deploy code is push it to the repository.
-
Our Git system, Gitlab, allows for locking and control of branch access, so you can ensure only senior staff can push changes to certain branches. Whether you take advantage of this feature or not, development and staging versions of your site are built automatically, without your developers needing to do anything more than push their code.
We also support feature branching. Note, our continuous integration is provided "as is" and is freely available on GitHub. Clients are not obliged to use our CI or GitLab, we are in fact agnostic. However, if you have no preference and Jenkins will be in place anyway it makes sense to use our tools.
Thank you for reading this series, hopefully it's been insightful! Please contact us to discuss how we can help you.