Abstract
We stumble upon software in our everyday life, from handheld mobile devices to intelligent components of a smart home all the way to big machines we employ for regular daily tasks. As a software engineer, you get to see your work being used in every aspect of life. As interesting and energizing as it might sound, it has its own problems that one needs to tackle. The same products that help millions “achieve more” could someday cease to function due to a bug. Even worse, that bug might be an attempt to hijack the system for illegal activity. A lot of the software deployed to production follows poor design architecture, gets published in non-tested environments, or is being used by customers who are unaware of the socially engineered risks of software exploitation. Software packages are no longer just executable files sent to a customer upon receipt of payment. Software packages have become more Internet-based, agile, adaptable, accessible, and intelligent.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
There is a manifesto that mentions the main points that DevSecOps tends to add or resolve with other development methodologies; you can read it here: https://www.devsecops.org/.
- 2.
Read this website post to learn more about the three different approaches for security considerations with DevOps, https://blog.ariacybersecurity.com/blog/devsecops-vs-secdevops-blog.
- 3.
Or evenings. A global team is more likely to have a stand up in mornings/evenings. For half the team, it’s morning, and for others it’s evening.
- 4.
Check out Git hooks for more on this. You can also check Jenkins CI server to learn how a new commit is verified to be stable.
- 5.
Read this article on leading open source news and blogs website with statements from DevOps leads and VPs of engineering from firms that are implementing DevOps for themselves or for their customers, at https://opensource.com/article/18/3/4-hardest-things-devops-transformation.
- 6.
ProGuard is a Java tool used by Android developers to shrink application size by removing unnecessary code from the binaries and to obfuscate the bytecode generated by Java compiler for JVM.
- 7.
Or Linux, or MacOS, etc.
- 8.
Message queues are used in different aspects of your solutions. They are used with serverless applications to process the messages on demand by a serverless job/function. They are also used to balance the load on a worker thread, especially if your worker threads or nodes are weaker in compute power.
- 9.
A cloud-native design is one in which an application uses the cloud platform to its fullest, by fully utilizing its capabilities to scale, is highly available, and is fault tolerant.
- 10.
Read this extensive guide by Microsoft about Cloud Design Patterns, at https://docs.microsoft.com/en-us/azure/architecture/patterns/.
- 11.
This book is not a legal recommendation, and I am not providing legal advice in this book or in the final chapter. You must consult a legal entity to learn more about how to work closely with regulations and to protect your and your customers’ data, privacy, and property.
- 12.
You can read this article of mine on CodeProject at https://www.codeproject.com/Articles/1231946/DevOps-on-Azure-with-ASP-NET-Core. This article covers a basic starter for DevOps and gives you an overview of what it is like to have DevOps implemented in your business and perform the automation in your production environment.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2020 Afzaal Ahmad Zeeshan
About this chapter
Cite this chapter
Zeeshan, A.A. (2020). Modern Software Engineering. In: DevSecOps for .NET Core. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-5850-7_1
Download citation
DOI: https://doi.org/10.1007/978-1-4842-5850-7_1
Published:
Publisher Name: Apress, Berkeley, CA
Print ISBN: 978-1-4842-5849-1
Online ISBN: 978-1-4842-5850-7
eBook Packages: Professional and Applied ComputingApress Access BooksProfessional and Applied Computing (R0)