A managed automation solution makes your organization more efficient. Smart usage of technology to perform a variety of daily, repetitive, manual and/or mandatory tasks, saves both time and money. In today’s world, cloud-native infrastructure, DevOps mindset, and organization culture are a must. We want (and need) as much automation as possible. Check out what the managed automation process looks like through three phases of cloud adoption (cloudization).
PHASE I: Where am I?
In the beginning, it’s necessary to determine the following:
1. What is the current status of automation?
2. Is this on-premise or cloud environment?
3. What is the status of the business procedures documentation and technical processes – is everything documented and transparent?
The answers to these questions often require a thorough analysis of processes and procedures, as well as refreshing existing documentation or creating a new one. The goal is to get a detailed picture of the environment in question and determine the biggest pain points. These pain points can be:
- A lot of manual repetitive procedures that must be identified and documented
- Various cron jobs or task schedulers on different systems
- Mandatory manual health checks and backup procedures need to be automated
- Often new updates and deployments that are manual tasks
The status of these issues depends on the used infrastructure. If the infrastructure is completely or partly on the cloud, the environment is often more automated than on-premise ones. On the other hand, on-premise environments usually have older legacy processes in place and more manual work done by operators or system administrators.
PHASE II: What do I want?
When we have a clear picture of the environment, we can discuss expectations and the end goal. At this point, all systems and procedures are well documented and transparent. Therefore, we can establish goals for all system components – how will each component look at the end of the automation/migration/cloudization process.
In this phase, we consider business rules, government regulations, costs, available personnel (specialists, engineers), scalability, and company preferences. Also, it’s necessary to determine the best option considering automatization for individual system components – which software solutions adapt the best to the environment, and what’s the best infrastructural solution (on-premise, hybrid cloud, or cloud).
For example, a public cloud solution is a good practice when dealing with a dynamic highly scalable, and highly available solution with expected significant variations in loads. However, if the company wishes to decrease costs and has available technical skills in-house, some components can be installed on-premise. This gives the company greater control over the systems, faster reaction time in case of a problem, helps mitigate security risks and fulfills possible government regulations considering sensitive data.
On the other hand, from a mainly on-premise infrastructures perspective, some less sensitive systems or systems that need greater scalability can be implemented in the cloud environment.
There’s no silver bullet architecture that suits the best to everyone and everything. Usually, the final architecture is a compromise between costs, security, availability, and other components analyzed. However, in any hybrid cloud solution, it is highly recommended to automate as many procedures and tasks as possible. Some of the key concepts that should be implemented are DevOps, Infrastructure as a code, and automation of repetitive tasks by using the best available tools.
PHASE III: Which way to go?
Automation and cloudization can start when everything is well documented, all current procedures (AS-IS state) are in place, and the final architecture and procedures of the future environment (TO-BE state) are decided. Most often, this is a road of many steps, especially for older non-automated on-premise environments. Lets take a look at the necessary steps:
- Installation and configuration of modern system components needed for various tasks (runtime environments, networking, SSO, CI-CD environments, databases, integrations, etc.)
- Daily administrative tasks need to be automated and developed in such a way that they can easily be migrated to a new on-prem or cloud environment
- Deployment of new apps should be configured through DevOps pipelines (this task can be very intensive if there is no DevOps pipeline in place or if it is obsolete)
- Update and patching procedure of various systems should be centralized and automated (Operation System patches and security fixes, individual components new releases and patches), implement infrastructure as a code as much as possible
- Backup and restore procedures
- Disaster recovery procedure
To ensure that all components (mini-projects) are ready on time and in the right order, good priority management and coordination are necessary. All parts of the system must be as modular as possible and easily migratable to different systems in the future. The code must be commented on and versioned. All documentation needs to be versioned and easily accessible at a centralized place.
Why managed automation?
Managed automation is a prerequisite for any kind of centralization, transparency, and modularity of tasks. CROZ experts are here to help you with the whole migration/automation procedure – from planning, consultancy and configuration to development, documentation and education.
Some of the technologies/tools we love and use:
- Cloud platforms – AWS, Azure, GCP
- System Automation tools – Ansible, Terraform
- Platforms – OCP, OKD
- Monitoring/loggging/tracing – ELK, Prometheus, Grafana, Loki, Sentry, Jaeger
- CI/CD – Jenkins, Gitlab, ArgoCD
Secrets management – HashiCorp Vault
Photo by Jelleke Vanooteghem on Unsplash.