T
T
topuserman2021-10-15 20:06:26
Continuous Integration
topuserman, 2021-10-15 20:06:26

CI: How is continuous integration implemented in complex monolithic systems?

Hello everyone, I started to study the topic of CI / CD, and in the process of learning I immediately begin to imagine how it can be used in our project.

We have a large and complex monolithic system, without docker and other things.
Each developer has their own copy of the dev environment.

Now the plan is at least : make sure that when git pull , depending on the developer, the branch is automatically uploaded to his dev environment for testing - everything is clear here, no magic.

And secondly , this is the automatic launch of tests, upon certain actions, for example, accepting a merge-request with the master.

What is not clear to me :

Most often, in training materials they write that before starting the tests, an Assembly is Created and tests are already launched in it. It seems logical, but in this model it is not clear how to create an assembly if we have a large monolith, with a bunch of dependent services? How is this generally solved?

Do we really have to transfer everything to the docker for this, so that we can deploy it in a simple way?

Answer the question

In order to leave comments, you need to log in

5 answer(s)
V
Vitaly Karasik, 2021-10-16
@vitaly_il1

CI works with both monolith and microservices.

And the second is the automatic launch of tests, upon certain actions, for example, accepting a merge-request with the master.
What is not clear to me:
Most often, in training materials they write that before starting the tests, an Assembly is created and tests are already launched in it.

Start simple: write the sequence of steps that you manually run today to build your application. And deploy (although formally this is already a CD).
And then think and check how to transfer this script to the selected CI service.
Specifically about the tests - what kind of tests are we talking about? unit? integration? end-to-end?

A
Arthur Gurinovich, 2014-12-12
@TostMaria

BDD. (Take Behat or Codeception).
Write a couple of scripts for specific tasks. You can transfer the data to a separate file from which everything will be read and substituted in the right places on the pages. You can organize a large structure.
If we talk about the launch schedule, then all this can also be placed on some CI, such as Jenkins, and set up the launch schedule, while adding new data to the file with values.
PS Actually, a similar task was implemented in this way.
I'm just offering an option.

K
kstyle, 2014-12-12
@kstyle

any programming language (for example, C++). further, within the framework of this language, tools for working with the Internet (frameworks, libraries) (for example, Qt) + API VK. You may also need multi-threaded programming. Words in the topic: parser, grabber.

B
bromzh, 2014-12-12
@bromzh

You need Selenium .
This is the second time in 3 days that this question has been asked, google at least before that.

S
safinaskar, 2014-12-14
@safinaskar

Specifically in the case of contact - everything is simple. contact provides api ( vk.com/dev ), it's easier than other methods. many sites give api. if not - then yes, you need to automate the browser, use selenium, etc. or you can use the "inspect element" feature to find out exactly which, say, POST requests are sent when submitting the form and then send them yourself

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question