44

A big part of DevOps is making it possible to release very often. That comes with automated build, automated testing, etc. You can say that to achieve its goals, DevOps need to use automation to be efficient. Here's how DevOps and automation are related. DevOps is not just automation, there's more to it. Conversely, automation is not exclusively used by "...


31

TL;DR: Chaos Monkey was developed in 2010 at Netflix and released into wild in 2012 is part of the Simian Army, wildly popular among devoted followers. Built on principles of chaos engineering, the army increases resiliency to failure by injecting constant failure to the system. Concept Chaos Monkey was developed specifically for AWS where it will randomly ...


15

Automation is a key attribute of DevOps, but it's not the full story. The question is kind-of like "What's the difference between time-boxing and Scrum?". You'll hear DevOps called a 'culture', a 'movement', a 'methodology', and all kinds of things that won't box it in well enough for you to understand it, even though those descriptions are accurate. In a ...


13

DevOps is really a cultural shift - it's intended to be about breaking down the traditional barriers between operations and development (and really also with QA and the rest of the business!). The idea is that rather than having departmental 'silos' you can work directly with other teams to get things done quicker and more efficiently. It's all about ...


10

Somewhat stealing from Ian Margett's answer as the architecture is common amongst most Microsoft/.NET development organizations, the high-level target operating model for looks something like this: The goal is to create a Continuous Deployment pipeline, using existing off-the-shelf software, namely TeamCity, ProGet, SonarQube and Octopus Deploy: GitHub is ...


8

Personally I don't see any reason for which an Artefact Repository - the recommeneded DevOps tool of managing artefacts - wouldn't be applicable to trained neural nets or other artefacts. The artefact size might have some upper limit for a particular artefact repository, but in such case it would be a technical or policy limitation one, not a fundamental/...


8

I'm posting this here not because I endorse these solutions (in fact, I've never tried them), but just because they are a potential answer to your question: You can start with JenkinsPipelineUnit, a unit testing framework for Pipeline scripts. There is also a project called jenkinsfile-runner which executes your Jenkinsfile in a transient, headless Jenkins ...


8

A judicious usage of one of the cloud "orchestration" tools, such as Terraform or possibly Fugue seems to be the best way. You can start small, pick a less important and not very extensive environment, carefully decipher it into automatable code and proceed from there. Broadly this is referred to as infrastructure-as-code, for googling and other buzzword-...


8

There is definite value in automating manual tasks and placing systems under configuration management that is done using code, not using paper and human intervention. One huge benefit is the reduction in the amount of rework. You can consider any problem caused by a human mistake in repeating the same sequence a case of rework. As well as any bug that needs ...


8

Some additions to your own answer to this question ... Additional monkeys The article about "How chaos boosts performance" describes a few more of these monkeys, i.e.: 10-18 Monkey: finds configuration and run time problems in instances that serve customers in multiple regions. Chaos Kong: simulates an outage of an Amazon region. Remark: The ...


8

IMHO it's not a good idea to directly and immediately apply a team's gains from its DevOps transformation into scaling the team down. At best you'll lose just the team's motivation to do any such improvement in the future. But most likely you'll lose most/all the talent in that team. Instead: allow the team to appreciate the benefits of the difficult ...


6

Snapshot Permissions Boto3 has a function that allows you to create volume permissions, which is what AMI Sharing with AWS Marketplace requires you to do. snapshot.modify_attribute will allow you to share your AMI with the marketplace account like so (you can also use a JSON representation if you prefer, it's in the docs): response = snapshot....


6

Your question sounds like you should have a look at what I call Features Configuration Management, aka FCM. FCM is not only about using Drupal's Features module, and not about Configuration Management (as introduced in Drupal version 8). Instead, it is a special case of Software Configuration Management, aka SCM, applied to Drupal. Mostly because Features ...


6

For the whole points and to try things there's https://learn.chef.io which allow you to test automate also. Mainly chef automate is the next iteration bringing together 4 commercial products from Chef: chef manage (UI), chef reporting, chef compliance and delivery (CI/CD) with the addition of push jobs which was open sourced a little before. Inspec is ...


6

I always saw a DBA as someone who fits in between developers and operations when it comes to database management. On the one hand, they often take care of backups, clustering, replication, actual binary installation, file system management, etc. On the other, they also take care of relational DB schema, do performance or query optimization, and advise ...


5

Considering your first paragraph, the organization you're describing is a highly siloed org, which is exactly what a DevOps organization tend to avoid. Considering this challenge, within DevOps there is a requirement to define and document all the components that constitute the various technology stacks within an IT environment. Traditionally this ...


5

I think the time and effort it will take to set up another tool that performs this type of work will be about the same as it would be to setup Jenkins. If you are looking into a different tool though, I would checkout Rundeck. It is a great tool for creating scripts and allowing other privileged users to execute them. I'm not sure if it will meet your needs ...


5

You can build and tag any stage of a multi-stage build. Just use the --target option to docker build. E.g. docker build --target jdk -t myapp-jdk:v1 . docker build --target jre -t myapp:v1 . With the layer caching, the the earlier steps will be reused from the cache and not rerun from scratch each time, so there's little downside to running the build to ...


5

This project is to support automation of running ansible playbooks. There is a GUI based project called Ansible Tower or AWX to do that, but ansible-runner seems to be the underlying layer of the automation in essence replacing ansible-playbook command. There are some really serious issues for automation when trying to use ansible-playbook as part of some ...


5

There are options you can pass through apt-get to dpkg that will handle the config choices. We usually do something like: apt-get install -y --no_install_recommends -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' <package_name> When using ansible you can do: apt: pkg: "{{ item }}" only_upgrade: yes ...


5

Alright... you're not going to implement every tool or automation at the same time, as some of them have quite deep impact on your development processes (and I daresay, development culture). Take a step-by-step approach; research each individual tool. Figure out what it actually does, what it is useful for. Play around with them, install them locally, go ...


4

One of the things I have the hardest time getting across to people is that the man-hours saved doing repetitive tasks is often only a small part of the value of automation. The bigger part is often hard to measure, and nearly impossible to estimate when automating something for the first time: how it changes the way you work. Talking with developers, this is ...


4

I would recommend taking a look at DVC - an open source version control system for data science projects. One of the basic things that it perfectly handles is managing data files (along with code) - inputs, outputs (models), intermediate results. Semantically it's similar to git-lfs but unlike git-lfs it is capable of managing files like 100GB and what is ...


4

DevOps includes automation but that's only part of it. DevOps is a cultural change to break down the silos between the different parts of the organization to provide a complete value stream. Providing a culture where business, development, quality assurance, infrastructure, security, ops, etc all work together to provide value to who ever is the end user. ...


4

The installation of Windows application can be automated using AutoHotkey (AHK), similar as Winetricks does this for all common apps which support. Here is example of AHK script which aims to install mentioned application: Run, mt5setup.exe WinWait, MetaTrader 5 Setup ControlClick, Button1 Sleep 100 ControlClick, Button3 WinWait, MetaTrader 5 Setup, ...


4

The main advantage to automation isn't just automation itself, but also that it provides you with an identical configuration across all of your resources. Say, for example, you stand up a webserver hosting your application and all relevant configs. Then you register it as an Amazon AMI so you can deploy multiple copies (say, one for dev, one for test, and ...


4

Experience at my place has been using Octopus Deploy, teamcity and Proget - had great success building a good pipeline and its scaling well. Also plays nicely with unit testing and automated functional test tools. We are predominantly in Azure on .Net but also deploying to private cloud and on premise


4

You mention a few different categories in your toolchain for .NET. Yes, NuGet is still the default package style – and a lot of people use a Universal Package Manager to manage their NuGet feeds. For Deployment, Octopus is indeed an option for pushing out artifacts, but it doesn’t enable some of the other aspects you were talking about. An ARA tool would ...


4

The critical question is - can you teach your job #2 to patiently wait for job #1 to complete when it gets to that dependency point and appropriately proceed or bail depending on job #1 result? If you can't, then the answer is no - you'll have more trouble dealing with #2 failures due to incomplete job #1, too much noise in the process. If you can (and if ...


4

Jenkins itself can be configured in many ways. The same applies for Jenkins jobs. Probably the most easy way is to configure Jenkins manually and replicate its setup by backing up and restoring. Unfortunately, this means dealing with copying XML files. But fortunately there are other ways. init.groovy.d directory When Jenkins starts, it checks init....


Only top voted, non community-wiki answers of a minimum length are eligible