Vadym Fedorov is a Solutions Architect at SoftServe, a leading global software application development and consulting company, and a regular blogger on the SoftServe United blog. Vadym has 12 years experience in enterprise application development, as well as 2 years’ experience in Cloud and operations optimization.
Any typical enterprise company has a “zoo of apps” running on different operating systems, and these are not without their challenges.
User Management/Authentication and Authorization
When having a “zoo of apps” it’s a good idea to manage all users and their permissions in one single place. However, in most cases it’s not easy for a number of reasons: each application has its own credential storage, different applications use different protocols, etc. The result is a mess in user management. Imagine if a user leaves a company and the SysAdmin needs to revoke user access from several systems, what is the chance that the admin forgets to revoke access from somewhere?
In order to avoid similar issues yourself, build a centralized user directory and integrate it with the whole set of enterprise applications. The integration can be done by using standard protocols such as SAML, OAuth 2.0, or Openid Connect in case applications support such protocols. It may also be accomplished by using the enterprise integration patterns, mainly RPC, Shared Database, or File Transfer.
Windows and Unix-based operation systems such as Linux require different approaches to configuration management. One of the approaches is to hire staff with significant Windows and Linux management experience, but this can be done only if you already have two independent teams with differing knowledge and tools sets.
A much better solution is to use cross platform configuration management tools or tools that bring single user experience to the ops. For example, Chef and Puppet work fine for Windows and Linux. The Microsoft PowerShell Desired State Configuration (DSC) uses the same idea and syntax in a way very similar to the Puppet’s, which makes it easy to switch people from the Puppet to DSC and back.
Log Management, System, and Application Performance Monitoring
Applications and operational systems provide logs and performance metrics in different formats, by different protocols using different endpoint types. In order to collect monitoring and log data, use the open source cross platform tools such as LogStash, Riemann, Zabbix, etc. When it comes to storage, give it a go with Elastic (formerly known as ElasticSearch), MongoDB or InfluxDB. For data representation, try Graphite, Kibana, etc.
Just like an orchestra needs a conductor, the secret ingredient which can help overcome all these challenges and convert the “zoo of apps” to an integrated enterprise system is an enterprise architect: a person who has experience in different areas, has a better vision of the system components, and can manage this “zoo of apps”. Their expertise helps perform system assessment, identify gaps, and propose a solution to integrate the systems for operational efficiency optimization, creating new value for business.