Skip to main content

Infrastructure as Code

In some of the previous posts we have seen how to deploy some resources with Terraform. Terraform is an Infrastructure-as-Code (IaC) tool that allows to manage, version and maintain your infrastructure programmatically in OCI. But...

What is Infrastructure as Code? 


So, let's start with the concept of Infrastructure as Code (IaC). Infrastructure as Code, abbreviated as IaC, allows us to manage and provision infrastructure through code, rather than manual processes. This approach offers numerous advantages: 

  1.  The first advantage is deployment automation. You won't need to manually prepare or manage operating systems, servers, storage, or any other components. Everything becomes automated. 
  2.  Another benefit is the speed of implementation and deployment due to this automation. 
  3.  It also reduces the risk of errors by utilizing templates for deployments and eliminating manual processes. 
  4.  Lastly, using IaC ensures consistent environment creation. With a template in script form, every time it's executed, the same environment is created. It's a best practice, widely employed with most clients, to deploy a development environment for clients to conduct communication, security, and application functionality tests. Once the environment is validated, using the generated code and making minor parameter adjustments like naming and IPs, we can deploy an identical production environment in minutes, already having been tested beforehand.

How did the need for IaC arise?


The following is a list of challenges that led to the need for using this tool:

  • Complexity and Scalability: As companies grow, their technological infrastructure becomes more complex and harder to manage manually. IaC enables describing and managing infrastructure programmatically, making scalability and management of complex systems easier.
  • Consistency and Reproducibility: Prior to IaC, infrastructure configuration was done manually, increasing the risk of human errors and hindering precise environment reproduction. IaC ensures that infrastructure is configured consistently and reproducibly, crucial for consistent development, testing, and deployment.
  • Automation and Agility: IaC allows for the automation of provisioning and configuration processes, speeding up the deployment of applications and services. This is crucial in a business environment where rapid delivery of technological solutions can give a competitive edge.
  • Version Control and Collaboration: Manual infrastructure management often led to version control and collaboration issues. IaC integrates with version control systems (like Git), making team collaboration easier and tracking infrastructure changes over time.
  • Disaster Recovery and Business Continuity: IaC enables the definition of disaster recovery and high availability policies from the start, ensuring business continuity during unexpected disruptions.
  • Resource Efficiency: IaC helps optimize resources by allowing on-demand creation and removal of instances and cloud services. This leads to more efficient resource utilization and cost savings for the company.
  • Auditing and Compliance: IaC simplifies infrastructure auditing as configuration details are documented in code. This is valuable for regulatory compliance and identifying potential security vulnerabilities.
  • Infrastructure Heterogeneity: With the proliferation of cloud services and platform diversity, manual infrastructure management becomes more complicated. IaC abstracts complexity and manages multiple platforms from a single set of code definitions.

Influence on System Administration role


Infrastructure as Code directly impacts the profile of a Systems Administrator.

Firstly, it shifts from manual processes to automated ones. Not too long ago, installations were carried out using CDs, and even further back, floppy disks. Now, it's all automated.

Another significant change is the transition from physical hardware to virtualized elements and containers. This change brings about substantial advantages, such as cost savings, reduced downtime, and increased productivity and efficiency.

Administrators also gain more autonomy. In the past, if you were a systems administrator needing to install a new product, you had to engage with the systems team for a machine, communicate with the networking team to set it up on the network, and then liaise with the systems and database teams again for backups. Coordinating all of this consumed a lot of time. Now, all of these tasks can be consolidated within one individual.

Lastly, and perhaps the most significant impact, is the necessity for programming skills. If Infrastructure as Code continues to become more prominent, as is anticipated, all systems administrators will need to have programming skills in the future. This change reflects the evolving landscape where administrators will essentially become programmers.

Popular posts from this blog

Object Storage

  Object Storage in Oracle Cloud Infrastructure (OCI) is a cloud-based service that lets you store and access any kind of digital file—like photos, videos, documents, or backups—easily and securely. Instead of using folders like on your computer, it organizes everything in containers called “buckets,” where each file is an “object.” It’s designed to handle large amounts of data, so you don’t have to worry about running out of space, and your files are safely stored and always available when you need them. In OCI Object Storage, there are different storage tiers depending on how often you need to access your files: The Standard tier is for data you use regularly—it's fast and always ready.  The Archive tier is for files you don’t need very often, like old backups or logs; it’s much cheaper, but it takes a few hours to access the data when you need it.  You can move files between these tiers to save money using something called lifecycle policies —these are simple rules...

Purge Logging Analytics logs

 Is your tenant generating unexpected costs for Logging Analytics? Here is a possible solution. In the metrics you can see that as time progresses the storage used by Logging Analytics only increases. The explanation is that you are only generating logs, without deleting the old ones. Here is how you can create a Logging Analytics log purging policy: Navigate to Logging Analytics / Administration / Storage Here you can create a policy like this, which will purge the logs with more than 1 month old (for example): Also you can delete manually the Logging Analytics logs clicking the following button: