Prehistory
At work, the challenge arose, our new application developed on the asp.net core and Angular is seriously deployed on the company's servers. There are no devops engineers and it is not foreseen, therefore, as a senior developer, I will have to master this direction as well. the team is not so big - only 4 people. In general, the problem arose at the planning stage.
Now the company uses two independent galvanically unrelated networks for the Internet and for the internal subnet. The entire infrastructure (1c, etc.) is located in the local network without access from outside. Developers on the contrary sit in the Internet segment.
Thinking about the server infrastructure for publishing and testing the project, I thought about using Docker. (The application itself will use linux as the server platform (nginx for angular, postgresql - db, api on .net core).
A slight squeeze of information.
- Windows; Visual studio 2017 for API development; Visual studio code for Angular; GitLab on the internal Internet server;
- The API is written using ASP.NET Core 2; Client on Angular 4; DB - postgresql;
- Developers are in a separate network from the place of application deployment;
- Servers with the application will be on the local network without access to the Internet;
- ProxMox on the local network will be used as the base platform;
The structure turned out in my opinion.
Here are just a few problems (actually questions):
- Packages NPM update (Yarn is used as a package manager) and NuGet. Adding new packages. It seems that, as for nuget and for Yarn, you can make offline mirrors, but how to keep them relevant? And is it possible to update / add packages using Git? m. Has anyone come across this?
- Is there any sense at all from the hypervisor and virtual machines? Or is it better in this situation to deploy everything on one physical machine? Is there a plus support for virtual machines (in the future it was planned to combine several servers into a cluster and add replication with redundancy)?
- Is it possible that I am going in the wrong direction and all my ideas and thoughts are fundamentally wrong? Will it then painfully hurt me when working with all this? :)
- Where in general can you read about the organization of such a structure from scratch?
Perhaps someone will tell you how best to organize this whole CI / CD process. For me, this is the first experience in this direction and I want to do everything correctly (as far as possible)) because I myself have to work with the whole structure both as a developer and as devops.
