Cloud computing for microprocessor tools

GowthamRider 28 views 38 slides Jun 24, 2024
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

Cloud computing


Slide Content

5.6 CHALLENGES WITH MICRO SERVICES Compared to monolithic apps, organizations face increased complexity when designing microservices. Using microservices for the first time, you might struggle to determine: Each microservice’s size Optimal boundaries and connection points between each microservice The framework to integrate services Security Microservices are often deployed across  multi-cloud environments , resulting in increased risk and loss of control and visibility of application components—resulting in additional vulnerable points. Compounding the challenge, each microservice communicates with others via various  infrastructure layers , making it even harder to test for these vulnerabilities . Testing The testing phase of any  software development lifecycle (SDLC)  is increasingly complex for microservices-based applications. Given the standalone nature of each microservice, you have to test individual services independently . Exacerbating this complexity,  development teams  also have to factor in integrating services and their interdependencies in test plans.

Here are some challenges : Traditional forms of monitoring may not work for a microservices-based application.   Scalability is another operational challenge associated with microservices architecture.   Optimizing and scaling require more complex coordination.   Fault tolerance needed for every service.  

5.7 SOA VS MICROSERVICE

5.8 MICROSERVICE AND API What are APIs’? Application Program Interface or most commonly known as APIs’ is a way through which you can make sure two or more applications communicate with each other to process the client request. while building and using applications, we generally do CRUD operations. When I say CRUD operations, I mean that we create a resource, read a resource, update a resource and delete a resource. So , APIs’ are generally developed by using the  RESTful style , and these methods are nothing but the methods of HTTP .

HTTP Methods

Where are APIs’ used in Microservices?

5.9 DEPLOYING AND MAINTAINING MICROSERVICES In a microservices architecture, each microservice performs a simple task and communicates with clients or other microservices by using lightweight mechanisms such as REST API requests.

The architecture has the following components : Region An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them. Availability domains Availability domains are standalone, independent data centers within a region. The physical resources in each availability domain are isolated from the resources in the other availability domains, which provides fault tolerance. Availability domains don’t share infrastructure such as power or cooling, or the internal availability domain network. So, a failure at one availability domain is unlikely to affect the other availability domains in the region . Fault domains A fault domain is a grouping of hardware and infrastructure within an availability domain. Each availability domain has three fault domains with independent power and hardware. When you distribute resources across multiple fault domains, your applications can tolerate physical server failure, system maintenance, and power failures inside a fault domain.

Virtual cloud network (VCN) and subnet A VCN is a customizable, software-defined network that you set up in an Oracle Cloud Infrastructure region. Like traditional data center networks, VCNs give you complete control over your network environment. Container Engine for Kubernetes Oracle Cloud Infrastructure Container Engine for Kubernetes is a fully managed, scalable, and highly available service that you can use to deploy your containerized applications to the cloud. You specify the compute resources that your applications require, and Container Engine for Kubernetes provisions them on Oracle Cloud Infrastructure in an existing tenancy. Container Engine for Kubernetes uses Kubernetes to automate the deployment, scaling, and management of containerized applications across clusters of hosts . Registry Oracle Cloud Infrastructure Registry is an Oracle-managed registry that enables you to simplify your development-to-production workflow. Registry makes it easy for you to store, share, and manage development artifacts, like Docker images. The highly available and scalable architecture of Oracle Cloud Infrastructure ensures that you can deploy and manage your applications reliably.

5.10 REASON FOR HAVING DEVOPS DevOps is no more than a set of processes that coordinate to unify development teams and processes to complement software development. The main reason behind DevOps' popularity is that it allows enterprises to create and improve products at a faster pace than traditional software development methods . Devops Popularity According to the Previous survey, the implementation rate has increased significantly. In 2016, 66 % of global organizations had adopted self-development, 19 percent had not adopted DevOps, and 15 percent had not yet decided . As of 2017, 74 percent of global organizations adopted DevOps, 16 percent did not adopt DevOps, and 10 percent were not decided . Shorter Development Cycles, Faster Innovation 2. Reduce Implementation Failure, Reflections and Recovery Time 3. Better Communication and Cooperation 4. Greater Competencies 5. Reduce Costs and IT Staff

5.11 OVERVIEW OF DEVOPS DevOps is a set of practices that works to automate and integrate the processes between software development and IT teams, so they can build, test, and release software faster and more reliably . The term DevOps was formed by combining the words “development” and “operations” and signifies a cultural shift that bridges the gap between development and operation teams, which historically functioned in repository. The DevOps lifecycle includes phases plan , build, continuously integrate and deploy (CI/CD), monitor, operate, and respond to continuous feedback.

5.12 HISTORY OF DEVOPS he concept of DevOps emerged out of a discussion between  Andrew Clay and Patrick Debois in 2008 . They were concerned about the drawbacks of Agile and wanted to come up with something better. The idea slowly began to spread and after the DevOpsDays event held in Belgium in 2009, it became quite a buzzword.

5.13 CONCEPTS AND TERMINOLOGY IN DEVOPS DevOps principles Culture. ... Automation of processes. ... Measurement of KPIs (Key Performance Indicators) ... Sharing. ... Agile planning. ... Continuous development. ... Continuous automated testing. ... Continuous integration and continuous delivery (CI/CD)

The most important DevOps terms to know today include: Agile . Used in the DevOps world to describe infrastructure, processes or tools that are adaptable and scalable. ... Continuous delivery. ... Continuous integration. ... Immutable infrastructure. ... Infrastructure-as-Code . ... Microservices . ... Serverless computing.

5.14 CORE ELEMENTS OF DEVOPS Combining developers and operations into one concept creates a new dynamic that changes the way people think about IT and the role of the developer in the organization. Our research shows there are really six that are most important to consider: Collaboration Automation Continuous integration Continuous testing Continuous delivery Continuous monitoring Developers and operations have historically been separate organizations in IT. They have been separated due in many respects to the constraints of enterprise systems practices and the shift from waterfall to agile development processes. Before any app can be put into production it needs to be configured so it performs as expected by the user. In production, the app and the systems that support it need monitoring.  Developers may create the app, but it is up to the systems team to often manage hotspots, unusual spikes and transactions across a distributed infrastructure.

But more than ever, developers and operations need to have shared practices. Efficiency matters but the greater need is for app development. Apps needs to be designed faster, tested and deployed across mobile and web platforms. DevOps has lots to offer  in this complex new world. It offers a process that can be put into place and repeated without distracting from other work and a person’s personal life. But it also offers impediments. “ Navigating DevOps ” is an ebook New Relic published that covers the six capabilities of DevOps to help companies get a grip on what they want to accomplish. DevOps offers  1. Collaboration 2. Automation 3 . Continuous Integration 4. Continuous Testing 5. Continuous Delivery 6. Continuous Monitoring

5.15 LIFE CYCLE OF DEVOPS DevOps defines an agile relationship between operations and Development. It is a process that is practiced by the development team and operational engineers together from beginning to the final stage of the product .

The DevOps lifecycle includes seven phases as given below: Continuous Development This phase involves the planning and coding of the software. The vision of the project is decided during the planning phase . 2) Continuous Integration This stage is the heart of the entire DevOps lifecycle. It is a software development practice in which the developers require to commit changes to the source code more frequently. This may be on a daily or weekly basis. 3) Continuous Testing This phase, where the developed software is continuously testing for bugs. For constant testing, automation testing tools such as  TestNG, JUnit, Selenium , etc are used. 4) Continuous Monitoring Monitoring is a phase that involves all the operational factors of the entire DevOps process, where important information about the use of the software is recorded and carefully processed to find out trends and identify problem areas. Usually , the monitoring is integrated within the operational capabilities of the software application.

5) Continuous Feedback The application development is consistently improved by analyzing the results from the operations of the software. This is carried out by placing the critical phase of constant feedback between the operations and the development of the next version of the current software application. 6) Continuous Deployment In this phase, the code is deployed to the production servers. Also, it is essential to ensure that the code is correctly used on all the servers.

5.16 ADOPTION OF DEVOPS Adopting DevOps  allows you to streamline your software delivery lifecycle and to be able to deliver better software faster . ... The reason why organizations are interested in adopting DevOps is to streamline their software delivery lifecycle and to be able to deliver better software faster. M ove to a DevOps delivery model, here are six approaches to be critical for ensuring a successful DevOps adoption within an organization . 1. Embrace a DevOps Mindset DevOps doesn’t begin by just stating, “Let’s do DevOps,” and jumping in with tools. Your entire organization needs to have a clear understanding of what DevOps is and what specific business needs it can address, and, most importantly, everyone needs to be willing to change the way things have always been done. 2. Make the Most of Metrics One of the most overlooked initiatives in DevOps adoption is selecting the right metrics to record and track progress. Establishing the right baseline DevOps metrics early on and not being afraid to measure things that might initially not make you look very good is the key to being able to show demonstrative progress over time and real business benefits to senior leadership.

Production failure rate: how often the software fails in production during a fixed period of time 2. Mean time to recover: how long it takes an application in production to recover from a failure 3. Average lead time: how long it takes for a new requirement to be built, tested, delivered, and deployed into production 4. Deployment speed: how fast you can deploy a new version of an application to a particular environment (integration, test, staging, preproduction, or production environments ) 5. Deployment frequency: how often you deploy new release candidates to test, staging, preproduction, and production environments 6. Mean time to production: how long it takes when new code is committed into a code repository for it to be deployed to production

3. Understand and Address Your Unique Needs Every organization will have a unique DevOps journey tied to its specific business and culture, and that journey will be far more about changing people’s habits and communication patterns than what tools help you enable automation. 4. Adopt Iteratively 5. Emphasize Quality Assurance Early 6. Take a Smart Approach to Automation Automation is the cornerstone of accelerating your delivery processes, and everything—infrastructure, environment, configuration, platform, build, test, process, etc.—should be defined and written in code.

5.17 DEVOPS TOOLS A typical DevOps process consists of 8 stages: plan, code, build, test, release, deploy, operate and monitor.

Tools available — open source and OEM solutions — that can be used for each of these stages and some across various stages. There’s no single magical tool to implement or facilitate DevOps.

5.18 BUILD , PROMOTION AND DEPLOYMENT IN DEVOPS Build tools are  programs that automate the creation of executable applications from source code . Building incorporates compiling, linking and packaging the code into a usable or executable form. In small projects, developers will often manually invoke the build process. Build automation is the process of  automating  the retrieval of source code, compiling it into binary code, executing automated tests, and publishing it into a shared, centralized repository. Build automation is critical to successful DevOps processes. ... That's why build automation is so important in DevOps. The Build Promotion capability lets you automatically promote successful builds across the pipeline in  Automic Continuous Delivery Director . You can use this capability to promote successful builds across release phases. Application build numbers are included in, and can be automatically tracked across, the lifecycle of a release.   Automic Continuous Delivery Director  recognizes the build field of a Release Automation Run Deployment task as the build number. To promote a successful build to the next phase, use the built-in 

Devops deployment tools 1 – Jenkins One of the leading CI/CD tools for DevOps, Jenkins is an open-source continuous integration server that automates the build cycle of a software development project.   2 – ElectricFlow ElectricFlow is a tool used to automate releases, and offers a free community version that can be run on VirtualBox. 3 – Microsoft Visual Studio Visual Studio allows users to define release definitions, track releases, run automation, and more. 4 – Octopus Deploy Octopus Deploy automates the deployment of .NET applications and can be installed on a server, or an Azure host instance. 5 – IBM UrbanCode Part of the IBM suite of products since 2013, UrbanCode automates deployment to both cloud and on-premise environments. 6 – AWS CodeDeploy CodeDeploy is Amazon’s automated deployment tool, with an impressive platform and language agnosticism. 7 – DeployBot DeployBot allows for automatic or manual deployments across multiple environments, when you connect it to your Git repository. You can even deploy via Slack, or via many other integration options .

8 – Shippable Shippable has a CI platform that runs builds on minions – Docker-based containers. 9 – TeamCity TeamCity is a CI server with smart config features, and official Docker images for agents and servers. 10 – Bamboo Atlassian – makers of Confluence and Jira – have a CI offering called Bamboo Server. Bamboo touts “integrations that matter” and has a Small Teams package whose proceeds are donated to charity . 11 – Codar HP’s continuous deployment solution is called Codar, which uses Jenkins to trigger deployments. 12 – CircleCI CircleCI is a CI solution, with emphasis on reliability, flexibility, and speed. Source to build to deploy solutions, with support for a range of applications and languages. 13 – Gradle Some of the biggest names in the tech industry use build tool Gradle – Netflix, Adobe, and LinkedIn, for example. This is a general purpose build tool similar to Apache’s Ant. 14 – Automic Automic applies DevOps principles to backend apps, so they can benefit from the practices many frontend web-based apps do.

15 – Distelli Distelli is a specialist in deploying Kubernetes clusters, and can be used with any physical or cloud-based server. 16 – XL Deploy XL Deploy is a release automation tool supporting a variety of environments and plugins, using agentless architecture. 17 – Codeship A hosted CI solution, Codeship supports customization with native Docker support. 18 – GoCD GoCD is an open-source CD server focusing on visualizing workflows. 19 – Capistrano An open-source deployment tool, Capistrano is scriptable and is a self-described “sane, expressive API”. 20 – Travis CI A free tool for open-source projects, you can sync Travis CI to your GitHub account and use it to automate testing and deployment.  21 – BuildBot Self-described as a “framework with batteries included”, BuildBot is an open-source Python-based CI framework that is highly flexible.