Skip to content

IT outsourcing

Cloud and DevOps

Migration, delivery automation, infrastructure as code and cloud cost control.

What is delivered

  • Infrastructure described in code and versioned, not hand-configured

  • Delivery pipelines with tested rollback, not merely planned rollback

  • Cost review with concrete actions and measured savings

Why is infrastructure as code not optional?

Because hand-configured infrastructure is not reproducible, and not being reproducible means nobody knows exactly what is in production. When an environment needs recreating, and one day it does, the difference between an afternoon and three weeks is this.

Also because it makes change reviewable. A configuration change made in a console is not reviewed, leaves no rationale and is not reliably reversible. The same change declared in code is read by another person before it happens, and that is what catches most configuration errors.

Where we find manual infrastructure, migration is phased and starts with what is most fragile rather than what is easiest. Declaring the development environment first and leaving production manual for a year is the comfortable path and solves precisely the problem that did not exist.

What does a well-built delivery pipeline change?

The size of the change. When getting a change to production is slow and risky, teams accumulate changes and ship large batches, which are harder to diagnose when they fail. When it is fast and safe, they ship small, and the cause of a failure is obvious by elimination.

It also changes who can ship. A pipeline depending on a specific person to approve or execute creates a bottleneck that shows up during holidays and during incidents. Automating the controls rather than concentrating them in one person is what makes the operation resilient.

And it changes the relationship with reverting. A release that reverts in two minutes allows small risks to be taken often; one that takes an afternoon to revert forces risk avoidance, which in practice means shipping less and accumulating more in each release.

How is observability designed?

From the questions that need answering during an incident, rather than from what the tool can collect. The reverse order produces crowded dashboards and an inability to answer the only question that matters at three in the morning: what changed.

With alerts tied to user-observable symptoms rather than to internal metrics. An alert about processor utilisation wakes someone for a fact that may have no consequence; an alert about perceived latency wakes someone for a real problem. Alerts requiring no action should be removed rather than muted.

And with enough retention to investigate. Logs with seven days of retention are useless for an intermittent problem appearing every three weeks, and the discovery that retention is insufficient always happens during the investigation, which is when nothing can be done about it.

How is cloud cost controlled?

With attribution before optimisation. A cloud bill without consistent tagging is not analysable, and the first intervention is almost always establishing who consumes what, by team, environment and service. Without that, optimisation is guesswork with authority.

Then, the boring wins: development environments shut down out of hours, storage in classes matched to access frequency, oversized resources adjusted to real measurements, and orphaned resources removed. These four cover most of the waste in most accounts.

And with an alert threshold that fires before the bill arrives. Discovering a cost increase at month end is discovering it with the cost already incurred, and most unexpected increases are detectable on day one if someone is watching.

What data residency requirements apply?

For European data subjects' personal data, the region where data resides matters and it is a configuration choice frequently left unmade. Managed services with global components can replicate metadata outside the chosen region, and that should be verified per service rather than assumed.

For Portuguese public sector clients the requirement is usually stricter and appears as an exclusion criterion in tenders. Designing the architecture with that constraint from the start costs little; adapting it after the tender is published costs the tender.

Administrative access is the other half of the question, and the more forgotten one. Data hosted in Europe and administered by a team outside the European Economic Area still involves a transfer, and the framework applies to access and not only to storage.

How is the operation handed back?

With everything declared in code in a repository that is yours from day one, not in one that is ours and handed over at the end. It is the difference between a deliverable and a dependency, and it is a choice made at the start that cannot be corrected later.

With operational documentation written as the operation runs rather than reconstructed at the end, and with at least one exercise where your team executes a critical procedure with us shadowing, rather than reading about it.

The timeline and cost of exit are in the proposal. An infrastructure supplier that does not quantify exit is selling a position rather than a service, and the question should be asked before signing rather than once the relationship has soured.

What do we not recommend?

Migrating to cloud without measuring first. A stable, predictable workload can be more expensive on public cloud than on dedicated infrastructure, and migration only pays off where there is real elasticity to exploit. We say so before the bill rather than after.

And adopting container orchestration where the operation has neither the scale nor the team to maintain it. It is an excellent choice above a certain size and a source of permanent complexity below it, and the decision should be taken on your size rather than on common practice.

Where cloud and devops can be run from

Not every delivery model suits every service. The table shows only those that make sense for this work, with the data residency position of each.

ModelWhereWhen it makes sensePersonal data
Onshore PortugalLisbon, Porto, Braga, Coimbra, Aveiro, Faro, Funchal and Ponta DelgadaWhen data cannot leave the EEA, or when the end customer is PortugueseStay inside the EEA. No transfer.
Nearshore in PortugalLisbon and Porto, for foreign buyersWhen you need a multilingual European base without incorporatingStay inside the EEA. No transfer.
Global networkUzbekistan, the Philippines, Poland, the Dominican Republic, Mexico, Colombia, Turkiye and AfricaWhen you need continuous cover, specific languages or the lowest costPoland is inside the EEA. The others require standard contractual clauses.

The data column describes the applicable framework and is not legal advice. The detail is in international data transfers.

Frequently asked questions

Which cloud providers do you work with?

With the major public providers and with dedicated infrastructure where data residency requires it.

Is the infrastructure declared as code?

It is, in a repository that is yours from day one. That is the difference between a deliverable and a dependency.

Can you reduce our cloud bill?

Usually yes, and we start with attribution rather than optimisation, because without consistent tagging optimisation is guesswork.

How do you design alerts?

Tied to user-observable symptoms. Alerts requiring no action are removed rather than muted.

Does data stay in Europe?

It does when configured that way, and we verify per service rather than assume. Administrative access counts as a transfer.

Do you meet public sector requirements?

We do, and the residency constraint enters the architecture from the start because adapting it later costs the tender.

How long does a migration take?

It depends on the starting point, and we begin with what is most fragile rather than what is easiest.

How does exit work?

Timeline and cost are in the proposal, with an exercise where your team executes a critical procedure rather than reading about it.

Let us look at the numbers for your case

Tell us which processes you want to outsource, in which languages and at what volume. We come back with a euro estimate and an operating design, with no commitment.

We reply within 6 hours on working days. If you would rather write: info@corpshore.solutions