cloud dossier · from the final client’s perspective, the automation of update deployment makes...

17
CLOUD dossier

Upload: others

Post on 16-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

CLOUDdossier

Page 2: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

A Cloud-Native is an approach where the architecture of an application is ready to be launched on cloud computing platforms and to explore all its advantages:• On-demand delivery• Innovativeness and business agility• Container-based infrastructure• Microservice architecture• Declarative APIs

Introducing a Cloud-Native delivery allows companies to meet their customers’ needs much faster, and thus strengthens the competitive advantage of the whole organization. Cloud-native may turn the whole business around as it redefines the scalability on a new level. The benefits coming from the Cloud are the game-changers, deciding about organizations progress.

Automation in terms of resources management, the minimization of the risks, and flexibility are long sought after. Automated scaling and testing add up to the project’s security. From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system automatically rolls back to the previous working version.

Cloud Native

On-demand delivery

Innovativeness and business agility

Container-based infrastructure

Microservice architecture

Declarative APIs

Page 3: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

Microservices architecture is used to separate a monolithic application into several independent services. These boxes, services, are standalone and independent from a functionality perspective, even though they are communicating with each other and share data. Using microservices while designing a solution’s architecture offers several important pros:

Scalability In general, scalability is one of the greatest benefits coming from utilizing the public Cloud. This applies to microservices as well. Having an architecture built on separate “boxes” (meaning services) allows scaling only the most useful ones. Depending on the project’s scope, this can bring tremendous savings, compar-ing to silos solutions.

Flexibility Another appreciated benefit of microservices is the flexibility it offers. On a technological level, fewer dependency concerns enable the possibility of freely trying out new technology stacks on the go. This extraordinary flexibility applies to the meta-level as well – whatever the size of the project, the developing teams can work on it autonomously. Microservices architecture prevents the mess and uncalled for com-plications, leaving developers the space to work swiftly and to make their own technical decisions, even if the teams are scattered across several locations.

Speed This type of architecture, decomposed into services, makes it faster to work with, and possible - for as many teams as the project needs - to work simultaneously on several points. The deployments can be smaller but faster, enabling the CI/CD approach. Security-wise, opting for microservices-based architec-ture is on point. Isolated modules are easier to test, the QA can work faster, without waiting for the whole project to be finished. And when something turns to be off, the isolation makes it easy to find the malfunc-tioning service and solve the problem.

Microservices architecture development

Page 4: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

Infrastructure as code (IaC) is the process of managing and provisioning computer data centres through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. Building projects based on IaC means building an infrastructure based on modern solutions. This enables easy migration, backup and recovery if needed. IaC helps to automate the infrastructure deploy-ment, making it super fast to work with. IaC also means the consistency of deployment, preventing any incompatibilities from hindering the project.

SecurityUsing IaC as documentation adds up to the general level of security – reusing the same, tested processes saves time and money. Another issue that is worth revisiting is troubleshooting that consumes more and more time as the code grows. At times it is more effective to create a new version of the server, redeploy the code, get back to the last working version and start from the top. IaC comes to the rescue, thanks to the code the infrastructure is not only self-documenting but also automated and reproducible. And, what is crucial, exactly the same every single time.

Efficiency IaC tremendously increases productivity at the stage of production. It allows deploying several versions of the same code simultaneously which offers the incomparable possibilities. Developers and QA can work at the same time and be sure everyone is on the same page. Infrastructure as a Code enables the CI/CD practices and helps mitigate the potential risk of human errors.

IaC means a lot less manual work and allows teams to refocus on more important tasks. This leads to a further increase in efficiency and thus – further savings.

Infrastructure as a Code

Page 5: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

Structured, error-free, cost-effective – these are essential qualities in successful software development. Automation helps to move the process to another level. Continuous delivery, continuous integration, and continuous deployment are three DevOps strategies that are part of the automated development process. The goal is to build, test, deploy, and release software updates in the fastest way with as little bugs as it is possible and reduce the cost of bugs by adopting “fail fast, fail early” approach: the sooner the bug will be found, the cheaper is to fix it.

Continuous IntegrationThe process of software deployment is much faster than it used to be and due to the automation of many subprocesses much more stable and secure. Automation eliminates human error which is still the main reason for failure. But there are also challenges. How to avoid a situation where sometimes hundreds of developers who work on the same application check-in their code day to day, hour to hour and after some time they realize that after merging it will not work together? With help comes Continuous Integration. It is a methodology which demands from developers to check-in, merge and then build their code as fast as certain part of code is ready, even several times per day. Continuous integration of small code changes to the shared repository and automatically tests it, turning big changes into small ones. This makes it possible to solve them in an easier and faster way. After tests are done successfully, there is a need to deploy a working application on either test/pre-prod or production environment.

Continuous delivery and deploymentThe process of making changes to the code is continuous, and every hour, every minute or sometimes every second a new version is created. How to make it all work then? The response lays in Continuous De-livery or Continuous Deployment both called CD. When the process of accepting changes and acceptance tests are made manually, we can say there is continuous delivery. Someone is informed that a working, already tested application is waiting for final approval and after performing additional check and tests that person needs to approve the version manually. Continuous Deployment scenario is achieved when the full automation comes into the picture.

CI/CD

CONTINUOUS DELIVERY

Dev Application Test Integration Test Acceptance Test Production

Dev Application Test Integration Test Acceptance Test Production

CONTINUOUS DEPLOYMENT

Automatic trigger

Manual trigger

Page 6: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

We are a software house that specializes in the production of unconventional solutions. We are not atta-ched to one technology and we approach our clients’ requirements very flexibly. The public cloud and va-rious technologies available through it are in line with our approach. That is why we invest in cloud-related skills within our teams.

EXPERTISE01

We can help you with:

Designing an application based on public cloud components (Cloud Native)

Use of microservices

Redesigning the application from the monolith to Cloud Native

The use of serverless technologies in the design of IT systems

Page 7: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

02 CLOUD CREDENTIALS

AWS Certifications

• Professional/Specialty Certifications

• Associate Certifications

• Foundational Certifications

AWS Foundational Certified Individuals

AWS Technical Certified Individuals

AWS Technical Certified Individuals - Pro or Specialty

140

33

90

17

17

64

15

Page 8: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

PROJECTS03

Page 9: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

In this project our experts supported client’s development team in servicing the AWS environment for the proprietary platform organizing the circulation of invoices in the company. The automated deployment of new code versions (dev, preproduction, and production) between Azure and AWS was established.

Project description:

SAGE

Main tools / resources used: • Azure Devops• AWS CodePipeline • CodeBuild• CodeDeploy• CloudFormation• EC2• Load Balancers

Page 10: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

In scope of this project our team created an automated deployment of new code versions (WordPress / PHP) on the cloud environment (preproduction and production).

Project description:

HelloWorld

Main tools / resources used: • AWS CodePipeline• CodeBuild• CodeDeploy• CodeCommit• CloudFormation• EC2• Load Balancers

Page 11: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

We’ve created the CONNECT system, which enabled connecting medical simulators to the cloud for better use, increasing the data storage to unlimited sizes, enabling inter-faculty training sessions and much more.

The platform was based on Azure environments.

Project description:

Virtamed

Page 12: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

This project is a platform for managing content necessary for streaming video. The main functionalities of the project are implemented in .Net Core 2.2 in serverless technologies, i.e. Event Grid, Logic Apps, Functions, CosmoDB. We use Media Services, Storage Account, and Search Service to manage content and movies, while Identity Server, Key Vault and API Management deal with permissions, authorization and authentication. In addition, we use Application Insights and Log Analytics to analyze and monitor the applications.

Project description:

A video streaming platform

Page 13: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

Our task in this project was to design, launch and maintenance the scalable environment

Designing the launch and maintenance of a scalable environment for performing calculations related to the strength of materials on the AWS platform.

Project description:

Composide

Page 14: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

We designed a pipeline that will automatically calculate the content of the new version of the binary file based on the changed guidelines, with resource scaling according to the queue length.

Another feature was designing an automated system that enables the distribution of files in relation to final entity’s permissions.

We also developed a monitoring and centralized log system for the entire process - from changing guidelines to distribution.

Project description:

Project 1

One of the largest toy manufacturers in the world

Main tools / resources used: • Terraform• CodeBuild• ECS• Lambda / Python• Elasticsearch / Kibana• Cognito• DynamoDB• Step Functions• Kinesis Firehose• SNS• SQS• Api Gateway• GitLab CI / CD automation

Page 15: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

The project was based on working with the pre-existing Java code of the online store. Team has provided technical assistance and helped optimizing the CI/CD process in AWS.

Project description:

Project 2

One of the largest toy manufacturers in the world

Main tools / resources used: • AWS ECS• Lambda• CloudFormation Git Actions• Java

Page 16: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

The project is realted to business analytics. Team’s task is to automate the process of data processing from parquet-files for further analysis.

Project description:

Project 3

One of the largest toy manufacturers in the world

Main tools / resources used: • Terraform• AWS ECS• Lambda / Python• Athena• RDS

Page 17: CLOUD dossier · From the final client’s perspective, the automation of update deployment makes the user experience seamless – any possible downtime is minimized when the system

Wojtek Kubiak

Delivery Manager (Cloud)[email protected]

+48695645485

CONTACT