architecture and devops...architecture and devops m. alibabar crest –centre for researchon...

18
Architecture and DevOps M. Ali Babar CREST – Centre for Research on Engineering Software Technologies University of Adelaide, Australia

Upload: others

Post on 20-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Architecture and DevOps

M. Ali Babar

CREST – Centre for Research on Engineering Software TechnologiesUniversity of Adelaide, Australia

Page 2: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

2

NewProduct,Context,&Constraints

Requirements/Features

ArchitecturalCoreAssets

Problem-CentredProcessSupport

Problem-CentredProductArchitectureDesign&Implementation

RationaleandReasoningKnowledge

SoftwareArchitecture

ArchitecturalEngineering

QualityAttributes

DevelopmentandOperations(DevOps)

Architecture-Centric Research for Software Services

Page 3: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

The Key Areas of the Current ProjectsScienceofCyberSecurity• Methodsandtoolsforevidencesynthesisandevaluation• MiningSoftwareRepositoriesforsecurityknowledge• FieldStudiesfordevelopinganddeployingsecureSoftwareusingDevOpsparadigmandtools

SecureandScalablePrivateCloudInfrastructures• Designandimplementationofsecureprivatecloud• Semi-automatedconfigurationoftools/pipelines• IntegrationandtestingofDocker,kubernetes,rkt,andLXDforsecureprivateclouddeployments

ResilientArchitecturesforCloudlet/Edgecomputing• BuildingandleveragingresilientarchitecturesforCloudsystems,InternetofThings(IoT)andFogComputing

• Formalqualitativeandquantitativeresiliencemetricsdevelopmentandevaluation

DataExfiltrationandSecurityOrchestration• Strategiesforuncoveringsoftwareflawsfordataexfiltration• Designinganddeployingadaptivecountermeasures• Architecturalsupportforautomaticsecurityorchestration

Page 4: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

4

Requirements/Features

ArchitecturalCoreAssets

Problem-CentredProcessSupport

Cyber Security CRC – Program Structure

Page 5: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Evidence-BasedApproachtoExploringtheRelationbetweenArchitectureand

DevOpsParadigm

Page 6: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

(Re)-Architecting for DevOps

• (Re-)architectingtoenablecontinuousdeliveryanddeployment?– Threechallenges:highlycoupledmonolithicarchitecture,team

dependencies,andever-changingandcomplexenvironments.

– Sixprinciples:smallandindependentdeploymentunits,nottoomuchfocusonreusability,aggregatinglogs,supportingfrequentandincrementalchanges,design for failure,andtestability inside anarchitecture.

– Autonomyanddecompositionstrategies:deployability,modifiability,testability,scalability, andteam-scale

• Designinghighlyoperaionalised architectures:prioritise operationalconcerns early,continuouslyengagewiththeoperationsstaff,andleveragelogsandmetricdataforoperationaltasks.

Page 7: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

(Re)-Architecting for DevOps

• Contributionsoftheresearchsofar!

– AbetterunderstandingofpracticingCDwithinmonolithsandidentifiesalistofreasonsfordisruptionstoCDadoptionwithinthemonolithsbyexploringthepractitioners’perceptions;

– Acharacterizationof“smallandindependentdeploymentunits”principleattemptedbytheparticipantstoeaseaCDjourney;

– AsetofqualityattributesthatrequiremoreattentionwhendesigninganapplicationinCDcontext;

– Anempiricalevidenceabouttheperceivedbenefitsofaddressingoperationalaspectsduringarchitectingphaseofanoperations-friendlyarchitecture;

– AcatalogueoffindingsaboutarchitectingforCDthatcanbeusedasguidanceforfurtherresearcheffortandprovideconcreterecommendationsforbetterpracticesandtoolsdevelopment.

Page 8: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

FindingsFromSurveyedQuestions

Page 9: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Continuous Delivery vs. Deployment in practice

53

11

31

19

2 3

26

17

31

37

7

1

Multiple times a day Once a day A few times a week A few times a month A few times a year N/A

On average, how often your applications are in releasable state?

On average, how often do you deploy your applications to production?

Finding 1: From a practitioner’s perspective, continuous delivery and continuous deployment are indeed distinguishable practices in industry.

Page 10: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Monoliths and CD

60% 19% 21%Possibility of practicing CD in "monolithic applications"

Strongly agree Agree Neutral Disagree Strongly disagree

Finding 2: Monoliths and CD are not intrinsically oxymoron.

Finding 3: Adopting CD in monoliths is more difficult, as there are hurdles for having team autonomy, fast and quick feedback, enabling automation (e.g., test automation) and scalable

deployment.

Page 11: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Monoliths and CD

Finding 4: Breaking down monoliths into smaller pieces brings more flexibility in CD; however, the participants experienced it as challenging process.

Finding 5: Inflexibility of organizational structure (e.g., team structure) with the spirit of CD is the most critical challenge for implementing CD.

69%

70%

67%

19%

20%

15%

12%

10%

18%

Inflexibility of the organization’s structure with CD

Huge dependencies and coordination among team members

Difficulty of splitting a (monolithic) application

Very important Important Moderately important Of little importance Unimportant

Page 12: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Moving Beyond Monoliths

Finding 6: “Small and independent deployment units” is a key principle, which is widely used as an alternative to monoliths, and serves as a foundation to design CD-driven

architectures.

Finding 7: Autonomy in terms of deployability, modifiability, testability, scalability, and isolation of business domain are the main characteristics of this principle.

Finding 8: Adopting microservices to promote delivery speed comes at a cost as it necessitates considering organizational structures and highly skilled team. Ignoring this fact

may negatively impact the deployment capability of an organization.

Page 13: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Quality Attributes that Matter in CD

DeployabilityTestability

ModifiabilityMonitorability/Loggability

ResilienceReusability

Page 14: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Deployability

Finding 9: Concerns about deployability impact how applications are designed, however interactions among components/services are most influenced by deployability.

84%

2%

63%

67%

70%

23%

11%

25%

25%

20%

37%

5%

68%

12%

8%

10%

40%

Consider operational aspects during design phase

Sacrifice performance, security, etc. to improve deployability

Deployability impacts design of the entire application

Deployability impacts design of interactions among components/services

Deployability impacts design of individual components/services

Deployability impacts design of individual classes

Almost Always Often Sometimes Rarely Never

Page 15: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Quality Attributes that Matters (Largely/Less)

Finding 10: The importance of monitorability, loggability and resilience has increased, but overthinking about “reusability” at architecture level may negatively impact CD adoption.

43%

80%

59%

76%

82%

65%

29%

12%

33%

16%

9%

16%

29%

8%

8%

8%

9%

19%

Overthinking on reusability at architecture level hinders CD …

CD adoption increases the need for resilience

For CD, Domain Driven Design and Bounded Context are …

CD adoption increases the need for logging

CD adoption increases the need for for monitoring

In CD, architectural decisions are made as late as possible

Strongly agree Agree Neutral Disagree Strongly disagree

Finding 11: Compared to less frequent release, CD more emphasizes on evolutionarily changes. This requires delaying architectural decisions to the last possible moment.

Page 16: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Operation Aspects and Architecture

84%

42%

11%

30%

5%

29%

Operational aspects impact on our architecture design decisions

Operations team’s concerns still have less priority than other stakeholders

Strongly agree Agree Neutral Disagree Strongly disagree

Finding 13: CD can expand architect’s role as apart from software design they need to deal with infrastructure architecture, test architecture and automation.

Finding 12: Considering operational aspects early in software development process would help design and implement operations-friendly architectures.

Page 17: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Acknowledgement

• TheempiricalstudyisthepartofMojtaba Shahin PhDresearch

• TheCyberSecurityCRCprogramhasmultipleacademicanddozensofindustrialandgovernmentalagencies

Page 18: Architecture and DevOps...Architecture and DevOps M. AliBabar CREST –Centre for Researchon Engineering Software Technologies Universityof Adelaide, Australia 2 New Product, Context,

Thank You!

Questions